|
| 1 | +--- |
| 2 | +slug: 2024-08-29-kubecon2024 |
| 3 | +title: KCL at KubeCon China 2024 |
| 4 | +authors: |
| 5 | + name: KCL Team |
| 6 | + title: KCL Team |
| 7 | +tags: [KCL, Newsletter] |
| 8 | +image: /img/biweekly-newsletter.png |
| 9 | +--- |
| 10 | + |
| 11 | +# KCL at KubeCon China 2024 |
| 12 | + |
| 13 | +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. |
| 14 | + |
| 15 | +## Lighting Talk: KCL: Simplifying Kubernetes Manifests Management |
| 16 | + |
| 17 | +In this event, KCL introduced its efforts in simplifying Kubernetes manifests management, improving configuration management efficiency and stability through a Lighting Talk. |
| 18 | + |
| 19 | + |
| 20 | + |
| 21 | +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. |
| 22 | + |
| 23 | +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. |
| 24 | + |
| 25 | + |
| 26 | + |
| 27 | +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**. |
| 28 | + |
| 29 | + |
| 30 | + |
| 31 | +KCL also supports **declarative configuration merge/override operators** to merge and override different configuration blocks and fields. |
| 32 | + |
| 33 | + |
| 34 | + |
| 35 | +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. |
| 36 | + |
| 37 | + |
| 38 | + |
| 39 | + |
| 40 | +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. |
| 41 | + |
| 42 | + |
| 43 | + |
| 44 | + |
| 45 | +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. |
| 46 | + |
| 47 | + |
| 48 | + |
| 49 | +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. |
| 50 | + |
| 51 | +## KCL & Crossplane: A Very Nice Conversation |
| 52 | + |
| 53 | +KCL also had a very nice conversation with partners from the Crossplane community, who also brought us wonderful sharing. |
| 54 | + |
| 55 | +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. |
| 56 | + |
| 57 | + |
| 58 | + |
| 59 | +In this sharing, Crossplane mentioned the importance of exposing problems as early as possible in the software development lifecycle. |
| 60 | + |
| 61 | + |
| 62 | + |
| 63 | +Crossplane also mentioned how to use KCL to improve the reliability of configuration in the process of ensuring configuration reliability. |
| 64 | + |
| 65 | + |
| 66 | + |
| 67 | +KCL can be used to write corresponding test cases for configuration through KCL to expose problems in the configuration as early as possible. |
| 68 | + |
| 69 | + |
| 70 | + |
| 71 | +KCL and Kusionstack communities also had a nice conversation with the Crossplane community, and look forward to more cooperations in the future. |
| 72 | + |
| 73 | + |
| 74 | + |
| 75 | +## Other Resources |
| 76 | + |
| 77 | +For more information about KCL, please refer to: |
| 78 | + |
| 79 | +- [KCL HomePage](https://kcl-lang.io/) |
| 80 | +- [KCL GitHub Repo](https://github.com/kcl-lang/) |
| 81 | +- [KusionStack HomePage](https://kusionstack.io/) |
| 82 | +- [KusionStack GitHub Repo](https://github.com/KusionStack/) |
0 commit comments