RestoreConfig

Configuración de un restablecimiento. ID siguiente: 12

Representación 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 el mecanismo que se usará para restablecer los datos del volumen. Valor predeterminado: VOLUME_DATA_RESTORE_POLICY_UNSPECIFIED (se tratará como NO_VOLUME_DATA_RESTORATION).

clusterResourceConflictPolicy

enum (ClusterResourceConflictPolicy)

Define el comportamiento para controlar la situación en la que los recursos con permisos de clúster que se restablecen ya existen en el clúster de destino. Esto DEBE establecerse en un valor distinto de CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED si clusterResourceRestoreScope no está vacío.

namespacedResourceRestoreMode

enum (NamespacedResourceRestoreMode)

Define el comportamiento para controlar la situación en la que ya existen conjuntos de recursos con espacio de nombres que se restablecen en el clúster de destino. Esto DEBE establecerse en un valor distinto de NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED.

clusterResourceRestoreScope

object (ClusterResourceRestoreScope)

Identifica los recursos con permisos de clúster para restablecer desde la copia de seguridad. Si no se especifica, NO se restablecerá ningún recurso del clúster.

substitutionRules[]

object (SubstitutionRule)

Una lista de reglas de transformación que se aplicarán a los recursos de Kubernetes a medida que se seleccionan para restablecer desde una copia de seguridad. Las reglas se ejecutan en el orden definido. Este orden es importante, ya que los cambios que realiza una regla pueden afectar la lógica de filtrado de las reglas subsiguientes. Una lista vacía significa que no se producirá ninguna sustitución.

transformationRules[]

object (TransformationRule)

Una lista de reglas de transformación que se aplicarán a los recursos de Kubernetes a medida que se seleccionan para restablecer desde una copia de seguridad. Las reglas se ejecutan en el orden definido. Este orden es importante, ya que los cambios que realiza una regla pueden afectar la lógica de filtrado de las reglas subsiguientes. Una lista vacía significa que no se producirá ninguna transformación.

Campo de unión namespaced_resource_restore_scope. Especifica los recursos con espacio de nombres para restablecer desde la copia de seguridad. Solo se puede especificar una de las entradas. Si no se especifica, NO se restablecerán los recursos con espacio de nombres.

Nota: Los recursos nunca se restablecerán en espacios de nombres administrados, como kube-system kube-public o kube-node-lease. Estos espacios de nombres se omiten en silencio cuando se selecciona all_namespaces. Si los enumeras de forma explícita, podría producirse un error. namespaced_resource_restore_scope puede ser solo uno de los siguientes:

allNamespaces

boolean

Restablece todos los recursos con espacio de nombres en la copia de seguridad si se configura como “Verdadero”. Especificar este campo como "Falso" es un error.

selectedNamespaces

object (Namespaces)

Una lista de los recursos Namespace seleccionados para restablecer desde la copia de seguridad. Se restablecerán los Namespace enumerados y todos los recursos incluidos en ellos.

selectedApplications

object (NamespacedNames)

Una lista de ProtectedApplications seleccionados para restablecer. Se restablecerán los ProtectedApplications enumerados y todos los recursos a los que hagan referencia.

noNamespaces

boolean

No restablecer ningún recurso con espacio de nombres si se configura como “Verdadero”. No se permite especificar este campo como “Falso”.

excludedNamespaces

object (Namespaces)

Una lista de los espacios de nombres seleccionados que se excluyen del restablecimiento. Se restablecerán todos los espacios de nombres, excepto los de esta lista.

VolumeDataRestorePolicy

Define cómo se deben restablecer los datos del volumen.

Enums
VOLUME_DATA_RESTORE_POLICY_UNSPECIFIED Sin especificar (ilegal).
RESTORE_VOLUME_DATA_FROM_BACKUP Para que se restablezca cada PVC, crea un volumen subyacente y un PV nuevos a partir del VolumeBackup correspondiente que se encuentra en la copia de seguridad.
REUSE_VOLUME_HANDLE_FROM_BACKUP Para que se restablezca cada PVC, vuelve a usar el PV original incluido en la copia de seguridad (con su volumen subyacente original). Es probable que esta opción solo se pueda usar cuando se restablece una carga de trabajo a su clúster original.
NO_VOLUME_DATA_RESTORATION Para cada PVC que se restablezca, crea un PVC sin ninguna acción en particular para restablecer los datos. En este caso, se activaría la lógica de aprovisionamiento normal de Kubernetes y es probable que esto provoque el aprovisionamiento dinámico de PV en blanco o la vinculación a PV aprovisionados de forma estática.

ClusterResourceConflictPolicy

Define el comportamiento para controlar la situación en la que los recursos con permisos de clúster que se restablecen ya existen en el clúster de destino.

Enums
CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED Sin especificar. Solo se permite si no se restablecerá ningún recurso con permiso de clúster.
USE_EXISTING_VERSION No intentes restablecer el recurso en conflicto.
USE_BACKUP_VERSION Borra la versión existente antes de volver a crearla desde la copia de seguridad. Esta es una opción peligrosa que puede causar una pérdida de datos involuntaria si se usa de forma inadecuada. Por ejemplo, si borras una CRD, hará que Kubernetes borre todos los CR de ese tipo.

NamespacedResourceRestoreMode

Define el comportamiento para controlar la situación en la que ya existen conjuntos de recursos con espacio de nombres que se restablecen en el clúster de destino.

Enums
NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED Sin especificar (no válido).
DELETE_AND_RESTORE Cuando se encuentran recursos en conflicto de nivel superior (ya sea Namespaces o ProtectedApplications, según el permiso), esto primero activará una eliminación del recurso en conflicto Y TODOS LOS RECURSOS REFERENCIADOS (p. ej., todos los recursos en el espacio de nombres o todos los recursos a los que hace referencia el ProtectedApplication) antes de restablecer los recursos desde la copia de seguridad. Este modo solo debe usarse cuando quieras revertir alguna parte de un clúster a un estado anterior.
FAIL_ON_CONFLICT Si se encuentran recursos en conflicto de nivel superior (recursos Namespace o ProtectedApplications, según el permiso) al comienzo de un proceso de restablecimiento, el restablecimiento fallará. Si se produce un conflicto durante el proceso de restablecimiento (p. ej., porque un proceso fuera de banda crea recursos en conflicto), se informará un conflicto.

ClusterResourceRestoreScope

Define el alcance de los recursos con permisos de clúster que se restablecerán.

Algunos tipos de grupos no son opciones razonables para un restablecimiento y provocarán un error si se seleccionan aquí. Cualquier selección de permiso que restablezca "todos los recursos válidos" excluye automáticamente estos tipos de grupos. - 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

Algunos tipos de grupos se controlan a través de la configuración de restablecimiento en otro lugar y provocarán un error si se seleccionan aquí. - Namespace - PersistentVolume

Representación JSON
{
  "selectedGroupKinds": [
    {
      object (GroupKind)
    }
  ],
  "excludedGroupKinds": [
    {
      object (GroupKind)
    }
  ],
  "allGroupKinds": boolean,
  "noGroupKinds": boolean
}
Campos
selectedGroupKinds[]

object (GroupKind)

Una lista de tipos de grupos de recursos con permisos de clúster para restablecer desde la copia de seguridad. Si se especifica, solo se restablecerán los recursos seleccionados. Mutuamente excluyente para cualquier otro campo del mensaje.

excludedGroupKinds[]

object (GroupKind)

Una lista de tipos de grupos de recursos con permisos de clúster para NO restablecer desde la copia de seguridad. Si se especifica, se restablecerán todos los recursos con permisos de clúster válidos, excepto los especificados en la lista. Mutuamente excluyente para cualquier otro campo del mensaje.

allGroupKinds

boolean

Si es verdadero, se restablecerán todos los recursos con permisos de clúster válidos. Mutuamente excluyente para cualquier otro campo del mensaje.

noGroupKinds

boolean

Si se configura como verdadero, no se restablecerán los recursos con permisos de clúster. Esto tiene el mismo alcance de restablecimiento que si el mensaje no estuviera definido. Mutuamente excluyente para cualquier otro campo del mensaje.

GroupKind

Esta es una asignación directa al tipo GroupKind de Kubernetes y se usa para identificar los “tipos” específicos de recursos que se restablecerán.

Representación JSON
{
  "resourceGroup": string,
  "resourceKind": string
}
Campos
resourceGroup

string

Cadena de grupo de API de un recurso de Kubernetes, p. ej., “apiextensions.k8s.io”, “storage.k8s.io”, entre otros. Nota: Usa una cadena vacía para el grupo de API principal

resourceKind

string

Tipo de recurso de Kubernetes, p. ej., "CustomResourceDefinition", "StorageClass", entre otros.

SubstitutionRule

Una regla de transformación que se aplicará a los recursos de Kubernetes a medida que se seleccionan para restablecer desde una copia de seguridad. Una regla contiene la lógica de filtrado (qué recursos están sujetos a sustitución) y la lógica de sustitución.

Representación JSON
{
  "targetNamespaces": [
    string
  ],
  "targetGroupKinds": [
    {
      object (GroupKind)
    }
  ],
  "targetJsonPath": string,
  "originalValuePattern": string,
  "newValue": string
}
Campos
targetNamespaces[]

string

(Parámetro de filtro) Cualquier recurso sujeto a la sustitución debe incluirse en uno de los espacios de nombres de Kubernetes enumerados en la copia de seguridad. Si no se proporciona este campo, no se realizará ningún filtro de espacio de nombres (todos los recursos de todos los recursos Namespace, incluidos todos los recursos con permisos de clúster, serán candidatos para su sustitución). Para mezclar recursos con permisos de clúster y recursos con espacios de nombres en la misma regla, usa una cadena vacía ("") como uno de los espacios de nombres de destino.

targetGroupKinds[]

object (GroupKind)

(Parámetro de filtro) Cualquier recurso sujeto a la sustitución debe pertenecer a uno de los "tipos" enumerados. Si no se proporciona este campo, no se aplicará ningún filtro de tipo (todos los recursos de todos los tipos que coincidan con los parámetros de filtro anteriores serán candidatos para su sustitución).

targetJsonPath

string

Obligatorio. Esta es una expresión JSONPath que coincide con campos específicos de recursos candidatos y funciona como un parámetro de filtro (los recursos que no coinciden con esta expresión no serán candidatos para su sustitución) y como un identificador de campo (identifica con exactitud qué campos de los recursos candidatos se modificarán).

originalValuePattern

string

(Parámetro de filtro) Esta es una expresión regular que se compara con los campos que coinciden con la expresión targetJsonPath (y que también debe haber pasado los filtros anteriores). No se realizará la sustitución en los campos cuyo valor no coincida con esta expresión. Si NO se especifica este campo, se sustituirán TODOS los campos que coincidan con la expresión targetJsonPath. Ten en cuenta que un valor vacío (p. ej., "", en lugar de un valor no especificado) para este campo solo coincidirá con campos vacíos.

newValue

string

Este es el nuevo valor que se debe establecer para los campos que pasan los criterios de filtrado y selección. Para quitar un valor de un recurso de Kubernetes, deja este campo sin especificar o configúralo como la cadena vacía ("").

TransformationRule

Una regla de transformación que se aplicará a los recursos de Kubernetes a medida que se seleccionan para restablecer desde una copia de seguridad. Una regla contiene la lógica de filtrado (qué recursos están sujetos a transformación) y la lógica de transformación.

Representación JSON
{
  "fieldActions": [
    {
      object (TransformationRuleAction)
    }
  ],
  "resourceFilter": {
    object (ResourceFilter)
  },
  "description": string
}
Campos
fieldActions[]

object (TransformationRuleAction)

Obligatorio. Una lista de acciones de reglas de transformación que se deben realizar en los recursos candidatos. Las acciones se ejecutan en orden definido. Este orden es importante, ya que podrían interferir entre sí y la primera operación puede afectar el resultado de la segunda operación.

resourceFilter

object (ResourceFilter)

Este campo se usa para especificar un conjunto de campos que se deben usar para determinar sobre qué recursos de la copia de seguridad deben actuar las acciones de la regla de transformación proporcionada, lo que garantizará que solo las acciones de las reglas de transformación afecten a los recursos específicos.

description

string

La descripción es una descripción de cadena especificada por el usuario de la regla de transformación.

TransformationRuleAction

TransformationRuleAction define una acción TransformationRule basada en la RFC de parche JSON (https://www.rfc-editor.org/rfc/rfc6902).

Representación JSON
{
  "op": enum (Op),
  "fromPath": string,
  "path": string,
  "value": string
}
Campos
op

enum (Op)

Obligatorio. op especifica la operación que se realizará.

fromPath

string

Una cadena que contiene un valor de puntero JSON que hace referencia a la ubicación en el documento de destino desde la cual se moverá el valor.

path

string

Una cadena que contiene un valor de puntero JSON que hace referencia a una ubicación dentro del documento de destino donde se realiza la operación.

value

string

Una cadena que especifica el valor deseado en formato de cadena para usar en la transformación.

Op

Valores posibles para las operaciones de una acción de regla de transformación.

Enums
OP_UNSPECIFIED Operación no especificada
REMOVE La operación "quitar" quita el valor de la ubicación de destino.
MOVE La operación "mover" quita el valor de una ubicación especificada y lo agrega a la ubicación de destino.
COPY La operación "copiar" copia el valor de una ubicación específica en la ubicación de destino.
ADD La operación "agregar" realiza una de las siguientes funciones, según la referencia de la ubicación de destino: 1. Si la ubicación de destino especifica un índice de array, se inserta un valor nuevo en el array en el índice especificado. 2. Si la ubicación de destino especifica un miembro del objeto que aún no existe, se agrega un miembro nuevo al objeto. 3. Si la ubicación de destino especifica un miembro del objeto que existe, se reemplaza el valor de ese miembro.
TEST La operación "probar" comprueba que un valor en la ubicación de destino sea igual a un valor especificado.
REPLACE La operación “reemplazar” reemplaza el valor en la ubicación de destino por un valor nuevo. El objeto de operación DEBE contener un miembro “valor” cuyo contenido especifique el valor de reemplazo.

ResourceFilter

ResourceFilter especifica los criterios de coincidencia para limitar el alcance de un cambio a un conjunto específico de recursos de Kubernetes que se seleccionan para restablecer desde una copia de seguridad.

Representación JSON
{
  "namespaces": [
    string
  ],
  "groupKinds": [
    {
      object (GroupKind)
    }
  ],
  "jsonPath": string
}
Campos
namespaces[]

string

(Parámetro de filtro) Cualquier recurso sujeto a la transformación debe incluirse en uno de los espacios de nombres de Kubernetes enumerados en la copia de seguridad. Si no se proporciona este campo, no se realizará ningún filtro de espacio de nombres (todos los recursos de todos los espacios de nombres, incluidos todos los recursos con permisos de clúster, serán candidatos para su transformación). Para mezclar recursos con permisos de clúster y recursos con espacios de nombres en la misma regla, usa una cadena vacía ("") como uno de los espacios de nombres de destino.

groupKinds[]

object (GroupKind)

(Parámetro de filtro) Cualquier recurso sujeto a la transformación debe pertenecer a uno de los “tipos” enumerados. Si no se proporciona este campo, no se aplicará ningún filtro de tipo (todos los recursos de todos los tipos que coincidan con los parámetros de filtro anteriores serán candidatos para su transformación).

jsonPath

string

Esta es una expresión JSONPath que coincide con campos específicos de recursos candidatos y funciona como un parámetro de filtro (los recursos que no coinciden con esta expresión no serán candidatos para su transformación).