Red Hat Quay の設定
第1章 Red Hat Quay 設定の開始 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay は、自己管理型インストールとして、または Red Hat Quay on OpenShift Container Platform Operator を通じてデプロイできる、セキュアなアーティファクトレジストリーです。各デプロイメントタイプは設定と管理に対して異なるアプローチを提供しますが、レジストリーの動作を制御するために、それぞれ同じ設定パラメーターのセットに依存します。共通の設定パラメーターを使用すると、管理者はレジストリーがユーザー、ストレージバックエンド、認証プロバイダー、セキュリティーポリシー、およびその他の統合サービスと対話する方法を定義できます。
デプロイメントタイプに応じて、Red Hat Quay を設定する方法は 2 つあります。
-
オンプレミスの Red Hat Quay: オンプレミスの Red Hat Quay デプロイメントでは、レジストリー管理者が必要なすべてのパラメーターを含む
config.yamlファイルを提供します。このデプロイメントタイプでは、有効な設定がないとレジストリーを起動できません。 -
Red Hat Quay Operator: デフォルトでは、Red Hat Quay Operator は、最小限必要な値を生成し、必要なコンポーネントをデプロイすることで、Red Hat Quay デプロイメントを自動的に設定します。初期デプロイメント後に、
QuayRegistryカスタムリソースを変更するか、OpenShift Container Platform Web コンソール を使用することで、レジストリーの動作をカスタマイズできます。
このガイドでは、次の設定概念の概要を説明します。
- オンプレミスと Operator ベースの両方の Red Hat Quay デプロイメントタイプで現在の設定を取得、検査、および変更する方法。
- 起動に必要な最小限の設定フィールド。
- 利用可能なすべての Red Hat Quay 設定フィールドとそれらのフィールドの YAML 例の概要。
第2章 Red Hat Quay 設定の免責事項 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay の自己管理型および Operator ベースの両方のデプロイメントでは、特定の機能と設定パラメーターがアクティブに使用または実装されていません。そのため、特定の機能を有効または無効にする機能フラグや、Red Hat Support チームによって明示的に文書化されていない、またはサポートされていない、あるいは Red Hat サポートによってドキュメント化が要求されていない設定パラメーターなどの一部の機能フラグは、慎重に変更する必要があります。
使用されていない機能や文書化されていない機能は、Red Hat Quay で完全にテストおよびサポートされていない可能性、または互換性がない可能性があります。これらの設定を変更すると、予期しない動作が発生したり、デプロイメントが中断されたりする可能性があります。
第3章 Red Hat Quay 設定ファイルについて リンクのコピーリンクがクリップボードにコピーされました!
オンプレミスでデプロイされるか、OpenShift Container Platform Operator 上の Red Hat Quay によってデプロイされるかに関係なく、レジストリーの動作は config.yaml ファイルによって定義されます。レジストリーを起動するためには、config.yaml ファイルにすべての必須設定フィールドを含める必要があります。Red Hat Quay 管理者は、認証パラメーター、ストレージパラメーター、プロキシーキャッシュパラメーターなど、レジストリーをカスタマイズするオプションのパラメーターを定義することもできます。
config.yaml ファイルは有効な YAML ("YAML Ain’t Markup Language") 構文で記述する必要があり、ファイル自体にフォーマットエラーがあったり、必須フィールドが欠けていたりする場合は、Red Hat Quay は起動できません。デプロイメントタイプに関係なく、オンプレミスであっても、Operator によって設定された Red Hat Quay on OpenShift Container Platform であっても、必要な設定フィールドが若干異なっていても、YAML の原則は同じままです。
次のセクションでは、Red Hat Quay config.yaml ファイルの作成と編集に関連する基本的な YAML 構文の概要を説明します。YAML のより詳細な概要については、YAML とは を参照してください。
3.1. キーと値のペア。 リンクのコピーリンクがクリップボードにコピーされました!
config.yaml ファイル内の設定フィールドは、次の形式のキーと値のペアとして記述されます。
# ... EXAMPLE_FIELD_NAME: <value> # ...
# ...
EXAMPLE_FIELD_NAME: <value>
# ...
config.yaml ファイル内の各行には、フィールド名、コロン、スペース、そしてキーに一致する適切な値が続きます。次の例は、config.yaml ファイルで AUTHENTICATION_TYPE 設定フィールドをどのようにフォーマットする必要があるかを示しています。
AUTHENTICATION_TYPE: Database # ...
AUTHENTICATION_TYPE: Database
# ...
- 1
- クレデンシャル認証に使用する認証エンジン。
前の例では、AUTHENTICATION_TYPE は Database に設定されていますが、デプロイメントタイプによって必要な値は異なります。次の例は、認証に LDAP (Lightweight Directory Access Protocol) が使用された場合の config.yaml ファイルを示しています。
AUTHENTICATION_TYPE: LDAP # ...
AUTHENTICATION_TYPE: LDAP
# ...
3.2. インデントとネスト リンクのコピーリンクがクリップボードにコピーされました!
多くの Red Hat Quay 設定フィールドでは、ネストされた構造を示すためにインデントが必要です。インデントは 空白 またはリテラルのスペース文字を使用して行う必要があります。タブ文字は設計上許可されていません。インデントはファイル全体で一貫している必要があります。次の YAML スニペットは、BUILDLOGS_REDIS フィールドで必須の host、password、port フィールドにインデントを使用する方法を示しています。
3.3. Lists リンクのコピーリンクがクリップボードにコピーされました!
場合によっては、Red Hat Quay 設定フィールドはリストを使用して特定の値を定義します。リストはハイフン (-) とそれに続くスペースを使用してフォーマットされます。次の例は、SUPER_USERS 設定フィールドでリストを使用してスーパーユーザーを定義する方法を示しています。
# ... SUPER_USERS: - quayadmin # ...
# ...
SUPER_USERS:
- quayadmin
# ...
3.4. 引用符で囲まれた値 リンクのコピーリンクがクリップボードにコピーされました!
一部の Red Hat Quay 設定フィールドでは、変数を適切に定義するために引用符 ("") を使用する必要があります。通常、これは必要ありません。次の例は、FOOTER_LINKS 設定フィールドで引用符を使用して TERMS_OF_SERVICE_URL、PRIVACY_POLICY_URL、SECURITY_URL、および ABOUT_URL を定義する方法を示しています。
FOOTER_LINKS: "TERMS_OF_SERVICE_URL": "https://www.index.hr" "PRIVACY_POLICY_URL": "https://www.jutarnji.hr" "SECURITY_URL": "https://www.bug.hr" "ABOUT_URL": "https://www.zagreb.hr"
FOOTER_LINKS:
"TERMS_OF_SERVICE_URL": "https://www.index.hr"
"PRIVACY_POLICY_URL": "https://www.jutarnji.hr"
"SECURITY_URL": "https://www.bug.hr"
"ABOUT_URL": "https://www.zagreb.hr"
3.5. コメント リンクのコピーリンクがクリップボードにコピーされました!
ハッシュ記号 (#) を行の先頭に配置すると、コメントを追加したり、設定フィールドを一時的に無効にしたりできます。これらは設定パーサーによって無視され、レジストリーの動作に影響を与えません。以下に例を示します。
# ... # FEATURE_UI_V2: true # ...
# ...
# FEATURE_UI_V2: true
# ...
この例では、FEATURE_UI_V2 設定はパーサーによって無視されます。つまり、v2 UI を使用するオプションは無効になります。必須の設定フィールドで # 記号を使用すると、レジストリーの起動に失敗します。
第4章 オンプレミスの Red Hat Quay 設定の概要 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay のオンプレミスデプロイメントの場合、管理者によって管理される config.yaml ファイルは起動時にコンテナーにマウントされ、初期化中に Red Hat Quay によって読み取られます。config.yaml ファイルは動的に再ロードされないため、ファイルに加えた変更を有効にするにはレジストリーコンテナーを再起動する必要があります。
この章では、次の概念の概要を説明します。
- 最低限必要な設定フィールド。
- デプロイメント後に設定を編集および管理する方法。
このセクションは、オンプレミスの Red Hat Quay デプロイメントタイプに特に適用されます。Red Hat Quay on OpenShift Container Platform の設定については、「Red Hat Quay on OpenShift Container Platform 設定の概要」を参照してください。
4.1. 必須の設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay のオンプレミスデプロイメントには、次の設定フィールドが必要です。
| フィールド | タイプ | 説明 |
|
AUTHENTICATION_TYPE | 文字列 |
認証情報の認証に使用する認証エンジン。 |
|
BUILDLOGS_REDIS | Object | ビルドログキャッシュ用の Redis 接続の詳細。 |
|
.host | 文字列 | Redis にアクセスできるホスト名。 |
| .password | 文字列 | Redis インスタンスに接続するためのパスワード。 |
|
DATABASE_SECRET_KEY | 文字列 |
データベース内で機密フィールドを暗号化するのに使用されるキー。この値は、一度設定したら変更しないでください。変更すると、リポジトリーのミラーユーザー名やパスワード設定など、すべての信頼できるフィールドが無効になります。 |
|
DB_URI | 文字列 | 認証情報を含む、データベースにアクセスするための URI。 |
|
DISTRIBUTED_STORAGE_CONFIG | Object |
Red Hat Quay で使用するストレージエンジンの設定。各キーは、ストレージエンジンの一意の ID を表します。この値は、ストレージエンジンパラメーターを記述するオブジェクトのタプル (キー、値) で構成されます。 |
|
SECRET_KEY | 文字列 | ユーザーセッションを正しく解釈するために必要なセッション Cookie と CSRF トークンを暗号化するために使用されるキー。設定時に値を変更しないでください。すべての Red Hat Quay インスタンスで永続的である必要があります。すべてのインスタンスで永続的でない場合、ログインの失敗やセッションの永続性に関連するその他のエラーが発生する可能性があります。 |
|
SERVER_HOSTNAME | 文字列 | スキームなしで Red Hat Quay にアクセスできる URL。 |
|
SETUP_COMPLETE | Boolean |
これはソフトウェアの以前のバージョンから残されたアーティファクトであり、現在は |
|
USER_EVENTS_REDIS | Object | ユーザーイベント処理の Redis 接続の詳細。 |
|
.host | 文字列 | Redis にアクセスできるホスト名。 |
|
.port | 数値 | Redis にアクセスできるポート。 |
| .password | 文字列 | Redis インスタンスに接続するためのパスワード。 |
4.1.1. 最小限の設定ファイルの例 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、最小限の設定ファイルの例を 2 つ示します。1 つはローカルストレージを使用する例、もう 1 つは Google Cloud Platform によるクラウドベースのストレージを使用する例です。
4.1.1.1. ローカルストレージを使用した最小限の設定 リンクのコピーリンクがクリップボードにコピーされました!
次の例は、イメージにローカルストレージを使用する最小限の設定ファイルの例を示しています。
概念実証の目的でレジストリーをデプロイする場合は、ローカルストレージのみを使用してください。これは実稼働環境での使用を目的としていません。ローカルストレージを使用する場合は、レジストリーを起動するときに、レジストリーをコンテナー内の datastorage パスのローカルディレクトリーにマッピングする必要があります。詳細は、概念実証 - Red Hat Quay のデプロイを 参照してください。
ローカルストレージの最小設定
4.1.1.2. クラウドベースのストレージを使用した最小限の設定 リンクのコピーリンクがクリップボードにコピーされました!
ほとんどの実稼働環境では、Red Hat Quay 管理者は、サポートされているベンダーが提供するクラウドまたはエンタープライズグレードのストレージバックエンドを使用します。次の例は、イメージの保存に Google Cloud Platform を使用するように Red Hat Quay を設定する方法を示しています。サポートされているストレージプロバイダーの完全なリストについては、イメージストレージ を参照してください。
クラウドまたはエンタープライズグレードのストレージバックエンドを使用する場合、レジストリーをローカルディレクトリーにマッピングするなどの追加設定は必要ありません。
クラウドストレージの最小設定
4.2. デプロイメント後の設定ファイルの変更 リンクのコピーリンクがクリップボードにコピーされました!
初期の config.yaml ファイルを使用して Red Hat Quay レジストリーをデプロイした後、Red Hat Quay 管理者は設定ファイルを更新して、必要に応じて機能を有効化または無効化できます。この柔軟性により、管理者は特定の環境のニーズに合わせて、または特定のセキュリティーポリシーを満たすようにレジストリーをカスタマイズできます。
config.yaml ファイルは動的に再ロードされないため、変更を有効にするには、変更を加えた後に Red Hat Quay コンテナーを再起動する必要があります。
次の手順では、quay-registry コンテナーから config.yaml ファイルを取得する方法、ファイルにその機能の設定フィールドを追加して新しい機能を有効にする方法、および Podman を使用して quay-registry コンテナーを再起動する方法を示します。
前提条件
- Red Hat Quay をデプロイしている。
- レジストリー管理者である。
手順
config.yamlファイルにアクセスできる場合:config.yamlファイルを保存しているディレクトリーに移動します。以下に例を示します。cd /home/<username>/<quay-deployment-directory>/config
$ cd /home/<username>/<quay-deployment-directory>/configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい機能フラグを追加して、
config.yamlファイルに変更を加えます。次の例では、v2 UI を有効にします。# ... FEATURE_UI_V2: true # ...
# ... FEATURE_UI_V2: true # ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
config.yamlファイルに加えた変更を保存します。 次のコマンドを入力して、
quay-registryPod を再起動します。podman restart <container_id>
$ podman restart <container_id>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
config.yamlファイルへのアクセス権がなく、同じ認証情報を維持しながら新しいファイルを作成する必要がある場合:次のコマンドを入力して、
quay-registryPod のコンテナー ID を取得します。podman ps
$ podman psCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5f2297ef53ff registry.redhat.io/rhel8/postgresql-13:1-109 run-postgresql 20 hours ago Up 20 hours 0.0.0.0:5432->5432/tcp postgresql-quay 3b40fb83bead registry.redhat.io/rhel8/redis-5:1 run-redis 20 hours ago Up 20 hours 0.0.0.0:6379->6379/tcp redis 0b4b8fbfca6d registry-proxy.engineering.redhat.com/rh-osbs/quay-quay-rhel8:v3.14.0-14 registry 20 hours ago Up 20 hours 0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp, 7443/tcp, 9091/tcp, 55443/tcp quay
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5f2297ef53ff registry.redhat.io/rhel8/postgresql-13:1-109 run-postgresql 20 hours ago Up 20 hours 0.0.0.0:5432->5432/tcp postgresql-quay 3b40fb83bead registry.redhat.io/rhel8/redis-5:1 run-redis 20 hours ago Up 20 hours 0.0.0.0:6379->6379/tcp redis 0b4b8fbfca6d registry-proxy.engineering.redhat.com/rh-osbs/quay-quay-rhel8:v3.14.0-14 registry 20 hours ago Up 20 hours 0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp, 7443/tcp, 9091/tcp, 55443/tcp quayCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
quay-registryPod からconfig.yamlファイルをディレクトリーにコピーします。podman cp <container_id>:/quay-registry/conf/stack/config.yaml ./config.yaml
$ podman cp <container_id>:/quay-registry/conf/stack/config.yaml ./config.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい機能フラグを追加して、
config.yamlファイルに変更を加えます。次の例では、AUTHENTICATION_TYPEをLDAPに設定します。# ... AUTHENTICATION_TYPE: LDAP # ...
# ... AUTHENTICATION_TYPE: LDAP # ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
config.yamlファイルをquay-registry設定ボリュームにマウントし、レジストリーを再デプロイします。sudo podman run -d --rm -p 80:8080 -p 443:8443 \ --name=quay \ -v /home/<username>/<quay-deployment-directory>/config:/conf/stack:Z \ registry.redhat.io/quay/quay-rhel8:v3.14.0
$ sudo podman run -d --rm -p 80:8080 -p 443:8443 \ --name=quay \ -v /home/<username>/<quay-deployment-directory>/config:/conf/stack:Z \ registry.redhat.io/quay/quay-rhel8:v3.14.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3. 設定ファイルのトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
必要な設定フィールドをすべて追加しなかったり、一部のパラメーターに適切な情報を指定しなかったりすると、quay-registry コンテナーのデプロイが失敗する可能性があります。失敗したオンプレミスデプロイメントタイプを表示してトラブルシューティングするには、次の手順に従います。
前提条件
- 最小限の設定ファイルを作成している。
手順
次のコマンドを入力して、
quay-registryコンテナーのデプロイを試みます。このコマンドは-itを使用してデバッグ情報を表示することに注意してください。podman run -it --rm -p 80:8080 -p 443:8443 --name=quay -v /home/<username>/<quay-deployment-directory>/config:/conf/stack:Z -v /home/<username>/<quay-deployment-directory>/storage:/datastorage:Z 33f1c3dc86be
$ podman run -it --rm -p 80:8080 -p 443:8443 --name=quay -v /home/<username>/<quay-deployment-directory>/config:/conf/stack:Z -v /home/<username>/<quay-deployment-directory>/storage:/datastorage:Z 33f1c3dc86beCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、不適切な LDAP 認証情報が提供されたため、
quay-registryコンテナーのデプロイに失敗しました。
第5章 Red Hat Quay on OpenShift Container Platform 設定の概要 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform で Operator を使用して Red Hat Quay をデプロイする場合、設定は QuayRegistry カスタムリソース (CR) を通じて宣言的に管理されます。このモデルにより、クラスター管理者は、有効化するコンポーネント、ストレージバックエンド、SSL/TLS 設定、その他のコア機能など、Red Hat Quay デプロイメントの望ましい状態を定義できます。
Operator を使用して Red Hat Quay on OpenShift Container Platform をデプロイした後、管理者は config.yaml ファイルを更新し、Kubernetes シークレットで参照することで、レジストリーをさらにカスタマイズできます。この設定バンドルは、configBundleSecret フィールドを通じて QuayRegistry CR にリンクされます。
Operator は、QuayRegistry CR で定義された状態とそれに関連付けられた設定を調整し、必要に応じてレジストリーコンポーネントを自動的にデプロイまたは更新します。
このガイドでは、QuayRegistry CR の基本的な概念と、Red Hat Quay on OpenShift Container Platform デプロイメントにおける config.yaml ファイルの変更方法について説明します。QuayRegistry CR 内での管理対象外コンポーネントの使用などのより高度なトピックについては、OpenShift Container Platform での Red Hat Quay Operator のデプロイ を参照してください。
5.1. QuayRegistry CR について リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、QuayRegistry CR には次の主要なフィールドが含まれています。
-
configBundleSecret: 追加の設定パラメーターを定義するconfig.yamlファイルを含む Kubernetes Secret の名前。 -
name: Red Hat Quay レジストリーの名前。 -
namespace: レジストリーが作成された namespace またはプロジェクト。 spec.components: Operator が自動的に管理するコンポーネントのリスト。各spec.componentフィールドには、次の 2 つのフィールドが含まれます。-
kind: コンポーネントの名前。 -
managed: コンポーネントのライフサイクルが Red Hat Quay Operator によって処理されるかどうかを示すブール値。QuayRegistryCR 内のコンポーネントにmanaged: trueを設定すると、Operator がコンポーネントを管理することを意味します。
-
特に指定がない限り、すべての QuayRegistry コンポーネントは、可視性のために調整の際に自動的に管理および入力されます。次のセクションでは、主要な QuayRegistry コンポーネントについて説明し、デフォルト設定を示す YAML ファイルの例を示します。
5.2. 管理対象コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、Operator は Red Hat Quay の管理対象コンポーネントに必要なすべての設定とインストールを処理します。
Red Hat Quay Operator によって実行される独自のデプロイメントが環境に適していない場合、管理対象外コンポーネントの使用 の説明に従って、Red Hat Quay Operator に 管理対象外 リソースまたはオーバーライドを提供できます。
| フィールド | 型 | 説明 |
|---|---|---|
|
| Boolean |
環境変数やレプリカの数など、Red Hat Quay on OpenShift Container Platform のデプロイメントのオーバーライドを保持します。このコンポーネントは、管理対象外 ( |
|
| Boolean | レジストリーメタデータを保存するために使用されます。現在、PostgreSQL バージョン 13 が使用されています。 |
|
| Boolean | イメージの脆弱性スキャンを提供します。 |
|
| Boolean | ストレージライブビルダーログとガベージコレクションに必要なロックメカニズム。 |
|
| Boolean |
メモリーと CPU の消費量に応じて |
|
| Boolean |
イメージレイヤーの Blob を保存します。 |
|
| Boolean | OpenShift Container Platform の外部から Red Hat Quay レジストリーへの外部エントリーポイントを提供します。 |
|
| Boolean | オプションのリポジトリーミラーリングをサポートするようにリポジトリーミラーワーカーを設定します。 |
|
| Boolean |
Grafana ダッシュボード、個々のメトリクスへのアクセス、 |
|
| Boolean | SSL/TLS が自動的に処理されるかどうかを設定します。 |
|
| Boolean | 管理された Clair データベースを設定します。これは、Red Hat Quay のデプロイに使用される PostgreSQL データベースとは別のデータベースです。 |
次の例は、Red Hat Quay Operator によって提供される QuayRegistry カスタムリソースのデフォルト設定を示しています。これは、OpenShift Container Platform Web コンソールで利用できます。
QuayRegistry カスタムリソースの例
5.3. デプロイメント後の QuayRegistry CR の変更 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay Operator をインストールし、初期デプロイメントを作成した後、QuayRegistry カスタムリソース (CR) を変更して、Red Hat Quay 環境の側面をカスタマイズまたは再設定できます。
Red Hat Quay 管理者は、以下の理由で QuayRegistry CR を変更する場合があります。
-
コンポーネント管理を変更する場合: 独自のインフラストラクチャーを導入するために、コンポーネントを
managed: trueからmanaged: falseに切り替えます。たとえば、Google Cloud Storage や Nutanix などの外部オブジェクトストレージプラットフォームを統合するには、kind: objectstorageを unmanaged に設定できます。 -
カスタム設定を適用する場合:
configBundleSecretを更新または置き換えて、認証プロバイダー、外部 SSL/TLS 設定、機能フラグなどの新しい設定を適用します。 -
機能を有効または無効にする場合:
spec.componentsリストを変更して、リポジトリーミラーリング、Clair のスキャン、水平 Pod の自動スケーリングなどの機能を切り替えます。 - デプロイメントをスケーリングする場合: Quay アプリケーションの環境変数またはレプリカ数を調整します。
- 外部サービスと統合する場合: 外部の PostgreSQL、Redis、または Clair データベースの設定を提供し、エンドポイントまたは認証情報を更新します。
5.3.1. OpenShift Container Platform Web コンソールを使用して QuayRegistry CR を変更する リンクのコピーリンクがクリップボードにコピーされました!
QuayRegistry は、OpenShift Container Platform Web コンソールを使用して変更できます。これにより、管理対象コンポーネントを管理対象外 (managed: false) に設定し、独自のインフラストラクチャーを使用できるようになります。
前提条件
- 管理者権限を持つユーザーとして OpenShift Container Platform にログインしている。
- Red Hat Quay Operator をインストールしている。
手順
- OpenShift Container Platform Web コンソールで、Operators → Installed Operators をクリックします。
- Red Hat Quay をクリックします。
- Quay Registry をクリックします。
- Red Hat Quay レジストリーの名前 (例: example-registry) をクリックします。
- YAML をクリックします。
-
目的のコンポーネントの
管理フィールドをTrueまたはFalseに調整します。 Save をクリックします。
注記コンポーネントを管理対象外 (
managed: false) に設定すると、追加の設定が必要になる場合があります。QuayRegistryCR での管理されていないコンポーネントの設定の詳細は、依存関係に管理されていないコンポーネントを使用するを 参照してください。
5.3.2. CLI を使用して QuayRegistry CR を変更する リンクのコピーリンクがクリップボードにコピーされました!
QuayRegistry CR は CLI を使用して変更できます。これにより、管理対象コンポーネントを管理対象外 (managed: false) に設定し、独自のインフラストラクチャーを使用できるようになります。
前提条件
- 管理者権限を持つユーザーとして OpenShift Container Platform クラスターにログインしている。
手順
次のコマンドを入力して、
QuayRegistryCR を編集します。oc edit quayregistry <registry_name> -n <namespace>
$ oc edit quayregistry <registry_name> -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow QuayRegistryCR に必要な変更を加えます。注記コンポーネントを管理対象外 (
managed: false) に設定すると、追加の設定が必要になる場合があります。QuayRegistryCR での管理されていないコンポーネントの設定の詳細は、依存関係に管理されていないコンポーネントを使用するを 参照してください。- 変更を保存します。
5.3.3. configBundleSecret について リンクのコピーリンクがクリップボードにコピーされました!
spec.configBundleSecret フィールドは、QuayRegistry リソースと同じ namespace 内の Secret の名前へのオプションの参照です。この Secret には、config.yaml キー/値のペアが含まれている必要があります。値は Red Hat Quay 設定ファイルです。
configBundleSecret には config.yaml ファイルが保存されます。Red Hat Quay 管理者は、config.yaml ファイルを通じて次の設定を定義できます。
- 認証バックエンド (OIDC、LDAP など)
- 外部 TLS Termination 設定
- リポジトリー作成ポリシー
- 機能フラグ
- 通知設定
Red Hat Quay は、以下の理由でこのシークレットを更新する可能性があります。
- 新しい認証方法の有効化
- カスタム SSL/TLS 証明書の追加
- 機能の有効化
- セキュリティースキャン設定の変更
このフィールドを省略すると、Red Hat Quay Operator はデフォルト値と管理対象コンポーネントの設定に基づいて、設定シークレットを自動的に生成します。フィールドが指定されている場合、config.yaml の内容が基本設定として使用され、管理対象コンポーネントの値とマージされて最終的な設定が形成され、それが quay アプリケーション Pod にマウントされます。
QuayRegistry CR の設定方法によって、Red Hat Quay on OpenShift Container Platform の configBundleSecret’s `config.yaml ファイルに含める必要があるフィールドが決まります。次の例は、すべてのコンポーネントが Operator によって管理される場合のデフォルトの config.yaml ファイルを示しています。この例は、コンポーネントが管理対象であるか管理対象外であるか (managed: false) によって異なることに注意してください。
Operator によって管理されるすべてのコンポーネントを含む YAML サンプル
場合によっては、オブジェクトストレージなど、特定のコンポーネントを自身で管理することを選択できます。このシナリオでは、QuayRegistry CR を次のように変更します。
管理対象外 objectstorage コンポーネント
# ...
- kind: objectstorage
managed: false
# ...
# ...
- kind: objectstorage
managed: false
# ...
独自のコンポーネントを管理している場合は、そのコンポーネントに必要な情報またはリソースが含まれるようにデプロイメントを設定する必要があります。たとえば、objectstorage コンポーネントが managed: false に設定されている場合、config.yaml ファイル内に、ストレージプロバイダーに応じた関連情報を含めます。次の例は、Google Cloud Storage を使用した分散ストレージ設定を示しています。
objectstorage が管理対象外の場合に必要な情報
同様に、horizontalpodautoscaler コンポーネントを管理している場合は、付随する HorizontalPodAutoscaler カスタムリソース を作成する必要があります。
5.3.3.1. OpenShift Container Platform Web コンソールを使用して設定ファイルを変更する リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールを使用して、configBundleSecret によって保存される config.yaml ファイルを変更するには、次の手順に従います。
前提条件
- 管理者権限を持つユーザーとして OpenShift Container Platform クラスターにログインしている。
手順
- OpenShift Container Platform Web コンソールで、Operators → Installed Operators → Red Hat Quay をクリックします。
- Quay Registry をクリックします。
- Red Hat Quay レジストリーの名前 (例: example-registry) をクリックします。
- QuayRegistry details ページで、Config Bundle Secret の名前 (例: example-registry-config-bundle) をクリックします。
- Actions → Edit Secret をクリックします。
Value ボックスに、必要なキーと値のペアを追加します。たとえば、Red Hat Quay on OpenShift Container Platform デプロイメントにスーパーユーザーを追加するには、次の参照を追加します。
SUPER_USERS: - quayadmin
SUPER_USERS: - quayadminCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Save をクリックします。
検証
変更が承認されたことを確認します。
- OpenShift Container Platform Web コンソールで、Operators → Installed Operators → Red Hat Quay をクリックします。
- Quay Registry をクリックします。
- Red Hat Quay レジストリーの名前 (例: example-registry) をクリックします。
Events をクリックします。成功すると、次のメッセージが表示されます。
All objects created/updated successfully
All objects created/updated successfullyCopy to Clipboard Copied! Toggle word wrap Toggle overflow
更新された config.yaml を Secret に配置する前に、base64 でエンコードする必要があります。Secret 名が spec.configBundleSecret で指定された値と一致していることを確認します。Secret が更新されると、Operator は変更を検出し、Red Hat Quay Pod に更新を自動的にロールアウトします。
詳細な手順については、「Red Hat Quay UI を使用した設定シークレットの更新」を参照してください。
5.3.3.2. 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 が自動的に変更を調整します。
第6章 API を使用して設定を取得する リンクのコピーリンクがクリップボードにコピーされました!
FEATURE_SUPERUSER_CONFIGDUMP 設定フィールドを v1/superuser/config API エンドポイントと一緒に活用することで、CLI で設定を返すことができます。これらを組み合わせることで、Red Hat Quay スーパーユーザーは設定されているすべての Flask 設定フィールドを返すことができ、これを使用して PCI-DSS 4.0 などのさまざまなセキュリティーポリシーへの準拠の証明を示すことができます。
前提条件
-
config.yamlファイルにFEATURE_SUPERUSER_CONFIGDUMP: trueを設定している。 -
config.yamlファイルで、ユーザーにスーパーユーザーロールを割り当てている。 - スーパーユーザー用の OAuth 2 アクセストークンを生成している。
手順
v1/superuser/configAPI エンドポイントを使用して設定を取得します。以下に例を示します。curl -X GET -H "Authorization: Bearer <bearer_token>" "http://<quay-server.example.com>/api/v1/superuser/config" | jq -r .config
$ curl -X GET -H "Authorization: Bearer <bearer_token>" "http://<quay-server.example.com>/api/v1/superuser/config" | jq -r .configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 特定の情報を返すには、
.config、.env、.warning、.schemaのいずれかを渡します。以下に例を示します。curl -X GET -H "Authorization: Bearer <bearer_token>" "http://<quay-server.example.com>/api/v1/superuser/config" | jq -r .warning
$ curl -X GET -H "Authorization: Bearer <bearer_token>" "http://<quay-server.example.com>/api/v1/superuser/config" | jq -r .warningCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第7章 Red Hat Quay 3.15 の新しい設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
以下のセクションでは、Red Hat Quay 3.15 で追加された新しい設定フィールドを詳しく説明します。
7.1. Skopeo タイムアウト間隔 リンクのコピーリンクがクリップボードにコピーされました!
SKOPEO_TIMEOUT_INTERVAL が追加されました。この設定フィールドを使用すると、Red Hat Quay 管理者は、ミラーリングジョブがタイムアウトするまでの実行時間 (秒単位) を調整できます。このフィールドは必須であり、デフォルトは 300 秒、つまり 5 分です。300 秒未満に設定することはできません。
| フィールド | 型 | 説明 |
| SKOPEO_TIMEOUT_INTERVAL | Integer |
タイムアウトするまでにミラーリングジョブが実行される秒数。 |
Skopeo タイムアウトの YAML サンプル
SKOPEO_TIMEOUT_INTERVAL: 300
SKOPEO_TIMEOUT_INTERVAL: 300
7.2. スーパーユーザー configDump リンクのコピーリンクがクリップボードにコピーされました!
FEATURE_SUPERUSER_CONFIGDUMP 設定フィールドが追加されました。このフィールドを使用すると、Red Hat Quay スーパーユーザーは configDump API フィールドを活用して、設定されているすべての Flask 設定フィールドを返すことができます。これは、PCI-DSS 4.0 などのさまざまなセキュリティーポリシーへの準拠の証明を示すために使用できます。このフィールドを使用するには、SUPER_USERS 設定フィールドを使用して config.yaml ファイルでスーパーユーザーを定義する必要があります。
| フィールド | 型 | 説明 |
| FEATURE_SUPERUSER_CONFIGDUMP | Boolean |
検証のために、実行中のフレームワーク、環境、スキーマの完全な設定ダンプを有効にします。 |
スーパーユーザー configDump の YAML サンプル
# ... FEATURE_SUPERUSER_CONFIGDUMP: true # ...
# ...
FEATURE_SUPERUSER_CONFIGDUMP: true
# ...
第8章 必須の設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay が正しく動作するためには、最低限の設定フィールドが必要です。これらのフィールドは、レジストリーへのアクセス方法、イメージコンテンツの保存場所、メタデータの永続化方法、ログなどのバックグラウンドサービスの管理方法など、デプロイメントの重要な側面を定義します。
必須の設定フィールドは、主に次の 5 つのカテゴリーに分類されます。
- 一般的な必須設定フィールド。このセクションでは、認証タイプ、URL スキーム、サーバーホスト名、データベースシークレットキー、およびシークレットキーなどのコアフィールドについて説明します。
- データベース設定フィールド。Red Hat Quay では、リポジトリー、ユーザー、チーム、タグに関するメタデータを保存するために PostgreSQL リレーショナルデータベースが必要です。
- オブジェクトストレージ設定フィールド。オブジェクトストレージは、コンテナーイメージの Blob とマニフェストが保存されるバックエンドを定義します。ストレージバックエンドは、Ceph/RadosGW、AWS S3 ストレージ、Google Cloud Storage、Nutanix など、Red Hat Quay でサポートされている必要があります。
- Redis 設定フィールド。Redis は、プッシュログ、ユーザー通知、その他の操作などのデータのバックエンドとして使用されます。
8.1. 一般的な必須設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
以下の表は、Red Hat Quay デプロイメントの必須設定フィールドを説明しています。
| フィールド | 型 | 説明 |
|---|---|---|
|
AUTHENTICATION_TYPE | 文字列 |
認証情報の認証に使用する認証エンジン。 |
|
PREFERRED_URL_SCHEME | 文字列 |
Red Hat Quay へのアクセスに使用する URL スキーム。 |
|
SERVER_HOSTNAME | 文字列 |
スキームなしで Red Hat Quay にアクセスできる URL。 |
|
DATABASE_SECRET_KEY | 文字列 |
データベース内で機密フィールドを暗号化するのに使用されるキー。この値は、一度設定したら変更しないでください。変更すると、リポジトリーのミラーユーザー名やパスワード設定など、すべての信頼できるフィールドが無効になります。 |
|
SECRET_KEY | 文字列 | ユーザーセッションを正しく解釈するために必要なセッション Cookie と CSRF トークンを暗号化するために使用されるキー。設定時に値を変更しないでください。すべての Red Hat Quay インスタンスで永続的である必要があります。すべてのインスタンスで永続的でない場合、ログインの失敗やセッションの永続性に関連するその他のエラーが発生する可能性があります。 |
|
SETUP_COMPLETE | Boolean |
これはソフトウェアの以前のバージョンから残されたアーティファクトであり、現在は |
一般的な必須フィールドの例
8.2. データベース設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Red Hat Quay デプロイメントで利用可能なデータベース設定フィールドを説明します。
8.2.1. データベース URI リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay では、必要な DB_URI フィールドを使用してデータベースへの接続を設定します。
以下の表は DB_URI 設定フィールドを説明します。
| フィールド | 型 | 説明 |
|---|---|---|
|
DB_URI | 文字列 | 認証情報を含む、データベースにアクセスするための URI。
postgresql://quayuser:quaypass@quay-server.example.com:5432/quay |
データベース URI の例
# ... DB_URI: postgresql://quayuser:quaypass@quay-server.example.com:5432/quay # ...
# ...
DB_URI: postgresql://quayuser:quaypass@quay-server.example.com:5432/quay
# ...
8.2.2. データベース接続引数 リンクのコピーリンクがクリップボードにコピーされました!
オプションの接続引数は、DB_CONNECTION_ARGS パラメーターで設定されます。DB_CONNECTION_ARGS で定義されたキーと値のペアの一部は汎用的なものも、データベース固有のものもあります。
| フィールド | 型 | 説明 |
|---|---|---|
| DB_CONNECTION_ARGS | Object | タイムアウトや SSL/TLS などのデータベースの任意の接続引数。 |
| .autorollback | Boolean |
スレッドローカル接続を使用するかどうか。 |
| .threadlocals | Boolean |
自動ロールバック接続を使用するかどうか。 |
データベース接続引数の例
8.2.2.1. SSL/TLS 接続引数 リンクのコピーリンクがクリップボードにコピーされました!
SSL/TLS では、設定はデプロイするデータベースによって異なります。
sslmode オプションは、セキュアな SSL/TLS TCP/IP 接続がサーバーにネゴシエートされるかどうか、その優先度を決定します。モードは 6 つあります。
| Mode | 説明 |
|---|---|
| sslmode | セキュアな SSL/TLS または TCP/IP 接続をサーバーとネゴシエートするかどうか、またはネゴシエートする場合はどのような優先順位でネゴシエートするかを決定します。 |
| *: disable | この設定では、非 SSL/TLS 接続のみが試行されます。 |
| *: allow | 設定では、まず非 SSL/TLS 接続が試行されます。失敗すると、SSL/TLS 接続が試行されます。 |
|
*: prefer | 設定では、まず SSL/TLS 接続が試行されます。失敗すると、非 SSL/TLS 接続が試行されます。 |
| *: require | 設定では SSL/TLS 接続のみが試行されます。ルート CA ファイルが存在する場合は、verify-ca が指定されているのと同じ方法で証明書が検証されます。 |
| *: verify-ca | 設定では SSL/TLS 接続のみが試行され、サーバー証明書が信頼された認証局 (CA) によって発行されたかどうかが検証されます。 |
| *: verify-full | SSL/TLS 接続のみを試行し、サーバー証明書が信頼できる CA によって発行されていること、および要求されたサーバーのホスト名が証明書内のホスト名と一致することが確認されます。 |
PostgreSQL の有効な引数の詳細は、Database Connection Control Functions を参照してください。
PostgreSQL SSL/TLS 設定
# ... DB_CONNECTION_ARGS: sslmode: <value> sslrootcert: path/to/.postgresql/root.crt # ...
# ...
DB_CONNECTION_ARGS:
sslmode: <value>
sslrootcert: path/to/.postgresql/root.crt
# ...
8.3. ストレージオブジェクトの設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
ストレージフィールドは、コンテナーイメージ Blob とマニフェストが保存されるバックエンドを定義します。Red Hat Quay では次のストレージプロバイダーがサポートされています。
- Amazon Web Services (AWS) S3
- AWS STS S3 (Security Token Service)
- AWS CloudFront (CloudFront S3 ストレージ)
- Google Cloud Storage
- Microsoft Azure Blob Storage
- Swift Storage
- Nutanix オブジェクトストレージ
- IBM Cloud オブジェクトストレージ
- NetApp ONTAP S3 オブジェクトストレージ
- 日立コンテンツプラットフォーム (HCP) オブジェクトストレージ
サポートされているストレージプロバイダーの多くは、S3 互換の API があるため、RadosGWStorage ドライバーを使用します。
8.3.1. ストレージ設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
次の表は、Red Hat Quay のストレージ設定フィールドについて説明しています。バックエンドストレージを設定する場合、これらのフィールドは必須です。
| フィールド | 型 | 説明 |
|---|---|---|
|
DISTRIBUTED_STORAGE_CONFIG | Object |
Red Hat Quay で使用するストレージエンジンの設定。各キーは、ストレージエンジンの一意の ID を表します。この値は、ストレージエンジンパラメーターを記述するオブジェクトのタプル (キー、値) で構成されます。 |
|
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS | 文字列の配列 |
イメージをデフォルトで他のすべてのストレージエンジンに対して完全にレプリケートする必要のあるストレージエンジンの一覧 ( |
|
DISTRIBUTED_STORAGE_PREFERENCE | 文字列の配列 |
使用する優先ストレージエンジン ( |
|
最大レイヤーサイズ | String |
イメージレイヤーの最大許容サイズ。 |
ストレージ設定例
DISTRIBUTED_STORAGE_CONFIG:
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE:
- default
MAXIMUM_LAYER_SIZE: 100G
DISTRIBUTED_STORAGE_CONFIG:
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE:
- default
MAXIMUM_LAYER_SIZE: 100G
8.3.2. ローカルストレージ リンクのコピーリンクがクリップボードにコピーされました!
次の YAML は、ローカルストレージを使用した設定の例を示しています。
概念実証の 目的でレジストリーを展開する場合は、ローカルストレージのみを使用してください。生産目的には適していません。ローカルストレージを使用する場合は、レジストリーを起動するときに、レジストリーをコンテナー内の データストレージ パスのローカルディレクトリーにマップする必要があります。詳細は、概念実証 - Red Hat Quay のデプロイを 参照してください。
ローカルストレージの例
8.3.3. Red Hat OpenShift Data Foundation リンクのコピーリンクがクリップボードにコピーされました!
以下の YAML は、Red Hat OpenShift Data Foundation を使用した設定例を示しています。
8.3.4. Ceph Object Gateway (RadosGW) ストレージの例 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay は、オブジェクトストレージバックエンドとして Ceph Object Gateway (RadosGW) の使用をサポートしています。RadosGW は、プライベートアーキテクチャー向けに設計されたストレージプラットフォームである Red Hat Ceph Storage のコンポーネントです。Red Hat Ceph Storage は、Ceph と対話するための S3 互換の REST API を提供します。
RadosGW はオンプレミスの S3 互換ストレージソリューションです。これは S3 API を実装し、access_key、secret_key、bucket_name などの同じ認証フィールドを必要とします。Ceph Object Gateway と S3 API の詳細は、Ceph Object Gateway を 参照してください。
次の YAML は、RadosGW を使用した設定の例を示しています。
一般的な S3 アクセスの例を使用した RadosGW
- 1
- 一般的な s3 アクセスに使用します。一般的な s3 アクセスは、厳密には Amazon Web Services (AWS) s3 に限定されず、RadosGW または他のストレージサービスでも使用できることに注意してください。AWS S3 ドライバーを使用した一般的な s3 アクセスの例は、「AWS S3 ストレージ」を参照してください。
- 2
- オプション: 最終コピーの最大チャンクサイズ (MB 単位) を定義します。
server_side_assemblyがFalseに設定されている場合は効果がありません。 - 3
- オプション: Red Hat Quay がクライアントアセンブリーではなく、サーバー側アセンブリーと最終的なチャンクコピーの使用を試みるかどうか指定します。デフォルトは
Trueに設定されます。
8.3.5. サポートされている AWS ストレージバックエンド リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay は、複数の Amazon Web Services (AWS) ストレージバックエンドをサポートしています。
- S3 ストレージ: AWS のネイティブオブジェクトストレージサービスを使用する AWS S3 バケットの標準サポート。
- STS S3 ストレージ: IAM ロールを引き受ける AWS Security Token Service (STS) のサポートにより、より安全な S3 操作が可能になります。
- CloudFront S3 ストレージ: AWS CloudFront と統合し、AWS S3 をオリジンとして使用しながらコンテンツの高可用性配信を可能にします。
次のセクションでは、YAML の例と、各 AWS ストレージバックエンドに関する追加情報を示します。
8.3.5.1. Amazon Web Services S3 ストレージ リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay は、オブジェクトストレージバックエンドとして AWS S3 の使用をサポートしています。AWS S3 は、データの可用性、スケーラビリティー、セキュリティー、パフォーマンスを考慮して設計されたオブジェクトストレージサービスです。次の YAML は、AWS S3 を使用した設定の例を示しています。
AWS S3 の例
8.3.5.2. Amazon Web Services STS S3 ストレージ リンクのコピーリンクがクリップボードにコピーされました!
AWS Security Token Service (STS) は、AWS リソースにアクセスするための一時的な、特権が制限された認証情報を提供し、長期的なアクセスキーを保存する必要性を回避することでセキュリティーを向上させます。これは、IAM ロールを通じて認証情報をローテーションまたは管理できる OpenShift Container Platform などの環境で役立ちます。
次の YAML は、OpenShift Container Platform 設定で AWS STS を Red Hat Quay と共に使用するための設定例を示しています。
AWS STS S3 ストレージの例
8.3.5.3. AWS CloudFront ストレージ リンクのコピーリンクがクリップボードにコピーされました!
AWS CloudFront は、ユーザーの近くにコンテンツをキャッシュして配信し、パフォーマンスを向上させてレイテンシーを低減するコンテンツ配信ネットワーク (CDN) サービスです。Red Hat Quay は、CloudFrontedS3Storage ドライバーを通じて CloudFront をサポートし、CloudFront ディストリビューション経由で S3 バケットへの安全な署名付きアクセスを可能にします。
Red Hat Quay デプロイメント用に AWS CloudFront を設定する場合は、次の例を使用します。
AWS Cloudfront ストレージを設定する場合、Red Hat Quay を適切に使用するには次の条件を満たす必要があります。
-
config.yamlファイルで定義されている Red Hat Quay のストレージパスと一致するように Origin パス を設定する必要があります。この要件を満たさない場合、イメージを取得するときに403エラーが発生します。詳細は、Origin path を参照してください。 - Bucket policy と Cross-origin resource sharing (CORS) ポリシーを設定する必要があります。
-
Cloudfront S3 の YAML 例
バケットポリシーの例
8.3.6. Google Cloud Storage リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay は、オブジェクトストレージバックエンドとして Google Cloud Storage (GCS) の使用をサポートしています。Red Hat Quay と併用すると、コンテナーイメージとアーティファクトを保存するためのクラウドネイティブソリューションが提供されます。
次の YAML は、Google Cloud Storage を使用したサンプル設定を示しています。
Google Cloud Storage の例
- 1
- オプション: 接続から読み取ろうとしたときにタイムアウト例外が出力されるまでの時間 (秒単位)。デフォルトは
60秒です。また、接続を試行するときにタイムアウト例外が出力されるまでの時間 (秒単位) も含まれます。デフォルトは60秒です。
8.3.7. Microsoft Azure Blob Storage リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay は、オブジェクトストレージバックエンドとして Microsoft Azure Blob Storage の 使用をサポートしています。Azure Blob Storage を使用すると、コンテナーイメージ、メタデータ、その他のアーティファクトを安全かつクラウドネイティブな方法で永続化できます。
次の YAML は、Azure Storage を使用したサンプル設定を示しています。
Microsoft Azure Blob ストレージの例
- 1
- Azure ストレージの
endpoint_urlパラメーターは任意であり、Microsoft Azure Government (MAG) エンドポイントで使用できます。空白のままにすると、endpoint_urlは通常の Azure リージョンに接続します。Red Hat Quay 3.7 以降では、MAG Blob サービスのプライマリーエンドポイントを使用する必要があります。MAG Blob サービスのセカンダリーエンドポイントを使用すると、
AuthenticationErrorDetail:Cannot find the claimed account when trying to GetProperties for the account whusc8-secondaryエラーが発生します。
8.3.8. Swift オブジェクトストレージ リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay は、オブジェクトストレージバックエンドとして Red Hat OpenStack Platform (RHOSP) Object Storage サービス、または Swift の使用をサポートしています。Swift は独自の API と認証メカニズムを備えた S3 のような機能を提供します。
次の YAML は、Swift ストレージを使用したサンプル設定を示しています。
Swift オブジェクトストレージの例
8.3.9. Nutanix オブジェクトストレージ リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay は、オブジェクトストレージバックエンドとして Nutanix Objects Storage をサポートしています。Nutanix Object Storage は、Nutanix を使用してプライベートクラウドインフラストラクチャーを実行している組織に適しています。
次の YAML は、Nutanix Object Storage を使用したサンプル設定を示しています。
Nutanix オブジェクトストレージの例
8.3.10. IBM Cloud オブジェクトストレージ リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay は、オブジェクトストレージバックエンドとして IBM Cloud Object Storage をサポートします。IBM Cloud Object Storage は、IBM Cloud 上でスケーラブルかつ安全なストレージを必要とするクラウドネイティブアプリケーションに適しています。
次の YAML は、IBM Cloud Object Storage を使用したサンプル設定を示しています。
IBM Cloud オブジェクトストレージ
8.3.11. NetApp ONTAP S3 オブジェクトストレージ リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay は、オブジェクトストレージバックエンドとして NetApp ONTAP S3 の 使用をサポートしています。
次の YAML は、NetApp ONTAP S3 を使用したサンプル設定を示しています。
Netapp ONTAP S3 の例
8.3.12. Hitachi Content Platform オブジェクトストレージ リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay は、オブジェクトストレージバックエンドとして Hitachi Content Platform (HCP) の使用をサポートしています。
次の YAML は、オブジェクトストレージに HCP を使用するサンプル設定を示しています。
HCP ストレージ設定例
8.4. Redis 設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
Redis は、ビルドトリガーや通知などのバックエンドタスクとサービスをサポートするために Red Hat Quay によって使用されます。Redis に関連する設定タイプには、ビルドログとユーザーイベントがあります。次のセクションでは、各タイプで使用できる設定フィールドについて詳しく説明します。
8.4.1. ビルドログ リンクのコピーリンクがクリップボードにコピーされました!
ビルドログはイメージのビルドプロセス中に生成され、デバッグと監査のための分析情報を提供します。Red Hat Quay は、ユーザーインターフェイスまたは API を介してアクセスされる前に、これらのログを一時的に保存するために Redis を使用します。
Redis デプロイメントでは、次のビルドログ設定フィールドを使用できます。
| フィールド | 型 | 説明 |
|---|---|---|
|
BUILDLOGS_REDIS | Object | ビルドログキャッシュ用の Redis 接続の詳細。 |
|
.host | String |
Redis にアクセスできるホスト名。 |
|
.port | 数値 |
Redis にアクセスできるポート。 |
| .password | String |
Redis インスタンスに接続するためのパスワード。 |
|
.ssl | Boolean | Redis と Quay 間の TLS 通信を有効にするかどうか。デフォルトは false です。 |
ビルドログの設定例
8.4.2. ユーザーイベント リンクのコピーリンクがクリップボードにコピーされました!
ユーザーイベントは、リポジトリーのプッシュ、タグの作成、削除、権限の変更など、Red Hat Quay 全体のアクティビティーを追跡します。これらのイベントはアクティビティーストリームの一部として Redis に記録され、API または Web インターフェイスを通じてアクセスできます。
Redis デプロイメントでは次のユーザーイベントフィールドを使用できます。
| フィールド | 型 | 説明 |
|---|---|---|
|
USER_EVENTS_REDIS | Object | ユーザーイベント処理の Redis 接続の詳細。 |
|
.host | String |
Redis にアクセスできるホスト名。 |
|
.port | 数値 |
Redis にアクセスできるポート。 |
| .password | String |
Redis インスタンスに接続するためのパスワード。 |
| .ssl | Boolean | Redis と Quay 間の TLS 通信を有効にするかどうか。デフォルトは false です。 |
|
.ssl_keyfile | String |
使用するクライアント証明書を格納する鍵データベースファイルの名前。 |
|
.ssl_certfile | String |
SSL 証明書のファイルパスを指定するために使用されます。 |
|
.ssl_cert_reqs | String |
SSL/TLS ハンドシェーク中に実行される証明書検証のレベルを指定するために使用されます。 |
|
.ssl_ca_certs | String |
信頼された認証局 (CA) 証明書のリストを含むファイルへのパスを指定するために使用されます。 |
|
.ssl_ca_data | String |
信頼できる CA 証明書を含む文字列を PEM 形式で指定するために使用されます。 |
|
.ssl_check_hostname | Boolean |
サーバーへの SSL/TLS 接続をセットアップするときに使用されます。サーバーの SSL/TLS 証明書のホスト名が、接続先のサーバーのホスト名と一致することをクライアントが確認する必要があるかどうかを指定します。 |
Redis ユーザーイベントの例
第9章 自動化設定オプション リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay は、デプロイメントと設定を自動化するためのさまざまなメカニズムをサポートしており、これにより Red Hat Quay を GitOps および CI/CD パイプラインに統合できます。これらのオプションを定義し、API を活用することで、UI を使用せずに Red Hat Quay を初期化および管理できます。
Red Hat Quay Operator は configBundleSecret カスタムリソース (CR) を通じて config.yaml ファイルを管理するため、OpenShift Container Platform で Red Hat Quay を事前設定するには、管理者が希望する設定で有効な config.yaml ファイルを手動で作成する必要があります。このファイルは新しい Kubernetes Secret にバンドルされ、QuayRegistry CR によって参照されるデフォルトの configBundleSecret CR を置き換えるために使用する必要があります。これにより、Web ベースの設定 UI をバイパスして、OpenShift Container Platform 上の Red Hat Quay を完全に自動化された方法でデプロイできるようになります。詳細は、デプロイメント後の QuayRegistry CR の変更を 参照してください。
オンプレミスの Red Hat Quay デプロイメントの場合、有効な config.yaml ファイルを手動で作成し、レジストリーをデプロイすることで事前設定が行われます。
自動化オプションは、切断されたクラスターやエアギャップクラスターなどの宣言的な Red Hat Quay デプロイメントを必要とする環境に最適です。
9.1. 自動化用の事前設定オプション リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay は、レジストリー管理者が初期セットアップタスクと API アクセシビリティーを自動化できるようにする設定オプションを提供します。これらのオプションは、新しいデプロイメントや API 呼び出しの実行方法を制御するのに役立ちます。次のオプションは、自動化と管理制御をサポートします。
| フィールド | 型 | 説明 |
|---|---|---|
| FEATURE_USER_INITIALIZE | Boolean |
新しくデプロイされた Red Hat Quay レジストリーでの初期ユーザーブートストラップを有効にします。デプロイメント前に 注記
既存の組織内の OAuth アプリケーションによって生成された OAuth 2 アクセストークン を必要とする他のすべてのレジストリー API 呼び出しとは異なり、 |
| BROWSER_API_CALLS_XHR_ONLY | Boolean |
レジストリー API がブラウザーからの呼び出しのみを受け入れるかどうかを制御します。API への一般的なブラウザーベースのアクセスを許可するには、管理者はこのフィールドを |
| SUPER_USERS | String |
レジストリーへの完全な権限と無制限のアクセス権を持つ管理ユーザーまたはスーパーユーザーのリストを定義します。Red Hat Quay 管理者は、再デプロイを必要とせずに即時の管理アクセスを確保するために、デプロイメント前に |
| FEATURE_USER_CREATION | Boolean |
このフィールドが |
次の YAML は、自動化のための推奨設定を示しています。
自動化の推奨設定
第10章 コンポーネントと機能の設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントと機能の設定セクションでは、さまざまなサブシステムにわたって Red Hat Quay を微調整するために使用できる設定可能なフィールドについて説明します。これらのフィールドにより、管理者はレジストリーの動作をカスタマイズしたり、特定の機能を有効または無効にしたり、外部のサービスやインフラストラクチャーと統合したりできます。これらのオプションは、基本的なデプロイメントには必要ありませんが、セキュリティー、自動化、スケーラビリティー、コンプライアンス、パフォーマンスに関連する高度なユースケースをサポートします。
10.1. コア設定の概要 リンクのコピーリンクがクリップボードにコピーされました!
これらのコアフィールドを使用して、ホスト名、プロトコル、認証設定など、レジストリーの基本的な動作を設定します。
10.1.1. レジストリーのブランディングとアイデンティティーフィールド リンクのコピーリンクがクリップボードにコピーされました!
次の設定フィールドを使用すると、Red Hat Quay デプロイメントに表示されるブランディング、アイデンティティー、および連絡先情報を変更できます。これらのフィールドにより、UI 全体に表示されるタイトル、ヘッダー、フッター、組織の連絡先リンクを指定して、レジストリーがユーザーにどのように表示されるかをカスタマイズできます。
次のフィールドの一部は、Red Hat Quay v2 UI では使用できません。
| フィールド | 型 | 説明 |
|---|---|---|
| REGISTRY_TITLE | 文字列 |
指定されている場合、レジストリーの長いタイトル。Red Hat Quay デプロイメントのフロントエンド (組織のサインインページなど) に表示されます。35 文字を超えないようにしてください。 |
| REGISTRY_TITLE_SHORT | 文字列 |
指定されている場合は、省略形式のレジストリーのタイトル。タイトルは、組織のさまざまなページに表示されます。たとえば、組織の Tutorial ページのチュートリアルのタイトルとして表示されます。 |
| CONTACT_INFO | 文字列の配列 | 指定されている場合は、連絡先ページに表示される連絡先情報。連絡先が 1 つしか指定されていない場合は、連絡先のフッターが直接リンクされます。 |
| [0] | 文字列 |
電子メールを送信するためのリンクを追加します。 |
| [1] | 文字列 |
IRC チャットルームにアクセスするためのリンクを追加します。 |
| [2] | 文字列 |
電話番号を呼び出すリンクを追加します。 |
| [3] | 文字列 |
定義された URL へのリンクを追加します。 |
| フィールド | 型 | 説明 |
|---|---|---|
| BRANDING | Object | Red Hat Quay UI のロゴおよび URL のカスタムブランディング |
|
.logo | 文字列 |
メインのロゴイメージ URL。
ヘッダーロゴのデフォルトは 205x30 PX です。Web UI の Red Hat Quay サインイン画面のフォームロゴは、デフォルトで 356.5x39.7 PX です。 |
| .footer_img | 文字列 |
UI フッターのロゴ。デフォルトは 144x34 ピクセルです。 |
| .footer_url | 文字列 |
フッターイメージへのリンク。 |
| フィールド | 型 | 説明 |
|---|---|---|
| FOOTER_LINKS | Object | オンプレミスインストールの Red Hat Quay の UI でフッターリンクのカスタマイズを有効にします。 |
| .TERMS_OF_SERVICE_URL | 文字列 |
オンプレミスインストール用のカスタム利用規約。 |
| .PRIVACY_POLICY_URL | 文字列 |
オンプレミスインストール用のカスタムプライバシーポリシー。 |
| .SECURITY_URL | 文字列 |
オンプレミスインストール用のカスタムセキュリティーページ。 |
| .ABOUT_URL | 文字列 |
オンプレミスインストール用のカスタムの概要ページ。 |
レジストリーのブランディングとアイデンティティーの YAML サンプル
10.1.2. SSL/TLS 設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Red Hat Quay デプロイメントで SSL/TLS 暗号化を有効にして管理するために使用できる設定フィールドについて説明します。
| フィールド | 型 | 説明 |
|---|---|---|
| PREFERRED_URL_SCHEME | String |
|
|
SERVER_HOSTNAME | String |
スキームなしで Red Hat Quay にアクセスできる URL。 |
| SSL_CIPHERS | 文字列の配列 |
指定した場合、nginx で定義された SSL 暗号のリストが有効または無効になります。 |
| SSL_PROTOCOLS | 文字列の配列 |
指定されている場合、nginx は、リストで定義される SSL プロトコルのリストを有効にするように設定されます。リストから SSL プロトコルを削除すると、Red Hat Quay の起動時にそのプロトコルが無効になります。 |
| SESSION_COOKIE_SECURE | Boolean |
セッションクッキーに |
| EXTERNAL_TLS_TERMINATION | Boolean |
TLS がサポートされているが、Quay の前のレイヤーで終了する場合は |
SSL 設定 YAML サンプル
10.1.3. IPv6 設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
FEATURE_LISTEN_IP_VERSION 設定フィールドを使用して、Red Hat Quay がリッスンする IP プロトコルファミリー (IPv4、IPv6、またはその両方 (デュアルスタック)) を指定できます。このフィールドは、レジストリーが IPv6 のみまたはデュアルスタックネットワークで動作する必要がある環境で重要です。
| フィールド | 型 | 説明 |
|---|---|---|
| FEATURE_LISTEN_IP_VERSION | String |
IPv4、IPv6、またはデュアルスタックプロトコルファミリーを有効にします。この設定フィールドは正しく設定する必要があります。そうしないと、Red Hat Quay は起動に失敗します。デフォルト: |
IPv6 の YAML サンプル
# ... FEATURE_LISTEN_IP_VERSION: dual-stack # ...
# ...
FEATURE_LISTEN_IP_VERSION: dual-stack
# ...
10.1.4. ロギングとデバッグ変数 リンクのコピーリンクがクリップボードにコピーされました!
以下の変数は、Red Hat Quay がイベントをログに記録し、デバッグ情報を公開して、システムヘルスチェックと対話する方法を制御します。これらの設定は、レジストリーのトラブルシューティングと監視に役立ちます。
| 変数 | 型 | 説明 |
|---|---|---|
| DEBUGLOG | Boolean | デバッグログを有効または無効にするかどうか。 |
| USERS_DEBUG |
整数。 |
パスワードを含むクリアテキストで LDAP 操作をデバッグするために使用されます。 重要
|
| ALLOW_PULLS_WITHOUT_STRICT_LOGGING | Boolean |
true に指定すると、プルの監査ログのエントリーに書き込みできない場合でも、プルは成功します。これは、データベースが読み取り専用の状態にフォールバックし、その間プルを続行する必要がある場合に便利です。 |
| ENABLE_HEALTH_DEBUG_SECRET | String | 指定していると、スーパーユーザーとして認証されていない場合に詳細なデバッグ情報を表示するために正常性エンドポイントに指定できるシークレット。 |
| HEALTH_CHECKER | String |
設定済みのヘルスチェック。 |
| FEATURE_AGGREGATED_LOG_COUNT_RETRIEVAL | Boolean |
集計されたログ数の取得を許可するかどうか。 |
ロギングとデバッグの YAML サンプル
10.1.5. レジストリー状態とシステム動作の設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
次の設定フィールドは、Red Hat Quay レジストリーの動作状態と、外部システムとの対話方法を制御します。これらの設定により、管理者はメンテナンスの目的でレジストリーを制限された読み取り専用モードに設定し、特定のホスト名が Webhook の対象になるのをブロックすることで、追加のセキュリティーを強制できます。
| フィールド | 型 | 説明 |
|---|---|---|
| REGISTRY_STATE | String |
レジストリーの状態 |
| WEBHOOK_HOSTNAME_BLACKLIST | 文字列の配列 | 検証時に、ローカルホスト以外に Webhook から禁止するホスト名のセット。 |
レジストリー状態とシステム動作の YAML サンプル
10.2. ユーザーエクスペリエンスとインターフェイス リンクのコピーリンクがクリップボードにコピーされました!
これらのフィールドは、ブランディング、ページネーション、ブラウザーの動作、recaptcha のようなアクセシビリティーオプションなど、ユーザーが UI を操作する方法を設定します。これには、ユーザー向けのパフォーマンスと表示設定も含まれます。
10.2.1. Web UI とユーザーエクスペリエンスの設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
これらの設定フィールドは、Red Hat Quay Web インターフェイスの動作と外観、および全体的なユーザーエクスペリエンスを制御します。このセクションのオプションを使用すると、管理者はログイン動作、アバター表示、ユーザーのオートコンプリート、セッション処理、カタログの表示をカスタマイズできます。
| フィールド | 型 | 説明 |
|---|---|---|
| AVATAR_KIND | String |
表示する avatar のタイプ。インライン (local) または Gravatar (gravatar)。 |
| FRESH_LOGIN_TIMEOUT | String |
新規ログイン時にユーザーがパスワードの再入力を要求されるまでの時間。 |
| FEATURE_UI_V2 | Boolean | 設定すると、ユーザーは v2 ベータ UI 環境を試すことができます。
デフォルト: |
| FEATURE_UI_V2_REPO_SETTINGS | Boolean |
+ デフォルト: |
| FEATURE_DIRECT_LOGIN | Boolean |
ユーザーが UI に直接ログインできるかどうか |
| FEATURE_PARTIAL_USER_AUTOCOMPLETE | Boolean |
true に設定すると、オートコンプリートは部分的なユーザー名に適用されます。 |
| FEATURE_LIBRARY_SUPPORT | Boolean |
Docker からプルおよびプッシュするときに "名前空間のない" リポジトリーを許可するかどうか。 |
| FEATURE_PERMANENT_SESSIONS | Boolean |
セッションが永続的かどうか。 |
| FEATURE_PUBLIC_CATALOG | Boolean |
true に設定すると、 |
YAML サンプル
10.2.1.1. v2 ユーザーインターフェイス設定 リンクのコピーリンクがクリップボードにコピーされました!
FEATURE_UI_V2 を有効にすると、現在のバージョンのユーザーインターフェイスと新しいバージョンのユーザーインターフェイスを切り替えることができます。
- この UI は現在ベータ版であり、変更される可能性があります。現在の状態では、ユーザーは組織、リポジトリー、およびイメージタグのみを作成、表示、および削除できます。
- 古い UI で Red Hat Quay を実行している場合にセッションがタイムアウトになると、ユーザーはポップアップウィンドウでパスワードを再度入力する必要がありました。新しい UI では、ユーザーはメインページに戻り、ユーザー名とパスワードの認証情報を入力する必要があります。これは既知の問題であり、新しい UI の今後のバージョンで修正される予定です。
- 従来の UI と新しい UI の間で、イメージマニフェストのサイズが報告される方法に違いがあります。従来の UI では、イメージマニフェストはメビバイト単位で報告されていました。新しい UI では、Red Hat Quay はメガバイト (MB) の標準定義を使用して、イメージマニフェストのサイズを報告します。
10.2.2. セッションタイムアウト設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
次の設定フィールドは、同じ名前の Flask API 設定フィールドに依存しています。
セッションの有効期間を変更することは推奨できません。管理者は、セッションタイムアウトを設定するときに、割り当てられた時間を認識する必要があります。時間が早すぎると、ワークフローが中断する可能性があります。
| フィールド | 型 | 説明 |
|---|---|---|
| PERMANENT_SESSION_LIFETIME | Integer |
永続セッションの有効期限を設定するために使用される
デフォルト: |
セッションタイムアウトの YAML サンプル
# ... PERMANENT_SESSION_LIFETIME: 3000 # ...
# ...
PERMANENT_SESSION_LIFETIME: 3000
# ...
10.3. ユーザーとアクセス管理 リンクのコピーリンクがクリップボードにコピーされました!
これらのフィールドを使用して、ユーザーの作成、認証、管理方法を設定します。これには、スーパーユーザー、アカウント回復、アプリケーション固有のトークン、ログイン動作、LDAP、OAuth、OIDC などの外部アイデンティティープロバイダーの設定が含まれます。
10.3.1. ユーザー設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
ユーザー設定フィールドは、Red Hat Quay デプロイメントにおけるユーザーアカウントの動作を定義します。これらのフィールドにより、ユーザーの作成、アクセスレベル、メタデータの追跡、回復オプション、namespace の管理を制御できます。組織のガバナンスおよびセキュリティーポリシーに合わせて、招待のみの作成やスーパーユーザー権限などの制限を適用することもできます。
| フィールド | 型 | 説明 |
|---|---|---|
| FEATURE_SUPER_USERS | Boolean |
スーパーユーザーがサポートされているかどうか |
| FEATURE_USER_CREATION | Boolean |
ユーザーを作成できるかどうか (スーパーユーザー以外による) |
| FEATURE_USER_LAST_ACCESSED | Boolean |
ユーザーが最後にアクセスした時間を記録するかどうか |
| FEATURE_USER_LOG_ACCESS | Boolean |
true に設定すると、ユーザーは自分の名前空間の監査ログにアクセスできるようになります。 |
| FEATURE_USER_METADATA | Boolean |
ユーザーのメタデータを収集してサポートするかどうか |
| FEATURE_USERNAME_CONFIRMATION | Boolean |
true に設定すると、OpenID Connect (OIDC) または LDAP などのデータベース以外の認証プロバイダーでログインする場合に、初期ユーザー名を確認および変更できます。 |
| FEATURE_USER_RENAME | Boolean |
true に設定すると、ユーザーは自分の名前空間の名前を変更できます |
| FEATURE_INVITE_ONLY_USER_CREATION | Boolean |
作成されるユーザーは他のユーザーから招待される必要があるかどうか |
| FRESH_LOGIN_TIMEOUT | String |
新規ログイン時にユーザーがパスワードの再入力を要求されるまでの時間。 |
| USERFILES_LOCATION | String |
ユーザーがアップロードしたファイルを配置するストレージエンジンの ID。 |
| USERFILES_PATH | String |
ユーザーがアップロードしたファイルを配置するストレージの下のパス。 |
| USER_RECOVERY_TOKEN_LIFETIME | String |
ユーザーアカウントを復元するためのトークンが有効な期間。 |
| FEATURE_SUPERUSERS_FULL_ACCESS | Boolean | スーパーユーザーが所有していない名前空間、または明示的なアクセス許可を持っていない名前空間内の他のリポジトリーからコンテンツを読み取り、書き込み、削除する機能をスーパーユーザーに付与します。
デフォルト: |
| FEATURE_SUPERUSERS_ORG_CREATION_ONLY | Boolean | スーパーユーザーのみに組織の作成を許可するかどうか。
デフォルト: |
| FEATURE_SUPERUSER_CONFIGDUMP | Boolean |
検証のために、実行中のフレームワーク、環境、スキーマの完全な設定ダンプを有効にします。 |
| FEATURE_RESTRICTED_USERS | Boolean |
デフォルト: |
| RESTRICTED_USERS_WHITELIST | 文字列 |
|
| GLOBAL_READONLY_SUPER_USERS | 文字列 |
設定すると、公開リポジトリーかどうかに関係なく、このリストのユーザーにすべてのリポジトリーへの読み取りアクセスが許可されます。 |
ユーザーの YAML サンプル
- 1
RESTRICTED_USERS_WHITELISTフィールドが設定されている場合、ホワイトリストに登録されたユーザーは、FEATURE_RESTRICTED_USERS がTrueに設定されている場合でも、組織を作成したり、リポジトリーからのコンテンツの読み取りや書き込みを行ったりできます。user2、user3、user4などの他のユーザーは、組織の作成、コンテンツの読み取りまたは書き込みが制限されています。
10.3.2. ロボットアカウント設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
次の設定フィールドを使用すると、ロボットアカウントの作成と操作をグローバルに禁止できます。
関連情報
| フィールド | 型 | 説明 |
|---|---|---|
| ROBOTS_DISALLOW | Boolean |
|
ロボットアカウントを許可しない YAML サンプル
# ... ROBOTS_DISALLOW: true # ...
# ...
ROBOTS_DISALLOW: true
# ...
10.3.3. LDAP 設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
次の設定フィールドにより、管理者は Red Hat Quay を LDAP ベースの認証システムと統合できます。AUTHENTICATION_TYPE が LDAP に設定されている場合、Red Hat Quay は LDAP ディレクトリーに対してユーザーを認証し、チームの同期、スーパーユーザーのアクセス制御、制限されたユーザーロール、安全な接続パラメーターなどの追加のオプション機能をサポートできます。
このセクションでは、次の LDAP シナリオの YAML サンプルを示します。
- 基本的な LDAP 設定
- LDAP 制限付きユーザー設定
- LDAP スーパーユーザー設定
| フィールド | 型 | 説明 |
|---|---|---|
|
AUTHENTICATION_TYPE | 文字列 |
|
| FEATURE_TEAM_SYNCING | Boolean |
認証エンジン (OIDC、LDAP、または Keystone) のバックアップグループからチームメンバーシップを同期できるようにするかどうか。 |
| FEATURE_NONSUPERUSER_TEAM_SYNCING_SETUP | Boolean |
有効にすると、スーパーユーザー以外のユーザーもチームの同期を設定できます。 |
| LDAP_ADMIN_DN | 文字列 | LDAP 認証の管理 DN。 |
| LDAP_ADMIN_PASSWD | 文字列 | LDAP 認証の管理パスワード。 |
| LDAP_ALLOW_INSECURE_FALLBACK | Boolean | LDAP 認証で SSL の非セキュアなフォールバックを許可するかどうか。 |
| LDAP_BASE_DN | 文字列の配列 | LDAP 認証のベース DN。 |
| LDAP_EMAIL_ATTR | 文字列 | LDAP 認証のメール属性。 |
| LDAP_UID_ATTR | 文字列 | LDAP 認証の uid 属性。 |
| LDAP_URI | 文字列 | LDAP URI。 |
| LDAP_USER_FILTER | 文字列 | LDAP 認証のユーザーフィルター。 |
| LDAP_USER_RDN | 文字列の配列 | LDAP 認証のユーザー RDN。 |
| LDAP_SECONDARY_USER_RDNS | 文字列の配列 | ユーザーオブジェクトが存在する組織単位が複数ある場合は、Secondary User Relative DNs を指定します。 |
| TEAM_RESYNC_STALE_TIME | 文字列 |
チームでチーム同期が有効になっている場合は、そのメンバーシップを確認し、必要に応じて再同期する頻度。 |
| LDAP_SUPERUSER_FILTER | 文字列 |
このフィールドを使用すると、管理者は Red Hat Quay 設定ファイルを更新してデプロイメントを再起動することなく、スーパーユーザーを追加または削除できます。
このフィールドでは、 |
| LDAP_GLOBAL_READONLY_SUPERUSER_FILTER | 文字列 |
設定すると、公開リポジトリーかどうかに関係なく、このリストのユーザーにすべてのリポジトリーへの読み取りアクセスが許可されます。 |
| LDAP_RESTRICTED_USER_FILTER | 文字列 |
このフィールドでは、 |
| FEATURE_RESTRICTED_USERS | Boolean |
デフォルト: |
| LDAP_TIMEOUT | Integer |
LDAP 操作の時間制限を秒単位で指定します。これにより、LDAP 検索、バインド、またはその他の操作にかかる時間が制限されます。 |
| LDAP_NETWORK_TIMEOUT | Integer |
LDAP サーバーへの接続を確立するための時間制限を秒単位で指定します。これは、 |
基本的な LDAP 設定の YAML サンプル
- 1
- 必須。
LDAPに設定する必要があります。 - 2
- 必須。LDAP 認証の管理 DN。
- 3
- 必須。LDAP 認証の管理パスワード。
- 4
- 必須。LDAP 認証に SSL/TLS の安全でないフォールバックを許可するかどうか。
- 5
- 必須。LDAP 認証のベース DN。
- 6
- 必須。LDAP 認証のメール属性。
- 7
- 必須。LDAP 認証の UID 属性。
- 8
- 必須。LDAP URI。
- 9
- 必須。LDAP 認証のユーザーフィルター。
- 10
- 必須。LDAP 認証のユーザー RDN。
- 11
- オプション: ユーザーオブジェクトが存在する組織単位が複数ある場合の Secondary User Relative DN。
LDAP 制限ユーザー設定の YAML サンプル
LDAP スーパーユーザー設定リファレンスの YAML サンプル
- 1
- 指定されたユーザーをスーパーユーザーとして設定します。
10.3.4. OAuth 設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
以下のフィールドは、OAuth を使用して外部アイデンティティープロバイダーを通じて認証を処理する場合の Red Hat Quay の動作を定義します。トークンの割り当てやホワイトリストに登録されたクライアント ID などのグローバル OAuth オプション、および GitHub と Google のプロバイダー固有の設定を行うことができます。
| フィールド | 型 | 説明 |
|---|---|---|
| DIRECT_OAUTH_CLIENTID_WHITELIST | 文字列の配列 | ユーザーの承認なしに直接 OAuth 承認を実行できる Quay 管理 アプリケーションのクライアント ID のリスト。 |
| FEATURE_ASSIGN_OAUTH_TOKEN | Boolean | 組織管理者が他のユーザーに OAuth トークンを割り当てることを許可します。 |
グローバル OAuth の YAML サンプル
関連情報
| フィールド | 型 | 説明 |
|---|---|---|
| FEATURE_GITHUB_LOGIN | Boolean |
GitHub ログインがサポートされるかどうか。 |
| GITHUB_LOGIN_CONFIG | Object | 外部ログインプロバイダーとして GitHub (Enterprise) を使用するための設定。 |
| .ALLOWED_ORGANIZATIONS | 文字列の配列 | ORG_RESTRICT オプションを使用するためにホワイトリスト化された GitHub (Enterprise) 組織の名前。 |
| .API_ENDPOINT | 文字列 |
使用する GitHub (Enterprise) API のエンドポイント。github.com に対してオーバーライドする必要があります。 |
|
.CLIENT_ID | 文字列 |
この Red Hat Quay インスタンスの登録されたクライアント ID。 |
|
.CLIENT_SECRET | 文字列 |
この Red Hat Quay インスタンスの登録済みクライアントシークレット。 |
|
.GITHUB_ENDPOINT | 文字列 |
GitHub (Enterprise) のエンドポイント。 |
| .ORG_RESTRICT | Boolean | true の場合は、組織のホワイトリスト内のユーザーのみが、このプロバイダーを使用してログインできます。 |
Github OAth の YAML サンプル
| フィールド | 型 | 説明 |
|---|---|---|
| FEATURE_GOOGLE_LOGIN | Boolean |
Google ログインがサポートされるかどうか。 |
| GOOGLE_LOGIN_CONFIG | Object | 外部認証に Google を使用するための設定。 |
|
.CLIENT_ID | 文字列 |
この Red Hat Quay インスタンスの登録済みクライアント ID。 |
|
.CLIENT_SECRET | 文字列 |
この Red Hat Quay インスタンスの登録済みクライアントシークレット。 |
Google OAuth の YAML サンプル
10.3.5. OIDC 設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
Azure Entra ID (旧称 Azure AD)、Okta、Keycloak など、OpenID Connect (OIDC) 互換のアイデンティティープロバイダーを通じてユーザーを認証するように Red Hat Quay を設定できます。これらのフィールドは、OIDC ログインフロー中に使用される必要なクライアント認証情報、エンドポイント、およびトークンの動作を定義します。
| フィールド | 型 | 説明 |
|---|---|---|
|
<文字列>_LOGIN_CONFIG | 文字列 |
OIDC 設定を保持する親キー。通常は、OIDC プロバイダーの名前 ( |
|
.CLIENT_ID | 文字列 |
この Red Hat Quay インスタンスの登録されたクライアント ID。 |
|
.CLIENT_SECRET | 文字列 |
Red Hat Quay インスタンスの登録クライアントシークレット。 |
| .LOGIN_BINDING_FIELD | 文字列 | 内部承認が LDAP に設定されている場合に使用されます。Red Hat Quay はこのパラメーターを読み取り、このユーザー名でユーザーの LDAP ツリーで検索を試みます。存在する場合は、その LDAP アカウントへのリンクが自動的に作成されます。 |
| .LOGIN_SCOPES | Object | Red Hat Quay が OIDC プロバイダーとの通信に使用するスコープを追加します。 |
| .OIDC_ENDPOINT_CUSTOM_PARAMS | 文字列 |
OIDC エンドポイントでのカスタムクエリーパラメーターのサポートを追加しました。エンドポイント |
| .OIDC_ISSUER | 文字列 |
ユーザーが検証する発行者を定義できます。たとえば、JWT トークンは、トークンを発行したユーザーを定義する |
|
.OIDC_SERVER | 文字列 |
認証に使用される OIDC サーバーのアドレス。 |
| .PREFERRED_USERNAME_CLAIM_NAME | 文字列 | 優先ユーザー名をトークンのパラメーターに設定します。 |
| .SERVICE_ICON | 文字列 | ログイン画面のアイコンを変更します。 |
|
.SERVICE_NAME | 文字列 |
認証されているサービスの名前。 |
| .VERIFIED_EMAIL_CLAIM_NAME | 文字列 | ユーザーの電子メールアドレスを確認するために使用されるクレームの名前。 |
| .PREFERRED_GROUP_CLAIM_NAME | 文字列 | ユーザーのグループメンバーシップに関する情報を保持する OIDC トークンペイロード内のキー名。 |
| .OIDC_DISABLE_USER_ENDPOINT | Boolean |
|
OIDC の YAML サンプル
10.3.6. Recaptcha 設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay インスタンスで Recaptcha サポートを有効にすると、自動システムによるユーザーログインおよびアカウント回復フォームの不正使用を防ぐことができます。
| フィールド | 型 | 説明 |
|---|---|---|
| FEATURE_RECAPTCHA | Boolean |
ユーザーログインおよびリカバリーに Recaptcha が必要かどうか |
| RECAPTCHA_SECRET_KEY | 文字列 | recaptcha が有効になっている場合は、Recaptcha サービスの秘密鍵 |
| RECAPTCHA_SITE_KEY | 文字列 | recaptcha が有効になっている場合は、Recaptcha サービスのサイトキー |
Recaptcha の YAML サンプル
# ... FEATURE_RECAPTCHA: true RECAPTCHA_SITE_KEY: "<site_key>" RECAPTCHA_SECRET_KEY: "<secret_key>" # ...
# ...
FEATURE_RECAPTCHA: true
RECAPTCHA_SITE_KEY: "<site_key>"
RECAPTCHA_SECRET_KEY: "<secret_key>"
# ...
10.3.7. JWT 設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay は、JSON Web Token (JWT) を使用して外部認証をサポートするように設定できます。この統合により、サードパーティーのアイデンティティープロバイダーまたはトークン発行者は、トークンの検証、ユーザーの検索、およびパーミッションのクエリーを処理する特定のエンドポイントを呼び出すことによって、ユーザーを認証および認可できるようになります。
| フィールド | 型 | 説明 |
|---|---|---|
| JWT_AUTH_ISSUER | 文字列 |
JWT ユーザーのエンドポイント |
| JWT_GETUSER_ENDPOINT | 文字列 |
JWT ユーザーのエンドポイント |
| JWT_QUERY_ENDPOINT | 文字列 |
JWT クエリーのエンドポイント |
| JWT_VERIFY_ENDPOINT | 文字列 |
JWT 検証のエンドポイント |
JWT の YAML サンプル
10.3.8. アプリケーショントークン設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
アプリケーション固有のトークンにより、ユーザーはトークンベースの認証情報を使用して、Red Hat Quay で認証できるようになります。これらのフィールドは、Docker などの CLI ツールに役立つ可能性があります。
| フィールド | 型 | 説明 |
|---|---|---|
| FEATURE_APP_SPECIFIC_TOKENS | Boolean |
有効な場合、ユーザーは Docker CLI で使用するトークンを作成できます。 |
| APP_SPECIFIC_TOKEN_EXPIRATION | 文字列 |
外部アプリトークンの有効期限。 |
| EXPIRED_APP_SPECIFIC_TOKEN_GC | 文字列 |
期限切れとなった外部アプリケーションがガべージコレクションが行われるまでに留まる期間。 |
アプリケーショントークンの YAML サンプル
# ... FEATURE_APP_SPECIFIC_TOKENS: true APP_SPECIFIC_TOKEN_EXPIRATION: "30d" EXPIRED_APP_SPECIFIC_TOKEN_GC: "1d" # ...
# ...
FEATURE_APP_SPECIFIC_TOKENS: true
APP_SPECIFIC_TOKEN_EXPIRATION: "30d"
EXPIRED_APP_SPECIFIC_TOKEN_GC: "1d"
# ...
10.4. セキュリティーおよびパーミッション リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Red Hat Quay 内のコアセキュリティー動作とアクセスポリシーを制御する設定フィールドについて説明します。
10.4.1. namespace とリポジトリー管理の設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
以下の設定フィールドは、Red Hat Quay が namespace とリポジトリーを管理する方法を制御します。これには、自動イメージプッシュ時の動作、デフォルトの可視性、レート制限の例外などが含まれます。
| フィールド | 型 | 説明 |
|---|---|---|
| DEFAULT_NAMESPACE_MAXIMUM_BUILD_COUNT | 数値 |
namespace でキューに入れることができるデフォルトの最大ビルド数です。 |
| CREATE_PRIVATE_REPO_ON_PUSH | Boolean |
プッシュで作成された新規リポジトリーがプライベート表示に設定されているかどうか。 |
| CREATE_NAMESPACE_ON_PUSH | Boolean |
既存の組織への新規プッシュで namespace を作成するかどうか。 |
| PUBLIC_NAMESPACES | 文字列の配列 | namespace がパブリック namespace リストで定義されている場合、ユーザーが namespace のメンバーであるかどうかに関係なく、その namespace は すべて のユーザーのリポジトリーリストページに表示されます。一般的には、企業のお客様が "よく知られた" namespace のセットを設定する際に使用されます。 |
| NON_RATE_LIMITED_NAMESPACES | 文字列の配列 |
|
| DISABLE_PUSHES | Boolean |
他のすべての機能を維持しながら、レジストリーへの新しいコンテンツのプッシュを無効にします。データベースが |
namespace とリポジトリー管理の YAML サンプル
10.4.2. ネストされたリポジトリー設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
ネストされたリポジトリーパス名のサポートが FEATURE_EXTENDED_REPOSITORY_NAMES プロパティーによって追加されました。このオプションの設定は、デフォルトで config.yaml に追加されます。有効にすると、リポジトリー名で / を使用できます。
| フィールド | 型 | 説明 |
|---|---|---|
| FEATURE_EXTENDED_REPOSITORY_NAMES | Boolean |
ネストされたリポジトリーのサポートを有効にします。 |
ネストされたリポジトリーの YAML サンプル
# ... FEATURE_EXTENDED_REPOSITORY_NAMES: true # ...
# ...
FEATURE_EXTENDED_REPOSITORY_NAMES: true
# ...
10.5. 追加のセキュリティー設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
次の設定フィールドは、Red Hat Quay デプロイメントに追加のセキュリティー制御を提供します。これらのオプションにより、管理者は認証の運用方法を強制したり、コンテンツへの匿名アクセスを制御したり、チームへの招待を必須にしたりすることができます。さらに、セキュリティー要件が強化された環境向けに、FIPS に準拠した暗号化機能を有効にすることも可能です。
| 機能 | タイプ | 説明 |
|---|---|---|
| FEATURE_REQUIRE_TEAM_INVITE | Boolean |
ユーザーをチームに追加するときに招待を必要とするかどうか。 |
| FEATURE_REQUIRE_ENCRYPTED_BASIC_AUTH | Boolean |
(暗号化されたトークンではなく) 暗号化されていないパスワードを Basic 認証に使用できるかどうか |
| FEATURE_ANONYMOUS_ACCESS | Boolean |
匿名ユーザーにパブリックリポジトリーの参照とプルを許可するかどうか。 |
| FEATURE_FIPS | Boolean |
true に設定すると、Red Hat Quay は FIPS 準拠のハッシュ関数を使用して実行されます。 |
追加のセキュリティーの YAML サンプル
10.6. レート制限とパフォーマンス設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
次のフィールドは、Red Hat Quay デプロイメントのレート制限とパフォーマンス関連の動作を制御します。
| フィールド | 型 | 説明 |
|---|---|---|
| FEATURE_RATE_LIMITS | Boolean |
API およびレジストリーエンドポイントでレート制限を有効にするかどうか。FEATURE_RATE_LIMITS を |
| PROMETHEUS_NAMESPACE | 文字列 |
公開されているすべての Prometheus メトリクスに適用される接頭辞。 |
レート制限とパフォーマンスの YAML サンプル
# ... FEATURE_RATE_LIMITS: false PROMETHEUS_NAMESPACE: quay # ...
# ...
FEATURE_RATE_LIMITS: false
PROMETHEUS_NAMESPACE: quay
# ...
10.7. 検索設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
次の設定フィールドは、Red Hat Quay ユーザーインターフェイスで検索結果をページ分割する方法を定義します。
| フィールド | 型 | 説明 |
|---|---|---|
| SEARCH_MAX_RESULT_PAGE_COUNT | 数値 |
ユーザーが検索で表示できる最大ページ数。 |
| SEARCH_RESULTS_PER_PAGE | 数値 |
検索ページでページごとに返される結果数。 |
検索の YAML サンプル
# ... SEARCH_MAX_RESULT_PAGE_COUNT: 10 SEARCH_RESULTS_PER_PAGE: 10 # ...
# ...
SEARCH_MAX_RESULT_PAGE_COUNT: 10
SEARCH_RESULTS_PER_PAGE: 10
# ...
10.8. ストレージとデータ管理 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Red Hat Quay がデータを保存、管理、監査する方法を制御する設定フィールドについて説明します。
10.8.1. イメージストレージ機能 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay は、コンテナーイメージデータを管理する際のスケーラビリティー、回復力、柔軟性を強化するイメージストレージ機能をサポートしています。これらの機能により、Red Hat Quay はリポジトリーをミラーリングしたり、NGINX を介してストレージアクセスをプロキシーしたり、複数のストレージエンジン間でデータをレプリケートしたりできるようになります。
| フィールド | 型 | 説明 |
|---|---|---|
| FEATURE_REPO_MIRROR | Boolean |
true に設定されている場合は、リポジトリーのミラーリングを有効にします。 |
| FEATURE_PROXY_STORAGE | Boolean |
NGINX を使用してストレージ内のすべての直接ダウンロード URL をプロキシーするかどうか。 |
| FEATURE_STORAGE_REPLICATION | Boolean |
ストレージエンジン間で自動的にレプリケートするかどうか。 |
イメージストレージの YAML サンプル
# ... FEATURE_REPO_MIRROR: true FEATURE_PROXY_STORAGE: false FEATURE_STORAGE_REPLICATION: true # ...
# ...
FEATURE_REPO_MIRROR: true
FEATURE_PROXY_STORAGE: false
FEATURE_STORAGE_REPLICATION: true
# ...
10.8.2. アクションログストレージ設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay は、リポジトリーイベント、認証アクション、イメージ操作などのユーザーおよびシステムのアクティビティーを追跡するための詳細なアクションログを維持します。デフォルトでは、このログデータはデータベースに保存されますが、管理者は、高度な分析、監査、コンプライアンスのために、Elasticsearch や Splunk などの外部システムにログをエクスポートまたは転送するようにデプロイメントを設定できます。
| フィールド | 型 | 説明 |
|---|---|---|
| FEATURE_LOG_EXPORT | Boolean |
アクションログのエクスポートを許可するかどうか。 |
| LOGS_MODEL | String |
ログデータを処理するための推奨される方法を指定します。 |
| LOGS_MODEL_CONFIG | Object | アクションログのログモデル設定。 |
| ALLOW_WITHOUT_STRICT_LOGGING | Boolean |
|
アクションログストレージの YAML サンプル
10.8.2.1. アクションログのローテーションおよびアーカイブ設定 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Red Hat Quay でのアクションログのローテーションとアーカイブに関連する設定フィールドについて説明します。有効にすると、古いログが自動的にローテーションされ、指定されたストレージの場所にアーカイブされるため、ログの保持とストレージの使用率を効率的に管理できます。
| フィールド | 型 | 説明 |
|---|---|---|
| FEATURE_ACTION_LOG_ROTATION | Boolean |
ログのローテーションとアーカイブを有効にすると、30 日以上経過したすべてのログがストレージに移動されます。 |
| ACTION_LOG_ARCHIVE_LOCATION | String |
アクションログのアーカイブが有効な場合は、アーカイブされたデータを配置するストレージエンジン。 |
| ACTION_LOG_ARCHIVE_PATH | String |
アクションログのアーカイブが有効な場合は、アーカイブされたデータを配置するストレージのパス。 |
| ACTION_LOG_ROTATION_THRESHOLD | String |
ログをローテーションする間隔。 |
アクションログのローテーションとアーカイブの YAML サンプル
10.8.2.2. アクションログの監査設定 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Red Hat Quay 内の監査ロギングの設定フィールドについて説明します。監査ロギングを有効にすると、通常のユーザー、ロボットアカウント、トークンベースのアカウントの UI ログイン、ログアウト、Docker ログインなどの詳細なユーザーアクティビティーが追跡されます。
| フィールド | 型 | 説明 |
|---|---|---|
| ACTION_LOG_AUDIT_LOGINS | Boolean |
|
監査ログの設定の YAML サンプル
# ... ACTION_LOG_AUDIT_LOGINS: true # ...
# ...
ACTION_LOG_AUDIT_LOGINS: true
# ...
10.8.3. Elasticsearch 設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
次の設定フィールドを使用して、Red Hat Quay を外部 Elasticsearch サービスと統合します。これにより、アクションログ、リポジトリーイベント、その他の操作レコードなどの構造化データを内部データベースの外部に保存およびクエリーできるようになります。
| フィールド | 型 | 説明 |
|---|---|---|
| LOGS_MODEL_CONFIG.elasticsearch_config.access_key | String |
Elasticsearch ユーザー (または AWS ES の IAM キー)。 |
| .elasticsearch_config.host | String |
Elasticsearch クラスターのエンドポイント。 |
| .elasticsearch_config.index_prefix | String |
Elasticsearch インデックスの接頭辞。 |
| .elasticsearch_config.index_settings | Object | Elasticsearch のインデックス設定。 |
| LOGS_MODEL_CONFIG.elasticsearch_config.use_ssl | Boolean |
Elasticsearch に SSL を使用するかどうか。 |
| .elasticsearch_config.secret_key | String |
Elasticsearch パスワード (または AWS ES の IAM シークレット)。 |
| .elasticsearch_config.aws_region | String |
AWS リージョン。 |
| .elasticsearch_config.port | 数値 |
Elasticsearch クラスターのポート。 |
| .kinesis_stream_config.aws_secret_key | String |
AWS シークレットキー。 |
| .kinesis_stream_config.stream_name | String |
アクションログを送信する AWS Kinesis ストリーム。 |
| .kinesis_stream_config.aws_access_key | String |
AWS アクセスキー。 |
| .kinesis_stream_config.retries | 数値 |
1 回のリクエストに対する再試行の最大回数。 |
| .kinesis_stream_config.read_timeout | 数値 |
読み取りタイムアウト (秒単位)。 |
| .kinesis_stream_config.max_pool_connections | 数値 |
プール内の接続の最大数。 |
| .kinesis_stream_config.aws_region | String |
AWS リージョン。 |
| .kinesis_stream_config.connect_timeout | 数値 |
接続タイムアウト (秒単位)。 |
| .producer | String |
ログプロデューサータイプ。 |
| .kafka_config.topic | String |
ログエントリーを公開するために使用される Kafka トピック。 |
| .kafka_config.bootstrap_servers | アレイ | クライアントのブートストラップに使用される Kafka ブローカーのリスト。 |
| .kafka_config.max_block_seconds | 数値 |
|
Elasticsearch の YAML サンプル
10.8.3.1. Splunk 設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
次のフィールドを使用して、アクションログを Splunk エンドポイントにエクスポートするように Red Hat Quay を設定します。この設定により、監査ログとイベントログを外部の Splunk サーバーに送信して、集中的な分析、検索、長期保存を行うことができます。
| フィールド | 型 | 説明 |
|---|---|---|
| producer | String |
Splunk をログエクスポーターとして設定する場合は、 |
| splunk_config | Object | Splunk アクションログまたは Splunk クラスター設定のログモデル設定。 |
| .host | String | Splunk クラスターのエンドポイント。 |
| .port | Integer | Splunk 管理クラスターのエンドポイントのポート番号。 |
| .bearer_token | String | Splunk での認証に使用されるベアラートークン。 |
| .verify_ssl | Boolean |
HTTPS 接続の TLS/SSL 検証を有効 ( |
| .index_prefix | String | Splunk で使用されるインデックス接頭辞。 |
| .ssl_ca_path | String |
SSL 検証用の認証局 (CA) を含む |
Splunk 設定の YAML サンプル
10.8.3.1.1. Splunk HEC 設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay 用に Splunk HTTP Event Collector (HEC) を設定する場合は、次のフィールドを使用できます。
| フィールド | 型 | 説明 |
|---|---|---|
| producer | String |
Splunk HTTP Event Collector (HEC) を設定するときは、 |
| splunk_hec_config | Object | Splunk HTTP Event Collector アクションログのログモデル設定。 |
| .host | String | Splunk クラスターのエンドポイント。 |
| .port | Integer | Splunk 管理クラスターのエンドポイントポート。 |
| .hec_token | String | Splunk での認証に使用される HEC トークン。 |
| .url_scheme | String |
Splunk サービスにアクセスするための URL スキーム。Splunk が SSL/TLS の背後にある場合は |
| .verify_ssl | Boolean |
HTTPS 接続の SSL/TLS 検証を有効 ( |
| .index | String | ログの保存に使用する Splunk インデックス。 |
| .splunk_host | String | ログに記録されたイベントに割り当てるホスト名。 |
| .splunk_sourcetype | String |
イベントに関連付ける Splunk の |
Splunk HEC の YAML サンプル
10.9. ビルドと自動化 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Red Hat Quay 内で自動ビルドを管理するために使用できる設定オプションについて説明します。これらの設定は、Dockerfile ビルドのトリガー、処理、保存方法と、ビルドログの管理およびアクセス方法を制御します。
これらのフィールドは次の目的で使用できます。
- ソースリポジトリーからの自動ビルドを有効または無効にします。
- ビルドマネージャーの動作とリソース管理を設定します。
- 監査またはデバッグの目的でビルドログへのアクセスと保持を制御します。
これらのオプションは、CI/CD パイプラインを合理化し、ビルドポリシーを適用して、レジストリー全体のビルド履歴の可視性を維持するのに役立ちます。
関連情報
10.9.1. Dockerfile ビルドトリガーフィールド リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Dockerfiles およびソースコードリポジトリーから Red Hat Quay で自動ビルドを有効にして管理するために使用される設定フィールドについて説明します。これらのフィールドを使用すると、ビルドの動作を定義し、GitHub、GitLab、Bitbucket トリガーのサポートを有効または無効にして、各 SCM プロバイダーの OAuth 認証情報とエンドポイントを提供できます。
| フィールド | 型 | 説明 |
|---|---|---|
| FEATURE_BUILD_SUPPORT | Boolean |
Dockerfile ビルドをサポートするかどうか |
| SUCCESSIVE_TRIGGER_FAILURE_DISABLE_THRESHOLD | 数値 |
|
| SUCCESSIVE_TRIGGER_INTERNAL_ERROR_DISABLE_THRESHOLD | 数値 |
|
Dockerfile ビルドサポートの YAML サンプル
# ... FEATURE_BUILD_SUPPORT: true SUCCESSIVE_TRIGGER_FAILURE_DISABLE_THRESHOLD: 100 SUCCESSIVE_TRIGGER_INTERNAL_ERROR_DISABLE_THRESHOLD: 5 # ...
# ...
FEATURE_BUILD_SUPPORT: true
SUCCESSIVE_TRIGGER_FAILURE_DISABLE_THRESHOLD: 100
SUCCESSIVE_TRIGGER_INTERNAL_ERROR_DISABLE_THRESHOLD: 5
# ...
| フィールド | 型 | 説明 |
|---|---|---|
| FEATURE_GITHUB_BUILD | Boolean |
GitHub ビルドトリガーをサポートするかどうか。 |
| GITHUB_TRIGGER_CONFIG | Object | ビルドトリガーに GitHub Enterprise を使用するための設定。 |
|
.GITHUB_ENDPOINT | 文字列 |
GitHub Enterprise のエンドポイント。 |
| .API_ENDPOINT | 文字列 |
使用する GitHub Enterprise API のエンドポイント。 |
|
.CLIENT_ID | 文字列 |
この Red Hat Quay インスタンスの登録済みクライアント ID。これを |
|
.CLIENT_SECRET | 文字列 | この Red Hat Quay インスタンスの登録されたクライアントシークレット。 |
Github ビルドトリガーの YAML サンプル
| フィールド | 型 | 説明 |
|---|---|---|
| FEATURE_BITBUCKET_BUILD | Boolean |
Bitbucket ビルドトリガーをサポートするかどうか。 |
| BITBUCKET_TRIGGER_CONFIG | Object | ビルドトリガーに BitBucket を使用するための設定。 |
|
.CONSUMER_KEY | 文字列 | この Red Hat Quay インスタンスの登録済みコンシューマーキー (クライアント ID)。 |
|
.CONSUMER_SECRET | 文字列 | この Red Hat Quay インスタンスの登録済みコンシューマーシークレット (クライアントシークレット)。 |
Bitbucket ビルドトリガーの YAML サンプル
| フィールド | 型 | 説明 |
|---|---|---|
| FEATURE_GITLAB_BUILD | Boolean |
GitLab ビルドトリガーをサポートするかどうか。 |
| GITLAB_TRIGGER_CONFIG | Object | ビルドトリガーに Gitlab を使用するための設定。 |
|
.GITLAB_ENDPOINT | 文字列 | Gitlab Enterprise が実行されているエンドポイント。 |
|
.CLIENT_ID | 文字列 | この Red Hat Quay インスタンスの登録済みクライアント ID。 |
|
.CLIENT_SECRET | 文字列 | この Red Hat Quay インスタンスの登録されたクライアントシークレット。 |
GitLab ビルドトリガーの YAML サンプル
10.9.2. ビルドマネージャー設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
次の設定フィールドは、Red Hat Quay のビルドマネージャーコンポーネントがコンテナーイメージのビルドをオーケストレーションおよび管理する方法を制御します。これには、Redis 調整、Kubernetes や EC2 などのエグゼキューターバックエンド、ビルダーイメージ設定、高度なスケジュール設定と再試行ポリシーの設定が含まれます。
これらのフィールドは、インフラストラクチャー環境とワークロードの要件に合わせて設定する必要があります。
| フィールド | 型 | 説明 |
|---|---|---|
| ALLOWED_WORKER_COUNT | 文字列 |
Red Hat Quay Pod ごとにインスタンス化される Build Worker の数を定義します。通常は |
| ORCHESTRATOR_PREFIX | 文字列 | すべての Redis キーに追加する一意の接頭辞を定義します。これは、オーケストレーターの値を他の Redis キーから分離するのに役立ちます。 |
| REDIS_HOST | Object | Redis サービスのホスト名。 |
| REDIS_PASSWORD | 文字列 | Redis サービスへの認証に使用するパスワード。 |
| REDIS_SSL | Boolean | Redis の接続に SSL/TLS を使用するかどうかを定義します。 |
| REDIS_SKIP_KEYSPACE_EVENT_SETUP | Boolean |
デフォルトでは、Red Hat Quay はランタイム時のキーイベントに必要なキースペースイベントを設定しません。これを行うには、 |
| EXECUTOR | 文字列 |
このタイプのエグゼキュータの定義を開始します。有効な値は |
| BUILDER_NAMESPACE | 文字列 | Red Hat Quay のビルドが行われる Kubernetes namespace。 |
| K8S_API_SERVER | Object | ビルドが行われる OpenShift Container Platform クラスターの API サーバーのホスト名。 |
| K8S_API_TLS_CA | Object |
API 呼び出しの実行時に |
| KUBERNETES_DISTRIBUTION | 文字列 |
使用している Kubernetes の種類を示します。有効な値は |
| CONTAINER_* | Object |
各 |
| NODE_SELECTOR_* | Object |
|
| CONTAINER_RUNTIME | Object |
ビルダーが |
| SERVICE_ACCOUNT_NAME/SERVICE_ACCOUNT_TOKEN | Object |
|
| QUAY_USERNAME/QUAY_PASSWORD | Object |
|
| WORKER_IMAGE | Object | Red Hat Quay ビルダーイメージのイメージ参照 (registry.redhat.io/quay/quay-builder)。 |
| WORKER_TAG | Object | 希望するビルダーイメージのタグ。最新バージョンは 3 です。 |
| BUILDER_VM_CONTAINER_IMAGE | Object |
各 Red Hat Quay Build を実行するために必要な内部仮想マシンを保持するコンテナーイメージへの完全な参照。( |
| SETUP_TIME | 文字列 |
ビルドがまだビルドマネージャーに登録されていない場合に、タイムアウトする秒数を指定します。デフォルトは |
| MINIMUM_RETRY_THRESHOLD | 文字列 |
この設定は、複数のエグゼキューターで使用されます。別のエグゼキューターを選択するまでに、ビルドの開始を何回再試行するかを示します。 |
| SSH_AUTHORIZED_KEYS | Object |
|
ビルドマネージャー設定フィールド
10.9.3. ビルドログ設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Red Hat Quay でビルドログを管理するために使用できる設定フィールドについて説明します。これらの設定により、ビルドログがアーカイブされる場所、アクセスできるユーザー、および保存方法が決まります。
| フィールド | 型 | 説明 |
|---|---|---|
| FEATURE_READER_BUILD_LOGS | Boolean |
true に設定すると、 |
| LOG_ARCHIVE_LOCATION | 文字列 |
アーカイブされたビルドログを配置する、 |
| LOG_ARCHIVE_PATH | 文字列 |
アーカイブされたビルドログを |
ビルドログの YAML サンプル
# ... FEATURE_READER_BUILD_LOGS: true LOG_ARCHIVE_LOCATION: s3_us_east LOG_ARCHIVE_PATH: archives/buildlogs # ...
# ...
FEATURE_READER_BUILD_LOGS: true
LOG_ARCHIVE_LOCATION: s3_us_east
LOG_ARCHIVE_PATH: archives/buildlogs
# ...
10.10. タグとイメージの管理 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Red Hat Quay 内でタグとイメージを管理する方法を制御する設定フィールドについて説明します。これらの設定は、イメージのクリーンアップを自動化し、リポジトリーミラーを管理して、キャッシュを通じてパフォーマンスを向上させるのに役立ちます。
これらのフィールドは次の目的で使用できます。
- タグが付いていないイメージや古くなったイメージの有効期限ポリシーを定義します。
- 外部リポジトリーのレジストリーへのミラーリングを有効にしてスケジュールします。
- モデルキャッシュを活用して、タグおよびリポジトリー操作のパフォーマンスを最適化します。
これらのオプションは、最新のイメージレジストリー環境を維持するのに役立ちます。
10.10.1. タグの有効期限の設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
タグの有効期限とガベージコレクションを自動化するには、次の設定オプションを使用できます。これらの機能は、定義されたポリシーに基づいて未使用または期限切れのタグのクリーンアップを可能にすることで、ストレージ使用量の管理に役立ちます。
| フィールド | 型 | 説明 |
|---|---|---|
| FEATURE_GARBAGE_COLLECTION | Boolean |
リポジトリーのガベージコレクションを有効にするかどうか。 |
|
TAG_EXPIRATION_OPTIONS | 文字列の配列 |
有効にすると、ユーザーが namespace 内のタグの有効期限を選択できるオプション。 |
|
DEFAULT_TAG_EXPIRATION | 文字列 |
タイムマシンのデフォルトの設定可能なタグ有効期限。 |
| FEATURE_CHANGE_TAG_EXPIRATION | Boolean |
ユーザーおよび組織が namespace のタグの有効期限を変更できるかどうか。 |
| FEATURE_AUTO_PRUNE | Boolean |
|
| NOTIFICATION_TASK_RUN_MINIMUM_INTERVAL_MINUTES | Integer |
有効期限が切れるイメージに関する通知を再実行する頻度を定義する間隔 (分単位)。 |
| DEFAULT_NAMESPACE_AUTOPRUNE_POLICY | Object | 組織全体のデフォルトの自動プルーニングポリシー。 |
| .method: number_of_tags | Object | 保持するタグの数を指定するオプション。 |
| .value: <integer> | Integer |
method: number_of_tags と一緒に使用した場合に、保持するタグの数を示します。
たとえば、2 つのタグを保持するには、 |
| .creation_date | Object | タグを保持する期間を指定するオプション。 |
| .value: <integer> | Integer |
creation_date と一緒に使用した場合に、タグを保持する期間を示します。
秒 ( |
| AUTO_PRUNING_DEFAULT_POLICY_POLL_PERIOD | Integer | 自動プルーナーワーカーをレジストリーレベルで実行する期間。デフォルトでは、1 日に 1 回 (24 時間に 1 回) 実行されるように設定されています。値は秒単位で指定する必要があります。 |
| FEATURE_IMAGE_EXPIRY_TRIGGER | Boolean |
ユーザーがイメージの有効期限に関する通知をセットアップできるようにします。通知は v2 UI でのみ返されます。 |
タグ有効期限の YAML サンプル
- 1
- 残すタグを 10 個に指定します。
作成日に基づくレジストリー自動プルーニングポリシーの YAML サンプル
# ... DEFAULT_NAMESPACE_AUTOPRUNE_POLICY: method: creation_date value: 1y # ...
# ...
DEFAULT_NAMESPACE_AUTOPRUNE_POLICY:
method: creation_date
value: 1y
# ...
- 1
- 作成日から 1 年後にプルーニングするタグを指定します。
10.10.2. 設定フィールドのミラーリング リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay のミラーリングにより、リポジトリーとアップストリームソースの自動同期が可能になります。この機能は、リモートコンテナーイメージのローカルミラーを維持したり、非接続環境での可用性を確保したり、キャッシュを通じてパフォーマンスを向上させたりするのに役立ちます。
関連情報
| フィールド | 型 | 説明 |
|---|---|---|
| FEATURE_REPO_MIRROR | Boolean |
リポジトリーミラーリングを有効または無効にする |
| REPO_MIRROR_INTERVAL | 数値 |
次にリポジトリーミラー候補をチェックするまでの秒数。 |
| REPO_MIRROR_SERVER_HOSTNAME | 文字列 |
|
| REPO_MIRROR_TLS_VERIFY | Boolean |
HTTPS を必要とし、ミラー時に Quay レジストリーの証明書を検証します。 |
| REPO_MIRROR_ROLLBACK | Boolean |
デフォルト: |
| SKOPEO_TIMEOUT_INTERVAL | Integer |
タイムアウトするまでにミラーリングジョブが実行される秒数。 |
ミラーリング設定の YAML サンプル
10.10.3. ModelCache 設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
ModelCache は、アクセスされたデータを保存し、データベースの負荷を軽減するために Red Hat Quay が使用するキャッシュメカニズムです。Quay は、デフォルトの Memcache のほか、Redis や Redis Cluster など、キャッシュ用の複数のバックエンドをサポートしています。
- Memcache (デフォルト): 追加の設定は必要ありません。
- Redis: 単一インスタンスとして、または読み取り専用レプリカとして設定できます。
- Redis Cluster: 大規模なデプロイメントに高可用性とシャーディングを提供します。
| フィールド | 型 | 説明 |
|---|---|---|
| DATA_MODEL_CACHE_CONFIG.engine | String |
キャッシュバックエンドエンジン。 |
| .redis_config.primary.host | String |
|
| .redis_config.primary.port | 数値 | プライマリー Redis インスタンスによって使用されるポート。 |
| .redis_config.primary.password | String |
プライマリー Redis インスタンスで認証するためのパスワード。 |
| .redis_config.primary.ssl | Boolean | プライマリー Redis 接続に SSL/TLS を使用するかどうか。 |
| .redis_config.startup_nodes | マップの配列 |
|
| redis_config.password | String |
Redis クラスターでの認証に使用されるパスワード。 |
| .redis_config.read_from_replicas | Boolean | Redis クラスターのレプリカからの読み取り操作を許可するかどうか。 |
| .redis_config.skip_full_coverage_check | Boolean | true に設定すると、Redis クラスターの完全なカバレッジチェックがスキップされます。 |
| .redis_config.ssl | Boolean | Redis クラスター通信に SSL/TLS を使用するかどうか。 |
| .replica.host | String | Redis レプリカインスタンスのホスト名。オプション: |
| .replica.port | 数値 | Redis レプリカインスタンスによって使用されるポート。 |
| .replica.password | String |
Redis レプリカのパスワード。 |
| .replica.ssl | Boolean | Redis レプリカ接続に SSL/TLS を使用するかどうか。 |
オプションのレプリカ付き単一 Redis の YAML サンプル
クラスター化された Redis の YAML サンプル
10.11. スキャナーとメタデータ リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Red Hat Quay 内のセキュリティースキャン、メタデータの表示、およびアーティファクトの関係に関連する設定フィールドについて説明します。
これらの設定により、Red Hat Quay で次のことが可能になり、可視性とセキュリティーが強化されます。
- 脆弱性スキャナーと統合して、コンテナーイメージの既知の CVE を評価します。
- レジストリーに保存されているモデルカードを通じて AI/ML モデルメタデータをレンダリングします。
- OCI アーティファクト仕様に準拠して、Referrers API を使用してコンテナーアーティファクト間の関係を公開します。
これらの機能を組み合わせることで、ソフトウェアサプライチェーンの透明性が向上し、セキュリティーポリシーが強化され、新しいメタデータ駆動型ワークフローがサポートされます。
10.11.1. Clair セキュリティースキャナーの設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay は、Clair セキュリティースキャナーを活用して、コンテナーイメージの脆弱性を検出できます。これらの設定フィールドは、スキャナーを有効にする方法、新しいコンテンツをインデックスする頻度、使用するエンドポイント、通知の処理方法を制御します。
| フィールド | 型 | 説明 |
|---|---|---|
| FEATURE_SECURITY_SCANNER | Boolean |
セキュリティースキャナーを有効または無効にする |
| FEATURE_SECURITY_NOTIFICATIONS | Boolean |
セキュリティースキャナーが有効になっている場合は、セキュリティー通知をオンまたはオフにします |
| SECURITY_SCANNER_V4_REINDEX_THRESHOLD | String |
このパラメーターは、最終のインデックス作成から状態が変更されたか、以前に失敗したマニフェストのインデックスをもう一度作成するまで待機する最小時間を判断するのに使用します。データは manifestsecuritystatus テーブルの |
| SECURITY_SCANNER_V4_ENDPOINT | String |
V4 セキュリティースキャナーのエンドポイント。 |
| SECURITY_SCANNER_V4_PSK | String | Clair 用に生成された共有キー (PSK)。 |
| SECURITY_SCANNER_ENDPOINT | String |
V2 セキュリティースキャナーのエンドポイント。 |
| SECURITY_SCANNER_INDEXING_INTERVAL | Integer |
このパラメーターは、セキュリティースキャナーのインデックス作成の間隔 (秒単位) を決定するために使用されます。インデックスのトリガーが発生すると、Red Hat Quay は、Clair でインデックス化する必要のあるマニフェストに対してそのデータベースをクエリーします。これには、インデックス付けされていないマニフェストや、以前にインデックス付けに失敗したマニフェストが含まれます。 |
| FEATURE_SECURITY_SCANNER_NOTIFY_ON_NEW_INDEX | Boolean |
新しいプッシュの脆弱性に関する通知の送信を許可するかどうか。 |
| SECURITY_SCANNER_V4_MANIFEST_CLEANUP | Boolean |
Red Hat Quay ガベージコレクターが、他のタグまたはマニフェストによって参照されていないマニフェストを削除するかどうか。 |
| NOTIFICATION_MIN_SEVERITY_ON_NEW_INDEX | String |
検出された脆弱性に関する新しい通知の最低セキュリティーレベルを設定します。最初のインデックスの後に大量の通知が作成されるのを回避します。定義されていない場合は、デフォルトで |
| SECURITY_SCANNER_V4_INDEX_MAX_LAYER_SIZE | String |
インデックス化に許可される最大レイヤーサイズ。レイヤーサイズが設定済みのサイズを超えると、Red Hat Quay UI は、 |
セキュリティースキャナーの YAML 設定
- 1
- 推奨される最大値は
10Gです。
10.11.1.1. Clair v4 によるインデックスの再作成 リンクのコピーリンクがクリップボードにコピーされました!
Clair v4 がマニフェストをインデックス化する場合は、結果として、決定論的なものである必要があります。たとえば、同じマニフェストが同じインデックスレポートを生成する必要があります。これは、異なるスキャナーを使用するとレポートで返される特定のマニフェストに関連して異なる情報を生成するため、スキャナーが変更されるまで True となります。そのため、Clair v4 はインデックスエンジン (/indexer/api/v1/index_state) の状態表現を公開し、スキャナー設定が変更されたかどうかを判別します。
Red Hat Quay は、Quay のデータベースの解析時にこれをインデックスレポートに保存し、このインデックス状態を活用します。以前にスキャンされてからこの状態が変更された場合、Red Hat Quay は定期的なインデックスプロセス時にマニフェストの再作成を試行します。
デフォルトでは、このパラメーターは 30 秒に設定されています。インデックス作成のプロセスをより頻繁に実行する場合は、時間を短縮します。たとえば、新規タグをプッシュしてから、30 秒待たずに、UI でセキュリティースキャンの結果を表示する場合などです。また、ユーザーは要求パターンを Clair に制御し、Red Hat Quay データベースで実行されるデータベース操作のパターンをより詳細に制御する必要がある場合にパラメーターを変更することもできます。
10.11.2. モデルカードレンダリング設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay は、機械学習ワークフローで一般的に使用されるメタデータドキュメントの形式であるモデルカードのレンダリングをサポートし、OCI 準拠イメージ内のモデル関連コンテンツの可視性と管理性を向上させます。
| フィールド | 型 | 説明 |
|---|---|---|
| FEATURE_UI_MODELCARD | Boolean |
UI で Model Card イメージタブを有効にします。デフォルトは |
| UI_MODELCARD_ARTIFACT_TYPE | 文字列 | モデルカードアーティファクトタイプを定義します。 |
| UI_MODELCARD_ANNOTATION | Object | このオプションフィールドは、OCI イメージに格納されているモデルカードのレイヤーアノテーションを定義します。 |
| UI_MODELCARD_LAYER_ANNOTATION | Object | このオプションフィールドは、OCI イメージに格納されているモデルカードのレイヤーアノテーションを定義します。 |
モデルカードの YAML サンプル
- 1
- UI で Model Card イメージタブを有効にします。
- 2
- モデルカードアーティファクトタイプを定義します。この例では、アーティファクトタイプは
application/x-mlmodelです。 - 3
- オプション: イメージに
artifactTypeが定義されていない場合、このフィールドはマニフェストレベルでチェックされます。一致するアノテーションが見つかった場合、システムはUI_MODELCARD_LAYER_ANNOTATIONに一致するアノテーションを持つレイヤーを検索します。 - 4
- オプション: イメージに
artifactTypeが定義されており、レイヤーが複数ある場合、このフィールドを使用して、モデルカードを含む特定のレイヤーを検索します。
10.11.3. Open Container Initiative リファラー API 設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
Open Container Initiative (OCI) リファラー API は、リファラーの取得と管理を支援し、コンテナーイメージ管理の改善に役立ちます。
関連情報
| フィールド | 型 | 説明 |
|---|---|---|
| FEATURE_REFERRERS_API | Boolean | OCI 1.1 のリファラー API を有効にします。 |
OCI リファラー有効化の YAML サンプル
# ... FEATURE_REFERRERS_API: True # ...
# ...
FEATURE_REFERRERS_API: True
# ...
10.12. クォータ管理とプロキシーキャッシュ機能 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、ストレージ制限の適用とプロキシーキャッシュによるイメージの可用性の向上に関連する設定フィールドについて説明します。
これらの機能はレジストリー管理者に役立ちます。
- 設定可能なクォータを使用して、組織とユーザーが消費するストレージの量を制御します。
- プロキシーキャッシュを介してリモートコンテンツをローカルにキャッシュすることで、アップストリームイメージへのアクセスを改善します。
- 分散環境全体のリソースの消費と可用性を監視および管理します。
これらの機能を組み合わせることで、コンテナーイメージワークフローの管理におけるパフォーマンス、ガバナンス、回復力が向上します。
10.12.1. クォータ管理設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
次の設定フィールドは、Red Hat Quay のクォータ管理機能を有効にし、カスタマイズします。クォータ管理により、管理者は使用量制限の設定、Blob サイズの計算、タグ削除動作の制御などが可能になり、組織レベルでストレージ使用ポリシーを適用できるようになります。
| フィールド | 型 | 説明 |
|---|---|---|
| FEATURE_QUOTA_MANAGEMENT | Boolean | クォータ管理機能の設定、キャッシュ、検証を有効にします。
デフォルト: |
| DEFAULT_SYSTEM_REJECT_QUOTA_BYTES | 文字列 | すべての組織に対してシステムのデフォルトクォータ拒否バイト許容量を有効にします。 デフォルトでは、制限は設定されていません。 |
| QUOTA_BACKFILL | Boolean | クォータバックフィルワーカーが既存の Blob のサイズを計算できるようにします。
デフォルト: |
| QUOTA_TOTAL_DELAY_SECONDS | 文字列 | クォータバックフィルを開始するまでの遅延時間。ローリングデプロイメントでは、合計が不正確になる可能性があります。このフィールドは、ローリングデプロイメントが完了するまでにかかる時間よりも長い時間を設定する 必要があります。
デフォルト: |
| PERMANENTLY_DELETE_TAGS | Boolean | タイムマシンウィンドウからのタグの削除に関連する機能を有効にします。
デフォルト: |
| RESET_CHILD_MANIFEST_EXPIRATION | Boolean |
子マニフェストを対象とする一時タグの有効期限をリセットします。この機能を
デフォルト: |
クォータ管理の YAML サンプル
10.12.2. プロキシーキャッシュ設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay のプロキシーキャッシュ設定により、Red Hat Quay はアップストリームのコンテナーレジストリーのプルスルーキャッシュとして機能するようになります。FEATURE_PROXY_CACHE を有効にすると、Red Hat Quay は外部レジストリーからプルされたイメージをキャッシュできるため、帯域幅の消費が削減され、後続の要求でのイメージ取得速度が向上します。
| フィールド | 型 | 説明 |
|---|---|---|
| FEATURE_PROXY_CACHE | Boolean | Red Hat Quay がアップストリームレジストリーのプルスルーキャッシュとして機能できるようにします。
デフォルト: |
プロキシーキャッシュの YAML サンプル
# ... FEATURE_PROXY_CACHE: true # ...
# ...
FEATURE_PROXY_CACHE: true
# ...
10.13. QuayIntegration 設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
QuayIntegration カスタムリソースを使用すると、OpenShift Container Platform クラスターと Red Hat Quay レジストリーインスタンス間の統合が可能になります。
| 名前 | 説明 | スキーマ |
|---|---|---|
|
allowlistNamespaces | 含める namespace のリスト。 | Array |
|
clusterID | このクラスターに関連付けられている ID。 | 文字列 |
|
credentialsSecret.key | Quay レジストリーと通信するための認証情報を含む秘密。 | Object |
|
denylistNamespaces | 除外する namespace のリスト。 | Array |
|
insecureRegistry | Quay レジストリーへの TLS 検証をスキップするかどうか | Boolean |
|
quayHostname | Quay レジストリーのホスト名。 | 文字列 |
|
scheduledImageStreamImport | イメージストリームのインポートを有効にするかどうか。 | Boolean |
QuayIntegration CR の例
10.14. メール設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
アカウントの確認、パスワードのリセット、セキュリティー警告など、Red Hat Quay インスタンスからのメール通知を有効にします。これらの設定により、Red Hat Quay は SMTP サーバーに接続し、レジストリーに代わって送信メッセージを送信できるようになります。
| フィールド | 型 | 説明 |
|---|---|---|
| FEATURE_MAILING | Boolean |
メールが有効かどうか |
| MAIL_DEFAULT_SENDER | 文字列 |
指定されている場合、Red Hat Quay がメールを送信する際の |
| MAIL_PASSWORD | 文字列 | メールの送信時に使用する SMTP パスワード。 |
| MAIL_PORT | 数値 | 使用する SMTP ポート。指定されていない場合は、デフォルトの 587 になります。 |
| MAIL_SERVER | 文字列 |
メールの送信に使用する SMTP サーバー。FEATURE_MAILING が true に設定されている場合にのみ必要です。 |
| MAIL_USERNAME | 文字列 | メールの送信時に使用する SMTP ユーザー名。 |
| MAIL_USE_TLS | Boolean |
指定されている場合は、電子メールの送信に TLS を使用するかどうか。 |
メールの YAML サンプル
第11章 環境変数の設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay は、ランタイム動作とパフォーマンスチューニングを制御する環境変数の限定されたセットをサポートしています。これらの値は、プロセスごとの動作、接続数、またはリージョナル設定を動的に調整する必要がある特定のシナリオで柔軟性を提供します。
環境変数は慎重に使用してください。これらのオプションは通常、既存の設定メカニズムをオーバーライドまたは拡張します。
このセクションでは、次のコンポーネントに関連する環境変数について説明します。
- ジオレプリケーションの設定
- データベース接続プール
- HTTP 接続の同時実行
- ワーカープロセスのスケーリング
11.1. Geo レプリケーション リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay は、地理的に分散したサイト間で複数のインスタンスが動作するマルチリージョンのデプロイメントをサポートします。これらのシナリオでは、各サイトは同じ設定とメタデータを共有しますが、ストレージバックエンドはリージョンによって異なる場合があります。
これに対応するために、Red Hat Quay では、環境変数を使用してデプロイメントごとに優先ストレージエンジンを指定できます。これにより、メタデータがすべてのリージョン間で同期されたまま、個別の設定ファイルを必要とせずに各リージョンが独自の最適化されたストレージバックエンドを使用できるようになります。
QUAY_DISTRIBUTED_STORAGE_PREFERENCE 環境変数を使用して、DISTRIBUTED_STORAGE_CONFIG で定義されているように、優先ストレージエンジンを ID で明示的に設定します。
| 変数 | タイプ | 説明 |
|---|---|---|
| QUAY_DISTRIBUTED_STORAGE_PREFERENCE | 文字列 | 使用する優先されるストレージ (DISTRIBUTED_STORAGE_CONFIG の ID 別) |
11.2. データベース接続プール リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay は、すべてが同じコンテナー内で実行する多くの異なるプロセスで構成されています。これらのプロセスの多くは、データベースと連動しています。
データベース接続プールはデフォルトで有効になっており、データベースと対話する各プロセスには接続プールが含まれます。これらのプロセスごとのコネクションプールは、最大 20 個の接続を維持するように設定されています。高負荷時には、Red Hat Quay コンテナー内のすべてのプロセスの接続プールを満たすことが可能です。特定のデプロイメントおよび負荷では、Red Hat Quay が設定されたデータベースの最大接続数を超えないようにするための分析が必要になる場合があります。
時間が経つと、接続プールはアイドル状態の接続を解放します。すべての接続をすぐに解除するには、Red Hat Quay の再起動が必要です。
| 変数 | タイプ | 説明 |
|---|---|---|
| DB_CONNECTION_POOLING | 文字列 |
データベース接続プールを有効にするか無効にするかを指定します。デフォルトは true です。使用可能な値は |
データベース接続プーリングが有効な場合は、接続プールの最大サイズを変更することができます。これは、以下の config.yaml オプションを使用して実行できます。
データベース接続プールの YAML サンプル
# ... DB_CONNECTION_ARGS: max_connections: 10 # ...
# ...
DB_CONNECTION_ARGS:
max_connections: 10
# ...
11.2.1. スタンドアロンデプロイメントにおけるデータベースプーリングの無効化 リンクのコピーリンクがクリップボードにコピーされました!
スタンドアロンの Red Hat Quay デプロイメントの場合、デプロイメントの開始時にデータベース接続プールをオフに切り替えることができます。以下に例を示します。
11.2.2. Red Hat Quay on OpenShift Container Platform におけるデータベースプーリングの無効化 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay on OpenShift Container Platform では、QuayRegistry カスタムリソース定義 (CRD) を変更することでデータベース接続プールを設定できます。以下に例を示します。
QuayRegistry CRD の例
11.3. HTTP 接続回数 リンクのコピーリンクがクリップボードにコピーされました!
環境変数を使用して、Red Hat Quay によって処理される同時 HTTP 接続の数を制御できます。これらの制限はグローバルに適用することも、個々のコンポーネント (レジストリー、Web UI、セキュリティースキャン) に限定することもできます。デフォルトでは、各ワーカープロセスは最大 50 の並列接続を許可します。
この設定は ワーカープロセス の数とは異なります。
これらの接続関連の環境変数は、デプロイメントタイプに応じて異なる方法で設定できます。
-
スタンドアロンデプロイメント では、
config.yamlファイルで接続数を設定します。 -
Red Hat Quay on OpenShift Container Platform デプロイメント で、
QuayRegistryCR のenvブロックに値を定義します。
| 変数 | タイプ | 説明 |
|---|---|---|
| WORKER_CONNECTION_COUNT | 数値 |
ワーカープロセスあたりの HTTP 接続の最大数のグローバルデフォルト。 |
| WORKER_CONNECTION_COUNT_REGISTRY | 数値 |
レジストリーワーカーあたりの HTTP 接続数。 |
| WORKER_CONNECTION_COUNT_WEB | 数値 |
Web UI ワーカーあたりの HTTP 接続数。 |
| WORKER_CONNECTION_COUNT_SECSCAN | 数値 |
Clair セキュリティースキャナーワーカーあたりの HTTP 接続数。 |
スタンドアロン Red Hat Quay デプロイメントの HTTP 接続設定
WORKER_CONNECTION_COUNT: 10 WORKER_CONNECTION_COUNT_REGISTRY: 10 WORKER_CONNECTION_COUNT_WEB: 10 WORKER_CONNECTION_COUNT_SECSCAN: 10
WORKER_CONNECTION_COUNT: 10
WORKER_CONNECTION_COUNT_REGISTRY: 10
WORKER_CONNECTION_COUNT_WEB: 10
WORKER_CONNECTION_COUNT_SECSCAN: 10
Red Hat Quay on OpenShift Container Platform の HTTP 接続設定
11.4. ワーカープロセス数 リンクのコピーリンクがクリップボードにコピーされました!
環境変数を使用して、Red Hat Quay で受信リクエストを処理するワーカープロセスの数を制御できます。これらの値は、レジストリー、Web UI、セキュリティースキャンなど、システムのさまざまなコンポーネントのタスクを処理するために開始される並列プロセスの数を定義します。
明示的に設定されていない場合、Red Hat Quay は利用可能な CPU コアの数に基づいて、ワーカープロセスの数を自動的に計算します。この動的スケーリングにより、大規模なマシンではパフォーマンスを最適化できますが、小規模な環境では不要なリソースの使用につながる可能性もあります。
Red Hat Quay on OpenShift Container Platform デプロイメントでは、Operator によって以下のデフォルト値が設定されます。
-
WORKER_COUNT_REGISTRY: 8 -
WORKER_COUNT_WEB: 4 -
WORKER_COUNT_SECSCAN: 2
| 変数 | タイプ | 説明 |
|---|---|---|
| WORKER_COUNT | 数値 | プロセス数の汎用上書き |
| WORKER_COUNT_REGISTRY | 数値 |
|
| WORKER_COUNT_WEB | 数値 |
コンテナー内の UI/Web リクエストを処理するプロセス数を指定します。 |
| WORKER_COUNT_SECSCAN | 数値 |
コンテナー内のセキュリティースキャン (Clair など) の統合を処理するプロセス数を指定します。 |
スタンドアロン Red Hat Quay デプロイメントのワーカー数設定
WORKER_COUNT: 10 WORKER_COUNT_REGISTRY: 16 WORKER_COUNT_WEB: 8 WORKER_COUNT_SECSCAN: 4
WORKER_COUNT: 10
WORKER_COUNT_REGISTRY: 16
WORKER_COUNT_WEB: 8
WORKER_COUNT_SECSCAN: 4
Red Hat Quay on OpenShift Container Platform のワーカー数設定
第12章 Clair セキュリティースキャナー リンクのコピーリンクがクリップボードにコピーされました!
Clair の設定フィールドは、Clair 設定の概要 に移動しました。この章は、Red Hat Quay の今後のバージョンでは削除される予定です。