RestoreConfig

Configurazione di un ripristino. ID successivo: 12

Rappresentazione 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.
}
Campi
volumeDataRestorePolicy

enum (VolumeDataRestorePolicy)

Specifica il meccanismo da utilizzare per ripristinare i dati di volume. Valore predefinito: VOLUME_DATA_RESTORE_POLICY_UNSPECIFIED (verrà trattato come NO_VOLUME_DATA_RESTORATION).

clusterResourceConflictPolicy

enum (ClusterResourceConflictPolicy)

Definisce il comportamento per la gestione della situazione in cui le risorse con ambito cluster da ripristinare esistono già nel cluster di destinazione. DEVE essere impostato su un valore diverso da CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED se il campo clusterResourceRestoreScope non è vuoto.

namespacedResourceRestoreMode

enum (NamespacedResourceRestoreMode)

Definisce il comportamento per la gestione della situazione in cui nel cluster di destinazione esistono già insiemi di risorse con spazio dei nomi da ripristinare. DEVE essere impostato su un valore diverso da NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED.

clusterResourceRestoreScope

object (ClusterResourceRestoreScope)

Identifica le risorse con ambito cluster da ripristinare dal backup. Se non lo specifichi, NON verrà ripristinata nessuna risorsa cluster.

substitutionRules[]

object (SubstitutionRule)

Un elenco di regole di trasformazione da applicare alle risorse Kubernetes selezionate per il ripristino da un backup. Le regole vengono eseguite in base all'ordine definito: questo ordine è importante, poiché le modifiche apportate da una regola possono influire sulla logica di filtro delle regole successive. Se l'elenco è vuoto, non verrà eseguita alcuna sostituzione.

transformationRules[]

object (TransformationRule)

Un elenco di regole di trasformazione da applicare alle risorse Kubernetes selezionate per il ripristino da un backup. Le regole vengono eseguite in base all'ordine definito: questo ordine è importante, poiché le modifiche apportate da una regola possono influire sulla logica di filtro delle regole successive. Se l'elenco è vuoto, non verrà eseguita alcuna trasformazione.

Campo di unione namespaced_resource_restore_scope. Specifica le risorse con spazio dei nomi da ripristinare dal backup. È possibile specificare una sola delle voci. Se non specificato, NON verranno ripristinate risorse con spazio dei nomi.

Nota: le risorse non verranno mai ripristinate in spazi dei nomi gestiti, come kube-system, kube-public o kube-node-lease. Questi spazi dei nomi vengono ignorati automaticamente quando viene selezionato all_namespaces. Se le elenca esplicitamente, verrà restituito un errore. namespaced_resource_restore_scope può essere solo uno dei seguenti:

allNamespaces

boolean

Ripristina tutte le risorse con spazio dei nomi nel backup se è impostato su "True". L'impostazione di questo campo su "False" è un errore.

selectedNamespaces

object (Namespaces)

Un elenco di spazi dei nomi selezionati da ripristinare dal backup. Gli spazi dei nomi elencati e tutte le risorse al loro interno verranno ripristinati.

selectedApplications

object (NamespacedNames)

Un elenco delle applicazioni protette selezionate da ripristinare. Le applicazioni ProtectedApplications elencate e tutte le risorse a cui fanno riferimento verranno ripristinate.

noNamespaces

boolean

Non ripristinare le risorse con spazio dei nomi se è impostato su "True". Non è consentito specificare questo campo su "False".

excludedNamespaces

object (Namespaces)

Un elenco di spazi dei nomi selezionati esclusi dal ripristino. Tutti gli spazi dei nomi tranne quelli in questo elenco verranno ripristinati.

VolumeDataRestorePolicy

Definisce la modalità di ripristino dei dati del volume.

Enum
VOLUME_DATA_RESTORE_POLICY_UNSPECIFIED Non specificato (illegale).
RESTORE_VOLUME_DATA_FROM_BACKUP Per ogni PVC da ripristinare, crea un nuovo volume sottostante e un nuovo volume permanente dal VolumeBackup corrispondente contenuto nel backup.
REUSE_VOLUME_HANDLE_FROM_BACKUP Per ogni richiesta di volume permanente da ripristinare, prova a riutilizzare il volume permanente originale contenuto nel backup (con il volume sottostante originale). Probabilmente questa opzione è utilizzabile solo quando ripristini un carico di lavoro nel cluster originale.
NO_VOLUME_DATA_RESTORATION Per ogni PVC da ripristinare, crea una PVC senza alcuna azione specifica per ripristinare i dati. In questo caso, viene attivata la normale logica di provisioning di Kubernetes, che potrebbe determinare il provisioning dinamico dei PV vuoti o l'associazione a quelli di cui è stato eseguito il provisioning statico.

ClusterResourceConflictPolicy

Definisce il comportamento per la gestione della situazione in cui le risorse con ambito cluster da ripristinare esistono già nel cluster di destinazione.

Enum
CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED Non specificato. Consentito solo se non verrà ripristinata alcuna risorsa con ambito cluster.
USE_EXISTING_VERSION Non tentare di ripristinare la risorsa in conflitto.
USE_BACKUP_VERSION Elimina la versione esistente prima di ricrearla dal backup. Si tratta di un'opzione pericolosa che potrebbe causare la perdita accidentale di dati se utilizzata in modo inappropriato. Ad esempio, l'eliminazione di un CRD causerà l'eliminazione di tutte le RP di quel tipo da parte di Kubernetes.

NamespacedResourceRestoreMode

Definisce il comportamento per la gestione della situazione in cui nel cluster di destinazione esistono già insiemi di risorse con spazio dei nomi da ripristinare.

Enum
NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED Non specificato (non valido).
DELETE_AND_RESTORE Quando si verificano risorse di primo livello in conflitto (spazi dei nomi o ProtectedApplications, a seconda dell'ambito), viene prima attivata un'eliminazione della risorsa in conflitto E di TUTTE LE RISORSE DI RIFERIMENTO (ad esempio, tutte le risorse nello spazio dei nomi o tutte le risorse a cui viene fatto riferimento da ProtectedApplication) prima di ripristinare le risorse dal backup. Questa modalità deve essere utilizzata solo se intendi ripristinare uno stato precedente di una parte di un cluster.
FAIL_ON_CONFLICT Se all'inizio di un processo di ripristino vengono rilevate risorse di primo livello in conflitto (spazi dei nomi o ProtectedApplications, a seconda dell'ambito), il ripristino non andrà a buon fine. Se si verifica un conflitto durante il processo di ripristino (ad esempio perché un processo fuori banda crea risorse in conflitto), verrà segnalato un conflitto.

ClusterResourceRestoreScope

Definisce l'ambito delle risorse con ambito cluster da ripristinare.

Alcuni tipi di gruppo non sono scelte ragionevoli per un ripristino e, se selezionati qui, causeranno un errore. Qualsiasi selezione di ambito che ripristini "tutte le risorse valide" esclude automaticamente questi tipi di gruppi. - gkebackup.gke.io/BackupJob - gkebackup.gke.io/scoperteJob - metric.k8s.io/NodeMetrics - migration.k8s.io/StorageState - migration.k8s.io/StorageVersionmigration - Node - snapshot.storage.k8s.io/VolumeSnapshotContent - storage.kINodes.io/

Alcuni tipi di gruppo si basano sul ripristino della configurazione altrove e, se selezionati qui, causeranno un errore. - Spazio dei nomi - PersistentVolume

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

object (GroupKind)

Un elenco dei tipi di gruppi di risorse con ambito cluster da ripristinare dal backup. Se specificato, verranno ripristinate solo le risorse selezionate. Si escludono a vicenda per qualsiasi altro campo nel messaggio.

excludedGroupKinds[]

object (GroupKind)

Un elenco di tipi di gruppi di risorse con ambito cluster da NON ripristinare dal backup. Se specificato, verranno ripristinate tutte le risorse con ambito cluster valide, ad eccezione di quelle specificate nell'elenco. Si escludono a vicenda per qualsiasi altro campo nel messaggio.

allGroupKinds

boolean

Se il valore è true, tutte le risorse con ambito cluster valide verranno ripristinate. Si escludono a vicenda per qualsiasi altro campo nel messaggio.

noGroupKinds

boolean

Se il valore è true, non verrà ripristinata nessuna risorsa con ambito cluster. L'ambito del ripristino è lo stesso che se il messaggio non fosse definito. Si escludono a vicenda per qualsiasi altro campo nel messaggio.

GroupKind

Questa è una mappa diretta al tipo GroupKind di Kubernetes GroupKind e viene utilizzata per identificare "tipi" specifici di risorse da ripristinare.

Rappresentazione JSON
{
  "resourceGroup": string,
  "resourceKind": string
}
Campi
resourceGroup

string

Stringa del gruppo API di una risorsa Kubernetes, ad esempio "apiextensions.k8s.io", "storage.k8s.io" e così via. Nota: utilizza una stringa vuota per il gruppo di API principale

resourceKind

string

Tipo di risorsa Kubernetes, ad esempio "CustomResourceDefinition", "StorageClass" e così via.

SubstitutionRule

Una regola di trasformazione da applicare alle risorse Kubernetes selezionate per il ripristino da un backup. Una regola contiene sia una logica di filtro (le risorse soggette a sostituzione) sia una logica di sostituzione.

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

string

(Parametro di filtro) Qualsiasi risorsa soggetta a sostituzione deve essere contenuta in uno degli spazi dei nomi Kubernetes elencati nel backup. Se questo campo non viene fornito, non verrà eseguito alcun filtro dello spazio dei nomi (tutte le risorse in tutti gli spazi dei nomi, incluse tutte le risorse con ambito cluster, saranno candidati per la sostituzione). Per combinare risorse con ambito cluster e con spazio dei nomi nella stessa regola, utilizza una stringa vuota ("") come uno degli spazi dei nomi di destinazione.

targetGroupKinds[]

object (GroupKind)

(Parametro di filtro) Qualsiasi risorsa soggetta a sostituzione deve appartenere a uno dei "tipi" elencati. Se questo campo non viene fornito, non verrà eseguito alcun filtro di tipo (tutte le risorse di tutti i tipi che corrispondono ai parametri di filtro precedenti verranno sostituite).

targetJsonPath

string

Obbligatorio. Si tratta di un'espressione JSONPath che corrisponde a campi specifici delle risorse candidate e funziona sia come parametro di filtro (le risorse che non corrispondono a questa espressione non saranno candidati per la sostituzione) e come identificatore di campo (identifica esattamente quali campi delle risorse candidate verranno modificati).

originalValuePattern

string

(Parametro di filtro) Si tratta di un'espressione regolare che viene confrontata con i campi corrispondenti dall'espressione targetJsonPath (e deve aver superato i filtri precedenti). La sostituzione non verrà eseguita con i campi il cui valore non corrisponde a questa espressione. Se questo campo NON viene specificato, TUTTI i campi corrispondenti all'espressione targetJsonPath verranno sostituiti. Tieni presente che un campo vuoto (ad es. "", anziché non specificato) per questo campo corrisponderà solo ai campi vuoti.

newValue

string

Si tratta del nuovo valore da impostare per tutti i campi che trasmettono i criteri di filtro e selezione. Per rimuovere un valore da una risorsa Kubernetes, non specificare questo campo oppure impostalo sulla stringa vuota ("").

TransformationRule

Una regola di trasformazione da applicare alle risorse Kubernetes selezionate per il ripristino da un backup. Una regola contiene sia la logica di filtro (le risorse soggette a trasformazione) sia la logica di trasformazione.

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

object (TransformationRuleAction)

Obbligatorio. Un elenco di azioni delle regole di trasformazione da eseguire per le risorse candidate. Le azioni vengono eseguite in base all'ordine definito: questo ordine è importante, poiché potrebbero interferire tra loro e la prima operazione potrebbe influire sul risultato della seconda.

resourceFilter

object (ResourceFilter)

Questo campo viene utilizzato per specificare un insieme di campi da utilizzare per determinare su quali risorse nel backup devono essere eseguite le azioni delle regole di trasformazione fornite e questo garantisce che solo le risorse specifiche siano interessate dalle azioni delle regole di trasformazione.

description

string

La descrizione è una descrizione stringa specificata dall'utente della regola di trasformazione.

TransformationRuleAction

TransformationRuleAction definisce un'azione TransformationRule in base alla patch JSON RFC (https://www.rfc-editor.org/rfc/rfc6902)

Rappresentazione JSON
{
  "op": enum (Op),
  "fromPath": string,
  "path": string,
  "value": string
}
Campi
op

enum (Op)

Obbligatorio. op specifica l'operazione da eseguire.

fromPath

string

Una stringa contenente un valore puntatore JSON che fa riferimento alla posizione nel documento di destinazione da cui spostare il valore.

path

string

Una stringa contenente un valore JSON-Pointer che fa riferimento a una posizione all'interno del documento di destinazione in cui viene eseguita l'operazione.

value

string

Una stringa che specifica il valore in formato stringa desiderato da utilizzare per la trasformazione.

Operazione

Valori possibili per le operazioni di un'azione della regola di trasformazione.

Enum
OP_UNSPECIFIED Operazione non specificata
REMOVE L'operazione "rimuovi" rimuove il valore nella località di destinazione.
MOVE L'operazione "sposta" rimuove il valore in una posizione specificata e lo aggiunge alla località target.
COPY L'operazione di "copia" copia il valore in una posizione specificata nella località di destinazione.
ADD L'operazione "add" esegue una delle seguenti funzioni, a seconda del riferimento alla località di destinazione: 1. Se la posizione di destinazione specifica un indice di array, un nuovo valore viene inserito nell'array in corrispondenza dell'indice specificato. 2. Se la posizione di destinazione specifica un membro dell'oggetto che non esiste già, viene aggiunto un nuovo membro all'oggetto. 3. Se la posizione di destinazione specifica un membro oggetto che esiste, il valore di quel membro viene sostituito.
TEST L'operazione "di prova" verifica che un valore nella posizione target corrisponda a un valore specificato.
REPLACE L'operazione "sostituisci" sostituisce il valore nella posizione di destinazione con un nuovo valore. L'oggetto dell'operazione DEVE contenere un membro "value" il cui contenuto specifica il valore sostitutivo.

ResourceFilter

ResourceFilter specifica i criteri di corrispondenza per limitare l'ambito di una modifica a un insieme specifico di risorse Kubernetes selezionate per il ripristino da un backup.

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

string

(Parametro di filtro) Qualsiasi risorsa soggetta a trasformazione deve essere contenuta in uno degli spazi dei nomi Kubernetes elencati nel backup. Se questo campo non viene fornito, non verrà eseguito alcun filtro dello spazio dei nomi (tutte le risorse in tutti gli spazi dei nomi, incluse tutte le risorse con ambito cluster, saranno candidati per la trasformazione). Per combinare risorse con ambito cluster e con spazio dei nomi nella stessa regola, utilizza una stringa vuota ("") come uno degli spazi dei nomi di destinazione.

groupKinds[]

object (GroupKind)

(Parametro di filtro) Qualsiasi risorsa soggetta a trasformazione deve appartenere a uno dei "tipi" elencati. Se questo campo non viene fornito, non verrà eseguito alcun filtro per tipo (tutte le risorse di tutti i tipi che corrispondono ai parametri di filtro precedenti verranno candidati per la trasformazione).

jsonPath

string

Si tratta di un'espressione JSONPath che corrisponde a campi specifici delle risorse candidate e funziona come parametro di filtro (le risorse che non corrispondono a questa espressione non saranno candidati per la trasformazione).