KCL 社区开源双周报 | 更多 Kubernetes 模型和 IDE 插件功能支持!
KCL 是一个开源的基于约束的记录及函数语言并通过成熟的编程语言技术和实践来改进对大量繁杂配置比如云原生 Kubernetes 配置场景的编写,致力于构建围绕配置的更好的模块化、扩展性和稳定性,更简单的逻辑编写,以及更简单的自动化和生态工具集成。
本栏目将会双周更新 KCL 语言社区最新动态,包括功能、官网更新和最新的社区动态等,帮助大家更好地了解 KCL 社区!
KCL 官网:https://kcl-lang.io
内容概述
感谢所有贡献者过去两周 (2023 09.07 - 10.11) 的杰出工作,以下是重点合并内容概述
🔧 语言及工具链更新
- KCL v0.6.0 于 9.15 发布,更新内容包括语言、工具链、社区集成,详细内容请查看 https://mp.weixin.qq.com/s/f6RCZqxS2iliRGIz0036yA
- KCL IDE 更新 - 支持对标准库和内置函数的悬停提示,支持对 KCL 代码错误的快速修复;发布适配 Intellij IDEA 2023.2 的插件版本
- KCL 包管理工具 KPM 更新 - kpm run 支持编译 KCL 文件,并集成了导入工具
- KCL 文档工具更新 - 支持将 docstring Examples 章节输出到文档
- KCL 语言更新 - 优化了一些错误信息的输出,部分的错误信息中增加了修复建议
📰 官网和用例更新
- KCL 官网新增 v0.6.0 文档版本
- KCL 模型新增容器、服务和 Pod Security Policy (PSP) 相关的配置编辑、校验 20 个 https://github.com/kcl-lang/krm-kcl/tree/main/examples
特别鸣谢
以下排名不分先后
- 感谢 @jakezhu9 对 KCL Import 工具 Terraform Schema 到 KCL Schema 转换的贡献 🙌 https://github.com/kcl-lang/kcl-go/pull/152
- 感谢 @jakezhu9 对 kpm 集成 Import 工具的贡献 🙌 https://github.com/kcl-lang/kpm/pull/194
- 感谢 @zwpaper 对 KCL 文档和 Tree Sitter Grammar 做出的贡献 🙌 https://github.com/kcl-lang/tree-sitter-kcl/pull/1 等
- 感谢 @mrgleeco, @ghpu, @steeling, @prahaladramji, @zwpaper 等在使用 KCL 及工具链过程中提出的宝贵反馈和讨论 🙌
精选更新
KCL IDE 插件更新
在最近的 0.6.0 发布中,KCL IDE 插件增加了标准库和 builtin 函数的悬停提示,新增支持对 KCL 代码错误的快速修复。此外,还增加了 language Server 侧的 e2e 测试及 konfig 仓库的集成测试,以保障 IDE 插件的稳定迭代。在尚未发布的版本中,还新增了 kcl-language-server version
子命令以输出版本信息。欢迎升级、使用 —— KCL 在各个 IDE 平台的插件安装方式请查看https://kcl-lang.io/docs/user_docs/getting-started/install/#2-install-kcl-ide-extension
IntelliJ 插件
- IntelliJ 插件现已适配 2023.2+ 版本,您可以在下面的链接中下载安装:
https://github.com/kcl-lang/intellij-kcl/releases
KCL 包管理工具
kpm run 支持编译 KCL 文件,并集成了导入工具,同时增加了 —quiet 来屏蔽输出日志。
KCL 语言更新
在尚未发布的版本中,KCL 的编译命令优化了一些错误信息的输出,部分的错误信息中增加了修复建议:
KCL 模型更新
近几周内,我们提供了更多针对容器、服务和 Pod Security Policy (PSP) 配置编辑及校验的使用案例。您可参照对应的示例引入以上配置和校验: https://github.com/kcl-lang/krm-kcl/tree/main/examples
下面我们以 Kubectl KCL 插件和 disallow-svc-lb 模型进行说明,disallow-svc-lb 的作用是对 Service 资源进行校验,不允许 Service 资源的类型设置为 LoadBalancer
,编写如下 YAML 文件 (manifests.yaml):
apiVersion: krm.kcl.dev/v1alpha1 kind: KCLRun metadata: name: disallow-svc-lb annotations: krm.kcl.dev/version: 0.0.1 krm.kcl.dev/type: validation documentation: >- A validation that prevents the creation of Service resources of type `LoadBalancer` spec: source: oci://ghcr.io/kcl-lang/disallow-svc-lb --- apiVersion: v1 kind: Service metadata: name: my-service spec: selector: app.kubernetes.io/name: MyApp ports: - name: http protocol: TCP port: 80 type: LoadBalancer # 错误地设置了 LoadBalancer
通过 Kubectl KCL 工具在客户端进行资源验证:
kubectl kcl apply -f manifests.yaml
我们会得到如下结果:
A validation that prevents the creation of Service resources of type `LoadBalancer`, for Service: my-service
社区动态
集成了 KCL 0.6 的 KusionStack 发布 0.9 版本,详细更新内容请查看:https://mp.weixin.qq.com/s/nZOHdmgcfOMRf0XUXfSJ-g
活动预告
KCD 杭州站 10.21 日线下活动
Kubernetes Community Days(KCD)杭州站将于 10.21 举行线下活动,活动详情及报名:https://mp.weixin.qq.com/s/rnNhmT4yoO66bGYNtFtG6g
KCL 开源双周会
近期 KCL 开源双周会将于 10.12 进行,欢迎社区小伙伴踊跃参与、交流:https://github.com/kcl-lang/community/discussions/8
点击链接入会,或添加至会议列表: https://meeting.tencent.com/dm/Hc6sNpqTWnPb
#腾讯会议:778-2381-6338
复制该信息,打开手机腾讯会议即可参与
其他资源
❤️ 感谢所有 KCL 用户和社区小伙伴在社区中提出的宝贵反馈与建议。预计 11 月底我们会正式发布 KCL v0.7 新版本,敬请期待!
更多其他资源请参考:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Bytebase 2.9.1 发布
Bytebase 是一个基于网络、零配置、无依赖的数据库 Schema 变更和版本控制管理工具,适用于开发人员和 DBA。 Bytebase 2.9.1 现已发布,更新内容如下: 新功能 支持将多个变更编排在一个变更列表中,并在一个工单里进行发布或导出。 在 SQL 编辑器里对所选中标签的数据库进行批量查询。 支持集成外部 secret manager 获取数据库密钥。 分支功能(Branching)支持 PostgreSQL 和 TiDB。 改进 允许为数据库配置多对「键 - 值」标签。 SQL 编辑器支持精确定位语法错误到行列号。 首页的变更 schema / 变更数据,支持批量选中同一个项目下的数据库。 更新说明:https://github.com/bytebase/bytebase/releases/tag/2.9.1
- 下一篇
更稳定高效、更广泛兼容,openKylin Wayland SIG 成功研发 wlcom 合成器
近日,openKylin 社区Wayland SIG成功研发了基于wayland协议的合成器Kylin wayland-compositor(简称wlcom),实现了操作系统图形栈底层核心子系统的进一步突破。 图形显示系统是人机交互的核心模块,目前广泛使用的X-Window(也常称为X或X11)显示系统,最初由麻省理工学院1984年研发,历经近40年的修补与扩展,代码量庞大,维护困难,设计也已略显“陈旧”。 X显示系统中窗管与合成器是两个独立组件,通信开销大,且存在窗口内容与合成器不同步的问题,容易造成图像撕裂;X客户端可篡改其他X客户端窗口属性及显示内容,安全性不强;合成管理器必须主动向X显示服务获取所有客户端图像数据进行图像合成,导致图像显示延迟风险增加。 针对X中的上述缺陷,开源社区于2008提出了替代方案—wayland显示服务器协议。该协议下,wayland合成器与wayland显示服务合为一个整体组件,通信开销低;客户端之间的输入和输出隔离,提高了客户端的安全性;客户端页面刷新时,合成器只处理数据有更新的区域,提高了显示合成效率。 鉴于wayland相对X的巨大优势,目前国...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6