第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 インスタンスでも、ユーザー定義の Argo CD インスタンスでも、
reencryptです。Argo CD インスタンスへの TLS 接続では、自己署名された Argo CD 証明書ではなく、OpenShift Container Platform で設定されているデフォルトの Ingress 証明書が使用されるようになりました。ルート TLS 終端ポリシーを変更するには、Argo CD CR の.spec.server.route.tlsフィールドを設定します。 -
OpenShift Container Platform 標準への準拠を確保するために、制限付き Pod セキュリティーアドミッション (PSA) ラベルが
openshift-gitopsnamespace に適用されます。この namespace でモニタリングやログ記録などの追加のワークロードを実行している場合は、それらが制限された PSA 要件に準拠していることを確認してください。コンプライアンスが実現できない場合は、PSA ラベルが GitOps Operator により適用または制御されない、ユーザー定義のクラスタースコープ Argo CD インスタンスの使用を検討してください。
クラスター設定を管理したり、アプリケーションをデプロイメントしたりするために、新しいユーザー定義の Argo CD インスタンスをインストールしてデプロイメントできます。デフォルトでは、新しいユーザー定義のインスタンスには、デプロイされた namespace でのみリソースを管理する権限があります。
- Argo CD namespace へのアクセス権を持つ Kubernetes ユーザーは Argo CD 管理者であり、Argo CD で設定されているロールベースのアクセス制御 (RBAC) 制限をバイパスできます。管理者以外のユーザーに Argo CD namespace への読み取りまたは書き込みアクセスは付与しないでください。
-
管理者以外のユーザーがアプリケーションを作成する場合、制限のないデフォルトの
AppProjectカスタムリソース (CR) へのバインドをユーザーに許可しないでください。これを許可すると、Argo CD インスタンスとデフォルトのAppProjectCR の Kubernetes 権限により、あらゆる場所へのあらゆるデプロイメントが許可される可能性があります。このリスクを回避するために、Argo CD の RBAC が誤って設定されていた場合でもユーザーが誤って使用できないように、デフォルトのAppProjectCR を厳しく制限してください。
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 が OpenShift Container Platform クラスターにインストールされている。
手順
- OpenShift Container Platform Web コンソールにログインします。
-
Web コンソールの Administrator パースペクティブで、Operators
Installed Operators の順にクリックします。 - Project リストからユーザー定義の Argo CD インスタンスをインストールするプロジェクトを作成または選択します。
- インストールされている Operators リストから Red Hat OpenShift GitOps を選択し、Argo CD タブをクリックします。
パラメーターを設定するには、Create ArgoCD をクリックします。
-
インスタンスの Name を入力します。デフォルトでは、Name は
exampleに設定されています。 Argo CD サーバーにアクセスするための外部オペレーティングシステムルートを作成します。Server
Route をクリックし、Enabled にチェックを入れます。 ヒントまたは、次の例に示すように、YAML を設定して外部 OS ルートを作成できます。
外部 OS ルートを作成する Argo CD の例
apiVersion: argoproj.io/v1beta1 kind: ArgoCD metadata: name: example namespace: openshift-gitops spec: server: route: enabled: trueオプション: Argo CD CR の
.spec.server.route.tlsフィールドを設定して、ルート TLS 終端ポリシーを変更します。注記Argo CD サーバールートのカスタム TLS 証明書を設定するときは、
.spec.server.route.tls.keyフィールドと.spec.server.route.tls.certificateフィールドを使用しないでください。代わりに.spec.server.route.tls.externalCertificateフィールドを使用してください。カスタム TLS 証明書のルートの設定の詳細は、ルートのカスタム TLS 証明書 の例を参照してください。
-
インスタンスの Name を入力します。デフォルトでは、Name は
- Create をクリックします。
-
ユーザー定義の Argo CD インスタンスがインストールされているプロジェクトで、Networking
Routes <instance_name>-server に移動します。 -
Details タブで、Route details
Location の下にある Argo CD Web UI リンクをクリックします。Argo CD Web UI が別のブラウザーウィンドウで開きます。 オプション: OpenShift Container Platform の認証情報でログインするには、
cluster-adminsグループのユーザーであることを確認してから、Argo CD ユーザーインターフェイスでLOG IN VIA OPENSHIFTオプションを選択します。注記cluster-adminsグループのユーザーになるには、oc adm groups new cluster-admins <user>コマンドを使用します。この場合の<user>は、クラスター全体またはローカルでユーザーおよびグループにバインドできるデフォルトのクラスターロールです。ユーザー定義の Argo CD インスタンスのパスワードを取得します。
-
ナビゲーションパネルを使用して、Workloads
Secrets ページに移動します。 - Project リストを使用して、ユーザー定義の Argo CD インスタンスが作成される namespace を選択します。
- パスワードを表示するには、<argo_CD_instance_name>-cluster インスタンスを選択します。
-
Details タブで、Data
admin.password の下にあるパスワードをコピーします。
-
ナビゲーションパネルを使用して、Workloads
-
Username に
adminを使用し、Password にはコピーしたパスワードを使用して、新しいウィンドウで Argo CD UI にログインします。