1.3. autotls を無効にして Redis の TLS を設定する
キーと値のペアを使用して argocd-operator-redis-tls シークレットを作成して、Redis の TLS 暗号化を手動で設定できます。さらに、シークレットにアノテーションを付けて、それが適切な Argo CD インスタンスに属していることを示す必要があります。証明書とシークレットを作成する手順は、高可用性 (HA) が有効になっているインスタンスによって異なります。
手順
- OpenShift Container Platform Web コンソールにログインします。
Argo CD インスタンスを作成します。
-
Web コンソールの Administrator パースペクティブで、左側のナビゲーションパネルを使用して、Administration
CustomResourceDefinitions に移動します。 -
argocds.argoproj.ioを検索し、ArgoCDカスタムリソース定義 (CRD) をクリックします。 - CustomResourceDefinition の詳細 ページで、Instances タブをクリックし、Create ArgoCD をクリックします。
次の例のように YAML を編集または置換します。
autotls を無効にした ArgoCD CR の例
apiVersion: argoproj.io/v1beta1 kind: ArgoCD metadata: name: argocd1 namespace: openshift-gitops2 spec: ha: enabled: true3 - Create をクリックします。
Argo CD Pod が準備ができており、実行中であることを確認します。
$ oc get pods -n <namespace>1 - 1
- Argo CD インスタンスが実行されている namespace (例:
openshift-gitops)を指定します。
HA を無効にした場合の出力例
NAME READY STATUS RESTARTS AGE argocd-application-controller-0 1/1 Running 0 26s argocd-redis-84b77d4f58-vp6zm 1/1 Running 0 37s argocd-repo-server-5b959b57f4-znxjq 1/1 Running 0 37s argocd-server-6b8787d686-wv9zh 1/1 Running 0 37s注記HA 対応の TLS 設定には、少なくとも 3 つのワーカーノードを備えたクラスターが必要です。HA 設定で Argo CD インスタンスを有効にしている場合は、出力が表示されるまでに数分かかることがあります。
HA を有効にした場合の出力例
NAME READY STATUS RESTARTS AGE argocd-application-controller-0 1/1 Running 0 10m argocd-redis-ha-haproxy-669757fdb7-5xg8h 1/1 Running 0 10m argocd-redis-ha-server-0 2/2 Running 0 9m9s argocd-redis-ha-server-1 2/2 Running 0 98s argocd-redis-ha-server-2 2/2 Running 0 53s argocd-repo-server-576499d46d-8hgbh 1/1 Running 0 10m argocd-server-9486f88b7-dk2ks 1/1 Running 0 10m
-
Web コンソールの Administrator パースペクティブで、左側のナビゲーションパネルを使用して、Administration
HA 設定に応じて、次のいずれかのオプションを使用して、Redis サーバーの自己署名証明書を作成します。
HA が無効になっている Argo CD インスタンスの場合は、次のコマンドを実行します。
$ openssl req -new -x509 -sha256 \ -subj "/C=XX/ST=XX/O=Testing/CN=redis" \ -reqexts SAN -extensions SAN \ -config <(printf "\n[SAN]\nsubjectAltName=DNS:argocd-redis.<namespace>.svc.cluster.local\n[req]\ndistinguished_name=req") \1 -keyout /tmp/redis.key \ -out /tmp/redis.crt \ -newkey rsa:4096 \ -nodes \ -sha256 \ -days 10- 1
- Argo CD インスタンスが実行されている namespace (例:
openshift-gitops)を指定します。
出力例
Generating a RSA private key ...............++++ ............................++++ writing new private key to '/tmp/redis.key'HA が有効になっている Argo CD インスタンスの場合は、以下のコマンドを実行します。
$ openssl req -new -x509 -sha256 \ -subj "/C=XX/ST=XX/O=Testing/CN=redis" \ -reqexts SAN -extensions SAN \ -config <(printf "\n[SAN]\nsubjectAltName=DNS:argocd-redis-ha-haproxy.<namespace>.svc.cluster.local\n[req]\ndistinguished_name=req") \1 -keyout /tmp/redis-ha.key \ -out /tmp/redis-ha.crt \ -newkey rsa:4096 \ -nodes \ -sha256 \ -days 10- 1
- Argo CD インスタンスが実行されている namespace (例:
openshift-gitops)を指定します。
出力例
Generating a RSA private key ...............++++ ............................++++ writing new private key to '/tmp/redis-ha.key'
次のコマンドを実行して、生成された証明書とキーが
/tmpディレクトリーで利用できることを確認します。$ cd /tmp$ lsHA を無効にした場合の出力例
... redis.crt redis.key ...HA を有効にした場合の出力例
... redis-ha.crt redis-ha.key ...HA 設定に応じて、次のいずれかのオプションを使用して、
argocd-operator-redis-tlsシークレットを作成します。HA が無効になっている Argo CD インスタンスの場合は、次のコマンドを実行します。
$ oc create secret tls argocd-operator-redis-tls --key=/tmp/redis.key --cert=/tmp/redis.crtHA が有効になっている Argo CD インスタンスの場合は、以下のコマンドを実行します。
$ oc create secret tls argocd-operator-redis-tls --key=/tmp/redis-ha.key --cert=/tmp/redis-ha.crt出力例
secret/argocd-operator-redis-tls created
シークレットにアノテーションを付けて、それが Argo CD CR に属していることを示します。
$ oc annotate secret argocd-operator-redis-tls argocds.argoproj.io/name=<instance-name>1 - 1
- Argo CD インスタンスの名前を指定します (例:
argocd)。
出力例
secret/argocd-operator-redis-tls annotatedArgo CD Pod が準備ができており、実行中であることを確認します。
$ oc get pods -n <namespace>1 - 1
- Argo CD インスタンスが実行されている namespace (例:
openshift-gitops)を指定します。
HA を無効にした場合の出力例
NAME READY STATUS RESTARTS AGE argocd-application-controller-0 1/1 Running 0 26s argocd-redis-84b77d4f58-vp6zm 1/1 Running 0 37s argocd-repo-server-5b959b57f4-znxjq 1/1 Running 0 37s argocd-server-6b8787d686-wv9zh 1/1 Running 0 37s注記HA 設定で Argo CD インスタンスを有効にしている場合は、出力が表示されるまでに数分かかることがあります。
HA を有効にした場合の出力例
NAME READY STATUS RESTARTS AGE argocd-application-controller-0 1/1 Running 0 10m argocd-redis-ha-haproxy-669757fdb7-5xg8h 1/1 Running 0 10m argocd-redis-ha-server-0 2/2 Running 0 9m9s argocd-redis-ha-server-1 2/2 Running 0 98s argocd-redis-ha-server-2 2/2 Running 0 53s argocd-repo-server-576499d46d-8hgbh 1/1 Running 0 10m argocd-server-9486f88b7-dk2ks 1/1 Running 0 10m