跳转到主要内容

Kubernetes的自定义化,但使用Python实现

项目描述

https://img.shields.io/pypi/v/kustomize.svg https://img.shields.io/pypi/pyversions/kustomize.svg tests Ruff https://img.shields.io/badge/skeleton-2024-informational

在Python中为Kubernetes的自定义化构建manifests!

概述

这个项目存在的目的是为了更容易创建用于在Kubernetes的“Kustomize”工具中使用的高动态manifests。同时,通过使用Python和“dataclasses”语言功能,它还有助于通过鼓励代码重用来减少样板代码。

Kustomize本身是一个非常强大的工具,可以通过使用“overlays”方法处理不同的应用程序和环境;但是,如果您需要通过环境变量定义manifests参数,例如,则它可能不够动态。因此,这个项目旨在填补这一空白。

为Kustomize提供补充

这个项目绝对不是Kustomize的替代品,而是一个补充。想法是从Python文件生成kustomization文件,然后使用kubectl apply -k或kustomize build将它们转换为Kubernetes的最终manifests(甚至将它们应用到集群中)。

换句话说,想法是将Python文件“编译”成Kustomize文件,然后仅使用Kustomize来完成其余的部署。

安装

该项目唯一的强制依赖项是PyYAML。这个库支持多种对象定义类型

  • dict

  • dataclasses

  • BaseModel(来自Pydantic)

  • attr(需要安装库)

  • kubernetes(需要安装库)

此包将以kustomize的形式提供;您可以使用pip进行安装,例如

$ pip install kustomize

如果尚未安装,这将也会安装PyYAML

或者,您可以使用任何其他能够从PyPI安装软件包的包管理器。

用法

总结如下

  1. 您编写一个源目录,包含表示Kustomize文件的Python文件(请参阅python-kustomize/tests/fixtures/中的目录);

  2. 然后您运行

    $ pykustomize <source-dir> <dest-dir>

    其中<dest-dir>将是放置Kustomize YAML文件的目录;

  3. 然后您可以将生成的Kustomize文件应用到您的集群中

    $ kubectl apply -f <dest-dir>

    就完成了!

项目详情


下载文件

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

源分布

kustomize-0.6.0.tar.gz (29.1 kB 查看哈希值

上传时间

构建分布

kustomize-0.6.0-py3-none-any.whl (6.9 kB 查看哈希值

上传时间 Python 3

支持者