Commodore提供对Kapitan清单和模板的具有见解的租户感知管理。Commodore使用Kapitan进行渲染模板和解析分层配置结构的繁重工作。
项目描述
项目Syn: Commodore
此存储库是项目Syn的一部分。有关项目Syn和此组件的文档,请参阅https://syn.tools。
有关Commodore每个发布版本的变更日志,请参阅GitHub发布。
有关Commodore的预构建Docker镜像,请参阅DockerHub。
Commodore已在PyPI发布
概述
Commodore提供对Kapitan清单和模板的具有见解的租户感知管理。Commodore使用Kapitan进行渲染模板和解析分层配置结构的繁重工作。
Commodore引入了组件的概念,它是一组Kapitan模板和相关Kapitan类,这些类描述了如何渲染模板。Commodore在运行Kapitan之前获取给定配置所需的所有组件,并设置符号链接,以便Kapitan可以找到组件类。
Commodore还支持对Kapitan输出的附加处理,例如,使用helm template
渲染的Helm图表所需命名空间修补。
系统要求
- Python 3.8 - 3.11,并更新
python3-dev
和python3-venv
- jsonnet-bundler
- 我们推荐我们的分叉projectsyn/jsonnet-bundler。它并行获取依赖项,这显著加快了Commodore的速度,并且具有使依赖项获取更确定性的修复。
libmagic
(在macOS上使用brew install libmagic
安装)
入门指南
-
推荐:创建一个新的虚拟环境
python3 -m venv venv source venv/bin/activate
-
从PyPI安装commodore
pip install syn-commodore
-
从projectsyn/jsonnet-bundler/releases下载jsonnet-bundler,并将其二进制文件放入您的
$PATH
中,命名为jb
。 -
为了使Commodore能够工作,您需要在某处运行一个Lieutenant实例(本地也行)。
-
设置一个
.env
文件以配置Commodore(不要使用引号)# URL of Lieutenant API COMMODORE_API_URL=https://lieutenant-api.example.com/ # Lieutenant API token COMMODORE_API_TOKEN=<my-token> # Your local user ID to be used in the container (optional, defaults to root) USER_ID=<your-user-id> # Your username to be used in the commits (optional, defaults to your local git config) COMMODORE_USERNAME=<your name> # Your user email to be used in the commits (optional, defaults to your local git config) COMMODORE_USERMAIL=<your email>
-
运行commodore
commodore
使用poetry运行Commodore
其他系统要求
- Poetry 1.3.0+
- Docker
-
安装要求
根据上游文档安装poetry。
创建Commodore环境
poetry install
从projectsyn/jsonnet-bundler/releases下载jsonnet-bundler,并将其二进制文件放入您的
$PATH
中,命名为jb
。 -
按照上面所述完成设置
-
运行Commodore
poetry run commodore
-
开始对Commodore进行修改
poetry shell
- 编写一行测试代码,使测试失败
- 编写一行应用程序代码,使测试通过
- 重复
注意:Commodore使用Black代码格式化器,其格式由CI强制执行。
-
运行代码检查和测试
使用autopep8自动格式化
poetry run autopep
列出所有Tox目标
poetry run tox -lv
运行所有代码检查和测试
poetry run tox
仅运行特定目标
poetry run tox -e py38
在Docker中运行Commodore
重要:检出此项目后,在运行任何Docker命令之前,在其内部运行mkdir -p catalog inventory dependencies
。这将确保在Docker容器的上下文中,当前用户可以写入这些文件夹。
docker-compose设置可以启用在容器中运行Commodore。环境变量从本地的.env
文件中读取。默认情况下,您的~/.ssh/
目录被挂载到容器中,并启动了一个ssh-agent
。您可以设置SSH_AUTH_SOCK
环境变量并挂载套接字到容器中来跳过启动代理。
- 在克隆的Commodore存储库内部构建Docker镜像
docker-compose build
- 运行构建的镜像
docker-compose run commodore catalog compile $CLUSTER_ID
文档
该组件的文档使用Asciidoc和Antora编写。它位于docs/文件夹中。使用Divio文档结构来组织其内容。
在项目的根目录中运行make docs-serve
命令,然后浏览到http://localhost:2020以查看文档的当前状态预览。
编写文档后,请使用make docs-vale
命令并纠正由该工具引发的任何警告。
贡献和许可
此库根据BSD-3-Clause许可。有关如何贡献的信息,请参阅CONTRIBUTING。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
构建分布
syn_commodore-1.23.0.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 19a6eef22a762b2b50c70a36dd21a57f56b21b38107b295dec27c86bd86cc734 |
|
MD5 | 0a5df11032426e15b958972a96e6eff4 |
|
BLAKE2b-256 | b07d43e57b1f0d03efea07656d86f53aa01a5503bcd1129859fb5863438d20a2 |
syn_commodore-1.23.0-py3-none-any.whl 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 95bf1ae98e1d2f929abbffaabd3639f6754e4bab56749c0ea01f92ef0c6cfab9 |
|
MD5 | 944d1827eb26af66c9d16dff6db36f07 |
|
BLAKE2b-256 | b72eabeb3fa67b7ea377734e6117c4cb76f367b93cbaf4c5bd21f45ab09ac911 |