Image Catalog ============= .. raw:: html ``ImageCatalog`` および\ ``ClusterImageCatalog`` は、 ``Cluster`` を作成するためのイメージを定義できるようにする重要なリソースです。 主な違いはスコープにあります。\ ``ImageCatalog`` は名前空間ですが、\ ``ClusterImageCatalog`` はクラスタースコープです。 どちらも、イメージのリストで構成される共通の構造を共有し、各イメージのメジャーバージョンを示す\ ``major`` フィールドを備えています。 .. Warning:: オペレーターはユーザー定義のメジャーバージョンを信頼し、PostgreSQLバージョンの検出の実行を控えます。カタログで宣言されたメジャーバージョンとPostgreSQLイメージ間のアライメントを保証するのはユーザーの責任です。   ``major`` フィールドの値は、カタログ内で一意を維持し、イメージ間の重複を防ぐ必要があります。ただし、別のカタログは、同じ\ ``major`` 値で異なるイメージを公開する場合があります。 **名前空間\ ``ImageCatalog`` の例** .. code:: yaml apiVersion: postgresql.cnpg.io/v1 kind: ImageCatalog metadata: name: postgresql namespace: default spec: images: - major: 15 image: ghcr.io/cloudnative-pg/postgresql:15.14-system-trixie - major: 16 image: ghcr.io/cloudnative-pg/postgresql:16.10-system-trixie - major: 17 image: ghcr.io/cloudnative-pg/postgresql:17.6-system-trixie - major: 18 image: ghcr.io/cloudnative-pg/postgresql:18.1-system-trixie **``ClusterImageCatalog`` リソースを使用したクラスター全体のカタログの例** .. code:: yaml apiVersion: postgresql.cnpg.io/v1 kind: ClusterImageCatalog metadata: name: postgresql spec: images: - major: 15 image: ghcr.io/cloudnative-pg/postgresql:15.14-system-trixie - major: 16 image: ghcr.io/cloudnative-pg/postgresql:16.10-system-trixie - major: 17 image: ghcr.io/cloudnative-pg/postgresql:17.6-system-trixie - major: 18 image: ghcr.io/cloudnative-pg/postgresql:18.1-system-trixie ``Cluster`` リソースは、 ``ImageCatalog`` 次の例のようにまたは\ ``ClusterImageCatalog`` を参照して、目的の画像を正確に指定する柔軟性を備えています。 .. code:: yaml apiVersion: postgresql.cnpg.io/v1 kind: Cluster metadata: name: cluster-example spec: instances: 3 imageCatalogRef: apiGroup: postgresql.cnpg.io # Change the following to `ClusterImageCatalog` if needed kind: ImageCatalog name: postgresql major: 16 storage: size: 1Gi これらのカタログを使用するクラスターは、継続的な監視を維持します。カタログ内の画像が変更されると、その特定のエントリを参照する **関連するすべてのクラスター** の自動更新がトリガーされます。 CloudNativePGカタログ --------------------- CloudNativePGプロジェクトは、サポートされているすべてのイメージの\ ``ClusterImageCatalog`` マニフェストを維持します。 これらのカタログは定期的に更新され、 `artifacts repository `_ で公開されます。 各カタログは、イメージタイプ\ ``minimal`` などとDebianリリース\ ``trixie`` などの特定の組み合わせに対応しています。サポートされているすべてのPostgreSQLメジャーバージョンの最新のコンテナイメージをリストしています。 これらのカタログをインストールすることにより、クラスター管理者は、PostgreSQLクラスターが、選択したDebianディストリビューションとイメージタイプの特定のPostgreSQLメジャーバージョン内の最新のパッチリリースに自動的に更新されることを確認できます。 たとえば、\ ``minimal`` PostgreSQLコンテナイメージの最新のカタログをDebian ``trixie`` にインストールするには、次のコマンドを実行します。 .. code:: shell kubectl apply -f \ https://raw.githubusercontent.com/cloudnative-pg/artifacts/refs/heads/main/image-catalogs/catalog-minimal-trixie.yaml ``image-catalogs`` ディレクトリにある\ ``kustomization`` ファイルを使用して、使用可能なすべてのカタログをインストールできます。 .. code:: shell kubectl apply -k https://github.com/cloudnative-pg/artifacts//image-catalogs?ref=main 次に、次の方法で展開されたすべてのカタログを表示できます。 .. code:: shell kubectl get clusterimagecatalogs.postgresql.cnpg.io たとえば、次のように\ ``trixie`` 上のPostgreSQL 18の最新の\ ``minimal`` イメージを使用してクラスターを作成できます。 .. code:: yaml apiVersion: postgresql.cnpg.io/v1 kind: Cluster metadata: name: angus spec: instances: 3 imageCatalogRef: apiGroup: postgresql.cnpg.io kind: ClusterImageCatalog name: postgresql-minimal-trixie major: 18 storage: size: 1Gi