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. 既存設定のダウンロード
次の手順では、Config Bundle Secret
を見つけて既存の設定をダウンロードする方法を示します。
手順
次のコマンドを入力して、
QuayRegistry
リソースを記述します。$ oc describe quayregistry -n <quay_namespace>
# ... Config Bundle Secret: example-registry-config-bundle-v123x # ...
次のコマンドを入力してシークレットデータを取得します。
$ oc get secret -n <quay_namespace> <example-registry-config-bundle-v123x> -o jsonpath='{.data}'
出力例
{ "config.yaml": "RkVBVFVSRV9VU0 ... MDAwMAo=" }
次のコマンドを入力してデータをデコードします。
$ echo 'RkVBVFVSRV9VU0 ... MDAwMAo=' | base64 --decode
出力例
FEATURE_USER_INITIALIZE: true BROWSER_API_CALLS_XHR_ONLY: false SUPER_USERS: - quayadmin FEATURE_USER_CREATION: false FEATURE_QUOTA_MANAGEMENT: true FEATURE_PROXY_CACHE: true FEATURE_BUILD_SUPPORT: true DEFAULT_SYSTEM_REJECT_QUOTA_BYTES: 102400000
オプション:
>> config.yaml
フラグを渡すことで、データを現在のディレクトリーの YAML ファイルにエクスポートできます。以下に例を示します。$ echo 'RkVBVFVSRV9VU0 ... MDAwMAo=' | base64 --decode >> config.yaml
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
extra-ca-certificate-config-bundle-secret
リソースを作成します。次のコマンドを入力してリソースを作成します。
$ oc -n <namespace> create secret generic extra-ca-certificate-config-bundle-secret \ --from-file=config.yaml=</path/to/config.yaml> \ 1 --from-file=extra_ca_cert_<name-of-certificate-one>=<path/to/certificate_one> \ 2 --from-file=extra_ca_cert_<name-of-certificate-two>=<path/to/certificate_two> \ 3 --from-file=extra_ca_cert_<name-of-certificate-three>=<path/to/certificate_three> \ 4 --dry-run=client -o yaml > extra-ca-certificate-config-bundle-secret.yaml
オプション: 次のコマンドを入力すると、
extra-ca-certificate-config-bundle-secret.yaml
ファイルの内容を確認できます。$ cat extra-ca-certificate-config-bundle-secret.yaml
出力例
apiVersion: v1 data: config.yaml: QUxMT1dfUFVMTFNfV0lUSE9VVF9TVFJJQ1RfTE9HR0lORzogZmFsc2UKQVVUSEVOVElDQVRJT05fVFlQRTogRGF0YWJhc2UKREVGQVVMVF9UQUdfRVhQSVJBVElPTjogMncKUFJFRkVSU... extra_ca_cert_certificate-one: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUQyVENDQXNHZ0F3SUJBZ0lVS2xOai90VUJBZHBkNURjYkdRQUo4anRuKzd3d0RRWUpLb1pJaHZjTkFRRUwKQlFBd2ZERUxNQWtHQ... extra_ca_cert_certificate-three: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUQ0ekNDQXN1Z0F3SUJBZ0lVQmJpTXNUeExjM0s4ODNWby9GTThsWXlOS2lFd0RRWUpLb1pJaHZjTkFRRUwKQlFBd2ZERUxNQWtHQ... extra_ca_cert_certificate-two: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUQ0ekNDQXN1Z0F3SUJBZ0lVVFVPTXZ2YVdFOFRYV3djYTNoWlBCTnV2QjYwd0RRWUpLb1pJaHZjTkFRRUwKQlFBd2ZERUxNQWtHQ... kind: Secret metadata: creationTimestamp: null name: custom-ssl-config-bundle-secret namespace: <namespace>
次のコマンドを入力して、
configBundleSecret
リソースを作成します。$ oc create -n <namespace> -f extra-ca-certificate-config-bundle-secret.yaml
出力例
secret/extra-ca-certificate-config-bundle-secret created
次のコマンドを入力して、
QuayRegistry
YAML ファイルを更新し、extra-ca-certificate-config-bundle-secret
オブジェクトを参照します。$ oc patch quayregistry <registry_name> -n <namespace> --type=merge -p '{"spec":{"configBundleSecret":"extra-ca-certificate-config-bundle-secret"}}'
出力例
quayregistry.quay.redhat.com/example-registry patched
次のコマンドを入力して、
QuayRegistry
YAML ファイルが更新され、追加の CA 証明書configBundleSecret
リソースが使用されるようにします。$ oc get quayregistry <registry_name> -n <namespace> -o yaml
出力例
# ... configBundleSecret: extra-ca-certificate-config-bundle-secret # ...