Raw Chartは、Helmfile から任意の Kubernetes マニフェストをデプロイするための汎用的な Helm Chart です。
既存の Kustomize 構成をとりあえず Helmfile 管理に移したい場合や、
諸事情により Helmfile の統合機能を素直に使えない場合(ConfigMapGenerator を使っているなど)にも利用できます。
Helmfile
environments: dev: --- repositories: - name: bedag url: https://bedag.github.io/helm-charts releases: - name: deploy-kustomize namespace: ... chart: bedag/raw values: - values/deploy-kustomize/values.yaml.gotmpl
values.yaml.gotmpl
templates:
- |
{{ exec "kustomize" (list "build" (printf "../manifests/overlays/%s" .Environment.Name)) | nindent 4 }}
このように設定しておくことで、kustomize build した結果をそのまま Raw Chart 経由でデプロイできます。
Kustomize の例
apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - ../../base - some/overlay configMapGenerator: - name: example-config namespace: example files: - conf/example.yaml patches: - path: patches/example.yaml
ディレクトリ構成例
.
├── helmfile.yaml
├── values
│ └── deploy-kustomize
│ └── values.yaml.gotmpl
└── manifests
├── base
│ ├── deployment.yaml
│ └── kustomization.yaml
└── overlays
└── dev
├── kustomization.yaml
├── patches
│ └── example.yaml
└── conf
└── example.yaml
overlays/<environment>を.Environment.Nameで切り替え- Helmfile 側では環境差分を意識せずに管理可能
- 既存の Kustomize 構成をほぼそのまま流用できる