RestoreConfig

復元の構成。次の ID: 12

JSON 表現
{
  "volumeDataRestorePolicy": enum (VolumeDataRestorePolicy),
  "clusterResourceConflictPolicy": enum (ClusterResourceConflictPolicy),
  "namespacedResourceRestoreMode": enum (NamespacedResourceRestoreMode),
  "clusterResourceRestoreScope": {
    object (ClusterResourceRestoreScope)
  },
  "substitutionRules": [
    {
      object (SubstitutionRule)
    }
  ],
  "transformationRules": [
    {
      object (TransformationRule)
    }
  ],

  // Union field namespaced_resource_restore_scope can be only one of the
  // following:
  "allNamespaces": boolean,
  "selectedNamespaces": {
    object (Namespaces)
  },
  "selectedApplications": {
    object (NamespacedNames)
  },
  "noNamespaces": boolean,
  "excludedNamespaces": {
    object (Namespaces)
  }
  // End of list of possible types for union field
  // namespaced_resource_restore_scope.
}
フィールド
volumeDataRestorePolicy

enum (VolumeDataRestorePolicy)

ボリューム データの復元に使用するメカニズムを指定します。デフォルト: VOLUME_DATA_RESTORE_POLICY_UNSPECIFIED(NO_VOLUME_DATA_RESTORATION として扱われます)。

clusterResourceConflictPolicy

enum (ClusterResourceConflictPolicy)

復元するクラスタ スコープのリソースがターゲット クラスタにすでに存在する場合の処理方法を定義します。clusterResourceRestoreScope が空でない場合、これは CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED 以外の値に設定する必要があります。

namespacedResourceRestoreMode

enum (NamespacedResourceRestoreMode)

復元する Namespace 付きリソースのセットがターゲット クラスタにすでに存在する場合の処理方法を定義します。これは、NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED 以外の値に設定する必要があります。

clusterResourceRestoreScope

object (ClusterResourceRestoreScope)

Backup から復元するクラスタ スコープのリソースを指定します。指定しなかった場合、クラスタ リソースは復元されません。

substitutionRules[]

object (SubstitutionRule)

Backup からの復元に選択された Kubernetes リソースに適用する変換ルールのリスト。ルールは定義された順序で実行されます。ルールによる変更が後続のルールのフィルタリング ロジックに影響する可能性があるため、この順序は重要です。リストが空の場合、置換は行われません。

transformationRules[]

object (TransformationRule)

Backup からの復元に選択された Kubernetes リソースに適用する変換ルールのリスト。ルールは定義された順序で実行されます。ルールによる変更が後続のルールのフィルタリング ロジックに影響する可能性があるため、この順序は重要です。リストが空の場合、変換は行われません。

共用体フィールド namespaced_resource_restore_scope。バックアップから復元する Namespace 付きリソースを指定します。指定できるエントリは 1 つだけです。指定しない場合、Namespace リソースは復元されません。

注: リソースは、kube-systemkube-publickube-node-lease などのマネージド Namespace に復元されることはありません。all_namespaces が選択されている場合、これらの Namespace は通知なしでスキップされます。これらを明示的に一覧表示すると、エラーが発生します。namespaced_resource_restore_scope は次のいずれかになります。

allNamespaces

boolean

True に設定されている場合は、Backup 内のすべての Namespace 付きリソースを復元します。このフィールドに False を指定するとエラーになります。

selectedNamespaces

object (Namespaces)

Backup から復元する Namespace のリスト。リストされた Namespace と、それらに含まれるすべてのリソースが復元されます。

selectedApplications

object (NamespacedNames)

復元に選択した ProtectedApplications のリスト。リストされた ProtectedApplication と、それらが参照するすべてのリソースが復元されます。

noNamespaces

boolean

True に設定されている場合、Namespace 付きリソースは復元されません。このフィールドに False を指定することはできません。

excludedNamespaces

object (Namespaces)

復元の対象外として選択された Namespace のリスト。このリストにある Namespace を除くすべての Namespace が復元されます。

VolumeDataRestorePolicy

ボリューム データの復元方法を定義します。

列挙型
VOLUME_DATA_RESTORE_POLICY_UNSPECIFIED 指定なし(不正)。
RESTORE_VOLUME_DATA_FROM_BACKUP 復元する PVC ごとに、Backup 内の対応する VolumeBackup から新しい基盤となるボリュームと PV を作成します。
REUSE_VOLUME_HANDLE_FROM_BACKUP 復元する PVC ごとに、Backup に含まれている元の PV を(元の基盤となるボリュームとともに)再利用しようとします。このオプションは、ワークロードを元のクラスタに復元する場合にのみ使用できます。
NO_VOLUME_DATA_RESTORATION 復元する PVC ごとに、データを復元するための特別な操作を行わずに PVC を作成します。この場合、通常の Kubernetes プロビジョニング ロジックが開始し、空の PV が動的にプロビジョニングされるか、静的にプロビジョニングされた PV にバインドされる可能性があります。

ClusterResourceConflictPolicy

復元するクラスタ スコープのリソースがターゲット クラスタにすでに存在する場合の処理方法を定義します。

列挙型
CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED 指定なし。クラスタ スコープのリソースが復元されない場合にのみ許可されます。
USE_EXISTING_VERSION 競合するリソースを復元しません。
USE_BACKUP_VERSION Backup から再作成する前に、既存のバージョンを削除します。これは、不適切に使用すると意図しないデータ損失につながる恐れがある危険なオプションです。たとえば、CRD を削除すると、Kubernetes でそのタイプのすべての CR が削除されます。

NamespacedResourceRestoreMode

復元する Namespace 付きリソースのセットがターゲット クラスタにすでに存在する場合の処理方法を定義します。

列挙型
NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED 指定なし(無効)。
DELETE_AND_RESTORE 競合するトップレベル リソース(スコープに応じて Namespace または ProtectedApplication)が検出されると、まず、競合するリソースと、そのリソースが参照するすべてのリソース(Namespace 内のすべてのリソース、ProtectedApplication によって参照されるすべてのリソースなど)の削除がトリガーされ、その後で Backup からリソースが復元されます。このモードは、クラスタの一部を以前の状態に戻す場合にのみ使用してください。
FAIL_ON_CONFLICT 復元プロセスの開始時に競合するトップレベル リソース(スコープに応じて Namespaces または ProtectedApplications)が見つかった場合、復元は失敗します。復元プロセス自体で競合が発生した場合(帯域外のプロセスが競合するリソースを作成した場合など)、競合が報告されます。

ClusterResourceRestoreScope

復元するクラスタ スコープのリソースのスコープが定義されます。

一部の種類のグループは復元に適さないため、ここで選択するとエラーが発生します。有効なすべてのリソースを復元するスコープ選択では、こうした種類のグループは自動的に除外されます。- gkebackup.gke.io/BackupJob - gkebackup.gke.io/RestoreJob - metrics.k8s.io/NodeMetrics - migration.k8s.io/StorageState - migration.k8s.io/StorageVersionMigration - Node - snapshot.storage.k8s.io/VolumeSnapshotContent - storage.k8s.io/CSINode

一部の種類のグループは、他の場所の復元構成に依存するため、ここで選択するとエラーが発生します。- Namespace - PersistentVolume

JSON 表現
{
  "selectedGroupKinds": [
    {
      object (GroupKind)
    }
  ],
  "excludedGroupKinds": [
    {
      object (GroupKind)
    }
  ],
  "allGroupKinds": boolean,
  "noGroupKinds": boolean
}
フィールド
selectedGroupKinds[]

object (GroupKind)

バックアップから復元するクラスタ スコープのリソース グループの種類のリスト。指定した場合、選択したリソースのみが復元されます。メッセージ内の他のフィールドとは相互に排他的です。

excludedGroupKinds[]

object (GroupKind)

バックアップから復元しないクラスタ スコープのリソース グループの種類のリスト。指定した場合、リストに指定されたリソースを除く、有効なクラスタ スコープのリソースがすべて復元されます。メッセージ内の他のフィールドとは相互に排他的です。

allGroupKinds

boolean

True の場合、有効なクラスタ スコープのリソースがすべて復元されます。メッセージ内の他のフィールドとは相互に排他的です。

noGroupKinds

boolean

True の場合、クラスタ スコープのリソースは復元されません。これは、メッセージが定義されていない場合と同じ復元スコープになります。メッセージ内の他のフィールドとは相互に排他的です。

GroupKind

これは Kubernetes GroupKind タイプ GroupKind への直接マッピングであり、復元するリソースの特定のタイプを識別するために使用されます。

JSON 表現
{
  "resourceGroup": string,
  "resourceKind": string
}
フィールド
resourceGroup

string

Kubernetes リソースの API グループ文字列(apiextensions.k8s.io、storage.k8s.io など)。注: コア API グループには空の文字列を使用します。

resourceKind

string

Kubernetes リソースの種類(CustomResourceDefinition、StorageClass など)。

SubstitutionRule

Backup からの復元に選択された Kubernetes リソースに適用される変換ルール。ルールには、フィルタリング ロジック(置換対象リソースの条件)と置換ロジックの両方が含まれています。

JSON 表現
{
  "targetNamespaces": [
    string
  ],
  "targetGroupKinds": [
    {
      object (GroupKind)
    }
  ],
  "targetJsonPath": string,
  "originalValuePattern": string,
  "newValue": string
}
フィールド
targetNamespaces[]

string

(フィルタリング パラメータ)置換の対象となるリソースは、Backup にリストされている Kubernetes Namespace のいずれかに含まれている必要があります。このフィールドが指定されていない場合、Namespace のフィルタリングは実行されません(すべてのクラスタ スコープのリソースを含む、すべての Namespace 内のすべてのリソースが置換対象になります)。同じルールでクラスタ スコープのリソースと Namespace 付きリソースを混在させるには、ターゲット Namespace の 1 つとして空の文字列("")を使用します。

targetGroupKinds[]

object (GroupKind)

(フィルタリング パラメータ)置換の対象となるリソースは、リスト内のいずれかのタイプに属している必要があります。このフィールドが指定されていない場合、タイプのフィルタリングは実行されません(前のフィルタリング パラメータと一致するすべてのタイプのすべてのリソースが置換対象になります)。

targetJsonPath

string

必須。これは、候補リソースの特定のフィールドと一致する JSONPath 式です。これは、フィルタリング パラメータ(この式と一致するリソースを置換)とフィールド識別子(候補のリソースのうち、どのフィールドを変更するかを正確に識別)の両方として機能します。

originalValuePattern

string

(フィルタリング パラメータ)targetJsonPath 式で一致するフィールドと比較される正規表現です(また、前のフィルタも通過している必要があります)。この式に一致しない値のフィールドは置換されません。このフィールドが指定されていない場合、targetJsonPath 式に一致するすべてのフィールドが置換されます。空の値(未指定ではなく、"")を指定すると、空のフィールドにのみ一致するようになります。

newValue

string

これは、フィルタリングと選択の条件を渡すすべてのフィールドに設定できる新しい値です。Kubernetes リソースから値を削除するには、このフィールドを指定しないか、空の文字列("")に設定します。

TransformationRule

Backup からの復元に選択された Kubernetes リソースに適用される変換ルール。ルールには、フィルタリング ロジック(変換対象リソースの条件)と変換ロジックの両方が含まれています。

JSON 表現
{
  "fieldActions": [
    {
      object (TransformationRuleAction)
    }
  ],
  "resourceFilter": {
    object (ResourceFilter)
  },
  "description": string
}
フィールド
fieldActions[]

object (TransformationRuleAction)

必須。候補リソースに対して実行する変換ルール アクションのリスト。アクションは定義された順序で実行されます。この順序は重要です。アクションは相互に干渉し、最初のオペレーションが 2 番目のオペレーションの結果に影響する可能性があります。

resourceFilter

object (ResourceFilter)

このフィールドは、指定された変換ルールのアクションを適用するバックアップ内のリソースを決定するための一連のフィールドを指定するために使用されます。これにより、変換ルールのアクションが特定のリソースにのみ影響します。

description

string

説明は、変換ルールに対するユーザー指定の説明(文字列)です。

TransformationRuleAction

TransformationRuleAction は、JSON Patch RFC(https://www.rfc-editor.org/rfc/rfc6902)に基づく TransformationRule アクションを定義します。

JSON 表現
{
  "op": enum (Op),
  "fromPath": string,
  "path": string,
  "value": string
}
フィールド
op

enum (Op)

必須。op は、実行するオペレーションを指定します。

fromPath

string

値を移動するターゲット ドキュメント内の場所を参照する JSON ポインタ値を含む文字列。

path

string

オペレーションが実行されるターゲット ドキュメント内の場所を参照する JSON ポインタ値を含む文字列。

value

string

変換に使用する値を文字列形式で指定する文字列。

Op

変換ルール アクションのオペレーションの有効な値。

列挙型
OP_UNSPECIFIED オペレーションの指定なし
REMOVE remove オペレーションは、ターゲットの場所の値を削除します。
MOVE move オペレーションは、指定された場所の値を削除し、ターゲットの場所に追加します。
COPY copy オペレーションは、指定された場所の値をターゲットの場所にコピーします。
ADD add オペレーションは、ターゲットの場所が参照する内容に応じて、次のいずれかを実行します。1. ターゲットの場所で配列インデックスを指定している場合は、指定されたインデックスの配列に新しい値が挿入されます。2. ターゲットの場所で、まだ存在しないオブジェクト メンバーを指定している場合は、新しいメンバーがオブジェクトに追加されます。3. ターゲットの場所で既存のオブジェクト メンバーを指定している場合は、そのメンバーの値が置き換えられます。
TEST test オペレーションは、ターゲットの場所の値が指定された値と等しいことをテストします。
REPLACE replace オペレーションは、ターゲットの場所の値を新しい値に置き換えます。オペレーション オブジェクトには、置換値を指定する value メンバーが含まれている必要があります。

ResourceFilter

ResourceFilter は、バックアップからの復元に選択された Kubernetes リソースの特定のセットに対する変更範囲を制限するための一致条件を指定します。

JSON 表現
{
  "namespaces": [
    string
  ],
  "groupKinds": [
    {
      object (GroupKind)
    }
  ],
  "jsonPath": string
}
フィールド
namespaces[]

string

(フィルタリング パラメータ)変換の対象となるリソースは、Backup にリストされている Kubernetes Namespace のいずれかに含まれている必要があります。このフィールドが指定されていない場合、Namespace のフィルタリングは実行されません(すべてのクラスタ スコープのリソースを含む、すべての Namespace 内のすべてのリソースが変換対象になります)。同じルールでクラスタ スコープのリソースと Namespace 付きリソースを混在させるには、ターゲット Namespace の 1 つとして空の文字列("")を使用します。

groupKinds[]

object (GroupKind)

(フィルタリング パラメータ)変換の対象となるリソースは、リスト内のいずれかのタイプに属している必要があります。このフィールドが指定されていない場合、タイプのフィルタリングは実行されません(前のフィルタリング パラメータと一致するすべてのタイプのすべてのリソースが変換対象になります)。

jsonPath

string

これは、候補リソースの特定のフィールドと一致する JSONPath 式であり、フィルタリング パラメータとして機能します(この式と一致しないリソースは変換の候補になりません)。