1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

My Infrastructure JourneyAdvent Calendar 2024

Day 7

ArgoCDのrefreshとhard refreshの違い

Last updated at Posted at 2024-12-06

はじめに

ArgoCDのrefreshには普通のrefreshとhard refreshがあります。この違いってみなさんご存知ですか?自分は知りませんでしたし、会社の手順書に言われるがまま押していました。今回は自分なりに調べたことをまとめていきます。

スクリーンショット 2024-12-05 10.33.01.png
この下三角、結構当たり判定がシビアだと思うのは私だけなんですかね

Argo CDのrefresh機能とは

Argo CDのrefresh機能は最新のアプリケーションのimageとkubernetes上の実際の状態を同期するための機能です。
ざっくりとした処理フローは以下のようになっています。

  1. ソースの監視
    • Application Controllerが定期的にソースの変更を確認します
      • 例えばGitリポジトリの場合なら最新のコミットIDをチェックしたりします
  2. 変更検出とキャッシュ管理
    • ソースに変更が検出された場合
      • マニフェストを際レンダリング
    • 変更がない場合
      • 既存のキャッシュを継続して使用
  3. マニフェストを処理
    • 新しいマニフェストとKubernetes上の実際の状態を比較
      • 差分があればOutOfSyncに、なければSynced状態にする
  4. AutoSync
    • AutoSyncが有効の場合には自動的に動機を実行する

refreshとhard refreshの違い

  • refresh
    ソースコードの変更があった場合にのみマニフェストを再生成します。
    Gitの新しいコミットをデプロイするときや、Helmチャートの新しいバージョンをでブロイする場合のユースケースとなることが多いです。
    3分ごとに自動実行されて、かなり軽量な操作となっています。
  • hard refresh
    マニフェストキャッシュを強制的に無効化して、変更の有無に関わらずマニフェストを再生成します。
    リソース消費が大きくrefreshよりも長い時間がかかります。
    ユースケースとしてはSecret Managerからの新しい値を読み込んだり、Helmチャートのバージョンを変更せずコードを変更したり等が考えられます。

主な参考文献

https://github.com/argoproj/argo-cd/discussions/12237
https://argocd-vault-plugin.readthedocs.io/en/v1.3.1/usage/

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?