3.2. Red Hat Quay on OpenShift Container Platform への認証局のさらなる追加
Red Hat Quay on OpenShift Container Platform では、extra_ca_certs 設定フィールドを使用して追加の認証局 (CA) が CA ディレクトリーに入力され、その後、CA がシステムトラストバンドルに追加されます。これらの証明書は、LDAP、OIDC、ストレージシステムなどの外部サービスとの SSL/TLS 接続を検証するために Red Hat Quay によって使用されます。
OpenShift Container Platform に Red Hat Quay をデプロイまたは再デプロイする場合、外部サービスが適切に保護されて検証されるように、1 つまたは複数の CA を CA ディレクトリーに追加できます。OpenShift Container Platform デプロイメント上の Red Hat Quay では、extra_ca_certs 設定フィールドを config.yaml ファイルに手動で追加し、config.yaml を OpenShift Container Platform に再アップロードする必要があります。
以下の手順では、既存の設定ファイルをダウンロードし、OpenShift Container Platform デプロイメント上の Red Hat Quay に CA をさらに追加して、設定ファイルを再アップロードする方法を示します。
3.2.1. CLI を使用して設定ファイルを変更する リンクのコピーリンクがクリップボードにコピーされました!
CLI を使用して既存の設定をダウンロードすることにより、configBundleSecret によって保存されている config.yaml ファイルを変更できます。変更を加えた後、configBundleSecret リソースを再度アップロードして、Red Hat Quay レジストリーに変更を加えることができます。
configBundleSecret リソースによって保存される config.yaml ファイルを変更するには、既存の設定ファイルを base64 でデコードした後に変更をアップロードするという、複数のステップからなる手順が必要です。ほとんどの場合、OpenShift Container Platform Web コンソールを使用して config.yaml ファイルに変更を加える方が簡単です。
前提条件
- 管理者権限を持つユーザーとして OpenShift Container Platform クラスターにログインしている。
手順
次のコマンドを入力して、
QuayRegistryリソースを記述します。oc describe quayregistry -n <quay_namespace>
$ oc describe quayregistry -n <quay_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ... ...
# ... Config Bundle Secret: example-registry-config-bundle-v123x # ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力してシークレットデータを取得します。
oc get secret -n <quay_namespace> <example-registry-config-bundle-v123x> -o jsonpath='{.data}'$ oc get secret -n <quay_namespace> <example-registry-config-bundle-v123x> -o jsonpath='{.data}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
{ "config.yaml": "RkVBVFVSRV9VU0 ... MDAwMAo=" }{ "config.yaml": "RkVBVFVSRV9VU0 ... MDAwMAo=" }Copy to Clipboard Copied! Toggle word wrap Toggle overflow >> config.yamlフラグを渡して、データをカレントディレクトリーの YAML ファイルにデコードします。以下に例を示します。echo 'RkVBVFVSRV9VU0 ... MDAwMAo=' | base64 --decode >> config.yaml
$ echo 'RkVBVFVSRV9VU0 ... MDAwMAo=' | base64 --decode >> config.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
config.yamlファイルに必要な変更を加え、ファイルをconfig.yamlとして保存します。 次のコマンドを入力して、新しい
configBundleSecretYAML を作成します。touch <new_configBundleSecret_name>.yaml
$ touch <new_configBundleSecret_name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力し、
config.yamlファイルを渡して新しいconfigBundleSecretリソースを作成します。oc -n <namespace> create secret generic <secret_name> \ --from-file=config.yaml=</path/to/config.yaml> \ --dry-run=client -o yaml > <new_configBundleSecret_name>.yaml
$ oc -n <namespace> create secret generic <secret_name> \ --from-file=config.yaml=</path/to/config.yaml> \1 --dry-run=client -o yaml > <new_configBundleSecret_name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<config.yaml>はbase64 でデコードされたconfig.yamlファイルです。
次のコマンドを入力して、
configBundleSecretリソースを作成します。oc create -n <namespace> -f <new_configBundleSecret_name>.yaml
$ oc create -n <namespace> -f <new_configBundleSecret_name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
secret/config-bundle created
secret/config-bundle createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、新しい
configBundleSecretオブジェクトを参照するようにQuayRegistryYAML ファイルを更新します。oc patch quayregistry <registry_name> -n <namespace> --type=merge -p '{"spec":{"configBundleSecret":"<new_configBundleSecret_name>"}}'$ oc patch quayregistry <registry_name> -n <namespace> --type=merge -p '{"spec":{"configBundleSecret":"<new_configBundleSecret_name>"}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
quayregistry.quay.redhat.com/example-registry patched
quayregistry.quay.redhat.com/example-registry patchedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
QuayRegistryCR が新しいconfigBundleSecretで更新されていることを確認します。oc describe quayregistry -n <quay_namespace>
$ oc describe quayregistry -n <quay_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
... ...
# ... Config Bundle Secret: <new_configBundleSecret_name> # ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow レジストリーにパッチを適用すると、Red Hat Quay Operator が自動的に変更を調整します。
3.2.2. Red Hat Quay on OpenShift Container Platform への認証局のさらなる追加 リンクのコピーリンクがクリップボードにコピーされました!
次の例は、OpenShift Container Platform デプロイメント上の Red Hat Quay に認証局をさらに追加する方法を示しています。
前提条件
-
base64 で元の設定バンドルを
config.yamlファイルにデコードしている。詳細は、既存の設定のダウンロード を参照してください。 - 認証局 (CA) ファイルがある。
手順
新しい YAML ファイル (例:
extra-ca-certificate-config-bundle-secret.yaml)を作成します。touch extra-ca-certificate-config-bundle-secret.yaml
$ touch extra-ca-certificate-config-bundle-secret.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow extra-ca-certificate-config-bundle-secretリソースを作成します。オプション: 次のコマンドを入力すると、
extra-ca-certificate-config-bundle-secret.yamlファイルの内容を確認できます。cat extra-ca-certificate-config-bundle-secret.yaml
$ cat extra-ca-certificate-config-bundle-secret.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
configBundleSecretリソースを作成します。oc create -n <namespace> -f extra-ca-certificate-config-bundle-secret.yaml
$ oc create -n <namespace> -f extra-ca-certificate-config-bundle-secret.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
secret/extra-ca-certificate-config-bundle-secret created
secret/extra-ca-certificate-config-bundle-secret createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
QuayRegistryYAML ファイルを更新し、extra-ca-certificate-config-bundle-secretオブジェクトを参照します。oc patch quayregistry <registry_name> -n <namespace> --type=merge -p '{"spec":{"configBundleSecret":"extra-ca-certificate-config-bundle-secret"}}'$ oc patch quayregistry <registry_name> -n <namespace> --type=merge -p '{"spec":{"configBundleSecret":"extra-ca-certificate-config-bundle-secret"}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
quayregistry.quay.redhat.com/example-registry patched
quayregistry.quay.redhat.com/example-registry patchedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
QuayRegistryYAML ファイルが更新され、追加の CA 証明書configBundleSecretリソースが使用されるようにします。oc get quayregistry <registry_name> -n <namespace> -o yaml
$ oc get quayregistry <registry_name> -n <namespace> -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
... ...
# ... configBundleSecret: extra-ca-certificate-config-bundle-secret # ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow