我们很高兴地向大家宣布,Kusion v0.12.1 版本已经正式发布啦!我们本次总共更新了超过 18 个新功能,8 处问题修复以及 5 篇文档更新,截止目前 Kusion 社区已共计有来自海内外 25 位贡献者 🎉
我们一如既往地对不断壮大的 KusionStack 社区的宝贵贡献表示感谢,在这篇文章中,您将了解一些我们精心挑选的令人兴奋的新功能。
在 v0.12.1 版本中,我们为 Kusion 添加了对 AWS S3 路径样式( path-style ) endpoint 的支持,并且提供了 kusion release unlock 命令用于解锁处于异常状态的 Release 文件。
在过去的版本中,kusion preview 命令展示 Kubernetes Secret 资源时会将 data 和 stringData 的明文数据直接透出,这将带来敏感信息泄漏的风险。在这个版本中,我们优化了敏感信息的预览效果,Kubernetes Secret 资源的 data 和 stringData 将不会明文展示( Secret 数据在更新时仍可以计算出发生了变化)。
在 v0.12.1 版本中,Kusion 提供了对存量 Terraform 云资源的导入能力,用户可以在 Workspace 的 Module 配置中填充 importedResources 字段,在其中声明 Spec 文件中 Kusion 资源 ID 到待导入云资源实例 ID 的映射,Kusion 在进行预览和生效时会先将指定的 Kusion 资源状态同步为待导入资源实例的状态。需要注意的是,对于导入的资源,Kusion 在进行 destroy 时会跳过对其的删除(因为可能存在多个应用共享该资源的情况)。此外,在这个版本中,Kusion 还支持并发操作独立的 Terraform 资源,从而可以提高运维执行效率。 一份示例配置可参考:
modules:
mysql:
path: oci://ghcr.io/kusionstack/mysql
version: 0.2.0
configs:
default:
cloud: alicloud
size: 20
instanceType: mysql.n2.serverless.1c
category: serverless_basic
privateRouting: false
subnetID: vsw-2zem*********
databaseName: "wordpress-mysql"
# Import an existing alicloud_db_instance.
importedResources:
"aliyun:alicloud:alicloud_db_instance:wordpress-mysql": "rm-2zem********"
network:
path: oci://ghcr.io/kusionstack/network
version: 0.2.0
configs:
default: {}
在 v0.12.1 版本中,用户可以在 Workspace 中声明 Kubernetes 集群证书和 Terraform Provider 账密等 Runtime 配置,用户可以在 Workspace 的 Context 字段中声明下面的配置项:
一份示例配置可参考:
modules:
mysql:
path: oci://ghcr.io/kusionstack/mysql
version: 0.2.0
configs:
default:
cloud: alicloud
size: 20
instanceType: mysql.n2.serverless.1c
category: serverless_basic
privateRouting: false
subnetID: vsw-2zem*********
databaseName: "wordpress-mysql"
network:
path: oci://ghcr.io/kusionstack/network
version: 0.2.0
configs:
default: {}
# The remote secrets manager for sensitive data storage.
secretStore:
provider:
aws:
region: us-east-1
# Runtime configs.
context:
# Kusion will retrieve the encrypted kubeconfig with the secretStore provider declared above.
KUBECONFIG_CONTENT: ref://secret-store/kubeconfig
ALICLOUD_ACCESS_KEY: LTAI5*********
ALICLOUD_SECRET_KEY: LNOmf*********
在 v0.12.1 版本中,Kusion 支持将 Spec 文件作为 kusion preview 和 kusion apply 的输入。用户可以在 Stack 目录中放置一份 Spec 文件,并通过 --spec-file 指定,Kusion 引擎可以直接消费该 Spec 文件,并将 apply 结果更新到 Stack 对应的 Release 文件中。
在此前的 v0.12.0 版本中,我们已将 Service 和 Job 这两个 Workload 的 Schema 定义从 Kusion 代码中拆分解耦出去;在这个版本中,我们已完全实现了 Workload 的 Module 化,Service 和 Job Module 的 Schema 定义和 Module Generator 的具体实现都已移至 catalog (https://github.com/KusionStack/catalog) 仓库中。用户还可以参考 Service 和 Job ,根据自己的需要实现定制的 Workload Module 。 一份示例配置可参考:
[package]
[dependencies]
kam = { git = "https://github.com/KusionStack/kam.git", tag = "0.2.0" }
service = { oci = "oci://ghcr.io/kusionstack/service", tag = "0.2.0" }
import kam.v1.app_configuration as ac
import service
import service.container as c
quickstart: ac.AppConfiguration {
workload: service.Service {
containers: {
quickstart: c.Container {
image: "kusionstack/kusion-quickstart:latest"
}
}
}
}
需要注意的是:v0.12.1 版本的 Kusion 与此前用户本地缓存的 0.1.0 版本的 Service 和 Job Module 不兼容,您需要使用 0.2.0 版本的 Service 和 Job Module ,或者可将本地缓存的 $HOME/.kcl/kpm/service_0.1.0 和 $HOME/.kcl/kpm/job_0.1.0 目录删除。
KusionStack 社区新增了两位 Contributor !感谢 @hoangndst 和 @vietanhtwdk 两位来自越南的同学对 Kusion 的贡献 🎉
在 v0.12.1 版本中,我们优化了存储后端管理、敏感信息展示和对 Terraform 资源的管理,同时支持了在 Workspace 中声明 Runtime 配置,以及使用 Spec 文件进行预览和生效,并且完成了对 Workload 的 Module 化拆分。除了上述提到的改进之外,本次发布还包含了大量小改进与变化,您可以在 GitHub Release Note 中找到更多完整的细节:https://github.com/KusionStack/kusion/releases
欢迎来玩~ 欢迎 star ⭐️
1
adohe 114 天前
👏👏👏👏👏👏
|