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