Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: experimental integration with helm-x
This enhances helmfile so that it can: - Treat K8s manifests directories and Kustomize projects as charts - Add adhoc chart dependencies on sync/diff/template without forking or modifying chart(s) (#649) - Add adhoc patches(JSON Patch or Strategic Merge Patch supported) to be applied to the K8s resources before sync/diff/template, without forking or modifyin chart(s) (#650) The usage is as outlined in https://github.com/mumoshu/helm-x/tree/master/examples/helmfile. Add any or all of `dependencies:`, `jsonPatches:` and `strategicMergePatches:` so that it adds additional flags to `helm` calls that is only supported by `helm x`. ```yaml releases: - name: kustomize chart: ../kustomize - name: manifests chart: ../manifests - name: foo chart: incubator/raw dependencies: - alias: bar chart: incubator/raw values: - values.yaml - bar: enabled: true resources: - apiVersion: v1 kind: Pod metadata: name: bar spec: containers: - command: - sleep - 1000 image: alpine:3.9.4 imagePullPolicy: IfNotPresent name: bar jsonPatches: - target: version: v1 kind: Pod name: foo patch: - op: replace path: /spec/containers/0/command value: - sleep - "123" strategicMergePatches: - apiVersion: v1 kind: Pod metadata: name: bar spec: containers: - name: bar command: - sleep - "234" ``` You can alternatively provide `source: path/to/patch.yaml` for `jsonPatches` and `strategicMergePatches` items to externalize it. Add `.gotmpl` suffix like you would do for values files for templating. When running `helmfile` you must point `--helm-binary` to the `helm-x` binary like below: ``` $ helmfile --helm-binary ~/.helm/plugins/helm-x/bin/helm-x --log-level debug apply ``` after installing the [helm-x](https://github.com/mumoshu/helm-x) plugin. The integration should ideally be automatic. That is, it shouldn't force you to set `--helm-binary`. But I had no other way to not bloat helmfile's codebase to just add this experimental feature. Resolves #649 Resolves #650
- Loading branch information