KustomizeのComponent機能で環境に応じたmanifestファイルを生成する方法

KustomizeのComponent機能を使うと、特定の環境に対して一連のマニフェストを生成することができます。

github.com

今回はComponent内のmanifestファイルを環境に応じて変える方法を紹介します。

言葉では伝わりづらいかと思うのでファイルツリーを載せます。

├── base
│   └── kustomization.yaml
├── components
│   └── my-component
│       ├── base
│       │   ├── deployment.yaml
│       │   └── kustomization.yaml
│       └── overlays
│           ├── development
│           │   ├── deployment-patch.yaml
│           │   └── kustomization.yaml
│           └── production
│               └── kustomization.yaml
└── overlays
    ├── development
    │   └── kustomization.yaml
    └── production
        └── kustomization.yaml

このような構成にすることで、my-componentというComponentのmanifestファイルをdevelopmentとproductionで生成内容を変えることができます。

Manifestファイルの生成方法は、 普段と変わらず kustomize build overlays/developmentkustomize build overlays/production です。

具体的なサンプルは以下のリポジトリにあるので参考にしてみてください。 github.com

ポイントはcomponents/my-component/base/kustomization.yamlファイルにkind: Componentを記述しないことです。