Skip to content

☂️ Umbrella chart is evil

Helmwave is only what you actually need.

Why is Umbrella chart evil?

  • You must keep extra chart.
  • You have new layer for conventional values.
  • Umbrella chart doesn't provide you environments separation.
  • When sub-chart is modified, you need to fix it twice.

Suppose that you need to describe the next architecture.

graph LR frontend --> api --> rabbitmq & minio_s3 consumer --> rabbitmq & minio_s3 & postgresql
If you don't see a graph, please reload the page.

Example of helmwave.yml for this architecture.

helmwave.yml
project: "Example: umbrella"
version: "0.36.0"

repositories:
  - name: bitnami
    url: https://charts.bitnami.com/bitnami

.options: &options
  namespace: stage
  wait: true
  max_history: 5

releases:
  - name: frontend
    <<: *options
    chart: charts/frontend
    depends_on:
      - api

  - name: api
    <<: *options
    chart: charts/api
    depends_on:
      - rabbitmq
      - minio

  - name: consumer
    <<: *options
    chart: charts/consumer
    depends_on:
      - rabbitmq
      - minio
      - postgresql

  - name: rabbitmq
    <<: *options
    chart: bitnami/rabbitmq

  - name: minio
    <<: *options
    chart: bitnami/minio

  - name: postgresql
    <<: *options
    chart: bitnami/postgresql