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 |
`nodeAffinity ` |
NodeAffinityは、ポッドのノードアフィニティスケジューリングルールを説明します。詳細: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity |
*corev1.NodeAffinity |
`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つ(および1つだけ)が必要です。
storageKey - storageSasToken
inheritFromAzureADをtrueに設定して、ポッド環境から資格情報を継承する
Name |
Description |
Type |
|---|---|---|
`connectionString ` |
使用する接続文字列 |
|
`storageAccount ` |
データをアップロードするストレージアカウント |
|
`storageKey ` |
ストレージアカウント名と組み合わせて使用されるストレージアカウントキー |
|
`storageSasToken ` |
ストレージアカウント名と組み合わせて使用される共有アクセス署名 |
|
inheritFromAzureAD |
キーを明示的に提供せずに、Azure ADベースの認証を使用します。 - 必須 |
bool |
バックアップ¶
バックアップはバックアップAPIのスキーマです
Name |
Description |
Type |
|---|---|---|
metadata |
該当なし |
|
`spec ` |
バックアップの目的の動作の仕様。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status |
|
`status ` |
バックアップの最後に観察されたステータス。このデータは最新でない場合があります。システムによって入力されます。読み取り専用。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status |
BackupConfiguration¶
BackupConfigurationは、クラスターのバックアップを取得する方法を定義します。現在サポートされているバックアップ方法はbarmanObjectStoreのみです。詳細と例については、ドキュメントのバックアップとリカバリのセクションを参照してください
Name |
Description |
Type |
|---|---|---|
barmanObjectStore |
barman-cloudツールスイートの構成 |
|
`retentionPolicy ` |
RetentionPolicyは、バックアップとWAL(つまり '60d')に使用される保持ポリシーです。保持ポリシーは`XXu`の形式で表されます。ここで、 `XX`は正の整数であり、 `u`は`[dwm]`日、週、月です。 |
string |
`target ` |
バックアップを実行するインスタンスを決定するポリシー。利用可能なオプションは空の文字列で、デフォルトは`prefer-standby`ポリシーになります。`primary`はバックアップを常にプライマリインスタンスで実行します。 `prefer-standby`はできれば最新のスタンバイでバックアップを実行します。 |
BackupTarget |
バックアップリスト¶
BackupListにはバックアップのリストが含まれています
Name |
Description |
Type |
|---|---|---|
metadata |
標準リストのメタデータ。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
|
`items ` |
バックアップのリスト - 必須 |
バックアップソース¶
BackupSourceには、復元する必要があるバックアップと、それを正しく復元するために必要な情報が含まれています。
Name |
Description |
Type |
|---|---|---|
endpointCA |
EndpointCAは、barmanエンドポイントのCAバンドルを保存します。自己署名証明書を使用して、証明書発行者とbarman-cloud-wal-archiveのエラーを回避する場合に役立ちます。 |
BackupSpec¶
BackupSpecは、バックアップの望ましい状態を定義します
Name |
Description |
Type |
|---|---|---|
cluster |
バックアップするクラスター |
|
`target ` |
このバックアップを実行するインスタンスを決定するポリシー。空の場合、デフォルトは`cluster.spec.backup.target`です。利用可能なオプションは、空の文字列、`primary`および`prefer-standby`です。 `primary`は常にプライマリインスタンスでバックアップを実行します。 `prefer-standby`はできれば最新のスタンバイでバックアップを実行します(可能な場合)。 |
BackupTarget |
BackupStatus¶
BackupStatusは、バックアップの監視状態を定義します
Name |
Description |
Type |
|---|---|---|
`endpointCA ` |
EndpointCAは、barmanエンドポイントのCAバンドルを保存します。自己署名証明書を使用して、証明書発行者とbarman-cloud-wal-archiveのエラーを回避する場合に役立ちます。 |
|
`endpointURL ` |
自動エンドポイント検出をオーバーライドして、クラウドにデータをアップロードするために使用されるエンドポイント |
string |
destinationPath |
バックアップを保存するパス(つまり s3://bucket/path/to/folder) このパスは、さまざまな宛先フォルダーを使用して、WALとデータに使用されます。これは、エラーが発生した場合に設定されない場合があります。 |
string |
`serverName ` |
S3上のサーバー名、このパラメーターを省略するとクラスター名が使用されます |
string |
`encryption ` |
S3 APIに必要な暗号化方式 |
string |
`backupId ` |
BarmanバックアップのID |
string |
`backupName ` |
Barmanのバックアップの名前 |
string |
`phase ` |
最後のバックアップの状態 |
BackupPhase |
`startedAt ` |
バックアップが開始された日時 |
|
`stoppedAt ` |
バックアップが終了したとき |
|
`beginWal ` |
開始WAL |
string |
`endWal ` |
エンディングWAL |
string |
`beginLSN ` |
開始のxlog |
string |
`endLSN ` |
エンディングxlog |
string |
`error ` |
検出されたエラー |
string |
`commandOutput ` |
未使用。古いバージョンとの互換性のために保持されています。 |
string |
`commandError ` |
エラーが発生した場合のバックアップコマンド出力 |
string |
`instanceID ` |
バックアップの取得元のインスタンスを特定する情報 |
BarmanCredentials¶
BarmanCredentials 各クラウドプロバイダーの潜在的な資格情報を含むオブジェクト
Name |
Description |
Type |
|---|---|---|
googleCredentials |
Google Cloud Storageにデータをアップロードするために使用する認証情報 |
|
`s3Credentials ` |
S3にデータをアップロードするために使用する資格情報 |
|
`azureCredentials ` |
Azure Blob Storageにデータをアップロードするために使用する資格情報 |
BarmanObjectStoreConfiguration¶
BarmanObjectStoreConfigurationには、S3互換オブジェクトストレージに対するBarmanを使用したバックアップ構成が含まれています
Name |
Description |
Type |
|---|---|---|
`endpointURL ` |
自動エンドポイント検出をオーバーライドして、クラウドにデータをアップロードするために使用されるエンドポイント |
string |
`endpointCA ` |
EndpointCAは、barmanエンドポイントのCAバンドルを保存します。自己署名証明書を使用して、証明書発行者とbarman-cloud-wal-archiveのエラーを回避する場合に役立ちます |
|
destinationPath |
バックアップを保存するパス(つまり s3://bucket/path/to/folder)このパスは、さまざまな宛先フォルダーを使用して、WALとデータに使用されます- 必須 |
string |
`serverName ` |
S3上のサーバー名、このパラメーターを省略するとクラスター名が使用されます |
string |
`wal ` |
WALストリームのバックアップの構成。定義されていない場合、WALファイルは圧縮されずに保存され、バケットのデフォルトポリシーに従って、オブジェクトストアに暗号化されない場合があります。 |
|
`data ` |
データファイルのバックアップに使用される構成 定義されていない場合、ベースバックアップファイルは圧縮されずに保存され、バケットのデフォルトポリシーに従って、オブジェクトストアに暗号化されない場合があります。 |
|
`tags ` |
Tags は、 Barman --tagsオプションに渡されるキーと値のペアのリストです。 |
map[string]string |
`historyTags ` |
HistoryTags は、 Barman --history-tagsオプションに渡されるキーと値のペアのリストです。 |
map[string]string |
BootstrapConfiguration¶
BootstrapConfigurationには、PostgreSQLクラスターの作成方法に関する情報が含まれています。サポートされているもののうち、単一のブートストラップメソッドのみを定義できます。指定しない場合、
initdb
がブートストラップメソッドとして使用されます。詳細については、ドキュメントのBootstrapページを参照してください。
Name |
Description |
Type |
|---|---|---|
`initdb ` |
initdbを介してクラスターをブートストラップ |
|
`recovery ` |
バックアップからクラスターをブートストラップする |
|
pg_basebackup |
互換性のある別のPostgreSQLインスタンスの物理バックアップを取得して、クラスターをブートストラップします |
BootstrapInitDB¶
BootstrapInitDBは、 initdbが使用される場合のブートストラッププロセスの構成です 詳細については、ドキュメントのBootstrapページを参照してください。
Name |
Description |
Type |
|---|---|---|
`database ` |
アプリケーションが使用するデータベースの名前。デフォルト:app。 - 必須 |
string |
`owner ` |
アプリケーションが使用するインスタンス内のデータベースの所有者の名前。デフォルトは`database`キーの値です。 - 必須 |
string |
`secret ` |
ユーザーデータベースの所有者の初期資格情報を含むシークレットの名前。空の場合、新しいシークレットが最初から作成されます |
|
`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インスタンスからデータをインポートすることにより、新しいクラスターをブートストラップします |
|
postInitApplicationSQLRefs |
PostInitApplicationSQLRefsは、 SQLファイルを含むConfigMapまたはSecretsへの参照をポイントします。これらの参照への一般的な実装順序は、すべてのSecretsからすべてのConfigMapsへであり、SecretsまたはConfigMaps内では、実装順序は各配列の順序と同じです(デフォルトでは空) |
BootstrapPgBaseBackup¶
BootstrapPgBaseBackupには、既存のPostgreSQLクラスターの物理バックアップを作成するために必要な構成が含まれています
Name |
Description |
Type |
|---|---|---|
`source ` |
物理バックアップを取得する必要があるサーバーの名前 - 必須 |
string |
database |
アプリケーションが使用するデータベースの名前。デフォルト:app。 - 必須 |
string |
`owner ` |
アプリケーションが使用するインスタンス内のデータベースの所有者の名前。デフォルトは`database`キーの値です。 - 必須 |
string |
`secret ` |
ユーザーデータベースの所有者の初期資格情報を含むシークレットの名前。空の場合、新しいシークレットが最初から作成されます |
BootstrapRecovery¶
BootstrapRecoveryには、外部クラスター、ボリュームスナップショット、またはバックアップオブジェクトの3つの方法を使用して既存のクラスターから復元するために必要な構成が含まれています。完全復旧とポイントインタイム復旧がサポートされています。この方法は、連続リカバリー(レプリカクラスター)でクラスターを作成するためにも使用でき、
instances > 1の場合、カスケードレプリケーションもサポートします。
クラスターがリカバリーを終了すると、スーパーユーザーのパスワードは、指定されたシークレットを介して変更されます。詳細については、ドキュメントのBootstrapページを参照してください。
Name |
Description |
Type |
|---|---|---|
`backup ` |
リカバリ手順を開始する物理ベースバックアップを含むバックアップオブジェクト。 `source`および`volumeSnapshots`とは相互に排他的です。 |
|
`source ` |
バックアップを復元する外部クラスター。これは、バックアップが保存されるフォルダーの名前としても使用されるため、ソースクラスターの名前に設定する必要があります `backup`および`volumeSnapshots`と相互に排他的です。 |
string |
volumeSnapshots |
リカバリ手順を開始する静的PVCデータソース。現在、CloudNativePGと互換性のある既存のPVCグループをマッピングし、フェンスで囲まれたPostgresインスタンスのコールドバックアップコピーで取得する`VolumeSnapshot`および`PersistentVolumeClaim`リソースをサポートしています(オンラインバックアップが実装されるときに将来削除される制限)。 `backup`および`source`とは相互に排他的です。 |
|
`recoveryTarget ` |
デフォルトでは、回復プロセスはアーカイブ内の利用可能なすべてのWALファイルを適用します(完全回復)。ただし、PostgreSQLで予想されるように、 `RecoveryTarget`オブジェクト(つまり、タイムスタンプ、トランザクションID、LSN、.. 。)。詳細: https://www.postgresql.org/docs/current/runtime-config-wal.html#RUNTIME-CONFIG-WAL-RECOVERY-TARGET |
|
`database ` |
アプリケーションが使用するデータベースの名前。デフォルト:app。 - 必須 |
string |
`owner ` |
アプリケーションが使用するインスタンス内のデータベースの所有者の名前。デフォルトは`database`キーの値です。 - 必須 |
string |
`secret ` |
ユーザーデータベースの所有者の初期資格情報を含むシークレットの名前。空の場合、新しいシークレットが最初から作成されます |
CertificatesConfiguration¶
CertificatesConfigurationには、サーバー証明書を処理するために必要な構成が含まれています。
Name |
Description |
Type |
|---|---|---|
`serverCASecret ` |
サーバーCA証明書を含むシークレット。定義されていない場合、新しいシークレットは自己署名CAで作成され、TLS証明書ServerTLSSecretの生成に使用されます。<br /> <br /> 内容:<br /> <br /> - ca.crt:そのCAクライアント接続文字列で`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で新しいシークレットが作成され、すべてのクライアント証明書の生成に使用されます。<br /> <br /> 内容:<br /> <br /> - ca.crt:その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 |
該当なし |
|
`spec ` |
クラスターの目的の動作の仕様。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status |
|
`status ` |
クラスターの最後に観察されたステータス。このデータは最新でない場合があります。システムによって入力されます。読み取り専用。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status |
ClusterList¶
ClusterListには、クラスターのリストが含まれています
Name |
Description |
Type |
|---|---|---|
metadata |
標準リストのメタデータ。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
|
`items ` |
クラスターのリスト - 必須 |
ClusterSpec¶
ClusterSpecは、クラスターの望ましい状態を定義します
Name |
Description |
Type |
|---|---|---|
`description ` |
このPostgreSQLクラスターの説明 |
string |
`inheritedMetadata ` |
クラスターに関連するすべてのオブジェクトによって継承されるメタデータ |
|
`imageName ` |
コンテナイメージの名前、タグ(<image>:<tag>)と決定論的で反復可能なデプロイメントのダイジェスト(<image>:<tag>@sha256:<digestValue>)の両方をサポート |
string |
`imagePullPolicy ` |
イメージプルポリシー。 Always、Never、または`IfNotPresent`のいずれか。定義されていない場合、デフォルトは`IfNotPresent`です。更新できません。詳細: https://kubernetes.io/docs/concepts/containers/images#updating-images |
corev1.PullPolicy |
`schedulerName ` |
指定すると、ポッドは指定されたKubernetesスケジューラによってディスパッチされます。指定しない場合、ポッドはデフォルトのスケジューラーによってディスパッチされます。詳細: https://kubernetes.io/docs/concepts/scheduling-eviction/kube-scheduler/ |
string |
`postgresUID ` |
イメージ内の`postgres`ユーザーのUID、デフォルトは`26` |
int64 |
`postgresGID ` |
イメージ内の`postgres`ユーザーのGID、デフォルトは`26` |
int64 |
`instances ` |
クラスターに必要なインスタンスの数 - 必須 |
int |
`minSyncReplicas ` |
プライマリとの同期レプリケーションに必要なインスタンスの最小数。未定義または0は、スタンバイが利用できないときに書き込みを完了することを許可します。 |
int |
`maxSyncReplicas ` |
同期レプリケーションクォーラムのターゲット値。準備ができたスタンバイの数がこれよりも少ない場合に減らすことができます。未定義または0は同期レプリケーションを無効にします。 |
int |
`postgresql ` |
PostgreSQLサーバーの構成 |
|
`replicationSlots ` |
レプリケーションスロット管理構成 |
|
`bootstrap ` |
このクラスターをブートストラップする手順 |
|
`replica ` |
レプリカクラスター構成 |
|
`superuserSecret ` |
スーパーユーザーのパスワードを含むシークレット。定義されていない場合、ランダムに生成されたパスワードで新しいシークレットが作成されます |
|
`enableSuperuserAccess ` |
このオプションが有効になっている場合、オペレーターは`SuperuserSecret`を使用して`postgres`ユーザーパスワードを更新します(シークレットが存在しない場合、オペレーターは自動的に作成します)。このオプションが無効になっている場合、オペレーターは`SuperuserSecret`コンテンツを無視し、自動作成時に削除し、 `postgres`ユーザーのパスワードを`NULL`に設定して空白にします。デフォルトで有効になっています。 |
*bool |
`certificates ` |
CAおよび関連する証明書の構成 |
|
`imagePullSecrets ` |
イメージのプルに使用されるプルシークレットのリスト |
|
`storage ` |
インスタンスのストレージの構成 |
|
`serviceAccountTemplate ` |
サービスアカウントの世代を構成する |
|
`walStorage ` |
PostgreSQL WAL(ログ先行書き込み)のストレージの構成 |
|
`startDelay ` |
PostgreSQLインスタンスが正常に起動できる秒単位の時間(デフォルト30) |
int32 |
`stopDelay ` |
PostgreSQLインスタンスが正常にシャットダウンできる秒単位の時間(デフォルト30) |
int32 |
`switchoverDelay ` |
スイッチオーバー中にプライマリPostgreSQLインスタンスが正常にシャットダウンできる秒単位の時間。デフォルト値は40000000で、1年を超える秒単位で、無限の遅延をシミュレートするのに十分な大きさです |
int32 |
`failoverDelay ` |
クラスター内のプライマリPostgreSQLインスタンスが異常であることが検出された後、フェールオーバーをトリガーするまでに待機する時間(秒) |
int32 |
`affinity ` |
Podのアフィニティ/アンチアフィニティルール |
|
topologySpreadConstraints |
TopologySpreadConstraintsは、指定されたトポロジー間で一致するポッドを広げる方法を指定します。詳細: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/ |
[]corev1.TopologySpreadConstraint |
`resources ` |
生成されたすべてのPodのリソース要件。詳細については、 https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ を参照してください。 |
|
`priorityClassName ` |
生成されたすべてのPodで使用される優先度クラスの名前。指定されたPriorityClassが存在しない場合、Podはスケジュールできません。詳細については、 https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/#priorityclass を参照してください。 |
string |
`primaryUpdateStrategy ` |
すべてのレプリカが正常に更新された後、ローリング更新手順中にプライマリサーバーをアップグレードするために従う展開戦略:自動(unsupervised - default)または手動(supervised)できます |
PrimaryUpdateStrategy |
`primaryUpdateMethod ` |
すべてのレプリカが正常に更新された後、ローリング更新手順中にプライマリサーバーをアップグレードするために従う方法:スイッチオーバー(switchover)またはインプレース(restart-デフォルト)を使用できます |
PrimaryUpdateMethod |
`backup ` |
バックアップに使用される構成 |
|
`nodeMaintenanceWindow ` |
Kubernetesノードのメンテナンスウィンドウを定義する |
|
`monitoring ` |
このクラスターの監視インフラストラクチャの構成 |
|
`externalClusters ` |
構成で使用される外部クラスターのリスト |
|
`logLevel ` |
インスタンスのログレベル、次のいずれかの値:error、warning、info(デフォルト)、debug、trace |
string |
`projectedVolumeTemplate ` |
投影されたボリュームを定義するために使用されるテンプレート。投影されたボリュームは`/projected`ベースフォルダーの下にマウントされます |
*corev1.ProjectedVolumeSource |
`env ` |
EnvはEnvフォーマットに従って、クラスターで作成されたポッドに環境変数を渡します |
[]corev1.EnvVar |
`envFrom ` |
EnvFromはEnvFromフォーマットに従って、環境変数ソースをEnvで使用されるポッドに渡します |
[]corev1.EnvFromSource |
`managed ` |
インスタンスマネージャーによって管理されるPostgreSQLの部分によって使用される構成 |
|
`seccompProfile ` |
すべてのPodとContainerに適用されるSeccompProfile。デフォルト:RuntimeDefault |
*corev1.SeccompProfile |
ClusterStatus¶
ClusterStatusは、クラスターの監視状態を定義します
Name |
Description |
Type |
|---|---|---|
`instances ` |
クラスターで検出されたPVCグループの総数。既存のインスタンスポッドの数とは異なる場合があります。 |
int |
`readyInstances ` |
クラスター内の準備ができたインスタンスの合計数。レディインスタンスポッドの数と同じです。 |
int |
`instancesStatus ` |
InstancesStatusは、インスタンスがどのステータスにあるかを示します |
map[utils.PodStatus][]string |
`instancesReportedState ` |
最後の調整ループ中に報告されたインスタンスの状態 |
|
`managedRolesStatus ` |
ManagedRolesStatusは、クラスター内の管理対象ロールの状態を報告します |
|
`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 |
`unusablePVC ` |
別のPVCが見つからないために使用できないすべてのPVCのリスト |
[]string |
`writeService ` |
現在の書き込みポッド |
string |
`readService ` |
読み取りポッドの現在のリスト |
string |
`phase ` |
クラスターの現在のフェーズ |
string |
`phaseReason ` |
現在のフェーズの理由 |
string |
`secretsResourceVersion ` |
オペレーターが管理するシークレットのリソースバージョンのリスト。ここでのすべての変更は、シークレットデータを更新するインスタンスマネージャーの利益のために行われます |
|
`configMapResourceVersion ` |
オペレーターによって管理される、configmapのリソースバージョンのリスト。ここでのすべての変更は、構成マップデータを更新するインスタンスマネージャーの利益のために行われます |
|
`certificates ` |
デフォルトで初期化された、CAおよび関連する証明書の構成。 |
|
`firstRecoverabilityPoint ` |
RFC3339形式で日付として保存された最初の回復可能性ポイント |
string |
`lastSuccessfulBackup ` |
RFC3339形式の日付として保存 |
string |
`lastFailedBackup ` |
RFC3339形式の日付として保存 |
string |
`cloudNativePGCommitHash ` |
このオペレーターが実行しているコミットハッシュ番号 |
string |
`currentPrimaryTimestamp ` |
プライマリへの実際のプロモーションが最後に発生したときのタイムスタンプ |
string |
currentPrimaryFailingSinceTimestamp |
プライマリが異常であることが検出されたときのタイムスタンプこのフィールドは、spec.failoverDelayが入力されたとき、またはオンラインアップグレード中に報告されます |
string |
`targetPrimaryTimestamp ` |
新しいプライマリに対する最後の要求が発生したときのタイムスタンプ |
string |
`poolerIntegrations ` |
クラスターを参照するプーラーに必要な統合 |
|
`cloudNativePGOperatorHash ` |
演算子のバイナリのハッシュ |
string |
`onlineUpdateEnabled ` |
OnlineUpdateEnabledは、オンラインアップグレードがクラスター内で有効になっているかどうかを示します |
bool |
`azurePVCUpdateEnabled ` |
AzurePVCUpdateEnabledは、このクラスターでPVCオンラインアップグレードが有効になっているかどうかを示します |
bool |
`conditions ` |
クラスターオブジェクトの条件 |
[]metav1.Condition |
`instanceNames ` |
クラスター内のインスタンス名のリスト |
[]string |
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 |
データソース¶
DataSourceには、既存のストレージからPostgreSQLクラスターをブートストラップするために必要な構成が含まれています
Name |
Description |
Type |
|---|---|---|
`storage ` |
インスタンスのストレージの構成 - 必須 |
corev1.TypedLocalObjectReference |
walStorage |
PostgreSQL WAL(ログ先行書き込み)のストレージの構成 |
*corev1.TypedLocalObjectReference |
EmbeddedObjectMetadata¶
EmbeddedObjectMetadataには、クラスターに関連するすべてのリソースによって継承されるメタデータが含まれています
Name |
Description |
Type |
|---|---|---|
`labels ` |
該当なし |
map[string]string |
annotations |
該当なし |
map[string]string |
ExternalCluster¶
ExternalClusterは、構成の他のセクションで使用される外部クラスターへの接続パラメーターを表します
Name |
Description |
Type |
|---|---|---|
`name ` |
サーバー名、必須- 必須 |
string |
connectionParameters |
dbname、host、usernameなどの接続パラメーターのリスト |
map[string]string |
`sslCert ` |
このインスタンスへの接続に使用されるSSL証明書への参照 |
|
`sslKey ` |
このインスタンスへの接続に使用されるSSLプライベートキーへの参照 |
|
`sslRootCert ` |
このインスタンスへの接続に使用されるSSL CA公開鍵への参照 |
|
`password ` |
サーバーへの接続に使用されるパスワードへの参照 |
|
`barmanObjectStore ` |
barman-cloudツールスイートの構成 |
Google資格情報¶
GoogleCredentialsは、Google Cloud Storage資格情報のタイプです。 GKE環境内で実行する場合でも、これを指定する必要があります。
Name |
Description |
Type |
|---|---|---|
`gkeEnvironment ` |
trueに設定されている場合、GKE環境内で実行されていると想定します。デフォルトはfalseです。 - 必須 |
bool |
applicationCredentials |
認証情報を含むGoogle Cloud Storage JSONファイルを含むシークレット |
インポート¶
ImportにはexternalClusterのロジックスナップショットからデータベースを初期化する構成が含まれています
Name |
Description |
Type |
|---|---|---|
`source ` |
インポートのソース - 必須 |
|
`type ` |
インポートタイプ。 `microservice`または`monolith`になります。 - 必須 |
SnapshotType |
`databases ` |
インポートするデータベース - 必須 |
[]string |
`roles ` |
インポートするロール |
[]string |
postImportApplicationSQL |
がインポートされた直後にアプリケーションデータベースでスーパーユーザーとして実行されるSQLクエリのリスト - 細心の注意を払って使用します(デフォルトでは空)。マイクロサービスタイプでのみ使用できます。 |
[]string |
`schemaOnly ` |
trueに設定すると、 pg_restore`の`pre-data`および`post-data`セクションのみが呼び出され、データのインポートが回避されます。デフォルト:`false。 |
bool |
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 ` |
ディレクトリにバインドするユーザーのパスワードを持つシークレット |
|
searchAttribute |
ユーザー名と照合する属性 |
string |
`searchFilter ` |
検索+バインド認証を行うときに使用する検索フィルター |
string |
LDAPConfig¶
LDAPConfigには、LDAP認証に必要なパラメーターが含まれています
Name |
Description |
Type |
|---|---|---|
`server ` |
LDAPホスト名またはIPアドレス |
string |
`port ` |
LDAPサーバーポート |
int |
`scheme ` |
使用するLDAPスキーマ、可能なオプションは`ldap`および`ldaps`です |
LDAPScheme |
`tls ` |
「true」に設定して、LDAP over TLSを有効にします。 「false」がデフォルトです |
bool |
`bindAsAuth ` |
認証構成としてバインド |
|
bindSearchAuth |
Bind+Search認証構成 |
LocalObjectReference¶
LocalObjectReferenceには、同じ名前空間内の既知のタイプのローカルオブジェクトを見つけるのに十分な情報が含まれています
Name |
Description |
Type |
|---|---|---|
name |
レファレントの名前。 - 必須 |
string |
ManagedConfiguration¶
ManagedConfigurationは、インスタンスマネージャーによって管理されるPostgreSQLの部分を表します
Name |
Description |
Type |
|---|---|---|
roles |
`Cluster`によって管理されるデータベースロール |
管理対象ロール¶
ManagedRolesは、クラスターの管理対象ロールのステータスを追跡します
Name |
Description |
Type |
|---|---|---|
`byStatus ` |
ByStatusは、各状態のロールのリストを提供します |
map[RoleStatus][]string |
cannotReconcile |
CannotReconcileは、PostgreSQLで調整できないロールを、その原因の説明とともにリストします |
map[string][]string |
`passwordStatus ` |
PasswordStatusは、管理対象ロールごとに最後のトランザクションIDとパスワードのシークレットバージョンを提供します |
メタデータ¶
メタデータは、 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 |
MonitoringConfiguration¶
MonitoringConfigurationは、特定のクラスターのすべてのモニタリング構成を含むタイプです
Name |
Description |
Type |
|---|---|---|
`disableDefaultQueries ` |
デフォルトのクエリを注入するかどうか。クラスターにデフォルトのクエリを挿入しない場合は、 true に設定します。デフォルト:false。 |
*bool |
customQueriesConfigMap |
カスタムクエリを含む構成マップのリスト |
|
`customQueriesSecret ` |
カスタムクエリを含むシークレットのリスト |
|
`enablePodMonitor ` |
`PodMonitor`を有効または無効にします |
bool |
NodeMaintenanceWindow¶
NodeMaintenanceWindowには、基になるノードのアップグレード中にオペレーターが使用する情報が含まれています。
このオプションは、選択したストレージによってPodがノード間で自由に移動できない場合にのみ役立ちます。
Name |
Description |
Type |
|---|---|---|
inProgress |
進行中のノードメンテナンスアクティビティはありますか? - 必須 |
bool |
`reusePVC ` |
既存のPVCを再利用する(ノードが再び立ち上がるのを待つ)か、しない(他の場所で再作成する - instances >1の場合) - 必須 |
*bool |
PasswordState¶
PasswordStateは、管理対象RoleConfigurationのパスワードの状態を表します
Name |
Description |
Type |
|---|---|---|
`transactionID ` |
PostgreSQLのロール定義に影響を与える最後のトランザクションID |
int64 |
resourceVersion |
パスワードシークレットのリソースバージョン |
string |
PgBouncerIntegrationStatus¶
PgBouncerIntegrationStatusは、クラスターを参照するpgbouncerプーラーに必要な統合をカプセル化します
Name |
Description |
Type |
|---|---|---|
secrets |
該当なし |
[]string |
PgBouncerSecrets¶
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クラスター統合はトリガーされません。 |
|
`authQuery ` |
特定のユーザーのパスワードのハッシュをダウンロードするために使用されるクエリ。デフォルト: "SELECT usename、passwd FROM user_search($1)"。指定されている場合は、 AuthQuerySecretも指定する必要があり、自動CNPGクラスター統合はトリガーされません。 |
string |
`parameters ` |
PgBouncerに渡される追加パラメーター - 構成できるオプションのリストについては、CNPGドキュメントを確認してください |
map[string]string |
`pg_hba ` |
PostgreSQLホストベースの認証ルール( pg_hba.confファイルに追加される行) |
[]string |
`paused ` |
`true`に設定されている場合、PgBouncerはPostgreSQLサーバーから切断し、最初にすべてのクエリが完了するのを待機し、この値が`false`(デフォルト)に設定されるまですべての新しいクライアント接続を一時停止します。内部的に、オペレーターはPgBouncerの`PAUSE`および`RESUME`コマンドを呼び出します。 |
*bool |
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はpoolers APIのスキーマです
Name |
Description |
Type |
|---|---|---|
metadata |
該当なし |
|
`spec ` |
該当なし |
|
`status ` |
該当なし |
PoolerIntegrations¶
PoolerIntegrationsは、クラスターを参照するプーラーに必要な統合をカプセル化します
Name |
Description |
Type |
|---|---|---|
pgBouncerIntegration |
該当なし |
PoolerList¶
PoolerListには、プーラーのリストが含まれています
Name |
Description |
Type |
|---|---|---|
metadata |
該当なし |
|
`items ` |
|
PoolerMonitoringConfiguration¶
PoolerMonitoringConfigurationは、特定のプーラーのすべての監視構成を含むタイプです。
クラスターのMonitoringConfigurationをミラーリングしますが、今のところカスタムクエリ部分はありません。
Name |
Description |
Type |
|---|---|---|
enablePodMonitor |
`PodMonitor`を有効または無効にします |
bool |
PoolerSecrets¶
PoolerSecretsには、使用されるすべてのシークレットのバージョンが含まれています
Name |
Description |
Type |
|---|---|---|
`serverTLS ` |
サーバーTLSシークレットバージョン |
|
`serverCA ` |
サーバーCAシークレットバージョン |
|
`clientCA ` |
クライアントCAシークレットバージョン |
|
pgBouncerSecrets |
PgBouncerが使用するシークレットのバージョン |
PoolerSpec¶
PoolerSpecは、プーラーの望ましい状態を定義します
Name |
Description |
Type |
|---|---|---|
`cluster ` |
これは、プーラーが動作するクラスター参照です。プーラー名は、同じ名前空間内のクラスター名と一致しないでください。 - 必須 |
|
`type ` |
どのインスタンスにトラフィックを転送する必要がありますか? - 必須 |
PoolerType |
`instances ` |
必要なレプリカの数 - 必須 |
int32 |
`template ` |
作成するPodのテンプレート |
|
`pgbouncer ` |
PgBouncer構成 - 必須 |
|
deploymentStrategy |
pgbouncerが既存のポッドを新しいポッドに置き換えるために使用するデプロイ戦略 |
*appsv1.DeploymentStrategy |
`monitoring ` |
このプーラーの監視インフラストラクチャの構成。 |
PoolerStatus¶
PoolerStatusは、プーラーの監視状態を定義します
Name |
Description |
Type |
|---|---|---|
`secrets ` |
構成オブジェクトのリソースバージョン |
|
instances |
スケジュールしようとしているポッドの数 |
int32 |
PostInitApplicationSQLRefs¶
PostInitApplicationSQLRefsは、 SQLファイルを含むConfigMapまたはSecretsへの参照をポイントします。これらの参照への一般的な実装順序は、すべてのSecretsからすべてのConfigMapsへであり、SecretsまたはConfigMaps内では、実装順序は各配列の順序と同じです
Name |
Description |
Type |
|---|---|---|
`secretRefs ` |
SecretRefsはSecretsへの参照のリストを保持します |
|
configMapRefs |
ConfigMapRefsはConfigMapsへの参照のリストを保持します |
PostgresConfiguration¶
PostgresConfigurationはPostgreSQL構成を定義します
Name |
Description |
Type |
|---|---|---|
`parameters ` |
PostgreSQL構成オプション(postgresql.conf) |
map[string]string |
`pg_hba ` |
PostgreSQLホストベースの認証ルール( pg_hba.confファイルに追加される行) |
[]string |
syncReplicaElectionConstraint |
同期レプリカが満たすべき要件。これは、「synchronous_standby_names」パラメーターの設定方法に影響します。 |
|
`promotionTimeout ` |
インスタンスをプライマリに昇格するときに待機する最大秒数を指定します。デフォルト値は40000000で、1年単位の秒より大きく、無限のタイムアウトをシミュレートするのに十分な大きさです |
int32 |
`shared_preload_libraries ` |
デフォルトのものに追加する共有プリロードライブラリのリスト |
[]string |
`ldap ` |
LDAP構成を指定するオプション |
RecoveryTarget¶
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 ` |
ターゲットを排他的に設定します。省略すると、デフォルトでfalseになるため、Postgresでは recovery_target_inclusive はtrueになります |
*bool |
ReplicaClusterConfiguration¶
ReplicaClusterConfigurationはレプリカクラスターの構成をカプセル化します
Name |
Description |
Type |
|---|---|---|
enabled |
レプリカモードが有効になっている場合、このクラスターは既存のクラスターのレプリカになります。レプリカクラスターは、復旧オブジェクトストアから、またはpg_basebackupを介したストリーミングを介して作成できます。詳細については、ドキュメントのレプリケーションページを参照してください。 - 必須 |
bool |
`source ` |
レプリケーション元である外部クラスターの名前 - 必須 |
string |
ReplicationSlotsConfiguration¶
ReplicationSlotsConfigurationは、レプリケーションスロットの構成をカプセル化します
Name |
Description |
Type |
|---|---|---|
highAvailability |
高可用性構成のレプリケーションスロット |
|
`updateInterval ` |
スタンバイは、 `updateInterval`秒(デフォルト30)ごとにローカルレプリケーションスロットのステータスを更新します。 |
int |
ReplicationSlotsHAConfiguration¶
ReplicationSlotsHAConfigurationは、オペレーターによって自動的に管理されるレプリケーションスロットの構成をカプセル化し、高可用性(HA)目的でスタンバイインスタンスとのストリーミングレプリケーション接続を制御します。レプリケーションスロットはPostgreSQLの機能であり、ストリーミングクライアント(この特定の場合、HAクラスターの一部であるレプリカ)が切断されたときに、PostgreSQLがWALファイルをプライマリに自動的に保持します。
Name |
Description |
Type |
|---|---|---|
`enabled ` |
有効にすると、オペレーターはプライマリインスタンスのレプリケーションスロットを自動的に管理し、HAクラスターの一部であるすべてのスタンバイインスタンスとのストリーミングレプリケーション接続でそれらを使用します。無効にした場合(デフォルト)、オペレーターはレプリカとのストリーミング接続でレプリケーションスロットを利用しません。この機能は、指定されたプライマリからそのカスケードレプリカまで、レプリカクラスターのレプリケーションスロットも制御します。これは作成時にのみ設定できます。 - 必須 |
*bool |
slotPrefix |
HAのオペレーターが管理するレプリケーションスロットのプレフィックス。小文字、数字、アンダースコア文字のみを含めることができます。これは作成時にのみ設定できます。デフォルトでは`_cnpg_`に設定されます。 |
string |
RoleConfiguration¶
RoleConfigurationは、Kubernetesでの、追加フィールドを備えたPostgreSQLロールの表現ですデータベース内のロールの有無を保証するかどうかを指定するEnsure
CREATE ROLEコマンドのデフォルトが適用されます 参考:https://www.postgresql.org/docs/current/sql-createrole.html
Name |
Description |
Type |
|---|---|---|
`name ` |
ロールの名前 - 必須 |
string |
`comment ` |
役割の説明 |
string |
`ensure ` |
ロールが`present`または`absent`であることを確認します-デフォルトは「present」 |
EnsureOption |
`passwordSecret ` |
ロールのパスワードを含むシークレット(存在する場合) nullの場合、DisablePasswordが設定されていない限り、パスワードは無視されます |
|
disablePassword |
DisablePasswordは、PostgresでロールのパスワードをNULLに設定する必要があることを示します |
bool |
`superuser ` |
ロールがデータベース内のすべてのアクセス制限をオーバーライドできる`superuser`であるかどうか-スーパーユーザーステータスは危険であり、本当に必要な場合にのみ使用する必要があります。新しいスーパーユーザーを作成するには、自分がスーパーユーザーである必要があります。デフォルトは`false`です。 |
bool |
`createdb ` |
`true`に設定すると、定義されているロールは新しいデータベースを作成できます。 `false`(デフォルト)を指定すると、ロールはデータベースを作成する機能を拒否されます。 |
bool |
`createrole ` |
ロールが他のロールの作成、変更、ドロップ、コメント、セキュリティラベルの変更、および他のロールのメンバーシップの付与または取り消しを許可されるかどうか。デフォルトは`false`です。 |
bool |
`inherit ` |
ロールがメンバーであるロールの特権を「継承」するかどうか。デフォルトは`true`です。 |
*bool |
`login ` |
ロールにログインが許可されているかどうか。 `login`属性を持つロールは、ユーザーと見なすことができます。この属性のないロールは、データベース権限の管理に役立ちますが、通常の意味でのユーザーではありません。デフォルトは`false`です。 |
bool |
`replication ` |
ロールがレプリケーションロールかどうか。レプリケーションモード(物理または論理レプリケーション)でサーバーに接続し、レプリケーションスロットを作成またはドロップできるようにするには、ロールがこの属性を持っている(またはスーパーユーザーである)必要があります。 `replication`属性を持つロールは非常に高い特権のロールであり、実際にレプリケーションに使用されるロールでのみ使用する必要があります。デフォルトは`false`です。 |
bool |
`bypassrls ` |
ロールがすべての行レベルセキュリティ(RLS)ポリシーをバイパスするかどうか。デフォルトは`false`です。 |
bool |
connectionLimit |
ロールがログインできる場合、これはロールが作成できる同時接続の数を指定します。 -1 (デフォルト)は制限がないことを意味します。 |
int64 |
`validUntil ` |
ロールのパスワードが無効になる日時。省略すると、パスワードは無期限になります(デフォルト)。 |
|
`inRoles ` |
このロールが新しいメンバーとしてすぐに追加される1つ以上の既存のロールのリスト。デフォルトは空です。 |
[]string |
RollingUpdateStatus¶
RollingUpdateStatusには、更新中のインスタンスに関する情報が含まれています
Name |
Description |
Type |
|---|---|---|
imageName |
Podに入れる画像 - 必須 |
string |
startedAt |
アップデートが開始されたら |
S3資格情報¶
S3Credentialsは、S3にファイルをアップロードするために使用される資格情報のタイプです。 2つの代替方法で提供できます。
accessKeyIdとsecretAccessKeyを明示的に渡す
inheritFromIAMRoleをtrueに設定して、ポッド環境からロールを継承する
Name |
Description |
Type |
|---|---|---|
`accessKeyId ` |
アクセスキーIDへの参照 |
|
`secretAccessKey ` |
シークレットアクセスキーへの参照 |
|
`region ` |
リージョン名を含むシークレットへの参照 |
|
`sessionToken ` |
セッションキーへの参照 |
|
inheritFromIAMRole |
キーを明示的に提供せずにロールベースの認証を使用します。 - 必須 |
bool |
スケジュールされたバックアップ¶
ScheduledBackupは、scheduledbackups APIのスキーマです
Name |
Description |
Type |
|---|---|---|
metadata |
該当なし |
|
`spec ` |
ScheduledBackupの目的の動作の仕様。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status |
|
`status ` |
ScheduledBackupの最後に観察されたステータス。このデータは最新でない場合があります。システムによって入力されます。読み取り専用。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status |
ScheduledBackupList¶
ScheduledBackupListにはScheduledBackupのリストが含まれています
Name |
Description |
Type |
|---|---|---|
metadata |
標準リストのメタデータ。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
|
`items ` |
クラスターのリスト - 必須 |
ScheduledBackupSpec¶
ScheduledBackupSpecはScheduledBackupの望ましい状態を定義します
Name |
Description |
Type |
|---|---|---|
`suspend ` |
このバックアップが中断されているかどうか |
*bool |
`immediate ` |
最初のバックアップを作成後すぐに開始する必要があるかどうか |
*bool |
`schedule ` |
スケジュールは、追加の秒指定子が含まれているため、Kubernetes CronJobsで使用される同じ形式に従いません。 https://pkg.go.dev/github.com/robfig/cron#hdr-CRON_Expression_Format- 必須 |
string |
`cluster ` |
バックアップするクラスター |
|
backupOwnerReference |
作成されたバックアップリソース内にどのownerReferenceを置く必要があるかを示します。<br /> - none:作成されたバックアップオブジェクトの所有者参照なし(フィールドが導入される前と同じ動作)<br /> - self:スケジュールされたバックアップオブジェクトを所有者として設定します。バックアップの<br /> - クラスター:クラスターをバックアップの所有者として設定します<br /> |
string |
`target ` |
このバックアップを実行するインスタンスを決定するポリシー。空の場合、デフォルトは`cluster.spec.backup.target`です。利用可能なオプションは、空の文字列、`primary`および`prefer-standby`です。 `primary`は常にプライマリインスタンスでバックアップを実行します。 `prefer-standby`はできれば最新のスタンバイでバックアップを実行します(可能な場合)。 |
BackupTarget |
ScheduledBackupStatus¶
ScheduledBackupStatusは、ScheduledBackupの監視状態を定義します
Name |
Description |
Type |
|---|---|---|
`lastCheckTime ` |
スケジュールの最終時刻 |
|
lastScheduleTime |
バックアップが最後にスケジュールされたときの情報。 |
|
nextScheduleTime |
次回はバックアップを実行します |
SecretKeySelector¶
SecretKeySelectorには、Secretのキーを見つけるのに十分な情報が含まれています
Name |
Description |
Type |
|---|---|---|
key |
選択するキー - 必須 |
string |
SecretVersion¶
SecretVersionには、シークレット名とそのResourceVersionが含まれています
Name |
Description |
Type |
|---|---|---|
`name ` |
秘密の名前 |
string |
version |
シークレットの ResourceVersion |
string |
SecretsResourceVersion¶
SecretsResourceVersionは、オペレーターが管理するシークレットのリソースバージョンです
Name |
Description |
Type |
|---|---|---|
`superuserSecretVersion ` |
「postgres」ユーザーシークレットのリソースバージョン |
string |
replicationSecretVersion |
「streaming_replica」ユーザーシークレットのリソースバージョン |
string |
applicationSecretVersion |
「アプリ」ユーザーシークレットのリソースバージョン |
string |
managedRoleSecretVersion |
管理対象ロールシークレットのリソースバージョン |
map[string]string |
`caSecretVersion ` |
未使用。古いバージョンとの互換性のために保持されています。 |
string |
`clientCaSecretVersion ` |
PostgreSQLクライアント側CAシークレットバージョンのリソースバージョン |
string |
`serverCaSecretVersion ` |
PostgreSQLサーバ側CAシークレットバージョンのリソースバージョン |
string |
`serverSecretVersion ` |
PostgreSQLサーバーサイドシークレットバージョンのリソースバージョン |
string |
`barmanEndpointCA ` |
提供されている場合、 Barman Endpoint CAのリソースバージョン |
string |
`metrics ` |
メトリックを渡すために使用されるすべてのシークレットのバージョンを含むマップ。マップキーはシークレット名、マップ値はバージョンです |
map[string]string |
ServiceAccountTemplate¶
ServiceAccountTemplateには、サービスアカウントの生成に必要なテンプレートが含まれています
Name |
Description |
Type |
|---|---|---|
metadata |
Metadataは、生成されたサービスアカウントに使用されるメタデータです- 必須 |
StorageConfiguration¶
StorageConfigurationは、PostgreSQLインスタンスのストレージの構成です
Name |
Description |
Type |
|---|---|---|
`storageClass ` |
データベースデータ(PGDATA)に使用するStorageClass。 PVCテンプレートを評価した後に適用されます(可能な場合)。指定しない場合、生成されるPVCはデフォルトのストレージクラスによって満たされます |
*string |
`size ` |
ストレージのサイズ。 PVCテンプレートでまだ指定されていない場合は必須。このフィールドへの変更は、作成されたPVCに自動的に再適用されます。サイズダウン不可。 |
string |
resizeInUseVolumes |
既存のPVCのサイズを変更、デフォルトはtrue |
*bool |
`pvcTemplate ` |
永続ボリューム要求の生成に使用されるテンプレート |
SyncReplicaElectionConstraints¶
SyncReplicaElectionConstraintsには、同期レプリカ選択の制約が含まれています。
アンチアフィニティパラメーターの場合、すべてのラベル値が一致する場合、2つのインスタンスは同じ場所にあると見なされます。
将来的には、名前による同期レプリカの選択制限がサポートされる予定です。
Name |
Description |
Type |
|---|---|---|
`enabled ` |
このフラグは、同期レプリカの制約を有効にします- 必須 |
bool |
nodeLabelsAntiAffinity |
ポッドが同じトポロジに存在するかどうかを評価するために抽出および比較するノードラベル値のリスト |
[]string |
トポロジー¶
トポロジーにはクラスタートポロジーが含まれます
Name |
Description |
Type |
|---|---|---|
successfullyExtracted |
successlyExtractedは、トポロジデータが抽出されたかどうかを示します。障害が発生した場合の同期レプリカ選択でフォールバック動作を制定すると便利です |
bool |
`instances ` |
インスタンスには、インスタンスのポッドトポロジが含まれています |
map[PodName]PodTopologyLabels |
`nodesUsed ` |
NodesUsedは、インスタンスを収容する個別のノードの数を表します。値「1」は、すべてのインスタンスが単一のノードでホストされていることを示し、高可用性(HA)がないことを意味します。理想的には、この値はPostgres HAクラスター内のインスタンス数と同じである必要があり、コンピューティング側で何も共有されないアーキテクチャを意味します。 |
int32 |
WalBackupConfiguration¶
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 |