Skip to content
This repository has been archived by the owner on Mar 1, 2023. It is now read-only.

SAP-archive/kubernetes-deployment-orchestrator

Repository files navigation

DEPRECATED Kubernetes Deployment Orchestrator

This repository is no longer maintained, please consider using helm instead.

Summary

This project brings the starlark scripting language to helm charts.

No Maintenance Intended build and test REUSE status

Features

  • 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

Download and Installation

Installing the kubernetes deployment orchestrator can be done in various ways

Requirements

Nothing is required

Architecture

Usage

How to start kubernetes deployment orchestrator from the command line is described here

Getting started

There is a small tutorial available.

Tutorial

You can find a small tutorial, which guides you through the basic features here

User Guide

Solutions for a set of problems are shown here

Repos

Kubernete deployment orchestrator can load charts from a various set of locations.

Kubernetes Controller

Kubernete deployment orchestrator can also run as controller inside a kubernets cluster

Reference

A reference for the complete kubernetes deployment orchestrator starlark API

Testing

Kubernete deployment orchestrator also supports unit testing

Comparison

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.

Difference to helm

  • 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 the init method of the corresponding chart. It's not possible to set values (from values.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 using kapp for deployment). It works more like kubectl apply
  • The .Release.Name value is build as follows: <chart.name>-<chart.suffix>. If no suffix is given, the hyphen is also ommited.

How to obtain support

Create an issue.