从 kpm v0.2.0 版本开始,kpm 支持通过 OCI Registries 保存和分享 KCL 包。
kpm 支持使用 OCI Registry 保存和分享 KCL 包,kpm 默认使用 ghcr.io 保存 KCL 包。
kpm 默认 registry - https://github.com/orgs/KusionStack/packages
可以在 kpm 的配置文件中调整 Registry 的地址和仓库名。kpm 的配置文件位于 $KCL_PKG_PATH/.kpm/config.json
, 如果没有设置环境变量 KCL_PKG_PATH
的值,则默认保存在 $HOME/.kcl/kpm/.kpm/config.json
。
配置文件的默认内容如下:
{
"DefaultOciRegistry":"ghcr.io",
"DefaultOciRepo":"kcl-lang"
}
在接下来的内容中,我们将使用 localhost:5001
作为示例 OCI Registry,并且为这个 OCI Registry 添加了一个账户 test
,密码是 1234
。
你可以通过以下四种方式使用 kpm login
。
$ kpm login -u <account_name> -p <password> <oci_registry>
Login succeeded
$ kpm login -u <account_name> <oci_registry>
Password:
Login succeeded
$ kpm login <oci_registry>
Username: <account_name>
Password:
Login succeeded
你可以使用 kpm logout
退出一个 OCI Registry。
kpm logout <registry>
你可以在 kcl 包的根目录下使用 kpm push
命令将 kcl 包上传到一个 OCI Registry。
# 创建一个新的 kcl 包。
$ kpm init <package_name>
# 进入 kcl 包的根目录
$ cd <package_name>
# 将 kcl 包上传到一个 oci registry
$ kpm push
你也可以在 kpm push
命令中指定 OCI registry 的 url。
# 创建一个新的 kcl 包。
$ kpm init <package_name>
# 进入 kcl 包的根目录
$ cd <package_name>
# 将 kcl 包上传到一个 oci registry
$ kpm push <oci_url>
你可以使用 kpm pull
从默认的 OCI registry 中下载一个 kcl 包。kpm 会自动从 kpm.json
中的 OCI registry 中寻找 kcl 包。
kpm pull <package_name>:<package_version>
或者,你也可以从指定的 OCI registry url 中下载一个 kcl 包。
kpm pull --tag <kcl_package_version> <oci_url>
kpm 可以直接通过 OCI 的 url 编译 kcl 包。
kpm run --tag <kcl_package_version> <oci_url>
另外,你也可以通过 kpm run
直接使用本地的 kcl 包。
kpm run <oci_ref>