11.3. 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># ... 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=" }>> config.yamlフラグを渡して、データをカレントディレクトリーの YAML ファイルにデコードします。以下に例を示します。$ echo 'RkVBVFVSRV9VU0 ... MDAwMAo=' | base64 --decode >> config.yaml-
config.yamlファイルに必要な変更を加え、ファイルをconfig.yamlとして保存します。 次のコマンドを入力して、新しい
configBundleSecretYAML を作成します。$ touch <new_configBundleSecret_name>.yaml次のコマンドを入力し、
config.yamlファイルを渡して新しいconfigBundleSecretリソースを作成します。$ 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>.yaml- 1
<config.yaml>はbase64 でデコードされたconfig.yamlファイルです。
次のコマンドを入力して、
configBundleSecretリソースを作成します。$ oc create -n <namespace> -f <new_configBundleSecret_name>.yaml出力例
secret/config-bundle created次のコマンドを入力して、新しい
configBundleSecretオブジェクトを参照するようにQuayRegistryYAML ファイルを更新します。$ oc patch quayregistry <registry_name> -n <namespace> --type=merge -p '{"spec":{"configBundleSecret":"<new_configBundleSecret_name>"}}'出力例
quayregistry.quay.redhat.com/example-registry patched
検証
QuayRegistryCR が新しいconfigBundleSecretで更新されていることを確認します。$ oc describe quayregistry -n <quay_namespace>出力例
# ... Config Bundle Secret: <new_configBundleSecret_name> # ...レジストリーにパッチを適用すると、Red Hat Quay Operator が自動的に変更を調整します。