kustomizeの紹介はいろいろと素晴らしいものがあるので参照してもらうとして
KubernetesのYAML管理ツールkustomizeを試してみた
KustomizeでKubernetes YAMLを管理する
新機能としてしれっと追加されていたimageTagsを紹介する
もうメチャわかりやすい
特定のdeploymentのimage tagを書き換えるのではなくて 全ての同じ名前のimage tagを上書きできる
imageTags 機能
.
├── base
│ ├── api_deployment.yaml
│ └── kustomization.yaml
└── development
└── kustomization.yaml
base/kustomization.yaml
commonLabels:
app: kustomize-sample
resources:
- api_deployment.yaml
base/api_deployment.yaml 一部省略
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: api
spec:
replicas: 1
spec:
containers:
- name: api
image: sho2010/sample-api:latest
- name: fluentd
image: fluent/fluentd:latest
development/kustomization.yaml
bases:
- ../base
# imageのtagだけピンポイントに書き換える
imageTags:
- name: sho2010/sample-api
newTag: awesome_version
- name: fluent/fluentd
newTag: v0.12.43
結果
imageのtagだけピンポイントに書き換わる
$ kustomize diff development
diff -u -N /var/folders/jp/ggx75n896sdc48n9rwjcmhjr0000gp/T/noop-016709509/extensions_v1beta1_Deployment_api.yaml /var/folders/jp/ggx75n896sdc48n9rwjcmhjr0000gp/T/transformed-739983166/extensions_v1beta1_Deployment_api.yaml
--- /var/folders/jp/ggx75n896sdc48n9rwjcmhjr0000gp/T/noop-016709509/extensions_v1beta1_Deployment_api.yaml 2018-07-31 18:59:34.000000000 +0900
+++ /var/folders/jp/ggx75n896sdc48n9rwjcmhjr0000gp/T/transformed-739983166/extensions_v1beta1_Deployment_api.yaml 2018-07-31 18:59:34.000000000 +0900
@@ -21,9 +21,9 @@
- sh
- -c
- bundle exec rails server
- image: sho2010/sample-api:latest
+ image: sho2010/sample-api:awesome_version
name: api
ports:
- containerPort: 50051
- - image: fluent/fluentd:latest
+ - image: fluent/fluentd:v0.12.43
name: fluentd
これの何がいいかと言うと fluentd
やenvoy
, nginx
などのimage versionをどこにsidecarが付いてるか知らなくても一括で更新できるということです よかったですね。