项目作者: sapcc

项目描述 :
Helm charts for SAP Converged Cloud managing openstack on kubernetes
高级语言: Smarty
项目地址: git://github.com/sapcc/helm-charts.git
创建时间: 2016-11-01T17:54:30Z
项目社区:https://github.com/sapcc/helm-charts

开源协议:Apache License 2.0

下载


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.

  1. .
  2. └── system
  3. ├── dns
  4. └── charts
  5. ├── bind
  6. └── unbound
  7. ├── kube-system
  8. └── charts
  9. ├── ingress
  10. └── dashboard
  11. └── prometheus
  12. └── charts
  13. ├── kube-state-metrics
  14. ├── prometheus-collector
  15. └── 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.

  1. $ kubectl get pods --all-namespaces 0
  2. NAMESPACE NAME READY STATUS RESTARTS AGE
  3. dns bind1-2290429089-joidj 2/2 Running 0 5d
  4. dns bind2-3590597799-1vcv0 2/2 Running 0 5d
  5. dns unbound1-3007389427-shh2y 1/1 Running 0 9d
  6. dns unbound1-3577488147-ld1rd 1/1 Running 0 5d
  7. kube-system ingress-controller-d3snv 1/1 Running 4 13d
  8. 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.

  1. helm upgrade dns ./system/dns --namespace dns --values ../secrets/staging/system/dns.yaml --install