构建、上传和一般开发Juju charms的主要工具。
项目描述
Charmcraft -- 简单初始化、打包和发布您的charms
Charmcraft是一个命令行工具,可以轻松初始化、打包和发布Kubernetes和机器charms。它是Charm SDK的官方组件,而Charm SDK是Juju宇宙的一部分。
Juju | 了解如何使用Juju快速在任何云中部署、集成和管理charms。 操作就像 juju deploy foo ,juju integrate foo bar ,... 在任何云中一样简单。 |
|
Charmhub | 在Charmhub上试用我们的现有charms。 Charm 可以是一个集群(OpenStack,Kubernetes),一个数据平台(PostgreSQL,MongoDB等),一个可观测性堆栈(Canonical Observability Stack),一个 MLOps 解决方案(Kubeflow),等等。 |
|
:point_right | Charm SDK | 编写您自己的 charm! Juju是用Go编写的,但我们的SDK支持使用Python轻松地开发charm。 |
试试看
让我们使用 Charmcraft 初始化和打包一个 Kubernetes charm
设置
请参阅Charm SDK | 自动设置开发环境 > 使用Multipass设置Ubuntu
charm-dev
VM。
选择 MicroK8s 轨道。
初始化和打包您的 charm
在您的 Multipass VM shell 中,创建一个 charm 目录,并使用 Charmcraft 初始化您的 charm 文件结构
mkdir my-new-charm
cd my-new-charm
charmcraft init
这已创建了一个标准的 charm 目录结构
$ ls -R
.:
CONTRIBUTING.md README.md pyproject.toml src tox.ini
LICENSE charmcraft.yaml requirements.txt tests
./src:
charm.py
./tests:
integration unit
./tests/integration:
test_charm.py
./tests/unit:
test_charm.py
探索一下
请注意,charmcraft.yaml
文件显示,我们有一个名为 my-new-charm
的示例 charm,它基于 Ubuntu 22.04,并使用来自 kennethreitz/httpbin
的 OCI 镜像资源 httpbin
。
请注意,src/charm.py
文件包含用于编写 charm 的 Charm SDK Ops 库的代码脚手架。
进一步探索,开始编辑文件,或跳过并打包 charm
charmcraft pack
如果您没有走错路,或者只是保留了 charm 的原样,那么这应该可以工作,并生成一个名为 my-new-charm_ubuntu-22.04-amd64.charm
的文件(架构位可能因您的系统架构而异)。使用此名称和来自 metadata.yaml
的资源,使用 Juju 将您的示例 charm 部署到本地 MicroK8s 云。
juju deploy ./my-new-charm_ubuntu-22.04-amd64.charm --resource httpbin-image=kennethreitz/httpbin
恭喜,您刚刚使用 Charmcraft 初始化并打包了您的第一个 Kubernetes charm!
但 Charmcraft 远不止 init
和 pack
。例如,当您准备好将 charm 与全世界分享时,您可以使用 Charmcraft 在 Charmhub 上发布您的 charm。运行 charmcraft help
预览更多。
清理
下一步
了解更多
阅读我们的用户文档,其中还包括其他展示 Charmcraft 在行动中的指南
与我们聊天
阅读我们的行为准则,并
提交问题
- 在GitHub上报告 Charmcraft 的错误
- 在https://juju.is/docs上提出一般性文档问题,在GitHub | juju/docs
留下您的印记
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。