跳转到主要内容

Commodore提供对Kapitan清单和模板的具有见解的租户感知管理。Commodore使用Kapitan进行渲染模板和解析分层配置结构的繁重工作。

项目描述

项目Syn: Commodore

Docker PyPI release GitHub Release PyPI Release Maintainability Test Coverage

此存储库是项目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-devpython3-venv
  • jsonnet-bundler
    • 我们推荐我们的分叉projectsyn/jsonnet-bundler。它并行获取依赖项,这显著加快了Commodore的速度,并且具有使依赖项获取更确定性的修复。
  • libmagic(在macOS上使用brew install libmagic安装)

入门指南

  1. 推荐:创建一个新的虚拟环境

    python3 -m venv venv
    source venv/bin/activate
    
  2. 从PyPI安装commodore

    pip install syn-commodore
    
  3. projectsyn/jsonnet-bundler/releases下载jsonnet-bundler,并将其二进制文件放入您的$PATH中,命名为jb

  4. 为了使Commodore能够工作,您需要在某处运行一个Lieutenant实例(本地也行)。

  5. 设置一个.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>
    
  6. 运行commodore

    commodore
    

使用poetry运行Commodore

其他系统要求

  1. 安装要求

    根据上游文档安装poetry。

    创建Commodore环境

    poetry install
    

    projectsyn/jsonnet-bundler/releases下载jsonnet-bundler,并将其二进制文件放入您的$PATH中,命名为jb

  2. 按照上面所述完成设置

  3. 运行Commodore

    poetry run commodore
    
  4. 开始对Commodore进行修改

    poetry shell
    
    • 编写一行测试代码,使测试失败
    • 编写一行应用程序代码,使测试通过
    • 重复

    注意:Commodore使用Black代码格式化器,其格式由CI强制执行。

  5. 运行代码检查和测试

    使用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环境变量并挂载套接字到容器中来跳过启动代理。

  1. 在克隆的Commodore存储库内部构建Docker镜像
docker-compose build
  1. 运行构建的镜像
docker-compose run commodore catalog compile $CLUSTER_ID

文档

该组件的文档使用AsciidocAntora编写。它位于docs/文件夹中。使用Divio文档结构来组织其内容。

在项目的根目录中运行make docs-serve命令,然后浏览到http://localhost:2020以查看文档的当前状态预览。

编写文档后,请使用make docs-vale命令并纠正由该工具引发的任何警告。

贡献和许可

此库根据BSD-3-Clause许可。有关如何贡献的信息,请参阅CONTRIBUTING

项目详情


下载文件

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

源分布

syn_commodore-1.23.0.tar.gz (89.4 kB 查看散列)

上传时间

构建分布

syn_commodore-1.23.0-py3-none-any.whl (109.9 kB 查看散列)

上传时间 Python 3

支持者: