以下の内容はhttps://devops-blog.virtualtech.jp/entry/20220905/1662345930より取得しました。


Helmで自動ロールアウト

Helmはデプロイの仕様自体に変更がない場合、古い状態のまま動き続けます。これではシークレットやConfigMapsのみ更新した場合、同じタグを指定している場合にポッドの更新ができなくて困りますよね。公式ドキュメントにもこのことが取り上げられていましたので紹介します。

helm.sh

やっていることはそんなに複雑ではなくて

kind: Deployment
spec:
  template:
    metadata:
      annotations:
        checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}

このようにconfigmap.yamlのハッシュ値をannotationsにセットしておけば、対象のファイルが更新された時にマニフェストも変更され自動でロールされるというものです。

シークレットだと以下のようにします。

kind: Deployment
spec:
  template:
    metadata:
      annotations:
        checksum/secret: {{ include (print $.Template.BasePath "/secret.yaml") . | sha256sum }}

また、デプロイするたびに再起動したい場合は以下です。

kind: Deployment
spec:
  template:
    metadata:
      annotations:
        rollme: {{ randAlphaNum 5 | quote }}

こうしておけば同じタグを指定していても、デプロイの度にランダムな文字列でデプロイの仕様を変化させられるので、ポッドの更新ができます。

(タグにコミットIDとかを指定して、毎回更新してあげればいいんですけどね。。。)




以上の内容はhttps://devops-blog.virtualtech.jp/entry/20220905/1662345930より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14