Kustomize for Kubernetes, but in Python
Project description
Build your Kubernetes manifests for Kustomize in Python!
Repository: https://github.com/coherent-oss/python-kustomize
Documentation: https://python-kustomize.readthedocs.io/en/latest/
Overview
The reason for this project to exist is to make it easier to create dynamic manifests to be exported for usage in Kubernetes’ “Kustomize” tool. And, by using Python and supporting the “dataclasses” language feature, it also helps reducing boilerplate by encouraging code reuse.
Kustomize, by itself, is already a very powerful tool, and it’s possible to deal with different apps and environments by using the “overlays” approach; but it’s not dynamic enough if you need to define manifests parameters through environment variables, for example. So this project aims to cover that gap.
A complement for Kustomize
This project is by no means a replacement for Kustomize, but rather a complement. The idea is to generate kustomization files from Python files, and then use kubectl apply -k or kustomize build to transform them into final manifests for Kubernetes (even applying them to the cluster).
In other words, the idea is to “compile” Python files into Kustomize files, then just use Kustomize for the rest of the deployment.
Installing
The only mandatory dependency to this project is PyYAML. This library supports a number of object definition types:
dict
dataclasses
BaseModel (from Pydantic)
attr (needs the library installed)
kubernetes (needs the library installed)
This package will be available as kustomize; you may install it with pip, for example:
$ pip install kustomize
This will also install PyYAML if it’s not already installed.
Alternatively, you can use any other package manager capable of installing packages from PyPI.
Usage
The summary is:
You write a source directory with Python files representing the Kustomize files (see directories at python-kustomize/tests/fixtures/);
You run:
$ pykustomize <source-dir> <dest-dir>
where <dest-dir> will be the directory where Kustomize YAML files will be put at;
Then you can apply the generated Kustomize files into your cluster:
$ kubectl apply -f <dest-dir>
and done!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file kustomize-0.6.0.tar.gz
.
File metadata
- Download URL: kustomize-0.6.0.tar.gz
- Upload date:
- Size: 29.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 75a7587a6428e58e73aa52691ca4fb0fee355a9435f39dcb6c6f8600f7fc4ea3 |
|
MD5 | 4ccde3df3ab0b98767ca459f9848b8b3 |
|
BLAKE2b-256 | 56cff07cb2ca4a685d650d84399c23b9ba30eb7a841398e993ce654a9d65c10b |
Provenance
File details
Details for the file kustomize-0.6.0-py3-none-any.whl
.
File metadata
- Download URL: kustomize-0.6.0-py3-none-any.whl
- Upload date:
- Size: 6.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d63da5e4461d369d16dccb1e4754f2aefe17d506ec0a19aac6ead0924638ced9 |
|
MD5 | f7c367a43101308ca3eaeaff81f02222 |
|
BLAKE2b-256 | 7753a50ddd71075b9fb3803772fbe9b72db3d734a4e7f8056e968f4c150f0ab3 |