5.3. デプロイメント後の QuayRegistry CR の変更


Red Hat Quay Operator をインストールして初期デプロイメントを作成した後、QuayRegistry カスタムリソース(CR)を変更して Red Hat Quay 環境の要素をカスタマイズまたは再設定できます。

Red Hat Quay 管理者は、次の理由により QuayRegistry CR を変更する場合があります。

  • 独自のインフラストラクチャーを使用 するには、コンポーネント管理: コンポーネントを managed: true から managed: false に切り替えます。たとえば、kind: objectstorage を unmanaged に設定して、Google Cloud Storage や Nutanix などの外部オブジェクトストレージプラットフォームを統合することができます。
  • カスタム設定を適用する: 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)に設定し、独自のインフラストラクチャーを使用できます。

前提条件

  • admin 権限を持つユーザーとして OpenShift Container Platform にログインしている。
  • Red Hat Quay Operator をインストールしている。

手順

  1. OpenShift Container Platform Web コンソールで、Operators Installed Operators をクリックします。
  2. Red Hat Quay をクリックします。
  3. Quay Registry をクリックします。
  4. Red Hat Quay レジストリーの名前をクリックします(例: example-registry )。
  5. YAML をクリックします。
  6. 目的のコンポーネントの マネージド フィールドを true または false に調整します。
  7. Save をクリックします。

    注記

    コンポーネントを管理対象外(managed: false)に設定すると、追加の設定が必要になる場合があります。QuayRegistry CR で管理対象外コンポーネントを設定する方法は、依存関係への管理対象外コンポーネントの使用 を 参照してください。

5.3.2. CLI を使用した QuayRegistry CR の変更

QuayRegistry CR は CLI を使用して変更できます。これにより、マネージドコンポーネントを管理対象外(managed: false)に設定し、独自のインフラストラクチャーを使用できます。

前提条件

  • cluster-admin 権限を持つユーザーとして OpenShift Container Platform クラスターにログインしている。

手順

  1. 次のコマンドを入力して、QuayRegistry CR を編集します。

    $ oc edit quayregistry <registry_name> -n <namespace>
    Copy to Clipboard
  2. QuayRegistry CR に必要な変更を加えます。

    注記

    コンポーネントを管理対象外(managed: false)に設定すると、追加の設定が必要になる場合があります。QuayRegistry CR で管理対象外コンポーネントを設定する方法は、依存関係への管理対象外コンポーネントの使用 を 参照してください。

  3. 変更を保存します。

5.3.3. configBundleSecret について

spec.configBundleSecret フィールドは、QuayRegistry リソースと同じ namespace にある Secret の metadata.name への参照です。この Secret には config.yaml のキー/値のペアが含まれる必要があります。この値は Red Hat Quay 設定ファイルです。

configBundleSecret は、config.yaml ファイルを保存します。Red Hat Quay 管理者は、config.yaml ファイルを使用して以下の設定を定義できます。

  • 認証バックエンド(OIDC、LDAP など)
  • 外部 TLS ターミネーションの設定
  • リポジトリー作成ポリシー
  • 機能フラグ
  • 通知設定

Red Hat Quay は、次の理由でこのシークレットを更新する場合があります。

  • 新しい認証方法を有効にする
  • カスタム SSL/TLS 証明書 UI
  • 機能の有効化
  • セキュリティースキャン設定の変更

このフィールドを省略すると、Red Hat Quay Operator はデフォルト値と管理コンポーネント設定に基づいて設定シークレットを自動的に生成します。フィールドを指定すると、config.yaml の内容は基本設定として使用され、マネージドコンポーネントの値にマージされ、quay アプリケーション Pod にマウントされる最終的な設定を形成します。

QuayRegistry CR の設定方法によって、OpenShift Container Platform の Red Hat Quay の configBundleSecrets にどのフィールドを含める必要があるかが決まります。次の例は、すべてのコンポーネントが Operator によって管理されている場合のデフォルトの config.yaml ファイルを示しています。この例は、コンポーネントが管理対象か管理対象外か(managed: false)によって異なることに注意してください。

Operator によって管理されるすべてのコンポーネントを含む YAML の例

ALLOW_PULLS_WITHOUT_STRICT_LOGGING: false
AUTHENTICATION_TYPE: Database
DEFAULT_TAG_EXPIRATION: 2w
ENTERPRISE_LOGO_URL: /static/img/RH_Logo_Quay_Black_UX-horizontal.svg
FEATURE_BUILD_SUPPORT: false
FEATURE_DIRECT_LOGIN: true
FEATURE_MAILING: false
REGISTRY_TITLE: Red Hat Quay
REGISTRY_TITLE_SHORT: Red Hat Quay
SETUP_COMPLETE: true
TAG_EXPIRATION_OPTIONS:
- 2w
TEAM_RESYNC_STALE_TIME: 60m
TESTING: false
Copy to Clipboard

場合によっては、オブジェクトストレージなど、特定のコンポーネントを独自に管理することもできます。このシナリオでは、QuayRegistry CR を次のように変更します。

管理対象外のオブジェクトストレージコンポーネント

# ...
    - kind: objectstorage
      managed: false
# ...
Copy to Clipboard

独自のコンポーネントを管理する場合は、そのコンポーネントに必要な情報またはリソースを含めるようにデプロイメントを設定する必要があります。たとえば、objectstorage コンポーネントが managed: false に設定されている場合は、config.yaml ファイル内にストレージプロバイダーに応じて関連情報が含まれます。次の例は、Google Cloud Storage を使用した分散ストレージ設定を示しています。

objectstorage が管理対象外の場合に必要な情報

# ...
DISTRIBUTED_STORAGE_CONFIG:
    default:
        - GoogleCloudStorage
        - access_key: <access_key>
          bucket_name: <bucket_name>
          secret_key: <secret_key>
          storage_path: /datastorage/registry
# ...
Copy to Clipboard

同様に、Horizontalpodautoscaler コンポーネントを管理する場合は、付随する HorizontalPodAutoscaler カスタムリソース を作成する必要があります。

5.3.3.1. OpenShift Container Platform Web コンソールを使用した設定ファイルの変更

以下の手順を使用して、OpenShift Container Platform Web コンソールを使用して configBundleSecret によって保存される config.yaml ファイルを変更します。

前提条件

  • cluster-admin 権限を持つユーザーとして OpenShift Container Platform クラスターにログインしている。

手順

  1. OpenShift Container Platform Web コンソールで、Operator Installed Operator Quay Registry をクリックします。
  2. Quay Registry をクリックします。
  3. Red Hat Quay レジストリーの名前をクリックします(例: example-registry )。
  4. QuayRegistry details ページで、Config Bundle Secret の名前をクリックします(例: example-registry-config-bundle )。
  5. Actions Edit Secret をクリックします。
  6. Value ボックスに、必要なキー/値のペアを追加します。たとえば、OpenShift Container Platform デプロイメントの Red Hat Quay にスーパーユーザーを追加するには、以下のリファレンスを追加します。

    SUPER_USERS:
    - quayadmin
    Copy to Clipboard
  7. Save をクリックします。

検証

  1. 変更が受け入れられたことを確認します。

    1. OpenShift Container Platform Web コンソールで、Operator Installed Operator Quay Registry をクリックします。
    2. Quay Registry をクリックします。
    3. Red Hat Quay レジストリーの名前をクリックします(例: example-registry )。
    4. Events をクリックします。成功すると、次のメッセージが表示されます。

      All objects created/updated successfully
      Copy to Clipboard
注記

シークレットに配置する前に、更新された config.yaml を 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 ファイルの変更は、既存の設定ファイルのデコードと変更のアップロードが必要な複数ステップの手順です。ほとんどの場合、OpenShift Container Platform Web コンソールを使用して config.yaml ファイルに変更を加える方が簡単です。

前提条件

  • cluster-admin 権限を持つユーザーとして OpenShift Container Platform クラスターにログインしている。

手順

  1. 次のコマンドを入力して、QuayRegistry リソースを記述します。

    $ oc describe quayregistry -n <quay_namespace>
    Copy to Clipboard
    # ...
      Config Bundle Secret:  example-registry-config-bundle-v123x
    # ...
    Copy to Clipboard
  2. 次のコマンドを入力してシークレットデータを取得します。

    $ oc get secret -n <quay_namespace> <example-registry-config-bundle-v123x> -o jsonpath='{.data}'
    Copy to Clipboard

    出力例

    {
        "config.yaml": "RkVBVFVSRV9VU0 ... MDAwMAo="
    }
    Copy to Clipboard

  3. >> config.yaml フラグを渡すことで、データを現在のディレクトリーの YAML ファイルにエクスポートできます。以下に例を示します。

    $ echo 'RkVBVFVSRV9VU0 ... MDAwMAo=' | base64 --decode >> config.yaml
    Copy to Clipboard
  4. config.yaml ファイルに必要な変更を加え、ファイルを config.yaml として保存します。
  5. 次のコマンドを入力して、新しい configBundleSecret YAML を作成します。

    $ touch <new_configBundleSecret_name>.yaml
    Copy to Clipboard
  6. 次のコマンドを入力して、新しい configBundleSecret リソースを作成し、config.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>.yaml
    Copy to Clipboard
    1
    <config.yaml>base64 でデコード された config.yaml ファイルです。
  7. 次のコマンドを入力して、configBundleSecret リソースを作成します。

    $ oc create -n <namespace> -f <new_configBundleSecret_name>.yaml
    Copy to Clipboard

    出力例

    secret/config-bundle created
    Copy to Clipboard

  8. 次のコマンドを入力して、QuayRegistry YAML ファイルを更新して、新しい configBundleSecret オブジェクトを参照します。

    $ oc patch quayregistry <registry_name> -n <namespace> --type=merge -p '{"spec":{"configBundleSecret":"<new_configBundleSecret_name>"}}'
    Copy to Clipboard

    出力例

    quayregistry.quay.redhat.com/example-registry patched
    Copy to Clipboard

検証

  1. QuayRegistry CR が新規の configBundleSecret で更新されていることを確認します。

    $ oc describe quayregistry -n <quay_namespace>
    Copy to Clipboard

    出力例

    # ...
      Config Bundle Secret: <new_configBundleSecret_name>
    # ...
    Copy to Clipboard

    レジストリーにパッチを適用した後、Red Hat Quay Operator は変更を自動的に調整します。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat