7.3. 高度な Clair 設定
7.3.1. 管理されていない Clair 設定
Red Hat Quay 3.7 を使用すると、ユーザーは Red Hat Quay OpenShift Container Platform Operator でアンマネージド Clair 設定を実行できます。この機能により、ユーザーはアンマネージド Clair データベースを作成したり、アンマネージドデータベースなしでカスタム Clair 設定を実行したりできます。
7.3.1.1. Clair データベースの管理を解除
アンマネージド Clair データベースにより、Red Hat Quay は geo-replicated environment で作業できます。この環境では、Operator の複数のインスタンスが同じデータベースと通信する必要があります。管理されていない Clair データベースは、ユーザーがクラスターの外部に存在する高可用性 (HA) Clair データベースを必要とする場合にも使用できます。
手順
Quay Operator で、QuayRegistry カスタムリソースの
clairpostgres
コンポーネントを unmanaged に設定します。apiVersion: quay.redhat.com/v1 kind: QuayRegistry metadata: name: quay370 spec: configBundleSecret: config-bundle-secret components: - kind: objectstorage managed: false - kind: route managed: true - kind: tls managed: false - kind: clairpostgres managed: false
7.3.1.2. カスタム Clair データベースの設定
Red Hat Quay Operator for OpenShift Container Platform を使用すると、ユーザーは configBundleSecret
パラメーターを編集して独自の Clair 設定を提供できます。
手順
clair-config.yaml
を含む Quay 設定バンドルシークレットを作成します。$ oc create secret generic --from-file config.yaml=./config.yaml --from-file extra_ca_cert_rds-ca-2019-root.pem=./rds-ca-2019-root.pem --from-file clair-config.yaml=./clair-config.yaml --from-file ssl.cert=./ssl.cert --from-file ssl.key=./ssl.key config-bundle-secret
clair-config.yaml
設定の例:indexer: connstring: host=quay-server.example.com port=5432 dbname=quay user=quayrdsdb password=quayrdsdb sslrootcert=/run/certs/rds-ca-2019-root.pem sslmode=verify-ca layer_scan_concurrency: 6 migrations: true scanlock_retry: 11 log_level: debug matcher: connstring: host=quay-server.example.com port=5432 dbname=quay user=quayrdsdb password=quayrdsdb sslrootcert=/run/certs/rds-ca-2019-root.pem sslmode=verify-ca migrations: true metrics: name: prometheus notifier: connstring: host=quay-server.example.com port=5432 dbname=quay user=quayrdsdb password=quayrdsdb sslrootcert=/run/certs/rds-ca-2019-root.pem sslmode=verify-ca migrations: true
注記-
データベース証明書は、
clair-config.yaml
の Clair アプリケーション Pod の/run/certs/rds-ca-2019-root.pem
の下にマウントされます。clair-config.yaml
を設定するときに指定する必要があります。 -
clair-config.yaml
の例は、OpenShift 設定の Clair にあります。
-
データベース証明書は、
clair-config.yaml
をconfigBundleSecret
という名前のバンドルシークレットに追加します。apiVersion: v1 kind: Secret metadata: name: config-bundle-secret namespace: quay-enterprise data: config.yaml: <base64 encoded Quay config> clair-config.yaml: <base64 encoded Clair config> extra_ca_cert_<name>: <base64 encoded ca cert> clair-ssl.crt: >- clair-ssl.key: >-
注記更新されると、提供された
clair-config.yaml
が Clair Pod にマウントされます。提供されていないフィールドには、Clair 設定モジュールを使用してデフォルトが自動的に入力されます。
適切に設定した後、Clair アプリケーション Pod は Ready
状態に戻るはずです。
7.3.2. managed
データベースを使用したカスタム Clair 設定の実行
場合によっては、ユーザーは managed
データベースを使用してカスタム Clair 設定を実行したい場合があります。これは、以下のシナリオで役に立ちます。
- ユーザーがアップデーターを無効にしたい場合
ユーザーがエアギャップ環境で実行している場合
注記-
エアギャップ環境で Quay を実行している場合は、
clair-config.yaml
のairgap
パラメーターをtrue
に設定する必要があります。 - エアギャップ環境で Quay を実行している場合は、すべてのアップデーターを無効にする必要があります。
-
エアギャップ環境で Quay を実行している場合は、
clairpostgres
が managed
に設定されている場合は、カスタム Clair データベースの設定の手順を使用してデータベースを設定します。
エアギャップ環境での Clair の実行の詳細は、エアギャップ OpenShift クラスターでの Clair データベースへのアクセスの設定 を参照してください。