RestoreConfig

Konfigurasi pemulihan. ID berikutnya: 12

Representasi 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.
}
Kolom
volumeDataRestorePolicy

enum (VolumeDataRestorePolicy)

Menentukan mekanisme yang akan digunakan untuk memulihkan data volume. Default: VOLUME_DATA_RESTORE_POLICY_UNSPECIFIED (akan diperlakukan sebagai NO_VOLUME_DATA_RESTORATION).

clusterResourceConflictPolicy

enum (ClusterResourceConflictPolicy)

Menentukan perilaku untuk menangani situasi saat resource cakupan cluster yang dipulihkan sudah ada di cluster target. Nilai ini HARUS ditetapkan ke nilai selain CLUSTER_RESOURCE_SAM_POLICY_UNSPECIFIED jika clusterResourceRestoreScope tidak kosong.

namespacedResourceRestoreMode

enum (NamespacedResourceRestoreMode)

Menentukan perilaku untuk menangani situasi ketika kumpulan resource dengan namespace yang dipulihkan sudah ada di cluster target. Ini HARUS ditetapkan ke nilai selain NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED.

clusterResourceRestoreScope

object (ClusterResourceRestoreScope)

Mengidentifikasi resource cakupan cluster yang akan dipulihkan dari Pencadangan. Jika tidak ditentukan, berarti TIDAK ADA resource cluster yang akan dipulihkan.

substitutionRules[]

object (SubstitutionRule)

Daftar aturan transformasi yang akan diterapkan pada resource Kubernetes saat aturan tersebut dipilih untuk pemulihan dari Pencadangan. Aturan dijalankan secara berurutan - urutan ini penting, karena perubahan yang dibuat oleh aturan dapat memengaruhi logika pemfilteran aturan berikutnya. Daftar kosong berarti tidak ada substitusi yang akan terjadi.

transformationRules[]

object (TransformationRule)

Daftar aturan transformasi yang akan diterapkan pada resource Kubernetes saat aturan tersebut dipilih untuk pemulihan dari Pencadangan. Aturan dijalankan secara berurutan - urutan ini penting, karena perubahan yang dibuat oleh aturan dapat memengaruhi logika pemfilteran aturan berikutnya. Daftar kosong berarti tidak ada transformasi yang akan terjadi.

Kolom union namespaced_resource_restore_scope. Menentukan resource dengan namespace yang akan dipulihkan dari Pencadangan. Hanya salah satu entri yang dapat ditentukan. Jika tidak ditentukan, TIDAK ADA resource dengan namespace yang akan dipulihkan.

Catatan: Resource tidak akan pernah dipulihkan ke namespace terkelola seperti kube-system, kube-public, atau kube-node-lease. Namespace ini dilewati tanpa pemberitahuan saat all_namespaces dipilih. Mencantumkannya secara eksplisit akan menghasilkan error. namespaced_resource_restore_scope hanya dapat berupa salah satu dari yang berikut:

allNamespaces

boolean

Memulihkan semua resource dengan namespace di Pencadangan jika disetel ke "True". Menetapkan kolom ini ke "False" adalah sebuah error.

selectedNamespaces

object (Namespaces)

Daftar Namespace yang dipilih untuk dipulihkan dari Pencadangan. Namespace yang tercantum dan semua resource yang terdapat di dalamnya akan dipulihkan.

selectedApplications

object (NamespacedNames)

Daftar ProtectedApplications yang dipilih untuk dipulihkan. ProtectedApplications yang tercantum dan semua resource yang dirujuk akan dipulihkan.

noNamespaces

boolean

Jangan pulihkan resource dengan namespace jika disetel ke "True". Menetapkan kolom ini ke "False" tidak diizinkan.

excludedNamespaces

object (Namespaces)

Daftar namespace yang dipilih yang dikecualikan dari pemulihan. Semua namespace kecuali yang ada dalam daftar ini akan dipulihkan.

VolumeDataRestorePolicy

Menentukan cara data volume dipulihkan.

Enum
VOLUME_DATA_RESTORE_POLICY_UNSPECIFIED Tidak ditetapkan (ilegal).
RESTORE_VOLUME_DATA_FROM_BACKUP Untuk setiap PVC yang akan dipulihkan, buat volume dasar dan PV baru dari VolumeBackup yang sesuai yang terdapat dalam Pencadangan.
REUSE_VOLUME_HANDLE_FROM_BACKUP Untuk setiap PVC yang akan dipulihkan, coba gunakan kembali PV asli yang ada dalam Cadangan (dengan volume aslinya yang mendasarinya). Opsi ini kemungkinan hanya dapat digunakan saat memulihkan beban kerja ke cluster aslinya.
NO_VOLUME_DATA_RESTORATION Untuk setiap PVC yang akan dipulihkan, buat PVC tanpa tindakan tertentu untuk memulihkan data. Dalam hal ini, logika penyediaan Kubernetes normal akan aktif, dan ini kemungkinan akan menghasilkan penyediaan PV kosong secara dinamis atau mengikat ke PV yang disediakan secara statis.

ClusterResourceConflictPolicy

Menentukan perilaku untuk menangani situasi saat resource cakupan cluster yang dipulihkan sudah ada di cluster target.

Enum
CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED Tidak ditentukan. Hanya diizinkan jika tidak ada resource cakupan cluster yang akan dipulihkan.
USE_EXISTING_VERSION Jangan mencoba memulihkan resource yang bentrok.
USE_BACKUP_VERSION Hapus versi yang ada sebelum membuatnya kembali dari Cadangan. Ini adalah opsi berbahaya yang dapat menyebabkan kehilangan data secara tidak sengaja jika tidak digunakan dengan benar. Misalnya, menghapus CRD akan menyebabkan Kubernetes menghapus semua CR jenis tersebut.

NamespacedResourceRestoreMode

Menentukan perilaku untuk menangani situasi ketika kumpulan resource dengan namespace yang dipulihkan sudah ada di cluster target.

Enum
NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED Tidak ditentukan (tidak valid).
DELETE_AND_RESTORE Saat resource level teratas yang bertentangan (baik Namespace atau ProtectedApplications, bergantung pada cakupan) ditemukan, hal ini akan memicu penghapusan resource yang bertentangan DAN SEMUA REFERENSI REFERENSINYA (misalnya, semua resource di Namespace atau semua resource yang dirujuk oleh ProtectedApplication) sebelum memulihkan resource dari Pencadangan. Mode ini hanya boleh digunakan jika Anda ingin mengembalikan beberapa bagian cluster ke status sebelumnya.
FAIL_ON_CONFLICT Jika resource tingkat teratas yang bertentangan (baik Namespace atau ProtectedApplications, tergantung pada cakupan) ditemukan di awal proses pemulihan, Pemulihan akan gagal. Jika terjadi konflik selama proses pemulihan itu sendiri (misalnya, karena proses out of band menciptakan resource yang bertentangan), konflik akan dilaporkan.

ClusterResourceRestoreScope

Menentukan cakupan resource cakupan cluster yang akan dipulihkan.

Beberapa jenis grup bukan pilihan pemulihan yang wajar, dan akan menyebabkan error jika dipilih di sini. Setiap pilihan cakupan yang akan memulihkan resource "semua valid" akan otomatis mengecualikan jenis grup ini. - 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

Beberapa jenis grup dikelola oleh konfigurasi pemulihan di tempat lain, dan akan menyebabkan error jika dipilih di sini. - Namespace - PersistentVolume

Representasi JSON
{
  "selectedGroupKinds": [
    {
      object (GroupKind)
    }
  ],
  "excludedGroupKinds": [
    {
      object (GroupKind)
    }
  ],
  "allGroupKinds": boolean,
  "noGroupKinds": boolean
}
Kolom
selectedGroupKinds[]

object (GroupKind)

Daftar jenis grup resource cakupan cluster yang akan dipulihkan dari cadangan. Jika ditentukan, hanya resource yang dipilih yang akan dipulihkan. Tidak dapat muncul bersamaan ke kolom lain dalam pesan.

excludedGroupKinds[]

object (GroupKind)

Daftar jenis grup resource cakupan cluster yang TIDAK akan dipulihkan dari cadangan. Jika ditentukan, semua resource cakupan cluster yang valid akan dipulihkan, kecuali yang ditentukan dalam daftar. Tidak dapat muncul bersamaan ke kolom lain dalam pesan.

allGroupKinds

boolean

Jika kebijakan disetel ke Benar (True), semua resource cakupan cluster yang valid akan dipulihkan. Tidak dapat muncul bersamaan ke kolom lain dalam pesan.

noGroupKinds

boolean

Jika kebijakan disetel ke Benar (True), resource cakupan cluster tidak akan dipulihkan. Tindakan ini memiliki cakupan pemulihan yang sama seolah-olah pesan tidak ditentukan. Tidak dapat muncul bersamaan ke kolom lain dalam pesan.

GroupKind

Ini adalah peta langsung ke jenis Kubernetes GroupKind GroupKind dan digunakan untuk mengidentifikasi "jenis" resource tertentu yang akan dipulihkan.

Representasi JSON
{
  "resourceGroup": string,
  "resourceKind": string
}
Kolom
resourceGroup

string

String grup API dari resource Kubernetes, misalnya "apiextensions.k8s.io", "storage.k8s.io", dll. Catatan: gunakan string kosong untuk grup API inti

resourceKind

string

Jenis resource Kubernetes, misalnya "CustomResourceDefinition", "StorageClass", dll.

SubstitutionRule

Aturan transformasi yang akan diterapkan pada resource Kubernetes saat dipilih untuk pemulihan dari Pencadangan. Aturan berisi logika pemfilteran (resource mana yang tunduk pada substitusi) dan logika substitusi.

Representasi JSON
{
  "targetNamespaces": [
    string
  ],
  "targetGroupKinds": [
    {
      object (GroupKind)
    }
  ],
  "targetJsonPath": string,
  "originalValuePattern": string,
  "newValue": string
}
Kolom
targetNamespaces[]

string

(Parameter pemfilteran) Setiap resource yang dapat diganti harus dimasukkan dalam salah satu Namespace Kubernetes yang tercantum di Pencadangan. Jika kolom ini tidak disediakan, tidak ada pemfilteran namespace yang akan dilakukan (semua resource di semua Namespace, termasuk semua resource cakupan cluster, akan menjadi kandidat untuk substitusi). Untuk menggabungkan resource dengan cakupan cluster dan namespace dalam aturan yang sama, gunakan string kosong ("") sebagai salah satu namespace target.

targetGroupKinds[]

object (GroupKind)

(Parameter pemfilteran) Setiap resource yang dapat diganti harus termasuk dalam salah satu "jenis" yang tercantum. Jika kolom ini tidak disediakan, tidak ada pemfilteran jenis yang akan dilakukan (semua resource dari semua jenis yang cocok dengan parameter pemfilteran sebelumnya akan menjadi kandidat untuk substitusi).

targetJsonPath

string

Wajib. Ini adalah ekspresi JSONPath yang cocok dengan kolom tertentu dari resource kandidat dan beroperasi sebagai parameter pemfilteran (resource yang tidak cocok dengan ekspresi ini tidak akan menjadi kandidat untuk substitusi) serta ID kolom (mengidentifikasi dengan tepat kolom mana dari resource kandidat yang akan diubah).

originalValuePattern

string

(Parameter pemfilteran) Ini adalah ekspresi reguler yang dibandingkan dengan kolom yang cocok dengan ekspresi targetJsonPath (dan juga harus telah meneruskan filter sebelumnya). Substitusi tidak akan dilakukan terhadap kolom yang nilainya tidak cocok dengan ekspresi ini. Jika kolom ini TIDAK ditentukan, SEMUA kolom yang cocok dengan ekspresi targetJsonPath akan diganti. Perhatikan bahwa kolom kosong (misalnya, Nilai "", bukan tidak ditentukan) untuk kolom ini hanya akan cocok dengan kolom kosong.

newValue

string

Ini adalah nilai baru yang akan ditetapkan untuk kolom apa pun yang lulus kriteria pemfilteran dan pemilihan. Untuk menghapus nilai dari resource Kubernetes, biarkan kolom ini tidak ditentukan, atau setel ke string kosong ("").

TransformationRule

Aturan transformasi yang akan diterapkan pada resource Kubernetes saat dipilih untuk pemulihan dari Pencadangan. Aturan berisi logika pemfilteran (resource mana yang tunduk pada transformasi) dan logika transformasi.

Representasi JSON
{
  "fieldActions": [
    {
      object (TransformationRuleAction)
    }
  ],
  "resourceFilter": {
    object (ResourceFilter)
  },
  "description": string
}
Kolom
fieldActions[]

object (TransformationRuleAction)

Wajib. Daftar tindakan aturan transformasi yang harus dilakukan terhadap resource kandidat. Tindakan dijalankan sesuai urutan yang ditentukan - urutan ini penting, karena tindakan tersebut berpotensi mengganggu satu sama lain dan operasi pertama dapat memengaruhi hasil operasi kedua.

resourceFilter

object (ResourceFilter)

Kolom ini digunakan untuk menentukan kumpulan kolom yang harus digunakan guna menentukan resource dalam pencadangan yang harus ditindaklanjuti oleh tindakan aturan transformasi yang disediakan, dan hal ini akan memastikan bahwa hanya resource tertentu yang terpengaruh oleh tindakan aturan transformasi.

description

string

Deskripsi adalah deskripsi string yang ditentukan pengguna dari aturan transformasi.

TransformationRuleAction

TransformationRuleAction menentukan tindakan TransformationRule berdasarkan RFC Patch JSON (https://www.rfc-editor.org/rfc/rfc6902)

Representasi JSON
{
  "op": enum (Op),
  "fromPath": string,
  "path": string,
  "value": string
}
Kolom
op

enum (Op)

Diperlukan. op menentukan operasi yang akan dilakukan.

fromPath

string

String berisi nilai JSON Pointer yang merujuk ke lokasi dalam dokumen target untuk memindahkan nilai.

path

string

String berisi nilai JSON-Pointer yang mereferensikan lokasi dalam dokumen target tempat operasi dilakukan.

value

string

String yang menentukan nilai yang diinginkan dalam format string yang akan digunakan untuk transformasi.

Op

Nilai yang mungkin untuk operasi tindakan aturan transformasi.

Enum
OP_UNSPECIFIED Operasi belum ditetapkan
REMOVE Operasi "penghapusan" menghapus nilai di lokasi target.
MOVE Operasi "pindahkan" menghapus nilai di lokasi yang ditentukan dan menambahkannya ke lokasi target.
COPY Operasi "salin" menyalin nilai di lokasi yang ditentukan ke lokasi target.
ADD Operasi "tambahkan" menjalankan salah satu fungsi berikut, bergantung pada referensi lokasi target: 1. Jika lokasi target menetapkan indeks array, nilai baru akan disisipkan ke dalam array pada indeks yang ditetapkan. 2. Jika lokasi target menetapkan anggota objek yang belum ada, anggota baru akan ditambahkan ke objek. 3. Jika lokasi target menetapkan anggota objek yang ada, nilai anggota tersebut akan diganti.
TEST Operasi "pengujian" menguji bahwa nilai di lokasi target sama dengan nilai yang ditetapkan.
REPLACE Operasi "ganti" mengganti nilai di lokasi target dengan nilai baru. Objek operasi HARUS berisi anggota "nilai" yang kontennya menentukan nilai pengganti.

ResourceFilter

ResourceFilter menentukan kriteria pencocokan untuk membatasi cakupan perubahan ke kumpulan resource Kubernetes tertentu yang dipilih untuk dipulihkan dari cadangan.

Representasi JSON
{
  "namespaces": [
    string
  ],
  "groupKinds": [
    {
      object (GroupKind)
    }
  ],
  "jsonPath": string
}
Kolom
namespaces[]

string

(Parameter pemfilteran) Setiap resource yang mengalami transformasi harus berada dalam salah satu Namespace Kubernetes yang tercantum di Pencadangan. Jika kolom ini tidak disediakan, tidak ada pemfilteran namespace yang akan dilakukan (semua resource di semua Namespace, termasuk semua resource cakupan cluster, akan menjadi kandidat untuk transformasi). Untuk menggabungkan resource dengan cakupan cluster dan namespace dalam aturan yang sama, gunakan string kosong ("") sebagai salah satu namespace target.

groupKinds[]

object (GroupKind)

(Parameter pemfilteran) Setiap resource yang mengalami transformasi harus merupakan bagian dari salah satu "jenis" yang tercantum. Jika kolom ini tidak disediakan, tidak ada pemfilteran jenis yang akan dilakukan (semua resource dari semua jenis yang cocok dengan parameter pemfilteran sebelumnya akan menjadi kandidat untuk transformasi).

jsonPath

string

Ini adalah ekspresi JSONPath yang cocok dengan kolom tertentu dari resource kandidat dan beroperasi sebagai parameter pemfilteran (resource yang tidak cocok dengan ekspresi ini tidak akan menjadi kandidat untuk transformasi).