Karmada API is a Go library that defines the canonical API types served by Karmada, a multi-cluster Kubernetes orchestration system.
This repository solves the problem of providing a single source of truth for Karmada's API schema definitions. Rather than embedding API types directly in the main Karmada project, the API definitions are maintained separately and can be consumed as a dependency by client libraries and tools that need to interact with Karmada clusters. Developers work with Go types that can be serialized directly to JSON, enabling type-safe interactions with Karmada APIs.
The primary use case is as a dependency of client-go libraries. Developers building tools, controllers, or clients that communicate with Karmada should use the Go types provided by this repository. The repository maintains compatibility with the main Karmada project through synchronized branching and tagging, ensuring that versions align across both repositories.
The project operates as a read-only mirror of the API definitions maintained in the main Karmada repository. All code changes originate in the primary Karmada project, are merged there, and are subsequently synced to this repository. This one-way synchronization model means contributors should not attempt to make changes directly in this repository but instead submit modifications upstream to the canonical source.