8000 Support for multiple charts in single release (similar to alias in helm) · Issue #876 · roboll/helmfile · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Support for multiple charts in single release (similar to alias in helm) #876
Closed
@imdhruva

Description

@imdhruva

Currently we map single release in helmfile by using helm sub charts i.e.

subchart1: worker-type1
subchart2: worker-type2
chart1:
  subchart1-alias1:
    overide-variables1
  subchart2-alias1:
    overide-variables1
  subchart2-alias2:
    overide-variables2

where a chart refers to a subchart multiple times by using aliases in requirements.yaml. We then manage the deployment of chart1 by mapping it to a release in helmfile.

While this pattern works it is very difficult to iterate over this pattern. Figure this scenario:

  • we want to update the subchart1 - for every end-to-end test on this we will need to update the chart1 to point to the new version of subchart1 and then update helmfile to point to new versions of chart1.
  • we want the release to map directly to an application - for every application we want to have a single release so we can easily map and graph the unique names. while we can still work-around this by using a unique label across a single helmfile declaring multiple releases - but that would not be as consistent.

An ideal solution would be to flatten the structure and have no subchart and let helmfile manage the alias declaration. Effectively in helmfile release we call something like:

helmDefaults:
  tillerNamespace: {{ .Environment.Values.tiller }}
  kubeContext: {{ .Environment.Values.kubectx }}

environments:
  env1:
    values:
    - ../../envs/env1.yaml
  env2:
    values:
    - ../../envs/env2.yaml

releases:
  - name: app 
    namespace: {{ .Environment.Values.namespace }}
    charts:
    - alias: app-worker1
       chart: repo-name/app-worker1
       version: 0.1.4
    - alias: app-worker2
       chart: repo-name/app-worker1
       version: 0.1.4
    secrets:
      - secrets/app.{{ .Environment.Values.env }}.yaml
    values:
      - values/app.yaml.gotmpl

--app.yaml.gotmpl

app-worker1:
  override-values:
    aa: 112asas
    bb: 121212
app-worker2:
  override-values:
  cc: 12412
  dd: 124sdf

It would be very convenient to have a feature similar to helm alias in helmfile so we can call multiple instances of a single chart.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0