This repository is no longer maintained, please consider using helm instead.
This project brings the starlark scripting language to helm charts.
- Ease orchestration of deployments
- Strict separation of templates and logic
- Define APIs for helm charts
- Control deployment by overriding methods
- Compatible with helm
- Use starlark methods in templates (replacement for
_helpers.tpl
) - Interact with kubernetes during installation
- Manage user credentials
- Manage certificates
- Act as glue code between helm charts
- Rendering of ytt templates
- Also available as kubernetes controller
- Easy embeddable and extendable
- Integration of kapp
Installing the kubernetes deployment orchestrator can be done in various ways
Nothing is required
How to start kubernetes deployment orchestrator from the command line is described here
There is a small tutorial available.
You can find a small tutorial, which guides you through the basic features here
Solutions for a set of problems are shown here
Kubernete deployment orchestrator can load charts from a various set of locations.
Kubernete deployment orchestrator can also run as controller inside a kubernets cluster
A reference for the complete kubernetes deployment orchestrator starlark API
Kubernete deployment orchestrator also supports unit testing
kubernetes deployment orchestrator | helm | ytt/kapp | kustomize | |
---|---|---|---|---|
Scripting | + | (3.1) | + | - |
API definition | + | - | (+) | - |
Reuse of existing charts | + | + | (+) | ? |
Only simple logic in templates | + | + | - | + |
Interaction with k8s | + | + | - | - |
Repository | + | + | - | - |
Mature technology | - | + | + | + |
Manage user credentials | + | - | - | - |
Manage user certificate | + | - | - | - |
Controller based installation | + | - | + | - |
Remove outdated objects | +(1) | + | + | - |
Migrate existing objects | +(1) | - | - | - |
(1): Must be implemented inside apply
method or by using kapp as installer.
- Subcharts are not loaded automatically. They must be loaded using the
chart
command - Global variables are not supported.
- The
--set
command line parameters are passed to theinit
method of the corresponding chart. It's not possible to set values (fromvalues.yaml
) directly. If you would like to set a lot of values, it's more convenient to write a separate kubernetes deployment orchestrator chart. kdo
doesn't track installed charts on a kubernetes cluster (except you are usingkapp
for deployment). It works more likekubectl apply
- The
.Release.Name
value is build as follows:<chart.name>-<chart.suffix>
. If no suffix is given, the hyphen is also ommited.
Create an issue.