APIリファレンス

CloudNativePGは、次のカスタムリソースを定義するKubernetes APIを拡張します。

すべてのリソースは postgresql.cnpg.io/v1 APIで定義されています。

使用例はドキュメントの Configuration Samples “を参照してください。

以下に、定義されたリソースの説明があります。

AffinityConfiguration

AffinityConfigurationには、ポッドのアフィニティルールを作成するために必要な情報が含まれています

Name

Description

Type

`enablePodAntiAffinity `

ポッドのアンチアフィニティをアクティブにします。このフィールドが明示的にfalseに設定されていない限り、オペレーターはポッドのアンチアフィニティを定義します

*bool

`topologyKey `

アンチアフィニティ構成に使用するTopologyKey。詳細については、k8sのドキュメントを参照してください-必須

string

`nodeSelector `

NodeSelectorは、ポッドを実行できるノードを定義するために使用されるキーと値のペアのマップです。詳細: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

map[string]string

`tolerations `

Tolerations は、汚染されたノードで実行できるようにすべてのポッドに設定する必要がある Tolerations のリストです。詳細: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/

[]corev1.Toleration

`podAntiAffinityType `

PodAntiAffinityTypeを使用すると、ユーザーはクラスターインスタンス間のポッドのアンチアフィニティをスケジュール中に強力な要件と見なす必要があるかどうかを決定できます。使用できる値は「preferred」(空の場合のデフォルト)または「required」です。 「required」に設定すると、既存のノードがすべて必要なポッドの反アフィニティルールに一致しない場合、新しいKubernetesノードが追加されるまでインスタンスが保留中のままになる可能性があります。詳細: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity

string

additionalPodAntiAffinity

AdditionalPodAntiAffinityを使用すると、EnablePodAntiAffinityがtrue(デフォルト)に設定されている場合、オペレーターによって生成されたものに追加するか、falseに設定されている場合のみ使用されます。

*corev1.PodAntiAffinity

`additionalPodAffinity `

AdditionalPodAffinityを使用すると、すべてのクラスターのポッドに渡すポッドアフィニティ用語を指定できます。

*corev1.PodAffinity

AzureCredentials

AzureCredentialsは、Azure Blob Storageにファイルをアップロードするために使用される資格情報の種類です。接続文字列には、必要なすべての情報が含まれています。接続文字列が指定されていない場合は、ストレージ アカウント名と、次のいずれか (および 1 つだけ) が必要です。

  • storageKey - storageSasToken

  • inheritFromAzureADをtrueに設定してポッド環境から資格情報を継承

Name

Description

Type

`connectionString `

使用する接続文字列

*SecretKeySelector

`storageAccount `

データをアップロードするストレージ アカウント

*SecretKeySelector

`storageKey `

ストレージ アカウント名と組み合わせて使用されるストレージ アカウント キー

*SecretKeySelector

`storageSasToken `

ストレージ アカウント名と組み合わせて使用される共有アクセス署名

*SecretKeySelector

inheritFromAzureAD

キーを明示的に指定せずに Azure AD ベースの認証を使用します。 - 必須

bool

バックアップ

バックアップはバックアップAPIのスキーマです

Name

Description

Type

metadata

該当なし

metav1.ObjectMeta

`spec `

バックアップの目的の動作の指定。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

BackupSpec

`status `

バックアップの最後に監視されたステータス。このデータは最新でない可能性があります。システムによって入力されます。読み取り専用。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

バックアップステータス

バックアップ構成

BackupConfiguration は、クラスターのバックアップを取得する方法を定義します。現在サポートされているバックアップ方法は barmanObjectStore のみです。詳細と例については、ドキュメントのバックアップとリカバリのセクションを参照してください

Name

Description

Type

barmanObjectStore

barman-cloudツールスイートの構成

*BarmanObjectStoreConfiguration

`retentionPolicy `

RetentionPolicyは、バックアップとWAL(つまり「60d」)に使用される保持ポリシーです。保持ポリシーは XXu の形式で表されます。 `XX`は正の整数であり、 `u`は`[dwm]`日、週、月です。

string

バックアップリスト

BackupListにはバックアップのリストが含まれています

Name

Description

Type

metadata

標準リストのメタデータ。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metav1.ListMeta

`items `

バックアップのリスト - 必須

[]Backup

バックアップソース

BackupSourceには、復元する必要があるバックアップと、正しく復元するために必要な情報が含まれています。

Name

Description

Type

endpointCA

EndpointCAは、barmanエンドポイントのCAバンドルを保存します。自己署名証明書を使用して、証明書の発行者とbarman-cloud-wal-archiveでのエラーを回避する場合に役立ちます。

*SecretKeySelector

BackupSpec

BackupSpecはバックアップの望ましい状態を定義します

Name

Description

Type

cluster

バックアップするクラスター

LocalObjectReference

バックアップステータス

BackupStatusは、バックアップの監視状態を定義します

Name

Description

Type

`endpointCA `

EndpointCAは、barmanエンドポイントのCAバンドルを保存します。自己署名証明書を使用して、証明書の発行者とbarman-cloud-wal-archiveでのエラーを回避する場合に役立ちます。

*SecretKeySelector

`endpointURL `

自動エンドポイント検出をオーバーライドする、クラウドにデータをアップロードするために使用されるエンドポイント

string

destinationPath

バックアップを保存するパス(つまり s3://bucket/path/to/folder)このパスは、さまざまな宛先フォルダーを使用して、WALとデータに使用されます

string

`serverName `

S3上のサーバー名、このパラメーターを省略した場合はクラスター名が使用されます

string

`encryption `

S3 APIに必要な暗号化方法

string

`backupId `

BarmanのバックアップのID

string

`phase `

前回のバックアップの状態

BackupPhase

`startedAt `

バックアップが開始された日時

*metav1.Time

`stoppedAt `

バックアップが終了したとき

*metav1.Time

`beginWal `

開始WAL

string

`endWal `

エンディングWAL

string

`beginLSN `

開始のxlog

string

`endLSN `

エンディングのxlog

string

`error `

検出されたエラー

string

`commandOutput `

未使用。古いバージョンとの互換性のために保持されています。

string

`commandError `

エラーが発生した場合のバックアップコマンド出力

string

`instanceID `

バックアップの取得元のインスタンスを特定する情報

*InstanceID

BarmanCredentials

BarmanCredentials 各クラウドプロバイダーの潜在的な資格情報を含むオブジェクト

Name

Description

Type

googleCredentials

Google Cloud Storageにデータをアップロードするために使用する認証情報

*GoogleCredentials

`s3Credentials `

S3にデータをアップロードするために使用する資格情報

*S3Credentials

`azureCredentials `

Azure Blob Storageにデータをアップロードするために使用する資格情報

*AzureCredentials

BarmanObjectStoreConfiguration

BarmanObjectStoreConfigurationには、S3互換のオブジェクトストレージに対してBarmanを使用したバックアップ構成が含まれています

Name

Description

Type

`endpointURL `

自動エンドポイント検出をオーバーライドする、クラウドにデータをアップロードするために使用されるエンドポイント

string

`endpointCA `

EndpointCAは、barmanエンドポイントのCAバンドルを保存します。自己署名証明書を使用して、証明書の発行者とbarman-cloud-wal-archiveのエラーを回避する場合に役立ちます

*SecretKeySelector

destinationPath

バックアップを保存するパス(つまり s3://bucket/path/to/folder)このパスは、さまざまな宛先フォルダーを使用して、WALとデータに使用されます

string

`serverName `

S3上のサーバー名、このパラメーターを省略した場合はクラスター名が使用されます

string

`wal `

WALストリームのバックアップの構成。定義されていない場合、WALファイルは非圧縮で保存され、バケットのデフォルトポリシーに従ってオブジェクトストアに暗号化されない場合があります。

*WalBackupConfiguration

`data `

データファイルのバックアップに使用される構成 定義されていない場合、ベースバックアップファイルは圧縮されずに保存され、バケットのデフォルトポリシーに従ってオブジェクトストアに暗号化される場合があります。

*DataBackupConfiguration

`tags `

Tags は、 Barman --tagsオプションに渡されるキーと値のペアのリストです。

map[string]string

`historyTags `

HistoryTags は、 Barman --history-tags オプションに渡されるキーと値のペアのリストです。

map[string]string

Bootstrap構成

BootstrapConfigurationには、PostgreSQLクラスターの作成方法に関する情報が含まれています。サポートされているブートストラップメソッドは1つだけ定義できます。指定しない場合、 initdb がブートストラップ方法として使用されます。詳細については、ドキュメントのBootstrapページを参照してください。

Name

Description

Type

`initdb `

initdbを介してクラスターをブートストラップ

*BootstrapInitDB

`recovery `

バックアップからクラスターをブートストラップする

*BootstrapRecovery

pg_basebackup

互換性のある別のPostgreSQLインスタンスの物理バックアップを取得してクラスターをブートストラップする

*BootstrapPgBaseBackup

BootstrapInitDB

BootstrapInitDBは、initdbを使用する場合のブートストラッププロセスの構成です 詳細については、ドキュメントのBootstrapページを参照してください。

Name

Description

Type

`database `

アプリケーションが使用するデータベースの名前。デフォルト:app。 - 必須

string

`owner `

アプリケーションが使用するインスタンス内のデータベースの所有者の名前。デフォルトは database キーの値です。 - 必須

string

`secret `

ユーザーデータベースの所有者の初期資格情報を含むシークレットの名前。空の場合、新しいシークレットが最初から作成されます

*LocalObjectReference

`options `

クラスターの作成時にinitdbに渡す必要があるオプションのリスト。非推奨:これにより、構成に一貫性がなくなる可能性があります。代わりに、明示的に提供されたパラメーターを使用してください。定義されている場合、明示的な値は無視されます。

[]string

`dataChecksums `

-k`オプションをinitdbに渡して、データページのチェックサムを有効にするかどうか(デフォルト:`false)

*bool

`encoding `

initdbのオプション`--encoding`として渡される値(デフォルト:UTF8)

string

`localeCollate `

initdbのオプション`--lc-collate`として渡される値(デフォルト:C)

string

`localeCType `

initdbのオプション`--lc-ctype`として渡される値(デフォルト:C)

string

`walSegmentSize `

initdbの`--wal-segsize`オプションに渡されるメガバイト(1〜1024)の値(デフォルト:空、結果としてPostgreSQLのデフォルト:16MB)

int

`postInitSQL `

クラスターが作成された直後にスーパーユーザーとして実行されるSQLクエリのリスト - 細心の注意を払って使用します(デフォルトでは空)

[]string

`postInitApplicationSQL `

が作成された直後にアプリケーションデータベースでスーパーユーザーとして実行されるSQLクエリのリスト - 細心の注意を払って使用します(デフォルトでは空)

[]string

`postInitTemplateSQL `

クラスターが作成された後に`template1`でスーパーユーザーとして実行されるSQLクエリのリスト - 細心の注意を払って使用します(デフォルトでは空)

[]string

`import `

論理バックアップ(pg_dump`および`pg_restore)を使用して既存のPostgreSQLインスタンスからデータをインポートすることにより、新しいクラスターをブートストラップします

*Import

postInitApplicationSQLRefs

PostInitApplicationSQLRefsは、 SQLファイルを含むConfigMapまたはSecretへの参照をポイントします。これらの参照への一般的な実装順序は、すべてのSecretsからすべてのConfigMapsへであり、SecretsまたはConfigMaps内では、実装順序は各配列の順序と同じです(デフォルトでは空)

*PostInitApplicationSQLRefs

BootstrapPgBaseBackup

BootstrapPgBaseBackupには、既存のPostgreSQLクラスターの物理バックアップを作成するために必要な構成が含まれています

Name

Description

Type

`source `

物理バックアップを作成する必要があるサーバーの名前 - 必須

string

database

アプリケーションが使用するデータベースの名前。デフォルト:app。 - 必須

string

`owner `

アプリケーションが使用するインスタンス内のデータベースの所有者の名前。デフォルトは database キーの値です。 - 必須

string

`secret `

ユーザーデータベースの所有者の初期資格情報を含むシークレットの名前。空の場合、新しいシークレットが最初から作成されます

*LocalObjectReference

BootstrapRecovery

BootstrapRecoveryには、指定された名前でバックアップを復元するために必要な構成が含まれており、スーパーユーザー用に選択されたパスワードでパスワードを変更した後、それを使用して、復元されたプライマリからすべてのインスタンスを複製します。詳細については、ドキュメントのBootstrapページを参照してください。

Name

Description

Type

`backup `

復元する必要があるバックアップ

*BackupSource

`source `

バックアップを復元する外部クラスター。これは、バックアップが保存されるフォルダーの名前としても使用されるため、ソースクラスターの名前に設定する必要があります

string

recoveryTarget

デフォルトでは、回復プロセスはアーカイブ内の使用可能なすべてのWALファイルを適用します(完全回復)。ただし、PostgreSQLで予想されるように、 `RecoveryTarget`オブジェクト(つまり、タイムスタンプ、トランザクションID、LSN、.. 。)。詳細: https://www.postgresql.org/docs/current/runtime-config-wal.html#RUNTIME-CONFIG-WAL-RECOVERY-TARGET

*RecoveryTarget

`database `

アプリケーションが使用するデータベースの名前。デフォルト:app。 - 必須

string

`owner `

アプリケーションが使用するインスタンス内のデータベースの所有者の名前。デフォルトは database キーの値です。 - 必須

string

`secret `

ユーザーデータベースの所有者の初期資格情報を含むシークレットの名前。空の場合、新しいシークレットが最初から作成されます

*LocalObjectReference

証明書構成

CertificatesConfigurationには、サーバー証明書を処理するために必要な構成が含まれています。

Name

Description

Type

`serverCASecret `

サーバーCA証明書を含むシークレット。定義されていない場合、自己署名CAで新しいシークレットが作成され、TLS証明書ServerTLSSecretの生成に使用されます。サーバー証明書の検証に使用する必要があります。クライアント接続文字列で`sslrootcert`として使用されます。<br /> - ca.key:サーバーSSL証明書の生成に使用されるキー。ServerTLSSecretが提供されている場合、これは省略できます。<br />

string

`serverTLSSecret `

クライアントがpostgresに安全に接続できるように`ssl_cert_file`および`ssl_key_file`として設定されるサーバーTLS証明書とキーを含むタイプ kubernetes.io/tls。定義されていない場合、ServerCASecretは`ca.key`も提供する必要があり、提供されたCAを使用して新しいシークレットが作成されます。

string

replicationTLSSecret

`streaming_replica`ユーザーとして認証するクライアント証明書を含むタイプ kubernetes.io/tlsのシークレット。定義されていない場合、ClientCASecretは`ca.key`も提供する必要があり、提供されたCAを使用して新しいシークレットが作成されます。

string

`clientCASecret `

クライアント CA 証明書を含むシークレット。定義されていない場合、自己署名CAで新しいシークレットが作成され、すべてのクライアント証明書の生成に使用されます。すべてのインスタンスの`ssl_ca_file`として使用されるクライアント証明書の検証に使用する必要があります。<br /> - ca.key:クライアント証明書の生成に使用されるキー。 ReplicationTLSSecretが提供されている場合、これは省略できます。<br />

string

`serverAltDNSNames `

必要に応じて、生成されたサーバーTLS証明書に追加されるサーバーの代替DNS名のリスト。

[]string

CertificatesStatus

CertificatesStatusには、構成証明書と関連する有効期限が含まれています。

Name

Description

Type

expirations

すべての証明書の有効期限。

map[string]string

クラスター

ClusterはPostgreSQL APIのスキーマです

Name

Description

Type

metadata

該当なし

metav1.ObjectMeta

`spec `

クラスターの目的の動作の仕様。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

ClusterSpec

`status `

クラスターの最後に監視されたステータス。このデータは最新でない可能性があります。システムによって入力されます。読み取り専用。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

ClusterStatus

ClusterList

ClusterListには、クラスターのリストが含まれています

Name

Description

Type

metadata

標準リストのメタデータ。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metav1.ListMeta

`items `

クラスターのリスト - 必須

[]Cluster

ClusterSpec

ClusterSpecはクラスターの望ましい状態を定義します

Name

Description

Type

`description `

このPostgreSQLクラスターの説明

string

`inheritedMetadata `

クラスターに関連するすべてのオブジェクトに継承されるメタデータ

*EmbeddedObjectMetadata

`imageName `

コンテナイメージの名前であり、タグ(<image>:<tag>)と決定論的で反復可能な展開のダイジェスト(<image>:<tag>@sha256:<digestValue>)の両方をサポート

string

`imagePullPolicy `

イメージのプルポリシー。 Always、Never、または`IfNotPresent`のいずれか。定義されていない場合、デフォルトは`IfNotPresent`です。更新できません。詳細: https://kubernetes.io/docs/concepts/containers/images#updating-images

corev1.PullPolicy

`postgresUID `

イメージ内の`postgres`ユーザーのUID、デフォルトは`26`

int64

`postgresGID `

イメージ内の`postgres`ユーザーのGID、デフォルトは`26`

int64

`instances `

クラスターで必要なインスタンスの数 - 必須

int

`minSyncReplicas `

プライマリとの同期レプリケーションに必要なインスタンスの最小数。未定義または0を指定すると、スタンバイが利用できないときに書き込みを完了できます。

int

`maxSyncReplicas `

準備ができたスタンバイの数がこれよりも少ない場合に減らすことができる同期レプリケーションクォーラムのターゲット値。未定義または0は同期レプリケーションを無効にします。

int

`postgresql `

PostgreSQLサーバーの構成

PostgresConfiguration

`bootstrap `

このクラスターをブートストラップする手順

*BootstrapConfiguration

`replica `

レプリカクラスター構成

*ReplicaClusterConfiguration

`superuserSecret `

スーパーユーザーのパスワードを含むシークレット。定義されていない場合、ランダムに生成されたパスワードで新しいシークレットが作成されます

*LocalObjectReference

enableSuperuserAccess

このオプションを有効にすると、オペレーターは`SuperuserSecret`を使用して`postgres`ユーザーパスワードを更新します(シークレットが存在しない場合、オペレーターは自動的に作成します)。このオプションを無効にすると、オペレーターは`SuperuserSecret`のコンテンツを無視し、自動作成時に削除し、 `postgres`ユーザーのパスワードを`NULL`に設定します。デフォルトで有効になっています。

*bool

`certificates `

CAおよび関連する証明書の構成

*CertificatesConfiguration

`imagePullSecrets `

イメージのプルに使用されるプルシークレットのリスト

[]LocalObjectReference

`storage `

インスタンスのストレージの構成

StorageConfiguration

`startDelay `

PostgreSQLインスタンスが正常に起動するまでに許可される時間(デフォルト30)

int32

`stopDelay `

PostgreSQLインスタンスが正常にシャットダウンできる時間(デフォルト30)

int32

`switchoverDelay `

スイッチオーバー中にプライマリPostgreSQLインスタンスが正常にシャットダウンできる時間。デフォルト値は40000000で、1年を超える秒単位で、無限の遅延をシミュレートするのに十分な大きさです

int32

`affinity `

Podのアフィニティ/アンチアフィニティルール

AffinityConfiguration

`resources `

生成されたすべてのポッドのリソース要件。詳細については、 https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ を参照してください。

corev1.ResourceRequirements

primaryUpdateStrategy

すべてのレプリカが正常に更新された後、ローリング更新手順中にプライマリサーバーをアップグレードするための戦略:自動(unsupervised - デフォルト)または手動(supervised)

PrimaryUpdateStrategy

`primaryUpdateMethod `

すべてのレプリカが正常に更新された後、ローリング更新手順中にプライマリサーバーをアップグレードする方法:スイッチオーバー(switchover - デフォルト)またはインプレース(restart)

PrimaryUpdateMethod

`backup `

バックアップに使用される構成

*BackupConfiguration

nodeMaintenanceWindow

Kubernetesノードのメンテナンスウィンドウを定義する

*NodeMaintenanceWindow

`monitoring `

このクラスターの監視インフラストラクチャの構成

*MonitoringConfiguration

`externalClusters `

構成で使用される外部クラスターのリスト

[]ExternalCluster

`logLevel `

インスタンスのログレベル、次のいずれかの値: error、warning、info(デフォルト)、debug、trace

string

ClusterStatus

ClusterStatusは、クラスターの監視状態を定義します

Name

Description

Type

`instances `

クラスター内のインスタンスの合計数

int

`readyInstances `

クラスター内の準備ができているインスタンスの合計数

int

`instancesStatus `

InstancesStatusは、インスタンスがどのステータスかを示します

map[utils.PodStatus][]string

`instancesReportedState `

最後の調整ループ中に報告されたインスタンスの状態

map[PodName]InstanceReportedState

`timelineID `

Postgresクラスターのタイムライン

int

`topology `

インスタンストポロジー。

トポロジー

`latestGeneratedNode `

最後に生成されたノードのID(ノード名の衝突を回避するために使用)

int

`currentPrimary `

現在のプライマリインスタンス

string

`targetPrimary `

ターゲットプライマリインスタンス、これはスイッチオーバーまたはフェイルオーバー中の以前のインスタンスとは異なります

string

`pvcCount `

このクラスターによって作成されたPVCの数

int32

`jobCount `

このクラスターによって作成されたジョブの数

int32

`danglingPVC `

このクラスターによって作成され、まだ使用可能な、ポッドに接続されていないすべての PVC のリスト

[]string

`resizingPVC `

ResizingPVC 条件を持つすべての PVC のリスト。

[]string

`initializingPVC `

このクラスターによって初期化されているすべての PVC のリスト

[]string

`healthyPVC `

ダングリングも初期化もしていないすべてのPVCのリスト

[]string

`writeService `

現在の書き込みポッド

string

`readService `

読み取りポッドの現在のリスト

string

`phase `

クラスターの現在のフェーズ

string

`phaseReason `

現在のフェーズの理由

string

`secretsResourceVersion `

オペレーターが管理するシークレットのリソースバージョンのリスト。ここでのすべての変更は、シークレットデータを更新するインスタンスマネージャーのために行われます

SecretsResourceバージョン

`configMapResourceVersion `

オペレーターによって管理される、configmapのリソースバージョンのリスト。ここでのすべての変更は、構成マップデータを更新するインスタンスマネージャーのために行われます

ConfigMapResourceVersion

`certificates `

デフォルトで初期化されたCAおよび関連する証明書の構成。

CertificatesStatus

`firstRecoverabilityPoint `

RFC3339形式で日付として保存された最初の回復可能ポイント

string

`cloudNativePGCommitHash `

このオペレーターが実行しているコミットハッシュ番号

string

`currentPrimaryTimestamp `

プライマリへの実際の昇格が発生したときのタイムスタンプ

string

`targetPrimaryTimestamp `

新しいプライマリに対する最後の要求が発生したときのタイムスタンプ

string

`poolerIntegrations `

クラスターを参照するプーラーに必要な統合

*PoolerIntegrations

cloudNativePGOperatorHash

演算子のバイナリのハッシュ

string

`onlineUpdateEnabled `

OnlineUpdateEnabledは、オンラインアップグレードがクラスター内で有効になっているかどうかを示します

bool

`azurePVCUpdateEnabled `

AzurePVCUpdateEnabledは、このクラスターでPVCオンラインアップグレードが有効になっているかどうかを示します

bool

`conditions `

クラスターオブジェクトの条件

[]metav1.Condition

ConfigMapKeySelector

ConfigMapKeySelectorには、ConfigMapのキーを見つけるのに十分な情報が含まれています

Name

Description

Type

key

選択するキー - 必須

string

ConfigMapResourceVersion

ConfigMapResourceVersionは、オペレーターによって管理されるシークレットのリソースバージョンです

Name

Description

Type

metrics

メトリックを渡すために使用されるすべての構成マップのバージョンを含むマップ。マップキーは構成マップ名、マップ値はバージョン

map[string]string

DataBackupConfiguration

DataBackupConfigurationは、データディレクトリのバックアップの構成です

Name

Description

Type

`compression `

オブジェクトストアにストリーミング中にバックアップファイル(テーブルスペースごとのtarファイル)を圧縮します。使用可能なオプションは、空の文字列(圧縮なし、デフォルト)、gzip、`bzip2`または`snappy`です。

CompressionType

`encryption `

ファイルの暗号化を強制するとき(バケットがまだそのように構成されていない場合)。許可されるオプションは空の文字列(バケットポリシーを使用)、AES256`および`aws:kms

EncryptionType

immediateCheckpoint

PostgreSQLサーバーの`checkpoint_completion_target`設定に従って、バックアップの初期チェックポイントのI/Oワークロードを制限するかどうかを制御します。 trueに設定すると、即時チェックポイントが使用されます。つまり、PostgreSQLはできるだけ早くチェックポイントを完了します。デフォルトで`false`。

bool

`jobs `

バックアップのアップロードに使用される並列ジョブの数、デフォルトは2

*int32

EmbeddedObjectメタデータ

EmbeddedObjectMetadata には、クラスターに関連するすべてのリソースによって継承されるメタデータが含まれています

Name

Description

Type

`labels `

該当なし

map[string]string

annotations

該当なし

map[string]string

外部クラスター

ExternalClusterは、構成の他のセクションで使用される外部クラスターへの接続パラメーターを表します

Name

Description

Type

`name `

サーバー名、必須- 必須

string

connectionParameters

dbname、host、usernameなどの接続パラメーターのリスト

map[string]string

`sslCert `

このインスタンスへの接続に使用されるSSL証明書への参照

*corev1.SecretKeySelector

`sslKey `

このインスタンスへの接続に使用されるSSLプライベートキーへの参照

*corev1.SecretKeySelector

`sslRootCert `

このインスタンスへの接続に使用されるSSL CA公開キーへの参照

*corev1.SecretKeySelector

`password `

サーバーへの接続に使用されるパスワードへの参照

*corev1.SecretKeySelector

`barmanObjectStore `

barman-cloudツールスイートの構成

*BarmanObjectStoreConfiguration

Google資格情報

GoogleCredentialsは、Google Cloud Storage資格情報のタイプです。これは、GKE環境内で実行する場合でも指定する必要があります。

Name

Description

Type

`gkeEnvironment `

trueに設定すると、GKE環境内で実行されていると想定されます。デフォルトはfalseです。 - 必須

bool

applicationCredentials

認証情報を含む Google Cloud Storage JSON ファイルを含むシークレット

*SecretKeySelector

インポート

Importには、externalClusterのロジックスナップショットからデータベースを初期化する構成が含まれています

Name

Description

Type

`source `

インポートのソース - 必須

ImportSource

`type `

インポートタイプ。 `microservice`または`monolith`です。 - 必須

SnapshotType

`databases `

インポートするデータベース - 必須

[]string

`roles `

インポートするロール

[]string

postImportApplicationSQL

がインポートされた直後にアプリケーションデータベースでスーパーユーザーとして実行されるSQLクエリのリスト - 細心の注意を払って使用します(デフォルトでは空)。マイクロサービスタイプでのみ使用できます。

[]string

ImportSource

ImportSourceは、論理スナップショットのソースを説明します

Name

Description

Type

externalCluster

インポートに使用されるexternalClusterの名前 - 必須

string

インスタンスID

InstanceIDには、インスタンスを識別する情報が含まれています

Name

Description

Type

`podName `

ポッド名

string

ContainerID

コンテナID

string

InstanceReportedState

InstanceReportedStateは、調整ループ中に報告されたインスタンスの状態を示します

Name

Description

Type

`isPrimary `

インスタンスがプライマリかどうかを示します - 必須

bool

timeLineID

インスタンスがどのTimelineIdにあるかを示します

int

LDAPBindAsAuth

LDAPBindAsAuthは、LDAPのバインド認証を使用するために必要なフィールドを提供します

Name

Description

Type

prefix

bind認証オプションのプレフィックス

string

suffix

bind認証オプションのサフィックス

string

LDAPBindSearchAuth

LDAPBindSearchAuthは、バインド+検索LDAP認証プロセスを使用するために必要なフィールドを提供します

Name

Description

Type

`baseDN `

ユーザー検索を開始するルートDN

string

`bindDN `

ディレクトリにバインドするユーザーのDN

string

`bindPassword `

ディレクトリにバインドするユーザーのパスワードを持つシークレット

*corev1.SecretKeySelector

searchAttribute

ユーザー名と照合する属性

string

`searchFilter `

検索+バインド認証を行うときに使用する検索フィルター

string

LDAPConfig

LDAPConfigには、LDAP認証に必要なパラメーターが含まれています

Name

Description

Type

`server `

LDAPホスト名またはIPアドレス

string

`port `

LDAPサーバーポート

int

`scheme `

使用するLDAPスキーマ。使用可能なオプションは`ldap`および`ldaps`

LDAPScheme

`tls `

1に設定してLDAP over TLSを有効にします

bool

`bindAsAuth `

認証構成としてバインド

*LDAPBindAsAuth

bindSearchAuth

バインド+検索認証構成

*LDAPBindSearchAuth

LocalObjectReference

LocalObjectReferenceには、同じ名前空間内の既知のタイプのローカルオブジェクトを見つけるのに十分な情報が含まれています

Name

Description

Type

name

レファレントの名前。 - 必須

string

MonitoringConfiguration

MonitoringConfigurationは、特定のクラスターのすべてのモニタリング構成を含むタイプです

Name

Description

Type

`disableDefaultQueries `

デフォルトのクエリを挿入するかどうか。クラスターにデフォルトのクエリを挿入しない場合は、 true に設定します。デフォルト:false。

*bool

customQueriesConfigMap

カスタムクエリを含む構成マップのリスト

[]ConfigMapKeySelector

`customQueriesSecret `

カスタムクエリを含むシークレットのリスト

[]SecretKeySelector

`enablePodMonitor `

`PodMonitor`を有効または無効にします

bool

NodeMaintenanceWindow

NodeMaintenanceWindowには、基になるノードのアップグレード中にオペレーターが使用する情報が含まれています。

このオプションは、選択したストレージによってポッドがノード間で自由に移動できない場合にのみ役立ちます。

Name

Description

Type

inProgress

進行中のノードのメンテナンスアクティビティはありますか? - 必須

bool

`reusePVC `

既存のPVCを再利用する(ノードが再度起動するのを待つ)か、しない(他の場所で再作成する - instances >1の場合)- 必須

*bool

PgBouncerIntegrationStatus

PgBouncerIntegrationStatusは、クラスターを参照するpgbouncerプーラーに必要な統合をカプセル化します

Name

Description

Type

secrets

該当なし

[]string

PgBouncerの秘密

PgBouncerSecretsには、pgbouncerによって使用されるシークレットのバージョンが含まれています

Name

Description

Type

authQuery

認証クエリのシークレットバージョン

シークレットバージョン

PgBouncerSpec

PgBouncerSpecはPgBouncerの構成方法を定義します

Name

Description

Type

`poolMode `

プールモード - 必須

PgBouncerPoolMode

authQuerySecret

認証クエリに使用する必要があるユーザーの資格情報。指定されている場合、 AuthQuery(例 "SELECT usename, passwd FROM pg_shadow WHERE usename=$1")も指定する必要があり、自動CNPGクラスター統合はトリガーされません。

*LocalObjectReference

`authQuery `

特定のユーザーのパスワードのハッシュをダウンロードするために使用されるクエリ。デフォルト: "SELECT usename, passwd FROM user_search($1)"。指定されている場合は、 AuthQuerySecretも指定する必要があり、自動CNPGクラスター統合はトリガーされません。

string

`parameters `

PgBouncerに渡す追加パラメーター - 構成可能なオプションのリストについては、CNPGドキュメントを確認してください

map[string]string

`paused `

`true`に設定すると、PgBouncerはPostgreSQLサーバーから切断し、最初にすべてのクエリが完了するのを待機し、この値が`false`(デフォルト)に設定されるまですべての新しいクライアント接続を一時停止します。内部的に、オペレーターはPgBouncerの`PAUSE`および`RESUME`コマンドを呼び出します。

*bool

ポッドメタ

PodMetaはmetav1.ObjectMetaに似た構造ですが、controller-genで解析して、ユーザーに適したCRDを作成します。 PodTemplateSpecのコメントには、コアデータ型を使用していない理由の説明があります。

Name

Description

Type

`labels `

オブジェクトの編成と分類(スコープと選択)に使用できる文字列のキーと値のマップ。レプリケーションコントローラーとサービスのセレクターと一致する場合があります。詳細: http://kubernetes.io/docs/user-guide/labels

map[string]string

annotations

アノテーションは、任意のメタデータを保存および取得する外部ツールによって設定されるリソースとともに保存される非構造化キー値マップです。これらは照会可能ではないため、オブジェクトを変更するときに保持する必要があります。詳細: http://kubernetes.io/docs/user-guide/annotations

map[string]string

PodTemplateSpec

PodTemplateSpecは、ユーザがPod生成のテンプレートを設定できる構造です。

残念ながら、生成されたCRDにはメタデータセクションのフィールドがないため、 corev1.PodTemplateSpecタイプを使用できません。

参照: https://github.com/kubernetes-sigs/controller-tools/issues/385 https://github.com/kubernetes-sigs/controller-tools/issues/448 https://github.com/prometheus- operator/prometheus-operator/issues/3041

Name

Description

Type

metadata

標準オブジェクトのメタデータ。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

ポッドメタ

`spec `

ポッドの目的の動作の仕様。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

corev1.PodSpec

プーラー

Poolerはpooler APIのスキーマです

Name

Description

Type

metadata

該当なし

metav1.ObjectMeta

`spec `

該当なし

PoolerSpec

`status `

該当なし

PoolerStatus

プーラー統合

PoolerIntegrationsは、クラスターを参照するプーラーに必要な統合をカプセル化します

Name

Description

Type

pgBouncerIntegration

該当なし

PgBouncerIntegrationStatus

PoolerList

PoolerListにはプーラーのリストが含まれています

Name

Description

Type

metadata

該当なし

metav1.ListMeta

`items `

  • 必須

[]Pooler

PoolerSecrets

PoolerSecretsには、使用されるすべてのシークレットのバージョンが含まれています

Name

Description

Type

`serverTLS `

サーバーのTLSシークレットバージョン

シークレットバージョン

`serverCA `

サーバーCAシークレットバージョン

シークレットバージョン

`clientCA `

クライアントCAシークレットバージョン

シークレットバージョン

pgBouncerSecrets

PgBouncerが使用するシークレットのバージョン

*PgBouncerSecrets

PoolerSpec

PoolerSpecはプーラーの望ましい状態を定義します

Name

Description

Type

`cluster `

これは、プーラーが動作するクラスター参照です。プーラー名は、同じ名前空間内のクラスター名と一致しないでください。 - 必須

LocalObjectReference

`type `

トラフィックを転送する必要があるインスタンスは? - 必須

PoolerType

instances

必要なレプリカの数 - 必須

int32

`template `

作成するPodのテンプレート

*PodTemplateSpec

pgbouncer

PgBouncer設定 - 必須

*PgBouncerSpec

PoolerStatus

PoolerStatusは、プーラーの監視状態を定義します

Name

Description

Type

`secrets `

構成オブジェクトのリソースバージョン

*PoolerSecrets

instances

スケジュールしようとしているポッドの数

int32

PostInitApplicationSQLRefs

PostInitApplicationSQLRefsは、 SQLファイルを含むConfigMapまたはSecretへの参照をポイントします。これらの参照への一般的な実装順序は、すべてのSecretsからすべてのConfigMapsへであり、SecretsまたはConfigMaps内では、実装順序は各配列の順序と同じです

Name

Description

Type

`secretRefs `

SecretRefsはSecretsへの参照のリストを保持します

[]SecretKeySelector

configMapRefs

ConfigMapRefsはConfigMapsへの参照のリストを保持しています

[]ConfigMapKeySelector

PostgresConfiguration

PostgresConfigurationはPostgreSQL構成を定義します

Name

Description

Type

`parameters `

PostgreSQL構成オプション(postgresql.conf)

map[string]string

`pg_hba `

PostgreSQLホストベースの認証ルール( pg_hba.confファイルに追加される行)

[]string

syncReplicaElectionConstraint

同期レプリカが満たす要件。これは、「synchronous_standby_names」パラメーターの設定方法に影響します。

SyncReplicaElectionConstraints

`promotionTimeout `

インスタンスをプライマリに昇格させるときに待機する最大秒数を指定します。デフォルト値は40000000で、1年を超える秒単位で、無限のタイムアウトをシミュレートするのに十分な大きさです

int32

`shared_preload_libraries `

デフォルトのものに追加する共有プリロードライブラリのリスト

[]string

`ldap `

LDAP構成を指定するオプション

*LDAPConfig

リカバリーターゲット

RecoveryTargetでは、回復プロセスを停止する瞬間を構成できます。 TargetTLIを除くすべてのターゲットオプションは相互に排他的です。

Name

Description

Type

`backupID `

リカバリープロセスを開始するバックアップのID。空の場合(デフォルト)、オペレーターはtargetTimeまたはtargetLSN(指定されている場合)に基づいてバックアップを自動的に検出します。それ以外の場合は、利用可能な最新のバックアップを時系列で使用します。

string

`targetTLI `

ターゲットタイムライン(「最新」または正の整数)

string

`targetXID `

対象トランザクションID

string

`targetName `

ターゲット名(以前に`pg_create_restore_point`で作成)

string

`targetLSN `

対象のLSN(Log Sequence Number)

string

`targetTime `

RFC3339標準のタイムスタンプとしてのターゲット時刻

string

targetImmediate

一貫した状態に達したらすぐにリカバリを終了する

*bool

`exclusive `

ターゲットを排他的に設定します(デフォルトはtrue)

*bool

ReplicaClusterConfiguration

ReplicaClusterConfigurationはレプリカクラスターの構成をカプセル化します

Name

Description

Type

enabled

レプリカモードが有効になっている場合、このクラスターは既存のクラスターのレプリカになります。レプリカクラスターは、回復オブジェクトストアから、またはpg_basebackupを介したストリーミングを介して作成できます。詳細については、ドキュメントのレプリケーションページを参照してください。 - 必須

bool

`source `

レプリケーション元である外部クラスターの名前 - 必須

string

RollingUpdateStatus

RollingUpdateStatusには、更新中のインスタンスに関する情報が含まれています

Name

Description

Type

imageName

Podに入れる画像 - 必須

string

startedAt

アップデートが開始されたら

metav1.Time

S3資格情報

S3Credentialsは、S3にファイルをアップロードするために使用される資格情報のタイプです。これは、2つの代替方法で提供できます。

  • accessKeyIdとsecretAccessKeyを明示的に渡す

  • inheritFromIAMRoleをtrueに設定してポッド環境からロールを継承

Name

Description

Type

`accessKeyId `

アクセスキーIDへの参照

*SecretKeySelector

`secretAccessKey `

シークレットアクセスキーへの参照

*SecretKeySelector

`region `

リージョン名を含むシークレットへの参照

*SecretKeySelector

`sessionToken `

セッションキーへの参照

*SecretKeySelector

inheritFromIAMRole

キーを明示的に提供せずにロールベースの認証を使用します。 - 必須

bool

スケジュールされたバックアップ

ScheduledBackupはcheduledbackups APIのスキーマです

Name

Description

Type

metadata

該当なし

metav1.ObjectMeta

`spec `

ScheduledBackupの目的の動作の指定。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

ScheduledBackupSpec

`status `

ScheduledBackupの最後に監視されたステータス。このデータは最新でない可能性があります。システムによって入力されます。読み取り専用。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

ScheduledBackupStatus

ScheduledBackupList

ScheduledBackupListにはScheduledBackupのリストが含まれています

Name

Description

Type

metadata

標準リストのメタデータ。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metav1.ListMeta

`items `

クラスターのリスト - 必須

[]ScheduledBackup

ScheduledBackupSpec

ScheduledBackupSpecはScheduledBackupの望ましい状態を定義します

Name

Description

Type

`suspend `

このバックアップが中断されているかどうか

*bool

`immediate `

作成後に最初のバックアップをすぐに開始する必要があるかどうか

*bool

`schedule `

スケジュールは、Kubernetes CronJobで使用されるのと同じフォーマットに従います。 https://pkg.go.dev/github.com/robfig/cron#hdr-CRON_Expression_Format - 必須

string

`cluster `

バックアップするクラスター

LocalObjectReference

backupOwnerReference

作成されたバックアップリソース内に配置するownerReferenceを示します。<br /> - none:作成されたバックアップオブジェクトの所有者参照はありません(フィールドが導入される前と同じ動作)<br /> - self:スケジュールされたバックアップオブジェクトを所有者として設定します。バックアップの<br /> - クラスター:クラスターをバックアップの所有者として設定します<br />

string

ScheduledBackupStatus

ScheduledBackupStatusは、ScheduledBackupの監視状態を定義します

Name

Description

Type

`lastCheckTime `

最新の時刻

*metav1.Time

lastScheduleTime

バックアップが最後にスケジュールされたときの情報。

*metav1.Time

nextScheduleTime

次回はバックアップを実行します

*metav1.Time

SecretKeyセレクター

SecretKeySelectorには、Secretのキーを見つけるのに十分な情報が含まれています

Name

Description

Type

key

選択するキー - 必須

string

シークレットバージョン

SecretVersionには、シークレット名とそのResourceVersionが含まれています

Name

Description

Type

`name `

秘密の名前

string

version

シークレットの ResourceVersion

string

SecretsResourceバージョン

SecretsResourceVersionは、オペレーターによって管理されるシークレットのリソースバージョンです

Name

Description

Type

`superuserSecretVersion `

「postgres」ユーザーシークレットのリソースバージョン

string

replicationSecretVersion

「streaming_replica」ユーザーシークレットのリソースバージョン

string

applicationSecretVersion

「アプリ」ユーザーシークレットのリソースバージョン

string

`caSecretVersion `

未使用。古いバージョンとの互換性のために保持されています。

string

`clientCaSecretVersion `

PostgreSQLクライアントサイドCAシークレットバージョンのリソースバージョン

string

`serverCaSecretVersion `

PostgreSQLサーバー側CAシークレットバージョンのリソースバージョン

string

`serverSecretVersion `

PostgreSQLサーバーサイドシークレットバージョンのリソースバージョン

string

`barmanEndpointCA `

提供されている場合、 Barman Endpoint CAのリソースバージョン

string

`metrics `

メトリックを渡すために使用されるすべてのシークレットのバージョンを含むマップ。マップキーはシークレット名、マップ値はバージョン

map[string]string

StorageConfiguration

StorageConfigurationは、PostgreSQLインスタンスのストレージの構成です

Name

Description

Type

`storageClass `

データベースデータ(PGDATA)に使用するStorageClass。 PVCテンプレートを評価した後に適用されます(可能な場合)。指定しない場合、生成されるPVCはデフォルトのストレージクラスによって満たされます

*string

`size `

ストレージのサイズ。 PVCテンプレートでまだ指定されていない場合は必須。このフィールドへの変更は、作成された PVC に自動的に再適用されます。サイズダウンはできません。 - 必須

string

resizeInUseVolumes

既存のPVCのサイズを変更します。デフォルトはtrue

*bool

`pvcTemplate `

永続ボリュームの要求の生成に使用されるテンプレート

*corev1.PersistentVolumeClaimSpec

SyncReplicaElectionConstraints

SyncReplicaElectionConstraintsには、同期レプリカの選択の制約が含まれています。

アンチアフィニティパラメーターの場合、すべてのラベル値が一致する場合、2つのインスタンスは同じ場所にあると見なされます

将来的には名前による同期レプリカの選択制限がサポートされます

Name

Description

Type

`enabled `

このフラグにより、同期レプリカの制約が有効になりました-必須

bool

nodeLabelsAntiAffinity

ポッドが同じトポロジにあるかどうかを評価するために抽出および比較するノードラベル値のリスト

[]string

トポロジー

トポロジーにはクラスター・トポロジーが含まれます

Name

Description

Type

successfullyExtracted

SuccessfullyExtractedは、トポロジーデータが抽出されたかどうかを示します。障害が発生した場合の同期レプリカ選択でフォールバック動作を制定すると役立ちます

bool

`instances `

インスタンスにはインスタンスのポッドトポロジが含まれています

map[PodName]PodTopologyLabels

WalBackup構成

WalBackupConfigurationは、WALストリームのバックアップの構成です

Name

Description

Type

compression

オブジェクトストアに送信する前にWALファイルを圧縮します。使用可能なオプションは、空の文字列(圧縮なし、デフォルト)、gzip、`bzip2`または`snappy`です。

CompressionType

`encryption `

ファイルの暗号化を強制するとき(バケットがまだそのように構成されていない場合)。許可されるオプションは空の文字列(バケットポリシーを使用)、AES256`および`aws:kms

EncryptionType

maxParallel

並行してアーカイブされる(PostgreSQLインスタンスがバックアップオブジェクトストアにアーカイブしている場合)または並行して復元される(PostgreSQLスタンバイがリカバリオブジェクトストアからWALファイルを取得している場合)、WALファイルの数。指定しない場合、WALファイルは一度に1つずつ処理されます。値として正の整数を受け入れます。1は受け入れられる最小値です。

int