2.5.3. RollingSync ストラテジーの設定


RollingSync ストラテジーを設定することで、ラベルに基づいてアプリケーションを段階的に更新できます。これにより、アプリケーションをグループ化して順次更新することができ、制御された段階的なデプロイメントが可能になります。プログレッシブ同期が有効になっている場合、ロールアウトのステータスが GitOps Web UI に表示されます。

前提条件

  • ApplicationSet リソースを作成しました。
  • ApplicationSet によって生成されたアプリケーションには、グループ化に使用できるラベルが付いています。
  • ApplicationSet の設定を編集する権限があります。
  • UI でロールアウトのステータスを表示するには、Argo CD インスタンスでプログレッシブ同期を有効にする必要があります。

手順

  1. RollingSync ストラテジーを使用して ApplicationSet カスタムリソースを作成または編集します。

    apiVersion: argoproj.io/v1alpha1
    kind: ApplicationSet
    metadata:
      name: guestbook-rollingsync
      namespace: openshift-gitops
    spec:
      generators:
        - list:
            elements:
              - cluster: in-cluster
                env: dev
              - cluster: in-cluster
                env: qa
              - cluster: in-cluster
                env: prod
      strategy:
        type: RollingSync
        rollingSync:
          steps:
            - matchExpressions:
                - key: envLabel
                  operator: In
                  values: [dev]
            - matchExpressions:
                - key: envLabel
                  operator: In
                  values: [qa]
              maxUpdate: 0
            - matchExpressions:
                - key: envLabel
                  operator: In
                  values: [prod]
              maxUpdate: 10%
      template:
        metadata:
          name: 'guestbook-{{.env}}'
          labels:
            envLabel: '{{.env}}'
        spec:
          project: default
          source:
            repoURL: https://github.com/your-org/your-repo.git
            targetRevision: HEAD
            path: guestbook/{{.env}}
          destination:
            server: https://kubernetes.default.svc
            namespace: guestbook-{{.env}}

    各項目の説明:

    metadata.name
    ApplicationSet リソースの名前を指定します。
    metadata.namespace
    ApplicationSet がデプロイされる名前空間を指定します。
    仕様戦略タイプ
    作成ストラテジーの種類を指定します。段階的なアプリケーション更新を有効にするには、RollingSync に設定してください。
    spec.strategy.rollingSync.steps
    ラベルセレクターを使用して、段階的な展開ステージを定義します。
    matchExpressions.key
    アプリケーションをグループ化するために使用されるラベルキーを指定します (例: envLabel または tier)。
    matchExpressions.operator
    ラベルのマッチングに使用する演算子を指定します (例: In)。
    matchExpressions.values
    このステップで更新するアプリケーションのラベル値を指定します (例: [dev])。
    maxUpdate
    (オプション) ステップ内で同時に更新するアプリケーションの最大割合を指定します (例: 10%)。アプリケーションを 1 つずつ順番に処理するには、0 に設定してください。
  2. YAML ファイルを適用します。

    $ oc apply -f guestbook-rollingsync.yaml

検証

  1. RollingSync ストラテジーが正しく設定されていることを確認してください。

    $ oc get applicationset guestbook-rollingsync -n openshift-gitops -o yaml
  2. ApplicationSet を更新し、アプリケーションが段階的に更新されることを確認してください。

    $ oc get applications -n openshift-gitops -l app.kubernetes.io/instance=guestbook-rollingsync -w
  3. プログレッシブ同期が有効になっている場合は、Argo CD Web UI のプログレッシブ同期パネルを確認してください。

    1. デプロイ済みのアプリケーションの Argo CD アプリケーション詳細 ページに移動してください。
    2. アプリケーションステータス パネルに、ロールアウトステータスを表示する プログレッシブ同期 セクションが表示されます。

      Progressive Sync パネルには、以下の情報が表示されます。

      フィールド説明

      Progressive Sync Status

      健康状態: 待機中、保留中、進行中、または 健康

      Last Transition

      最後の状態変更のタイムスタンプ

      Message

      詳細情報またはエラーメッセージ

注記
  • ApplicationSet コントローラーを使用してアプリケーションをデプロイする場合、Argo CD コントローラーは自身の namespace 内のアプリケーションのみを管理します。別の namespace 内に作成されたアプリケーションは認識されません。
  • RollingSync は matchExpressions に基づいてアプリケーショングループを順次更新し、rollingSync.steps フィールドはラベルセレクターを使用して同期するグループとその順序を定義します。
  • いずれのステップのラベルセレクターにも一致しないアプリケーションは自動的に更新されないため、手動で同期する必要があります。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る