RestoreConfig

Configuração de uma restauração. Próximo ID: 12

Representação 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.
}
Campos
volumeDataRestorePolicy

enum (VolumeDataRestorePolicy)

Especifica o mecanismo a ser usado para restaurar dados de volume. Padrão: VOLUME_DATA_RESTORE_POLICY_UNSPECIFIED (será tratado como NO_VOLUME_DATA_RESTORATION).

clusterResourceConflictPolicy

enum (ClusterResourceConflictPolicy)

Define o comportamento para lidar com a situação em que os recursos com escopo de cluster que estão sendo restaurados no cluster de destino. Ele PRECISA ser definido como um valor diferente de CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED se clusterResourceRestoreScope não está vazio.

namespacedResourceRestoreMode

enum (NamespacedResourceRestoreMode)

Define o comportamento para lidar com a situação em que já existem conjuntos de recursos com namespace que estão sendo restaurados no cluster de destino. Ele PRECISA ser definido como um valor diferente de NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED.

clusterResourceRestoreScope

object (ClusterResourceRestoreScope)

Identifica os recursos com escopo de cluster a serem restaurados do backup. Se não for especificado, NENHUM recurso de cluster será restaurado.

substitutionRules[]

object (SubstitutionRule)

Uma lista de regras de transformação a serem aplicadas aos recursos do Kubernetes conforme eles são selecionados para restauração de um backup. As regras são executadas na ordem definida. Essa ordem é importante, já que alterações feitas por uma regra podem afetar a lógica de filtragem das regras subsequentes. Uma lista vazia significa que não haverá substituição.

transformationRules[]

object (TransformationRule)

Uma lista de regras de transformação a serem aplicadas aos recursos do Kubernetes conforme eles são selecionados para restauração de um backup. As regras são executadas na ordem definida. Essa ordem é importante, já que alterações feitas por uma regra podem afetar a lógica de filtragem das regras subsequentes. Uma lista vazia significa que nenhuma transformação ocorrerá.

Campo de união namespaced_resource_restore_scope. Especifica os recursos com namespace a serem restaurados do backup. Somente uma das entradas pode ser especificada. Se não for especificado, NENHUM recurso com namespace será restaurado.

Observação: os recursos nunca serão restaurados em namespaces gerenciados, como kube-system, kube-public ou kube-node-lease. Esses namespaces são ignorados silenciosamente quando all_namespaces é selecionado. Listar eles explicitamente gera um erro. namespaced_resource_restore_scope pode ser apenas de um dos tipos a seguir:

allNamespaces

boolean

Restaure todos os recursos com namespace no backup se definidos como "True". Especificar este campo como "Falso" é um erro.

selectedNamespaces

object (Namespaces)

Uma lista de namespaces selecionados para restauração do backup. Os namespaces listados e todos os recursos contidos neles serão restaurados.

selectedApplications

object (NamespacedNames)

Uma lista de ProtectedApplications selecionados para restaurar. Os ProtectedApplications listados e todos os recursos a que eles se referem serão restaurados.

noNamespaces

boolean

Não restaura recursos com namespace se definido como "True". Não é permitido especificar este campo como "Falso".

excludedNamespaces

object (Namespaces)

Uma lista de namespaces selecionados que foram excluídos da restauração. Todos os namespaces, exceto os desta lista, serão restaurados.

VolumeDataRestorePolicy

Define como os dados de volume precisam ser restaurados.

Enums
VOLUME_DATA_RESTORE_POLICY_UNSPECIFIED Não especificado (ilegal).
RESTORE_VOLUME_DATA_FROM_BACKUP Para cada PVC que for restaurado, crie um novo volume e um PV do VolumeBackup correspondente contido no backup.
REUSE_VOLUME_HANDLE_FROM_BACKUP Para cada PVC que for restaurada, tente reutilizar o PV original contido no backup (com o volume subjacente original). Provavelmente, essa opção só será utilizável ao restaurar uma carga de trabalho para o cluster original.
NO_VOLUME_DATA_RESTORATION Crie-o sem nenhuma ação específica para restaurar dados para cada PVC que for restaurado. Nesse caso, a lógica normal de provisionamento do Kubernetes será iniciada, o que provavelmente resultará no provisionamento dinâmico de PVs em branco ou na vinculação a PVs provisionados estaticamente.

ClusterResourceConflictPolicy

Define o comportamento para lidar com a situação em que os recursos com escopo de cluster que estão sendo restaurados no cluster de destino.

Enums
CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED Não especificado. Permitido apenas se nenhum recurso com escopo de cluster for restaurado.
USE_EXISTING_VERSION Não tente restaurar o recurso conflitante.
USE_BACKUP_VERSION Exclua a versão atual antes de recriá-la no backup. Essa é uma opção perigosa que pode causar perda de dados não intencional se usada incorretamente. Por exemplo, excluir um CRD fará com que o Kubernetes exclua todas as respostas automáticas desse tipo.

NamespacedResourceRestoreMode

Define o comportamento para lidar com a situação em que já existem conjuntos de recursos com namespace que estão sendo restaurados no cluster de destino.

Enums
NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED Não especificado (inválido).
DELETE_AND_RESTORE Quando recursos de nível superior conflitantes (namespaces ou ProtectedApplications, dependendo do escopo) forem encontrados, isso primeiro acionará uma exclusão do recurso conflitante E DE TODOS OS SEUS RECURSOS REFERENTES (por exemplo, todos os recursos no namespace ou todos os recursos referenciados pelo ProtectedApplication) antes de restaurar os recursos do backup. Use esse modo apenas quando você pretende reverter parte de um cluster para um estado anterior.
FAIL_ON_CONFLICT Se recursos conflitantes de nível superior (Namespaces ou ProtectedApplications, dependendo do escopo) forem encontrados no início de um processo de restauração, a restauração falhará. Se ocorrer um conflito durante o próprio processo de restauração (por exemplo, porque um processo fora de banda cria recursos conflitantes), um conflito será relatado.

ClusterResourceRestoreScope

Define o escopo dos recursos com escopo de cluster a serem restaurados.

Alguns tipos de grupo não são opções razoáveis para uma restauração e causarão um erro se selecionados aqui. Qualquer seleção de escopo que restaure os recursos "todos os válidos" exclui automaticamente esses tipos de grupo. - 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

Alguns tipos de grupo são impulsionados pela configuração de restauração em outro lugar e causarão um erro se selecionados aqui. - Namespace - PersistentVolume

Representação JSON
{
  "selectedGroupKinds": [
    {
      object (GroupKind)
    }
  ],
  "excludedGroupKinds": [
    {
      object (GroupKind)
    }
  ],
  "allGroupKinds": boolean,
  "noGroupKinds": boolean
}
Campos
selectedGroupKinds[]

object (GroupKind)

Uma lista de tipos de grupos de recursos com escopo de cluster para restaurar a partir do backup. Se especificado, apenas os recursos selecionados serão restaurados. Mutuamente exclusivo para qualquer outro campo na mensagem.

excludedGroupKinds[]

object (GroupKind)

Uma lista de tipos de grupos de recursos com escopo de cluster que NÃO podem ser restaurados do backup. Se especificado, todos os recursos válidos com escopo de cluster serão restaurados, exceto os especificados na lista. Mutuamente exclusivo para qualquer outro campo na mensagem.

allGroupKinds

boolean

Se for "True", todos os recursos válidos com escopo de cluster serão restaurados. Mutuamente exclusivo para qualquer outro campo na mensagem.

noGroupKinds

boolean

Se for "True", nenhum recurso com escopo de cluster será restaurado. Essa ação tem o mesmo escopo de restauração como se a mensagem não estivesse definida. Mutuamente exclusivo para qualquer outro campo na mensagem.

Tipo de grupo

Este é um mapa direto para o tipo GroupKind do Kubernetes GroupKind e é usado para identificar "tipos" específicos de recursos a serem restaurados.

Representação JSON
{
  "resourceGroup": string,
  "resourceKind": string
}
Campos
resourceGroup

string

String do grupo de APIs de um recurso do Kubernetes, por exemplo, "apiextensions.k8s.io", "storage.k8s.io" etc. Observação: use uma string vazia para o grupo de APIs principal.

resourceKind

string

Tipo de recurso do Kubernetes, por exemplo, "CustomResourceDefinition", "StorageClass" etc.

SubstitutionRule

Uma regra de transformação a ser aplicada aos recursos do Kubernetes conforme eles são selecionados para restauração de um backup. Uma regra contém lógica de filtragem (quais recursos estão sujeitos à substituição) e lógica de substituição.

Representação JSON
{
  "targetNamespaces": [
    string
  ],
  "targetGroupKinds": [
    {
      object (GroupKind)
    }
  ],
  "targetJsonPath": string,
  "originalValuePattern": string,
  "newValue": string
}
Campos
targetNamespaces[]

string

(Parâmetro de filtragem) Qualquer recurso sujeito a substituição precisa estar contido em um dos namespaces do Kubernetes listados no backup. Se esse campo não for fornecido, nenhuma filtragem de namespace será realizada. Todos os recursos em todos os namespaces, incluindo todos os recursos com escopo de cluster, serão candidatos a substituição. Para combinar recursos com escopo de cluster e com namespace na mesma regra, use uma string vazia ("") como um dos namespaces de destino.

targetGroupKinds[]

object (GroupKind)

(Parâmetro de filtragem) Qualquer recurso sujeito a substituição precisa pertencer a um dos "tipos" listados. Se esse campo não for fornecido, nenhuma filtragem de tipo será realizada (todos os recursos de todos os tipos correspondentes aos parâmetros de filtragem anteriores serão candidatos à substituição).

targetJsonPath

string

Obrigatório. Essa é uma expressão JSONPath que corresponde a campos específicos de recursos candidatos e opera como um parâmetro de filtragem (recursos que não forem correspondentes a essa expressão não serão candidatos para substituição), assim como um identificador de campo (identifica exatamente quais campos dos recursos candidatos serão modificados).

originalValuePattern

string

(Parâmetro de filtragem) Esta é uma expressão regular que é comparada com os campos correspondentes pela expressão targetJsonPath e também precisam ter passado os filtros anteriores. A substituição não será realizada nos campos cujo valor não corresponde a essa expressão. Se este campo NÃO for especificado, TODOS os campos que corresponderem à expressão targetJsonPath sofrerão substituição. Observe que um campo vazio (por exemplo, "", em vez de não especificado) para esse campo, ele só corresponderá a campos vazios.

newValue

string

Esse é o novo valor a ser definido para qualquer campo que passe nos critérios de filtragem e seleção. Para remover um valor de um recurso do Kubernetes, deixe esse campo não especificado ou defina-o como uma string vazia ("").

TransformationRule

Uma regra de transformação a ser aplicada aos recursos do Kubernetes conforme eles são selecionados para restauração de um backup. Uma regra contém lógica de filtragem (quais recursos estão sujeitos a transformação) e lógica de transformação.

Representação JSON
{
  "fieldActions": [
    {
      object (TransformationRuleAction)
    }
  ],
  "resourceFilter": {
    object (ResourceFilter)
  },
  "description": string
}
Campos
fieldActions[]

object (TransformationRuleAction)

Obrigatório. Uma lista de ações de regra de transformação a serem realizadas nos recursos candidatos. As ações são executadas na ordem definida. Essa ordem é importante, já que ela pode interferir em outras, e a primeira operação pode afetar o resultado da segunda operação.

resourceFilter

object (ResourceFilter)

Esse campo é usado para especificar um conjunto de campos que precisam ser usados para determinar quais recursos no backup serão processados pelas ações da regra de transformação fornecida. Isso garante que apenas recursos específicos sejam afetados por ações da regra de transformação.

description

string

A descrição é uma descrição de string especificada pelo usuário da regra de transformação.

TransformationRuleAction

TransformationRuleAction define uma ação TransformationRule com base no RFC de patch JSON (https://www.rfc-editor.org/rfc/rfc6902)

Representação JSON
{
  "op": enum (Op),
  "fromPath": string,
  "path": string,
  "value": string
}
Campos
op

enum (Op)

Obrigatório. op especifica a operação a ser executada.

fromPath

string

Uma string que contém um valor de ponteiro JSON que faz referência ao local no documento de destino do qual o valor deve ser movido.

path

string

Uma string que contém um valor de ponteiro JSON que faz referência a um local no documento de destino em que a operação é realizada.

value

string

Uma string que especifica o valor desejado no formato de string a ser usado para a transformação.

Op

Valores possíveis para operações de uma ação de regra de transformação.

Enums
OP_UNSPECIFIED Operação não especificada
REMOVE A operação "remover" remove o valor do local de destino.
MOVE A operação "mover" remove o valor de um local especificado e o adiciona ao local de destino.
COPY A operação de cópia copia o valor de um local especificado para o local de destino.
ADD A operação "adicionar" executa uma das seguintes funções, dependendo do que a localização de destino faz referência: 1. Se a região de destino especificar um índice de matriz, um novo valor será inserido na matriz com o índice especificado. 2. Se o local de destino especificar um membro de objeto que ainda não existe, um novo membro será adicionado ao objeto. 3. Se o local de destino especificar um membro de objeto que existe, o valor desse membro será substituído.
TEST A operação "teste" testa se um valor no local de destino é igual a um valor especificado.
REPLACE A operação "substituir" substitui o valor no local de destino por um novo valor. O objeto de operação PRECISA conter um membro "valor" com conteúdo que especifica o valor de substituição.

ResourceFilter

O ResourceFilter especifica os critérios de correspondência para limitar o escopo de uma mudança em um conjunto específico de recursos do Kubernetes selecionados para restauração de um backup.

Representação JSON
{
  "namespaces": [
    string
  ],
  "groupKinds": [
    {
      object (GroupKind)
    }
  ],
  "jsonPath": string
}
Campos
namespaces[]

string

(Parâmetro de filtragem) Qualquer recurso sujeito a transformação precisa estar contido em um dos namespaces do Kubernetes listados no backup. Se esse campo não for fornecido, nenhuma filtragem de namespace será realizada. Todos os recursos em todos os namespaces, incluindo todos os recursos com escopo de cluster, serão candidatos a transformação. Para combinar recursos com escopo de cluster e com namespace na mesma regra, use uma string vazia ("") como um dos namespaces de destino.

groupKinds[]

object (GroupKind)

(Parâmetro de filtragem) Qualquer recurso sujeito a transformação precisa pertencer a um dos "tipos" listados. Se esse campo não for fornecido, nenhuma filtragem de tipo será realizada (todos os recursos de todos os tipos correspondentes aos parâmetros de filtragem anteriores serão candidatos à transformação).

jsonPath

string

Essa é uma expressão JSONPath que corresponde a campos específicos de recursos candidatos e opera como um parâmetro de filtragem. Os recursos que não corresponderem a essa expressão não serão candidatos a transformação.