跳转到主要内容

构建、上传和一般开发Juju charms的主要工具。

项目描述

charmcraft Tests Spread Weekly Spread

Charmcraft -- 简单初始化、打包和发布您的charms

Charmcraft是一个命令行工具,可以轻松初始化、打包和发布Kubernetes和机器charms。它是Charm SDK的官方组件,而Charm SDK是Juju宇宙的一部分。

Juju 了解如何使用Juju快速在任何云中部署、集成和管理charms。
操作就像 juju deploy foojuju integrate foo bar,... 在任何云中一样简单。
Charmhub 在Charmhub上试用我们的现有charms。
Charm 可以是一个集群(OpenStackKubernetes),一个数据平台(PostgreSQLMongoDB等),一个可观测性堆栈(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 远不止 initpack。例如,当您准备好将 charm 与全世界分享时,您可以使用 Charmcraft 在 Charmhub 上发布您的 charm。运行 charmcraft help 预览更多。

清理

请参阅Charm SDK | 自动设置开发环境 > 清理

下一步

了解更多

阅读我们的用户文档,其中还包括其他展示 Charmcraft 在行动中的指南

与我们聊天

阅读我们的行为准则,并

提交问题

留下您的印记

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分布

charmcraft-3.2.1.tar.gz (423.5 kB 查看哈希值)

上传时间 源代码

构建分布

charmcraft-3.2.1-py3-none-any.whl (223.2 kB 查看哈希值)

上传时间 Python 3

支持者