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 インスタンスは、デフォルトのクラスタースコープのインスタンスとも呼ばれます。

注記

GitOps バージョン 1.13 以降では、ルート TLS Termination がデフォルトとして、デフォルトおよびユーザー定義の Argo CD インスタンスの両方に対して reencrypt モードに設定されます。Argo CD インスタンスへの TLS 接続は、自己署名の Argo CD 証明書ではなく、OpenShift Container Platform で設定されたデフォルトの Ingress 証明書を受け取るようになりました。

Argo CD CR の .spec.server.route.tls フィールドを設定して、ルート TLS 終端ポリシーを変更できます。

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

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 <namespace> \
    argocd.argoproj.io/managed-by=<namespace> 1
    1
    Argo CD がインストールされている namespace 。

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

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

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

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

名前説明Defaultプロパティー

applicationInstanceLabelKey

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

app.kubernetes.io/instance

 

applicationSet

applicationSet コントローラーの設定オプション。

<object>

  • <image> - applicationSet コントローラーのコンテナーイメージ。これは、ARGOCD_APPLICATIONSET_IMAGE 環境変数をオーバーライドします。
  • <version> - applicationSet コンテナーイメージで使用するタグ。
  • <resources> - コンテナーコンピューティングリソース。
  • <logLevel> - Argo CD Application Controller コンポーネントによって使用されるログレベル。有効なオプションは、debuginfoerror、および warn です。
  • <logFormat> - Argo CD Application Controller コンポーネントが使用するログ形式。有効なオプションは text または json です。
  • <parallelismLimit> - コントローラーに設定する kubectl 並列処理の制限 (--kubectl-parallelism-limit フラグ)。
  • sourceNamespaces - ターゲット namespace で Argo CD ApplicationSet リソースを作成および管理するための非コントロールプレーン namespace のリスト。
  • scmProviders - 許可された Source Code Manager (SCM) プロバイダーの URL のリスト。

configManagementPlugins

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

<empty>

 

controller

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

<object>

  • <processors.operation> - オペレーションプロセッサーの数。
  • <processors.status> - ステータスプロセッサーの数。
  • <resources> - コンテナーコンピューティングリソース。
  • <logLevel> - Argo CD Application Controller コンポーネントによって使用されるログレベル。有効なオプションは、debuginfoerror、および warn です。
  • <appSync> - AppSync は、Argo CD アプリケーションの同期頻度を制御するために使用されます
  • <sharding.enabled> - Argo CD Application Controller コンポーネントでシャーディングを有効にします。このプロパティーを使用して、多数のクラスターを管理し、コントローラーコンポーネントのメモリー負荷を軽減します。
  • <sharding.replicas> - Argo CD Application Controller のシャーディングをサポートするために使用されるレプリカの数。
  • <sharding.dynamicScalingEnabled> - Argo CD アプリケーションコントローラーコンポーネントの動的スケーリングを有効にします。このプロパティーを使用して、Operator がコントローラーコンポーネントが管理しているクラスターの数に基づいてレプリカ数をスケーリングできるようにします。このプロパティーを true に設定すると、sharding.enabled プロパティーと sharding.replicas プロパティーの設定がオーバーライドされます。
  • <sharding.minShards> - Argo CD アプリケーションコントローラーレプリカの最小数。
  • <sharding.maxShards> - Argo CD アプリケーションコントローラーレプリカの最大数。
  • <sharding.clusterPerShard> - 各シャードで管理する必要があるクラスターの数。レプリカ数が maxShards に達すると、シャードは複数のクラスターを管理します。
  • <env> - アプリケーションコントローラーワークロード用に設定する環境。
  • sourceNamespaces - ターゲット namespace で Argo CD Application リソースを作成および管理するための非コントロールプレーン namespace のリスト。

disableAdmin

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

false

 

gaTrackingID

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

<empty>

 

gaAnonymizeUsers

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

false

 

ha

高可用性オプション。

<object>

  • <enabled> - 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

 

ingress

Ingress 設定オプション。

<object>

 

initialRepositories

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

<empty>

 

notifications

通知コントローラーの設定オプション。

<object>

  • <enabled> - notifications-controller を開始するためのトグル。
  • <image> - すべての Argo CD コンポーネントのコンテナーイメージ。これにより、ARGOCD_IMAGE 環境変数が上書きされます。
  • <version> - Notifications コンテナーイメージで使用するタグ。
  • <resources> - コンテナーコンピューティングリソース。
  • <logLevel> - Argo CD Application Controller コンポーネントによって使用されるログレベル。有効なオプションは、debuginfoerror、および warn です。

repositoryCredentials

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

<empty>

 

initialSSHKnownHosts

クラスターの作成時に使用する Argo CD の SSH 既知のホストです。

<default_Argo_CD_Known_Hosts>

 

kustomizeBuildOptions

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

<empty>

 

oidcConfig

Dex の代替となる OIDC 設定。

<empty>

 

nodePlacement

nodeSelector および tolerations を追加します。

<empty>

 

prometheus

Prometheus 設定オプション。

<object>

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

rbac

RBAC 設定オプション。

<object>

  • <defaultPolicy> - argocd-rbac-cm config map の policy.default プロパティー。API リクエストを承認するときに Argo CD がフォールバックするデフォルトのロールの名前。
  • <policy> - argocd-rbac-cm config map の policy.csv プロパティー。ユーザー定義の RBAC ポリシーとロール定義を含む CSV データ。
  • <scopes> - argocd-rbac-cm config map のスコーププロパティー。RBAC の操作中に (サブスコープに加えて) どの OIDC スコープを検査するかを制御します。

redis

Redis 設定オプション。

<object>

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

resourceHealthChecks

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

<empty>

 

resourceIgnoreDifferences

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

<empty>

 

resourceActions

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

<empty>

 

resourceExclusions

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

<empty>

 

resourceInclusions

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

<empty>

 

server

Argo CD Server 設定オプション。

<object>

  • <autoscale> - サーバーの自動スケール設定オプション。
  • <extraCommandArgs> - Operator によって設定された既存の引数に追加される引数のリスト。
  • <grpc> - gRPC 設定オプション。
  • <host> - Ingress または Route リソースに使用されるホスト名。
  • <ingress> - Argo CD サーバーコンポーネントの Ingress 設定。
  • <insecure> - Argo CD サーバーの安全でないフラグを切り替えます。
  • <resources> - コンテナーコンピューティングリソース。
  • <replicas> - Argo CD サーバーのレプリカの数。0 以上である必要があります。autoscale が有効な場合、replicas は無視されます。
  • <route> - ルート設定オプション。
  • <service.Type> - サービスリソースに使用される serviceType
  • <logLevel> - Argo CD サーバーコンポーネントによって使用されるログレベル。有効なオプションは、debuginfoerror、および warn です。
  • <logFormat> - Argo CD Application Controller コンポーネントが使用するログ形式。有効なオプションは text または json です。
  • <env> - サーバーのワークロード用に設定する環境。

sso

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

<object>

  • <keycloak> - Keycloak SSO プロバイダーの設定オプション。
  • <dex> - Dex SSO プロバイダーの設定オプション。
  • <provider> - シングルサインオンの設定に使用されるプロバイダーの名前。現在サポートされているオプションは Dex と Keycloak です。

statusBadgeEnabled

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

true

 

tls

TLS 設定オプション。

<object>

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

usersAnonymousEnabled

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

true

 

version

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

最新の Argo CD バージョン

 

banner

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

<object>

  • <banner.content> - バナーメッセージのコンテンツ (バナーが表示される場合は必須)。
  • <banner.url> - バナーメッセージのリンク URL (オプション)。

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

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

名前デフォルト説明

resources

<empty>

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

mountsatoken

false

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

serviceaccount

""

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

verifytls

false

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

autotls

""

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

image

argoproj/argocd

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

version

.spec.Version と同じ

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

logLevel

info

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

logFormat

text

Argo CD Repo サーバーが使用するログ形式。有効なオプションは text または json です。

execTimeout

180

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

env

<empty>

リポジトリーサーバーのワークロード用に設定する環境。

replicas

<empty>

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

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.