Skip to content

Latest commit

 

History

History
54 lines (38 loc) · 3.06 KB

File metadata and controls

54 lines (38 loc) · 3.06 KB

kpt logo

kpt: Automate Kubernetes Configuration Editing

kpt is a package-centric toolchain that enables a WYSIWYG configuration authoring, automation, and delivery experience, which simplifies managing Kubernetes platforms and KRM-driven infrastructure (e.g., Config Connector, Crossplane) at scale by manipulating declarative Configuration as Data.

Configuration as Data is an approach to management of configuration which:

  • makes configuration data the source of truth, stored separately from the live state
  • uses a uniform, serializable data model to represent configuration
  • separates code that acts on the configuration from the data and from packages / bundles of the data
  • abstracts configuration file structure and storage from operations that act upon the configuration data; clients manipulating configuration data don’t need to directly interact with storage (git, container images).

See the FAQ for more details about how kpt is different from alternatives.

📖 Documentation

Documentaion of the kpt project is in https://kpt.dev/.

⚖️ Governance

Governance of the kpt project is described in the Governance repository.

👋 Comms

Slack

You can reach us in the #kpt channel on the Kubernetes Slack.

Mailing list

We have a kpt users mailing list.

Repository structure

  • kpt: The main logic of kpt.
  • krm-function-catalog: A catalog of off-the-shelf, tested functions. kpt makes configuration easy to create and transform, via reusable functions. Because they are expected to be used for in-place transformation, the functions need to be idempotent.
  • krm-function-sdk: Any general-purpose or domain-specific language can be used to create functions to transform and/or validate the YAML KRM input/output format, but we provide SDKs to simplify the function authoring process in Go.
  • kpt-backstage-plugins: We've created a proof-of-concept UI in the form of a Backstage UI plugin to demonstrate the WYSIWYG experience that's possible on top of the package orchestrator. More scenarios can be supported by implementing form-based editors for additional Kubernetes resource types.
  • governance: Governance of the kpt project.
  • .github: GitHub organisation level settings (this repo)