地味に迷ったので。
Kustomizeに関しては別のQiitaの素晴らしい記事を参照してください。
- https://qiita.com/aeleniumfor/items/2b01a85ba36ef8a8602d
- https://qiita.com/ryodocx/items/008fdaf5c68678656749
その際、ConfigMapを環境ごとに使い分けたいと思った際に、configMapGeneratorをpatchしようとした際に地味に迷ったので備忘として。
まずbaseを記載。resourceについては省略しております。
## base/kustomization.yaml
namespace: flask
commonLabels:
resource: flask
configMapGenerator:
- name: python-env
literals:
- PYTHON_ENV=test
resources:
- ./namespace.yaml
- ./deployment.yaml
- ./service.yaml
その後、prodでoverlayするときに、configMapGeneratorで上書きすれば良いと思っていましたが、これだと上手くいかない。
Already Exist
と怒られてしまいます。
## prod/kustomization.yaml
bases:
- ../base
configMapGenerator:
- name: python-env
literals:
- PYTHON_ENV=production
patches:
- ./deployment.yaml
公式のREADME.mdを確認したところ、overlayはconfigmapを書かないといけないようです。
## prod/kustomization.yaml
bases:
- ../base
patches:
- ./deployment.yaml
- ./configmap.yaml
## prod/configmap.yaml
apiVersion: v1
data:
PYTHON_ENV: production
kind: ConfigMap
metadata:
name: python-env
これでoverlayでprod用に環境変数が書き換えられます。
全てconfigMapGeneratorでできるようになると楽になって良いと思う今日この頃。