SAP Converged Charts This repository contains Helm charts required by SAP Converged Cloud. Structure Charts are grouped logically into: common: Reusable charts global: Singletons that only exist once in a global context openstack: Openstack and dependent or related services prometheus-exporters: A curated collection of Prometheus exporters prometheus-rules: Prometheus alert- & aggregation rules system: Infrastructure required by the control plane This structure is just a logical grouping, it does not represent deployable units or imply other semantics. Charts On the second level we expect a chart. This can be a single chart or a meta-chart that describe a dependent set of compononents. Meta-charts contain sub-charts or reference charts from other repositories using Helm dependencies. . └── system ├── dns │ └── charts │ ├── bind │ └── unbound ├── kube-system │ └── charts │ ├── ingress │ └── dashboard └── prometheus └── charts ├── kube-state-metrics ├── prometheus-collector └── prometheus-frontend We imply that the highest chart will be deployed as a Helm release. In this example, releasing dns will install/update bind and unbound. In order to be able to relate charts to running Kubernetes pods, we also imply that a chart will be deployed in a namespace with the same name. $ kubectl get pods --all-namespaces 0 ↵ NAMESPACE NAME READY STATUS RESTARTS AGE dns bind1-2290429089-joidj 2/2 Running 0 5d dns bind2-3590597799-1vcv0 2/2 Running 0 5d dns unbound1-3007389427-shh2y 1/1 Running 0 9d dns unbound1-3577488147-ld1rd 1/1 Running 0 5d kube-system ingress-controller-d3snv 1/1 Running 4 13d kube-system ingress-controller-j9bpf 1/1 Running 2 18d This has the benefits that: Values required for releasing a chart can be found at the same place in cc/regions Cleanup of a failed release, is as easy as deleting the namespace. For testing a chart can deployed in a seperate testing namespace. Pods and other Kubernetes primitives are reflected at a known place in Kubernetes Test a Chart Opening a PR to this repository triggers the Helm chart tests which are described in detail here. Install/Update of a Chart/Release Per convention we use the name of the meta-chart as namespace and name of the release. Values are pulled in from a secret repository. helm upgrade dns ./system/dns --namespace dns --values ../secrets/staging/system/dns.yaml --install