KCL 是一个 CNCF 基金会托管的基于约束的记录及函数语言,期望通过成熟的编程语言技术和实践来改进对大量繁杂配置比如云原生 Kubernetes 配置场景的编写,致力于构建围绕配置的更好的模块化、扩展性和稳定性,更简单的逻辑编写,以及更简单的自动化和生态工具集成。
本栏目将会双周更新 KCL 语言社区最新动态,包括功能、官网更新和最新的社区动态等,帮助大家更好地了解 KCL 社区!
KCL 官网:https://kcl-lang.io
|特别鸣谢|
感谢过去两周所有的社区参与者,以下排名不分先后
感谢 @officialasishkumar 对 KCL 包管理工具添加 Git 仓库子目录依赖能力的贡献 🙌
感谢 @Gmin2 对 KCL 包管理工具模块存放路径特性的贡献 🙌
感谢 @liangyuanpeng 对 karpenter, gateway-api 等模块以及 KCL OpenAPI 工具的贡献 🙌
感谢 @NishantBansal2003, @varshith257 对 KCL 包管理工具三方依赖 checksum 检查的调研和贡献。🙌
感谢 @Harsh4902, @Gmin2, @shishir-11, @RehanChalana 对 Intellij IDE KCL LSP 插件的调研和贡献。🙌
感谢 @Vishalk91-4 对 KCL tree-sitter 语法的持续贡献。🙌
感谢 @dennybaa 对 crossplane, crossplane-vault-provider 等模块的贡献 🙌
感谢 @Manoramsharma 对 KCL 包管理工具依赖别名特性,忽略 TLS 检查和外部 Git 依赖功能的贡献。🙌
感谢 @DavidChevallier 对 cilium, external-secrets 等模块的贡献 🙌
感谢 @suin 对 outdent 模块的贡献 🙌
感谢 @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 和 @novohool 等在近两周使用 KCL 过程中提供的宝贵建议与反馈 🙌
|内容概述|
🏄 语言更新
优化函数参数调用/返回值 Dict 转 Schema 类型推导和检查,可以省略 Schema 名称简化配置书写
优化配置合并运算符的类型检查,可以在编译时发现更多类型错误
对类型为单子面值常量 Schema 属性支持省略默认值
优化前
schema Deployment:
apiVersion: "apps/v1" = "apps/v1"
优化后
schema Deployment:
apiVersion: "apps/v1" # 类型值与默认值相同,可以省略默认值
📦️ 模块更新
k8s
更新至 1.31gateway-api
更新至 0.2.0karpenter
更新至 0.2.0crossplane
更新至 1.16.0cilium
更新至 0.3.0external-secrets
更新至 0.1.2新增模型列表
crossplane-provider-vault
1.0.0outdent
0.1.0kcl_lib
0.1.0
📬️ 工具更新
KCL Import 工具支持导入整个 Go Package 并将其中所有的 Go 结构体定义转换为 KCL Schema 定义
KCL Import 工具新增对包含 AllOf 验证字段的 JSON Schema 格式导入为 KCL Schema 的支持
KCL Format 工具支持保留用户在多个代码片段之间的空行,不会全部删除
修复 KCL Format 工具对 Schema 索引签名注释错误的格式化位置
修复 KCL Import 导入 Kubernetes CRD 时设置 -o 参数非预期的报错
修复 KCL Import 导入空 Go 结构体输出非预期的 KCL Schema 错误
💻 IDE 更新
支持使用
kcl.work
配置文件划分 IDE 工作空间修复 Schema 示例化参数无法显示语义信息的问题
⛵️ API 更新
Kotlin API 完整测试和用例更新,详见 https://www.kcl-lang.io/docs/reference/xlang-api/kotlin-api
Lua API 产出初步版本,欢迎贡献,详见 https://github.com/kcl-lang/lib/tree/main/lua
🔥 社区集成更新
Flux KCL Controller 发布 v0.4.0 版本,对齐绝大部份 Flux Kustomize Controller 功能,满足直接使用 KCL 代替 Kustomize 作 Flux GitOps 的需求
KRM KCL 规范发布 v0.10.0 beta 版本,新增私有 Git 仓库拉取和忽略 TLS 检查等功能
KCL Nix Package 发布 v0.9.8 版本
Crossplane KCL Function 发布 v0.9.4 版本,具体内容详见 https://github.com/crossplane-contrib/function-kcl
KCL Bazel Rules 更新至 v0.10.0 beta 版本,具体内容详见 https://github.com/kcl-lang/rules_kcl