Argo CD インスタンス


Red Hat OpenShift GitOps 1.13

Argo CD インスタンスをインストールおよびデプロイし、Argo CD インスタンスで通知を有効にして、NotificationsConfiguration CR を設定する

Red Hat OpenShift Documentation Team

概要

このドキュメントでは、Argo CD インスタンスをインストールおよびデプロイして、クラスター設定を管理したり、アプリケーションをデプロイしたりする手順を説明します。また、Argo CD インスタンスの通知を有効にし、NotificationsConfiguration カスタムリソース (CR) を設定する方法も説明します。

第1章 Argo CD インスタンスのセットアップ

デフォルトでは、Red Hat OpenShift GitOps は Argo CD のインスタンスを openshift-gitops namespace にインストールし、特定のクラスタースコープのリソースを管理するための追加のアクセス許可を使用します。このデフォルトの Argo CD インスタンスは、デフォルトのクラスタースコープのインスタンスとも呼ばれます。

デフォルトの Argo CD インスタンスが openshift-gitops namespace で起動されないようにするには、openshift-gitops-operator サブスクリプションを使用し、文字列値を "true" に設定して、そのサブスクリプションで DISABLE_DEFAULT_ARGOCD_INSTANCE 環境変数を設定します。

注記

GitOps バージョン 1.13 以降の場合:

  • ルート TLS 終了は、デフォルトおよびユーザー定義の Argo CD インスタンスの両方の reencrypt モードのデフォルトとして設定されています。Argo CD インスタンスへの TLS 接続は、自己署名の Argo CD 証明書ではなく、OpenShift Container Platform で設定されたデフォルトの Ingress 証明書を受け取るようになりました。Argo CD CR の .spec.server.route.tls フィールドを設定して、ルート TLS 終端ポリシーを変更できます。
  • OpenShift Container Platform 標準への準拠を確保するために、制限付き Pod セキュリティーアドミッション (PSA) ラベルが openshift-gitops namespace に適用されます。この namespace でモニタリングやログ記録などの追加のワークロードを実行している場合は、それらが制限された PSA 要件に準拠していることを確認してください。コンプライアンスが実現できない場合は、PSA ラベルが GitOps Operator により適用または制御されない、ユーザー定義のクラスタースコープ Argo CD インスタンスの使用を検討してください。

クラスター設定を管理したり、アプリケーションをデプロイメントしたりするために、新しいユーザー定義の Argo CD インスタンスをインストールしてデプロイメントできます。デフォルトでは、新しいユーザー定義のインスタンスには、デプロイされた namespace でのみリソースを管理する権限があります。

openshift-gitops namespace 以外の任意の namespace にユーザー定義の Argo CD インスタンスを作成できます。

重要

openshift-gitops namespace 内にユーザー定義の Argo CD インスタンスを作成する場合は、openshift-gitops-operator サブスクリプションの DISABLE_DEFAULT_ARGOCD_INSTANCE フラグ値を "true" に設定し、インスタンスに openshift-gitops という名前を付けないでください。

1.1. ユーザー定義の Argo CD インスタンスのインストール

クラスター設定を管理したり、アプリケーションをデプロイメントしたりするために、新しいユーザー定義の Argo CD インスタンスをインストールしてデプロイメントできます。

前提条件

  • cluster-admin 権限でクラスターにアクセスできる。
  • Red Hat OpenShift GitOps Operator がクラスターにインストールされている。

手順

  1. OpenShift Container Platform Web コンソールにログインします。
  2. Web コンソールの Administrator パースペクティブで、OperatorsInstalled Operators の順にクリックします。
  3. Project リストからユーザー定義の Argo CD インスタンスをインストールするプロジェクトを作成または選択します。
  4. インストールされている Operators リストから Red Hat OpenShift GitOps を選択し、Argo CD タブをクリックします。
  5. パラメーターを設定するには、Create ArgoCD をクリックします。

    1. インスタンスの Name を入力します。デフォルトでは、Nameexample に設定されています。
    2. 外部 OS ルートを作成して Argo CD サーバーにアクセスします。ServerRoute をクリックし、Enabled にチェックを入れます。

      ヒント

      または、次の例に示すように、YAML を設定して外部 OS ルートを作成できます。

      外部 OS ルートが作成された Argo CD の例

      apiVersion: argoproj.io/v1beta1
      kind: ArgoCD
      metadata:
        name: example
        namespace: openshift-gitops
      spec:
        server:
          route:
            enabled: true

    3. オプションで、Argo CD CR の .spec.server.route.tls フィールドを設定して、ルート TLS 終端ポリシーを変更できます。
  6. Create をクリックします。
  7. ユーザー定義の Argo CD インスタンスがインストールされているプロジェクトで、NetworkingRoutes<instance_name>-server に移動します。
  8. Details タブで、Route detailsLocation の下にある Argo CD Web UI リンクをクリックします。Argo CD Web UI が別のブラウザーウィンドウで開きます。
  9. オプション: OpenShift Container Platform の認証情報でログインするには、cluster-admins グループのユーザーであることを確認してから、Argo CD ユーザーインターフェイスで LOG IN VIA OPENSHIFT オプションを選択します。

    注記

    cluster-admins グループのユーザーになるには、oc adm groups new cluster-admins <user> コマンドを使用します。この場合の <user> は、クラスター全体またはローカルでユーザーおよびグループにバインドできるデフォルトのクラスターロールです。

  10. ユーザー定義の Argo CD インスタンスのパスワードを取得します。

    1. ナビゲーションパネルを使用して、WorkloadsSecrets ページに移動します。
    2. Project リストを使用して、ユーザー定義の Argo CD インスタンスが作成される namespace を選択します。
    3. パスワードを表示するには、<argo_CD_instance_name>-cluster インスタンスを選択します。
    4. Details タブで、Dataadmin.password の下にあるパスワードをコピーします。
  11. Usernameadmin を使用し、Password にはコピーしたパスワードを使用して、新しいウィンドウで Argo CD UI にログインします。

1.2. namespace スコープのインスタンスにユーザー定義のクラスターロールを指定して、一般的なクラスターロールを設定する

クラスター管理者は、argocd.argoproj.io/managed-by ラベルを使用して Argo CD に namespace へのアクセス権限を付与すると、Argo CD は namespace-admin 権限を想定します。次に、Red Hat OpenShift GitOps Operator は、次の GitOps コントロールプレーンコンポーネントのすべてのマネージド namespace のロールバインディングを自動的に作成します。

  • Argo CD Application Controller
  • Argo CD サーバー
  • Argo CD ApplicationSet Controller

開発チームなど、管理者以外のユーザーに namespace を提供する場合、namespace-admin 権限を使用してネットワークポリシーなどのオブジェクトを変更できます。これらの namespace に Argo CD インスタンスをインストールすると、開発チームが admin 権限を付与し、割り当てられた権限を間接的に昇格します。これらのロールは高度な特権があり、すべてのリソースを削除できます。予防措置として、Operator が Argo CD Application Controller および Argo CD サーバーコンポーネント用に作成するロールバインディング内のすべてのマネージド namespace に共通のクラスターロールを設定することで、セキュリティー要件を満たすために特定の縮小パーミッションセットを定義できます。

すべてのマネージド namespace に共通のクラスターロールを設定するには、Operator の Subscription オブジェクト YAML ファイルで CONTROLLER_CLUSTER_ROLE 環境変数および SERVER_CLUSTER_ROLE 環境変数にユーザー定義のクラスターロールを指定します。その結果、デフォルトの admin ロールを作成する代わりに、Operator は既存のユーザー定義のクラスターロールを使用し、すべてのマネージド namespace のロールバインディングを作成します。

前提条件

  • OpenShift Container Platform クラスターに管理者としてログインしている。
  • Red Hat OpenShift GitOps Operator が OpenShift Container Platform クラスターにインストールされている。

手順

  1. Administrator パースペクティブで、AdministrationCustomResourceDefinitions に移動します。
  2. サブスクリプション CRD を見つけて、クリックして開きます。
  3. Instances タブを選択し、openshift-gitops-operator サブスクリプションをクリックします。
  4. YAML タブを選択し、カスタマイズを行います。

    • CONTROLLER_CLUSTER_ROLE および SERVER_CLUSTER_ROLE 環境変数のユーザー定義のクラスターロールを指定します。

      Subscription の例

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: openshift-gitops-operator
        namespace: openshift-gitops-operator
      spec:
        config:
          env:
          - name: CONTROLLER_CLUSTER_ROLE
            value: gitops-controller-role 1
          - name: SERVER_CLUSTER_ROLE
            value: gitops-server-role 2

      1
      Argo CD Application Controller コンポーネントの環境変数の名前。
      2
      Argo CD サーバーコンポーネントの環境変数の名前。
ヒント

または、前述の環境変数を Operator の Deployment オブジェクト YAML ファイルに直接挿入することもできます。

1.3. Argo CD サーバーとレポサーバーのレプリカを有効にする

Argo CD-server と Argo CD-repo-server のワークロードはステートレスです。ワークロードを Pod 間でより適切に分散するには、Argo CD サーバーと Argo CD リポジトリーサーバーのレプリカの数を増やすことができます。ただし、Argo CD サーバーで水平オートスケーラーが有効になっている場合は、設定したレプリカの数が上書きされます。

手順

  • reposerver スペックの replicas パラメーターを、実行するレプリカの数に設定します。

    Argo CD カスタムリソースの例

    apiVersion: argoproj.io/v1beta1
    kind: ArgoCD
    metadata:
      name: example-argocd
      labels:
        example: repo
    spec:
      repo:
        replicas: <number_of_replicas>
      server:
        replicas: <number_of_replicas>
        route:
          enabled: true
          path: /
          tls:
            insecureEdgeTerminationPolicy: Redirect
            termination: passthrough
          wildcardPolicy: None

1.4. 別の namespace へのリソースのデプロイ

Argo CD がインストール先以外の namespace のリソースを管理できるようにするには、対象の namespace に argocd.argoproj.io/managed-by ラベルを設定します。

手順

  • 次のコマンドを実行して、ターゲット namespace を設定します。

    $ oc label namespace <target_namespace> \
    argocd.argoproj.io/managed-by=<argocd_namespace>

    ここでは、以下のようになります。

    <target_namespace>
    Argo CD が管理する namespace の名前を指定します。
    <argocd_namespace>
    Argo CD がインストールされている namespace の名前を指定します。

第2章 Argo CD のカスタムリソースとコンポーネントのプロパティー

ArgoCD カスタムリソースは、Argo CD クラスターを設定するコンポーネントの設定を可能にする特定の Argo CD クラスターの必要な状態を記述する Kubernetes カスタムリソース (CRD) です。

2.1. Argo CD カスタムリソースプロパティー

Argo CD カスタムリソースは以下のプロパティーで構成されます。

名前説明Defaultプロパティー

aggregatedClusterRoles

クラスタースコープインスタンスの Argo CD Application Controller コンポーネントに集約されたクラスターロールを使用します。

false

 

applicationInstanceLabelKey

Argo CD がアプリ名を追跡ラベルとして挿入する metadata.label キー名。

app.kubernetes.io/instance

 

applicationSet

ApplicationSet Controller の設定オプション。

object

  • enabled - Argo CD のインストール時に ApplicationSet コントローラーを有効にするために使用するフラグ。
  • env - ApplicationSet コントローラー Pod の環境を指定します。
  • extraCommandArgs - ApplicationSet ワークロードの Operator によって設定された既存の引数に追加された引数のリスト。
  • image - ApplicationSet コントローラーのコンテナーイメージ。このプロパティーは、ARGOCD_APPLICATIONSET_IMAGE 環境変数をオーバーライドします。
  • logLevel: Argo CD Application Controller コンポーネントによって使用されるログレベル。有効なオプションは、debuginfoerror、および warn です。
  • logFormat: Argo CD Application Controller コンポーネントによって使用されるログ形式。有効なオプションは text および json です。
  • parallelismLimit: コントローラーに設定する kubectl 並列処理の制限(the -kubectl-parallelism-limit フラグ)。
  • リソース - コンテナーコンピューティングリソース。
  • scmProviders - 許可された Source Code Manager (SCM) プロバイダーの URL。
  • scmRootCAConfigMap: /app/tls/scm/cert パスのアプリケーションセットコントローラーにマウントされる Gitlab SCM プロバイダーの TLS 証明書を保存する設定マップの名前。
  • sourceNamespaces - ターゲット namespace で Argo CD ApplicationSet リソースを作成および管理するための非コントロールプレーン namespace のリスト。
  • バージョン - applicationSet コンテナーイメージで使用するタグ。
  • volumes - Argo CD ApplicationSet コントローラーコンポーネントに設定された追加ボリュームのリスト。このフィールドは任意です。
  • volumeMounts - Argo CD ApplicationSet コントローラーコンポーネントに設定された追加のボリュームマウントのリスト。このフィールドは任意です。
  • webhookserver - ApplicationSet Webhook サーバーで利用可能なオプションを定義します。

banner

UI バナーメッセージを追加します。

object

  • banner.content - バナーメッセージの内容。バナーを表示する場合はこのコンテンツは必須です。
  • banner.url: オプションのバナーメッセージリンク URL。

configManagementPlugins

設定管理プラグインを追加します。

empty

 

controller

Argo CD アプリケーションコントローラーオプション。

object

  • AppSync - AppSync は Argo CD アプリケーションの同期頻度を制御するために使用されます。
  • アプリケーションコントローラーのワークロード用に設定する env - Environment。
  • extraCommandArgs - Operator によって設定された既存の引数に追加された引数のリスト。
  • initContainers - ArgoCD Application Controller コンポーネントの init コンテナーのリスト。このフィールドは任意です。
  • logLevel: Argo CD Application Controller コンポーネントによって使用されるログレベル。有効なオプションは、debuginfoerror、および warn です。
  • processor.operation: オペレーションプロセッサーの数。
  • processors.status: ステータスプロセッサーの数。
  • リソース - コンテナーコンピューティングリソース。
  • sidecarContainers - ArgoCD Application Controller コンポーネントの sidecar コンテナーのリスト。このフィールドは任意です。
  • sharding.enabled: Argo CD Application Controller コンポーネントでシャーディングを有効にします。このプロパティーを使用して、多数のクラスターを管理し、コントローラーコンポーネントのメモリー負荷を軽減します。
  • sharding.replicas: Argo CD アプリケーションコントローラーのシャーディングをサポートするために使用されるレプリカの数。
  • sharding.dynamicScalingEnabled: Argo CD Application Controller コンポーネントの動的スケーリングを有効にします。コントローラーコンポーネントが管理しているクラスターの数に基づいて、Operator がレプリカの数をスケーリングするようにする場合は、このプロパティーを使用します。このプロパティーを true に設定すると、sharding.enabled および sharding.replicas プロパティーの設定がオーバーライドされます。
  • sharding.minShards: Argo CD アプリケーションコントローラーレプリカの最小数。
  • sharding.maxShards: Argo CD アプリケーションコントローラーレプリカの最大数。
  • sharding.clustersPerShard: 各シャードで管理する必要があるクラスターの数。レプリカ数が maxShards に達すると、シャードは複数のクラスターを管理します。
  • volumes - Argo CD Application Controller コンポーネントに設定された追加ボリュームのリスト。このフィールドは任意です。
  • volumeMounts - Argo CD Application Controller コンポーネントに設定された追加のボリュームマウントのリスト。このフィールドは任意です。

disableAdmin

組み込みの管理者ユーザーを無効にします。

false

 

defaultClusterScopedRoleDisabled

クラスタースコープのインスタンスのデフォルトクラスターロールの作成を無効にします。

false

 

extraConfig

Argo CD カスタムリソース内で直接設定できない追加の Argo CD 設定を argocd-cm config map に追加します。

empty

 

gaTrackingID

Google Analytics 追跡 ID を使用します。

empty

 

gaAnonymizeUsers

Google アナリティクスに送信されるハッシュ化されたユーザー名を有効にします。

false

 

ha

高可用性のオプション

object

  • 有効 化:Argo CD の高可用性サポートをグローバルに切り替えます。
  • redisProxyImage - Redis HAProxy コンテナーイメージ。このプロパティーは、ARGOCD_REDIS_HA_PROXY_IMAGE 環境変数をオーバーライドします。
  • redisProxyVersion - Redis HAProxy コンテナーイメージに使用するタグ。

helpChatURL

チャットヘルプを取得するための URL (これは通常、サポート用の Slack チャネルです)。

https://mycorp.slack.com/argo-cd

 

helpChatText

チャットヘルプを取得するためのテキストボックスに表示されるテキスト。

Chat now!

 

image

すべての Argo CD コンポーネントのコンテナーイメージ。これにより、ARGOCD_IMAGE 環境変数が上書きされます。

argoproj/argocd

 

import

Argo CD の設定オプションをインポートします。

object

  • Name: データのインポート元となる ArgoCDExport リソースの名前。
  • namespace: name フィールドで参照される ArgoCDExport リソースの namespace。このフィールドが設定されていない場合、ArgoCDExport リソースの namespace はデフォルトで Argo CD と同じ namespace に設定されます。

ingress

Ingress 設定オプション。

object

 

initialRepositories

クラスターの作成時に Argo CD を使用するように設定するための初期 Git リポジトリー。

empty

 

initialSSHKnownHosts

クラスターの作成時に Argo CD が SSH 経由で Git リポジトリーに接続するために使用する初期の SSH Known Hosts データを定義します。

default_Argo_CD_Known_Hosts

  • excludedefaulthosts: Argo CD が提供する SSH 既知のホストのデフォルト一覧を追加するかどうかを示します。
  • キー: Argo CD サーバーに組み込む SSH 既知のホストのカスタムセットを記述します。

kustomizeBuildOptions

kustomize build で使用するビルドオプションおよびパラメーター。

empty

 

kustomizeVersions

Argo CD リポジトリーサーバーコンテナーイメージで設定されている Kustomize バージョンのリストを定義します。

empty

  • Path - Argo CD リポジトリーサーバーコンテナーイメージのファイルシステムにある Kustomize バージョンのパス。
  • バージョン - Argo CD リポジトリーサーバーコンテナーイメージで設定された vX.Y.Z 形式の Kustomize バージョン。

monitoring

インスタンスのワークロードステータスモニタリング設定を定義します。

object

  • disableMetrics - インスタンスのメトリクスのコレクションを有効または無効にするには、このフィールドを設定します。
  • 有効 - インスタンスでワークロードステータスの監視が有効になっているかどうかを示します。

notifications

Notifications Controller の設定オプション。

object

  • 有効 - 通知コントローラーを起動するためのトグル。
  • env - 通知コントローラーのワークロードに設定する環境。
  • image - すべての Argo CD コンポーネントのコンテナーイメージ。このプロパティーは、ARGOCD_IMAGE 環境変数をオーバーライドします。
  • logLevel: Argo CD Application Controller コンポーネントによって使用されるログレベル。有効なオプションは、debuginfoerror、および warn です。
  • レプリカ: 通知コントローラーに対して実行するレプリカの数。
  • リソース - コンテナーコンピューティングリソース。
  • バージョン - Notifications コンテナーイメージで使用するタグ。

nodePlacement

Argo CD ワークロードの NodeSelectors および Tolerations を定義します。

empty

  • nodeSelector - ノード選択のキーと値のペアのマップ。
  • 容認: 容認:Pod は、一致するテイントを持つノードのスケジュールを作成できます。

oidcConfig

Dex の代替となる OIDC 設定。

empty

 

prometheus

Prometheus 設定オプション。

object

  • Enabled: Argo CD の Prometheus サポートをグローバルに切り替えます。
  • Host: Ingress または Route リソースに使用する ホスト 名。
  • ingress: Prometheus の Ingress を切り替えます。
  • ルートルート 設定オプション。
  • Size: Prometheus StatefulSet のレプリカ数。

rbac

RBAC 設定オプション。

object

  • Default Policy - argocd-rbac-cm 設定 マップの policy.default プロパティー。API リクエストを承認するときに Argo CD がフォールバックするデフォルトのロールの名前。
  • Policy- argocd-rbac-cm 設定 マップの policy.csv プロパティー。このプロパティーには、ユーザー定義の RBAC ポリシーとロール定義に関する CSV データが含まれます。
  • policyMatcher: argocd-rbac-cm 設定 マップの policy.matchMode プロパティー。このプロパティーには、glob マッチャーの場合は 'glob'、正規表現マッチャーの場合は 'regex' の 2 つのオプションがあります。
  • Scopes - argocd-rbac-cm 設定 マップの scopes プロパティー。RBAC の操作中に (サブスコープに加えて) どの OIDC スコープを検査するかを制御します。

redis

Redis 設定オプション。

object

  • autoTLS: プロバイダーを使用して Redis サーバーの TLS 証明書を作成します。現在、openshift 値のみが使用可能です。
  • disableTLSVerification: 厳密な TLS 検証を使用して Redis サーバーにアクセスする必要があるかどうかを定義します。
  • image: Redis のコンテナーイメージ。これは、ARGOCD_REDIS_IMAGE 環境変数をオーバーライドします。
  • リソース - コンテナーコンピューティングリソース。
  • バージョン - Redis コンテナーイメージで使用するタグ。

repositoryCredentials

クラスターの作成時に使用する Argo CD を設定するための Git リポジトリー認証情報テンプレート。

empty

 

resourceActions

リソースアクションの動作をカスタマイズします。

empty

 

resourceExclusions

リソースグループのクラス全体を完全に無視します。

empty

 

resourceInclusions

どのリソースグループ/種類が適用されるかを識別するための設定。

empty

 

resourceHealthChecks

リソースのヘルスチェック動作をカスタマイズします。

empty

 

resourceIgnoreDifferences

リソースの違いを無視する動作をカスタマイズします。

empty

 

resourceTrackingMethod

Argo CD が管理対象リソースを監視するために使用するフィールド。

label

 

server

Argo CD Server 設定オプション。

object

  • Auto scale: サーバーの自動スケーリング設定オプション。
  • サーバーワークロード用に設定する env - Environment。
  • Enabled: Argo CD のインストール時に Argo CD サーバーを 有効 にするためのフラグ。
  • enableRolloutsUI - パラメーターが true に設定されている場合、パラメーターは Argo CD で Argo Rollouts UI エクステンションを有効にします。デフォルト値は false に設定されます。
  • extraCommandArgs - Operator によって設定された既存の引数に追加された引数のリスト。
  • gRPC - gRPC 設定オプション。
  • Host: Ingress または Route リソースに使用される ホスト 名。
  • initContainers - Argo CD Application Controller コンポーネントの init コンテナーのリスト。このフィールドは任意です。
  • Argo CD サーバーコンポーネントの Ingress -Ingress 設定。
  • insecure: Argo CD サーバーの安全でないフラグを切り替えます。
  • logLevel: Argo CD サーバーコンポーネントによって使用されるログレベル。有効なオプションは、debuginfoerror、および warn です。
  • logFormat: Argo CD サーバーコンポーネントによって使用されるログ形式。有効なオプションは text および json です。
  • リソース - コンテナーコンピューティングリソース。
  • replicas: Argo CD サーバーのレプリカの数。0 以上である必要があります。autoscale が有効な場合、replicas は無視されます。
  • ルートルート 設定オプション。
  • Service .Type: サービスリソースに使用される serviceType
  • sidecarContainers - Argo CD Application Controller コンポーネントの sidecar コンテナーのリスト。このフィールドは任意です。
  • volumes - Argo CD Application Controller コンポーネントに設定された追加ボリュームのリスト。このフィールドは任意です。
  • volumeMounts - Argo CD Application Controller コンポーネントに設定された追加のボリュームマウントのリスト。このフィールドは任意です。

sourceNamespaces

アプリケーションリソースを作成できる namespace を指定します。

string

 

sso

シングルサインオンオプション。

object

  • Dex SSO プロバイダーの Dex-Configuration options。
  • Keycloak - Keycloak SSO プロバイダーの設定オプション。
  • provider - Single Sign-On の設定に使用されるプロバイダーの名前。現在サポートされているオプションは Dex と Keycloak です。

statusBadgeEnabled

アプリケーションステータスバッジを有効にします。

true

 

tls

TLS 設定オプション。

object

  • ca.configMapName: CA 証明書を含む ConfigMap の名前。
  • ca.secretName: CA 証明書とキーを含むシークレットの名前。
  • initialCerts - HTTPS 経由で Git リポジトリーに接続するための argocd-tls-certs-cm 設定マップ内の証明書の初期セット。

usersAnonymousEnabled

匿名ユーザーアクセスを有効にします。

true

 

version

すべての Argo CD コンポーネントのコンテナーイメージで使用するタグ。

最新の Argo CD バージョン

 

2.2. リポジトリーサーバーのプロパティー

Repo サーバーコンポーネントの設定には、次のプロパティーを使用できます。

名前デフォルト説明

autotls

""

リポジトリーサーバーの gRPC TLS 証明書の TLS を設定するために使用するプロバイダー。現在、openshift 値のみが使用可能です。

env

empty

Repo サーバーのワークロードに設定する環境。

enabled

empty

Argo CD のインストール時に Repo サーバーを有効にするフラグ。

execTimeout

180

Helm や Kustomize などのレンダリングツールの実行タイムアウト (秒単位)。

extraRepoCommandArgs

empty

コマンドライン引数を Repo サーバーワークロードに渡します。コマンドライン引数は、Operator によって設定された引数のリストに追加されます。

initContainers

empty

Argo CD Application Controller コンポーネント内の init コンテナーの数。このフィールドは任意です。

image

argoproj/argocd

Argo CD Repo サーバーのコンテナーイメージ。このプロパティーは、ARGOCD_REPOSERVER_IMAGE 環境変数をオーバーライドします。

logLevel

info

Argo CD Repo サーバーが使用するログレベル。有効なオプションは、debuginfoerror、および warn です。

logFormat

text

Argo CD リポジトリーサーバーで使用されるログ形式。有効なオプションは text および json です。

mountsatoken

false

serviceaccount トークンをリポサーバー Pod にマウントするかどうかを定義します。

remote

empty

Repo サーバーコンテナーのリモート URL を指定します。

replicas

empty

Argo CD Repo サーバーのレプリカの数。0 以上である必要があります。

resources

empty

コンテナーコンピューティングリソース。

serviceaccount

""

repo-server Pod で使用する serviceaccount の名前。

sidecarContainers

empty

Argo CD Application Controller コンポーネント内の sidecar コンテナーの数。このフィールドは任意です。

verifytls

false

リポジトリーサーバーとの通信時に、すべてのコンポーネントに厳密な TLS チェックを適用するかどうかを定義します。

version

.spec.Version と同じ

Argo CD Repo サーバーで使用するタグ。

volumes

empty

Repo サーバーのデプロイメントに使用される追加のボリュームを設定します。このフィールドは任意です。

volumeMounts

empty

Repo サーバーのデプロイメントに使用される追加のボリュームマウントを設定します。このフィールドは任意です。

2.3. Argo CD インスタンスでの通知の有効化

Argo CD 通知を使用すると、Argo CD インスタンスでイベントが発生したときに外部サービスに通知を送信できます。たとえば、同期操作が失敗した場合に通知を Slack またはメールに送信できます。デフォルトでは、Argo CD インスタンスで通知は無効になっています。

前提条件

  • cluster-admin 権限で OpenShift Container Platform クラスターにアクセスでき、Web コンソールにログインしている。
  • Red Hat OpenShift GitOps Operator がクラスターにインストールされている。

手順

OpenShift Container Platform Web コンソールを使用して Argo CD インスタンスの通知を有効にするには、以下の手順を実行します。

  1. OperatorsInstalled Operators ページに移動します。
  2. Installed Operators のリストから Red Hat OpenShift GitOps Operator を選択し、ArgoCD タブをクリックします。
  3. 通知を有効にする Argo CD インスタンス名を選択します。たとえば、openshift-gitops です。
  4. YAML タブをクリックし、spec.notifications.enabled パラメーターを編集して true に設定します。

    apiVersion: argoproj.io/v1beta1
    kind: ArgoCD
    metadata:
      name: openshift-gitops
    spec:
      notifications:
        enabled: true
    #....

  5. Save をクリックします。
ヒント

または、Openshift CLI で oc patch コマンドを使用して通知を有効にできます。以下に例を示します。

oc patch argocd openshift-gitops -n openshift-gitops --type merge --patch '{"spec": {"notifications": {"enabled": true}}}'

2.4. NotificationsConfiguration カスタムリソースプロパティー

NotificationsConfiguration リソースは、Kubernetes クラスター内の通知を管理する Kubernetes カスタムリソース (CR) です。Red Hat OpenShift GitOps では、NotificationsConfiguration CR を使用して、テンプレート、トリガー、サービス、サブスクリプションリソースを Argo CD Notifications config map に追加できます。

通知を有効にして Red Hat OpenShift GitOps でクラスターを作成すると、デフォルトで default-notifications-configuration という名前の NotificationsConfiguration CR が作成されます。

NotificationsConfiguration CR の既存の設定に加えられた変更は、Argo CD Notifications config map に複製されます。たとえば、ユーザーが NotificationsConfiguration リソースにトリガー設定を追加すると、この設定は Argo CD Notifications config map 内で読み取られ、処理され、更新されます。

重要

設定の変更はすべて、default-notifications-configuration CR で更新する必要があります。NotificationsConfiguration リソース用にユーザーが作成したカスタムリソースはサポートされていません。

Argo CD argocd-notifications-cm config map への変更は、NotificationsConfiguration CR で行われた変更によって上書きされます。

表2.1 NotificationsConfiguration カスタムリソースプロパティー
プロパティーDefault説明

テンプレート

<empty>

テンプレートは、通知テンプレートメッセージを生成するために使用されます。

Triggers

<empty>

トリガーは、ユーザーに通知が送信される条件と、メッセージを生成するために必要なテンプレートのリストを定義するために使用されます。

サービス

<empty>

サービスはメッセージを配信するために使用されます。

サブスクリプション

<empty>

サブスクリプションには、集中管理されたグローバルアプリケーションサブスクリプションが含まれます。

次の例では、default-notifications-configuration カスタムリソースを使用して、テンプレート、トリガー、サービス、およびサブスクリプションリソースを Argo CD argocd-notification-cm config map に追加する方法を定義します。

templates の例

apiVersion: argoproj.io/v1alpha1
kind: NotificationsConfiguration
metadata:
 name: default-notifications-configuration 1
spec:
 templates:
  template.my-custom-template: | 2
    message: |
     Application details: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}.

1
クラスター内の NotificationsConfiguration CR のデフォルト名。
2
NotificationsConfiguration CR のカスタムテンプレート設定の例。

triggers の例

apiVersion: argoproj.io/v1alpha1
kind: NotificationsConfiguration
metadata:
 name: default-notifications-configuration 1
spec:
 triggers:
  trigger.on-sync-status-unknown: | 2
   - when: app.status.sync.status == 'Unknown'
   send: [my-custom-template]

1
クラスター内の NotificationsConfiguration CR のデフォルト名。
2
NotificationsConfiguration CR のカスタムトリガー設定の例。

services の例

apiVersion: argoproj.io/v1alpha1
kind: NotificationsConfiguration
metadata:
 name: default-notifications-configuration 1
spec:
 services:
  service.slack: |
    token: $slack-token 2
    username: <override-username> # optional username
    icon: <override-icon> # optional icon for the message (supports both emoji and url notation)

1
クラスター内の NotificationsConfiguration CR のデフォルト名。
2
NotificationsConfiguration CR のカスタムサービス設定の例。

subscriptions の例

apiVersion: argoproj.io/v1alpha1
kind: NotificationsConfiguration
metadata:
 name: default-notifications-configuration 1
spec:
 subscriptions: |
  subscriptions: | 2
    # subscription for on-sync-status-unknown trigger notifications
    - recipients:
    - slack:test2
    - email:test@gmail.com
    triggers:
    - on-sync-status-unknown
    # subscription restricted to applications with matching labels only
    - recipients:
    - slack:test3
    selector: test=true
    triggers:
    - on-sync-status-unknown
icon: <override-icon> # optional icon for the message (supports both emoji and url notation)

1
クラスター内の NotificationsConfiguration CR のデフォルト名。
2
NotificationsConfiguration CR のカスタムサブスクリプション設定の例。

OpenShift Container Platform Web コンソールまたは CLI (oc) を使用して NotificationsConfiguration CR を設定できます。

2.4.1. Web コンソールを使用した NotificationsConfiguration CR の設定

Web コンソールを使用して、NotificationsConfiguration カスタムリソース (CR) を設定できます。

前提条件

  • cluster-admin 権限で OpenShift Container Platform クラスターにアクセスでき、Web コンソールにログインしている。
  • Red Hat OpenShift GitOps Operator がクラスターにインストールされている。
  • Argo CD インスタンスの通知が有効になっている。詳細は、「Argo CD インスタンスでの通知の有効化」を参照してください。

手順

  1. OpenShift Container Platform Web コンソールの Administrator パースペクティブで、OperatorsInstalled Operators を展開します。
  2. Installed Operators のリストから Red Hat OpenShift GitOps Operator を選択し、NotificationsConfiguration タブをクリックします。
  3. NotificationsConfigurations ページで、default-notifications-configuration をクリックします。
  4. default-notifications-configuration ページで、YAML をクリックし、templatestriggersservicessubscriptions などのサポートされているリソースの設定を追加します。たとえば、コード内の templates の下に、次のサンプル設定を追加します。

    テンプレート設定の例

      template.my-custom-template: |
        message: |
        Application details: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}.

  5. Save をクリックします。
  6. NotificationsConfiguration CR で行われた設定変更が argocd-notifications-cm config map に反映されていることを確認します。

    1. WorkloadsConfigMaps に移動します。
    2. argocd-notifications-cm をクリックし、YAML タブを選択します。
    3. YAML タブのページをスクロールして、サポートされているリソースに追加されたサンプル設定を確認します。

2.4.2. CLI を使用した NotificationsConfiguration CR の設定

CLI (oc) を使用して NotificationsConfiguration カスタムリソース (CR) を設定できます。

前提条件

  • cluster-admin 権限を使用して OpenShift Container Platform クラスターにアクセスできる。
  • Red Hat OpenShift GitOps Operator がクラスターにインストールされている。
  • Argo CD インスタンスの通知が有効になっている。詳細は、「Argo CD インスタンスでの通知の有効化」を参照してください。

手順

  1. 次のコマンドを実行して、クラスター内のデフォルトの NotificationsConfiguration CR を編集します。

    $ oc edit notificationsconfiguration default-notifications-configuration -n <namespace>

    ここでは、以下のようになります。

    default-notifications-configuration
    デフォルトの NotificationsConfiguration CR の名前を指定します。
    <namespace>
    namespace の名前を指定します。
  2. CR の templates セクションで、次の例のような設定を追加します。

    テンプレート設定の例

      template.my-custom-template: |
        message: |
        Application details: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}.

  3. 次のコマンドを実行して、argocd-notifications-cm config map の内容を確認します。

    $ oc edit cm argocd-notifications-cm -n <namespace>

    NotificationsConfiguration CR の既存の設定に加えられた変更は、argocd-notifications-cm config map に反映されます。

2.5. 関連情報

法律上の通知

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

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

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

会社概要

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

© 2024 Red Hat, Inc.