Add documentation about adhoc chart dependencies
This commit is contained in:
parent
81b04fcb8b
commit
efad26641d
|
|
@ -3,6 +3,7 @@
|
||||||
- [Import Configuration Parameters into Helmfile](#import-configuration-parameters-into-helmfile)
|
- [Import Configuration Parameters into Helmfile](#import-configuration-parameters-into-helmfile)
|
||||||
- [Deploy Kustomization with Helmfile](#deploy-kustomizations-with-helmfile)
|
- [Deploy Kustomization with Helmfile](#deploy-kustomizations-with-helmfile)
|
||||||
- [Adhoc Kustomization of Helm Charts](#adhoc-kustomization-of-helm-charts)
|
- [Adhoc Kustomization of Helm Charts](#adhoc-kustomization-of-helm-charts)
|
||||||
|
- [Adding dependencies without forking the chart](#adding-dependencies-without-forking-the-chart)
|
||||||
|
|
||||||
### Import Configuration Parameters into Helmfile
|
### Import Configuration Parameters into Helmfile
|
||||||
|
|
||||||
|
|
@ -209,3 +210,90 @@ transformers:
|
||||||
```
|
```
|
||||||
|
|
||||||
Please see https://github.com/kubernetes-sigs/kustomize/blob/master/examples/configureBuiltinPlugin.md#configuring-the-builtin-plugins-instead for more information on how to declare transformers.
|
Please see https://github.com/kubernetes-sigs/kustomize/blob/master/examples/configureBuiltinPlugin.md#configuring-the-builtin-plugins-instead for more information on how to declare transformers.
|
||||||
|
|
||||||
|
### Adding dependencies without forking the chart
|
||||||
|
|
||||||
|
With Helmfile, you can add chart dependencies to a Helm chart without forking it.
|
||||||
|
|
||||||
|
An example `helmfile.yaml` that adds a `stable/envoy` dependency to the release `foo` looks like the below:
|
||||||
|
|
||||||
|
```
|
||||||
|
repositories:
|
||||||
|
- name: stable
|
||||||
|
url: https://charts.helm.sh/stable
|
||||||
|
|
||||||
|
releases:
|
||||||
|
- name: foo
|
||||||
|
chart: ./path/to/foo
|
||||||
|
dependencies:
|
||||||
|
- chart: stable/envoy
|
||||||
|
version: 1.5
|
||||||
|
```
|
||||||
|
|
||||||
|
When Helmfile encounters `releases[].dependencies`, it creates a another temporary chart from `./path/to/foo` and adds the following `dependencies` to the `Chart.yaml`, so that you don't need to fork the chart.
|
||||||
|
|
||||||
|
```
|
||||||
|
dependencies:
|
||||||
|
- name: envoy
|
||||||
|
repo: https://charts.helm.sh/stable
|
||||||
|
condition: envoy.enabled
|
||||||
|
```
|
||||||
|
|
||||||
|
A Helm chart can have two or more dependencies for the same chart with different `alias`es. To give your dependency an `alias`, defien it like you would do in a standard `Chart.yaml`:
|
||||||
|
|
||||||
|
```
|
||||||
|
repositories:
|
||||||
|
- name: stable
|
||||||
|
url: https://charts.helm.sh/stable
|
||||||
|
|
||||||
|
releases:
|
||||||
|
- name: foo
|
||||||
|
chart: ./path/to/foo
|
||||||
|
dependencies:
|
||||||
|
- chart: stable/envoy
|
||||||
|
version: 1.5
|
||||||
|
alias: bar
|
||||||
|
- chart: stable/envoy
|
||||||
|
version: 1.5
|
||||||
|
alias: baz
|
||||||
|
```
|
||||||
|
|
||||||
|
which will tweaks the temporary chart's `Chart.yaml` to have:
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
dependencies:
|
||||||
|
- alias: bar
|
||||||
|
name: envoy
|
||||||
|
repo: https://charts.helm.sh/stable
|
||||||
|
condition: bar.enabled
|
||||||
|
- alias: baz
|
||||||
|
name: envoy
|
||||||
|
repo: https://charts.helm.sh/stable
|
||||||
|
condition: baz.enabled
|
||||||
|
```
|
||||||
|
|
||||||
|
Please see #649 for more context around this feature.
|
||||||
|
|
||||||
|
After the support for adhoc dependency to local chart (#1765),
|
||||||
|
you can even write local file paths relative to `helmfile.yaml` in `chart`:
|
||||||
|
|
||||||
|
```
|
||||||
|
releases:
|
||||||
|
- name: foo
|
||||||
|
chart: ./path/to/foo
|
||||||
|
dependencies:
|
||||||
|
- chart: ./path/to/bar
|
||||||
|
```
|
||||||
|
|
||||||
|
Internally, Helmfile creates another temporary chart from the local chart `./path/to/foo`, and modifies the chart's `Chart.yaml` dependencies to look like:
|
||||||
|
|
||||||
|
```
|
||||||
|
dependencies:
|
||||||
|
- alias: bar
|
||||||
|
name: bar
|
||||||
|
repo: file:///abs/path/to/bar
|
||||||
|
condition: bar.enabled
|
||||||
|
```
|
||||||
|
|
||||||
|
Please read https://github.com/roboll/helmfile/issues/1762#issuecomment-816341251 for more details.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue