Skip to main content

17 posts tagged with "Newsletter"

View All Tags

· 3 min read

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

pptcover

In this event, KCL introduced its efforts in simplifying Kubernetes manifests management, improving configuration management efficiency and stability through a Lighting Talk.

kcllightingtalk

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.

ppt1

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.

ppt2

KCL also supports declarative configuration merge/override operators to merge and override different configuration blocks and fields.

ppt3

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.

ppt4 ppt5

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.

ppt6 ppt7

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.

ppt8

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.

crossplaneppt1

In this sharing, Crossplane mentioned the importance of exposing problems as early as possible in the software development lifecycle.

crossplaneppt2

Crossplane also mentioned how to use KCL to improve the reliability of configuration in the process of ensuring configuration reliability.

crossplaneppt3

KCL can be used to write corresponding test cases for configuration through KCL to expose problems in the configuration as early as possible.

crossplaneppt4

KCL and Kusionstack communities also had a nice conversation with the Crossplane community, and look forward to more cooperations in the future.

photo

Other Resources

For more information about KCL, please refer to:

· 4 min read

KCL is an open-source configuration and policy language hosted by the Cloud Native Computing Foundation (CNCF) as a Sandbox Project. Built on a foundation of constraints and functional programming principles, KCL enhances the process of writing complex configurations, particularly in cloud-native environments. By leveraging advanced programming language techniques, KCL promotes improved modularity, scalability, and stability in configuration management. It simplifies logic writing, offers easy-to-use automation APIs, and seamlessly integrates with existing systems.

This section will update the KCL language community's latest news, including features, website updates, and the latest community news, helping everyone better understand the KCL community!

KCL Website: https://kcl-lang.io

Special Thanks

  • Thanks to @officialasishkumar for contributing the ability to add Git repository subdirectory dependencies to the KCL package management tool. 🙌
  • Thanks to @Gmin2 for contributing to the module storage path feature in the KCL package management tool. 🙌
  • Thanks to @liangyuanpeng for contributions to modules like karpenter, gateway-api, and the KCL OpenAPI tool. 🙌
  • Thanks to @NishantBansal2003 and @varshith257 for their research and contributions on third-party dependency checksum checks in the KCL package management tool. 🙌
  • Thanks to @Harsh4902, @Gmin2, @shishir-11, @RehanChalana for their research and contributions to the Intellij IDE KCL LSP plugin. 🙌
  • Thanks to @Vishalk91-4 for their ongoing contributions to the KCL tree-sitter grammar. 🙌
  • Thanks to @dennybaa for contributions to modules like crossplane and crossplane-vault-provider. 🙌
  • Thanks to @Manoramsharma for contributions to dependency alias features, ignoring TLS checks, and external Git dependencies in the KCL package management tool. 🙌
  • Thanks to @DavidChevallier for contributions to modules like cilium and external-secrets. 🙌
  • Thanks to @suin for contributions to the outdent module. 🙌
  • Thanks to @Lukáš Kubín, @ChrisK, @Sergey Ryabin, @Lan Liang, @Endre Karlson, @suin, @Zack Zhang, @v3xro, @soubinan, @juanzolotoochin, @mnacharov, @dennybaa, @ron1, @DavidChevallier, @wmcnamee-coreweave, @vfarcic, @phisco, @juanzolotoochin, @juanique, @zackzhangverkada, @warmuuh and @novohool for their valuable suggestions and feedback during their use of KCL over the past two weeks. 🙌

Overview

🏄 Language Updates

  • Optimized the type inference and checks for function parameter calls/return value Dict to Schema, allowing the Schema name to be omitted to simplify configuration writing.
  • Enhanced type checks for configuration merging operators, enabling the detection of more type errors at compile time.
  • Supported omitting default values for Schema properties with singleton literal constant types.

Before optimization:

schema Deployment:
apiVersion: "apps/v1" = "apps/v1"

After optimization:

schema Deployment:
apiVersion: "apps/v1" # The type value is the same as the default value, so the default value can be omitted.

📦️ Module Updates

  • k8s updated to 1.31
  • gateway-api updated to 0.2.0
  • karpenter updated to 0.2.0
  • crossplane updated to 1.16.0
  • cilium updated to 0.3.0
  • external-secrets updated to 0.1.2
  • New modules
    • crossplane-provider-vault 1.0.0
    • outdent 0.1.0
    • kcl_lib 0.1.0

📬️ Tool Updates

  • The kcl import tool now supports importing entire Go Packages and converting all Go struct definitions into KCL Schema definitions.
  • The kcl import tool has added support for importing JSON Schemas containing AllOf validation fields as KCL Schema.
  • The kcl fmt tool now preserves the user's blank lines between multiple code snippets, rather than deleting them all.
  • Fixed the incorrect formatting position of the Schema index signature comments in the kcl fmt tool.
  • Fixed unexpected errors when setting the -o parameter during the kcl import tool for Kubernetes CRDs.
  • Fixed unexpected KCL Schema errors when importing empty Go structs with the kcl import tool.

💻 IDE Updates

  • Supports workspace segmentation in the IDE using a kcl.work configuration file.
  • Fixed the issue where schema example parameters could not display semantic information.

⛵️ API Updates

🔥 Integration Updates

  • Flux KCL Controller released v0.4.0, aligning most Flux Kustomize Controller features to meet the demand for direct use of KCL instead of Kustomize for Flux GitOps.
  • KRM KCL specification released v0.10.0 beta, adding features for pulling from private Git repositories and ignoring TLS checks.
  • KCL Nix Package released v0.9.8.
  • Crossplane KCL Function released v0.9.4; see details at https://github.com/crossplane-contrib/function-kcl.
  • KCL Bazel Rules updated to KCL v0.10.0 beta; see details at https://github.com/kcl-lang/rules_kcl.

Resources

❤️ See here to join us!

For more resources, please refer to the KCL Website.