At KubeCon China 2024, held from August 21st to 23rd, a 3-day event in Hong Kong, KCL participated in the event and shared its efforts in simplifying Kubernetes manifests management.
Lighting Talk: KCL: Simplifying Kubernetes Manifests Management
The Lighting Talk PPT: Download PDF
In this event, KCL introduced its efforts in simplifying Kubernetes manifests management, improving configuration management efficiency and stability through a Lighting Talk.
KCL is a domain-specific language (DSL) in IaC, mainly solving common issues such as configuration scale explosion, high cognitive load, lack of effective dynamic configuration management, and configuration reliability assurance, and can easily integrate with the community ecosystem.
For the effective reduction of configuration scale, KCL provides a Schema to abstract common configuration structures, and supports the distribution and reuse of configuration structures through package management mechanisms. Moreover, KCL can merge the content of the same configuration in multiple files to shield developers from unnecessary unfamiliar concepts and reduce cognitive load. As a language project, the rich toolchain and powerful IDE also greatly improve the development experience of developers.
KCL supports dynamic configuration management and provides two ways of declarative and imperative configuration management. Developers can write imperative code generation configurations in the code through if/for/lambda expressions.
KCL also supports declarative configuration merge/override operators to merge and override different configuration blocks and fields.
KCL improves the reliability of configuration through type system, testing, and rule verification. KCL, as a type-safe configuration language, can expose a large number of type errors in advance at the compilation stage, and developers can get error in the IDE.
At the same time, the most simple and effective method of software reliability assurance, testing, is also supported in KCL, and you can write unit tests for configuration content through lambda.
At last, writing validation rules to check the configuration content has always been a common topic in IaC, and KCL supports writing corresponding configuration verification rules through Assert/Check/Rule features to verify the configuration content.
KCL provides SDKs for 12 languages, supports integration with most projects, and supports extension of KCL language capabilities through plugin mechanisms. KCL also provides KCL-Operator to support validation, update, and generation of resources in Kubernetes clusters through KCL language. With the above capabilities, KCL can easily integrate with community tools such as Crossplane and ArgoCD, etc.
KCL & Crossplane: A Very Nice Conversation
KCL also had a very nice conversation with partners from the Crossplane community, who also brought us wonderful sharing.
Crossplane is an open-source project designed to extend Kubernetes with the capability to manage not only containerized applications but also cloud resources across multiple providers. It acts as a universal control plane, enabling users to provision and manage infrastructure using Kubernetes-native APIs.
In this sharing, Crossplane mentioned the importance of exposing problems as early as possible in the software development lifecycle.
Crossplane also mentioned how to use KCL to improve the reliability of configuration in the process of ensuring configuration reliability.
KCL can be used to write corresponding test cases for configuration through KCL to expose problems in the configuration as early as possible.
KCL and Kusionstack communities also had a nice conversation with the Crossplane community, and look forward to more cooperations in the future.
Other Resources
For more information about KCL, please refer to: