config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_gkebackuprestores.gkebackup.cnrm.cloud.google.com.yaml (775 lines of code) (raw):

apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: cnrm.cloud.google.com/version: 0.0.0-dev creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" cnrm.cloud.google.com/system: "true" name: gkebackuprestores.gkebackup.cnrm.cloud.google.com spec: group: gkebackup.cnrm.cloud.google.com names: categories: - gcp kind: GKEBackupRestore listKind: GKEBackupRestoreList plural: gkebackuprestores shortNames: - gcpgkebackuprestore - gcpgkebackuprestores singular: gkebackuprestore preserveUnknownFields: false scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .metadata.creationTimestamp name: Age type: date - description: When 'True', the most recent reconcile of the resource succeeded jsonPath: .status.conditions[?(@.type=='Ready')].status name: Ready type: string - description: The reason for the value in 'Ready' jsonPath: .status.conditions[?(@.type=='Ready')].reason name: Status type: string - description: The last transition time for the value in 'Status' jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime name: Status Age type: date name: v1alpha1 schema: openAPIV3Schema: description: GKEBackupRestore is the Schema for the GKEBackupRestore API properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: description: GKEBackupRestoreSpec defines the desired state of GKEBackupRestore properties: backupRef: description: Required. Immutable. A reference to the [Backup][google.cloud.gkebackup.v1.Backup] used as the source from which this Restore will restore. Note that this Backup must be a sub-resource of the RestorePlan's [backup_plan][google.cloud.gkebackup.v1.RestorePlan.backup_plan]. oneOf: - not: required: - external required: - name - not: anyOf: - required: - name - required: - namespace required: - external properties: external: description: A reference to an externally managed GKEBackupBackup resource. Should be in the format "projects/{{projectID}}/locations/{{location}}/backups/{{backupID}}". type: string name: description: The name of a GKEBackupBackup resource. type: string namespace: description: The namespace of a GKEBackupBackup resource. type: string type: object description: description: User specified descriptive string for this Restore. type: string filter: description: Optional. Immutable. Filters resources for `Restore`. If not specified, the scope of the restore will remain the same as defined in the `RestorePlan`. If this is specified, and no resources are matched by the `inclusion_filters` or everything is excluded by the `exclusion_filters`, nothing will be restored. This filter can only be specified if the value of [namespaced_resource_restore_mode][google.cloud.gkebackup.v1.RestoreConfig.namespaced_resource_restore_mode] is set to `MERGE_SKIP_ON_CONFLICT`, `MERGE_REPLACE_VOLUME_ON_CONFLICT` or `MERGE_REPLACE_ON_CONFLICT`. properties: exclusionFilters: description: Optional. Excludes resources from restoration. If specified, a resource will not be restored if it matches any `ResourceSelector` of the `exclusion_filters`. items: properties: groupKind: description: Optional. Selects resources using their Kubernetes GroupKinds. If specified, only resources of provided GroupKind will be selected. properties: resourceGroup: description: 'Optional. API group string of a Kubernetes resource, e.g. "apiextensions.k8s.io", "storage.k8s.io", etc. Note: use empty string for core API group' type: string resourceKind: description: Optional. Kind of a Kubernetes resource, must be in UpperCamelCase (PascalCase) and singular form. E.g. "CustomResourceDefinition", "StorageClass", etc. type: string type: object labels: additionalProperties: type: string description: Optional. Selects resources using Kubernetes [labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/). If specified, a resource will be selected if and only if the resource has all of the provided labels and all the label values match. type: object name: description: Optional. Selects resources using their resource names. If specified, only resources with the provided name will be selected. type: string namespace: description: Optional. Selects resources using their namespaces. This only applies to namespace scoped resources and cannot be used for selecting cluster scoped resources. If specified, only resources in the provided namespace will be selected. If not specified, the filter will apply to both cluster scoped and namespace scoped resources (e.g. name or label). The [Namespace](https://pkg.go.dev/k8s.io/api/core/v1#Namespace) resource itself will be restored if and only if any resources within the namespace are restored. type: string type: object type: array inclusionFilters: description: Optional. Selects resources for restoration. If specified, only resources which match `inclusion_filters` will be selected for restoration. A resource will be selected if it matches any `ResourceSelector` of the `inclusion_filters`. items: properties: groupKind: description: Optional. Selects resources using their Kubernetes GroupKinds. If specified, only resources of provided GroupKind will be selected. properties: resourceGroup: description: 'Optional. API group string of a Kubernetes resource, e.g. "apiextensions.k8s.io", "storage.k8s.io", etc. Note: use empty string for core API group' type: string resourceKind: description: Optional. Kind of a Kubernetes resource, must be in UpperCamelCase (PascalCase) and singular form. E.g. "CustomResourceDefinition", "StorageClass", etc. type: string type: object labels: additionalProperties: type: string description: Optional. Selects resources using Kubernetes [labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/). If specified, a resource will be selected if and only if the resource has all of the provided labels and all the label values match. type: object name: description: Optional. Selects resources using their resource names. If specified, only resources with the provided name will be selected. type: string namespace: description: Optional. Selects resources using their namespaces. This only applies to namespace scoped resources and cannot be used for selecting cluster scoped resources. If specified, only resources in the provided namespace will be selected. If not specified, the filter will apply to both cluster scoped and namespace scoped resources (e.g. name or label). The [Namespace](https://pkg.go.dev/k8s.io/api/core/v1#Namespace) resource itself will be restored if and only if any resources within the namespace are restored. type: string type: object type: array type: object labels: additionalProperties: type: string description: A set of custom labels supplied by user. type: object resourceID: description: The GKEBackupRestore name. If not given, the metadata.name will be used. type: string restorePlanRef: description: Required. The RestorePlan from which this Restore is created. oneOf: - not: required: - external required: - name - not: anyOf: - required: - name - required: - namespace required: - external properties: external: description: A reference to an externally managed GKEBackupRestorePlan resource. Should be in the format "projects/{{projectID}}/locations/{{location}}/restorePlans/{{restoreplanID}}". type: string name: description: The name of a GKEBackupRestorePlan resource. type: string namespace: description: The namespace of a GKEBackupRestorePlan resource. type: string type: object volumeDataRestorePolicyOverrides: description: Optional. Immutable. Overrides the volume data restore policies selected in the Restore Config for override-scoped resources. items: properties: policy: description: Required. The VolumeDataRestorePolicy to apply when restoring volumes in scope. type: string selectedPVCs: description: A list of PVCs to apply the policy override to. properties: namespacedNames: description: Optional. A list of namespaced Kubernetes resources. items: properties: name: description: Optional. The name of the Kubernetes resource. type: string namespace: description: Optional. The Namespace of the Kubernetes resource. type: string type: object type: array type: object type: object type: array required: - restorePlanRef type: object status: description: GKEBackupRestoreStatus defines the config connector machine state of GKEBackupRestore properties: conditions: description: Conditions represent the latest available observations of the object's current state. items: properties: lastTransitionTime: description: Last time the condition transitioned from one status to another. type: string message: description: Human-readable message indicating details about last transition. type: string reason: description: Unique, one-word, CamelCase reason for the condition's last transition. type: string status: description: Status is the status of the condition. Can be True, False, Unknown. type: string type: description: Type is the type of the condition. type: string type: object type: array externalRef: description: A unique specifier for the GKEBackupRestore resource in GCP. type: string observedGeneration: description: ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. format: int64 type: integer observedState: description: ObservedState is the state of the resource as most recently observed in GCP. properties: cluster: description: |- Output only. The target cluster into which this Restore will restore data. Valid formats: - `projects/*/locations/*/clusters/*` - `projects/*/zones/*/clusters/*` Inherited from parent RestorePlan's [cluster][google.cloud.gkebackup.v1.RestorePlan.cluster] value. type: string completeTime: description: Output only. Timestamp of when the restore operation completed. type: string createTime: description: Output only. The timestamp when this Restore resource was created. type: string etag: description: 'Output only. `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a restore from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform restore updates in order to avoid race conditions: An `etag` is returned in the response to `GetRestore`, and systems are expected to put that etag in the request to `UpdateRestore` or `DeleteRestore` to ensure that their change will be applied to the same version of the resource.' type: string resourcesExcludedCount: description: Output only. Number of resources excluded during the restore execution. format: int32 type: integer resourcesFailedCount: description: Output only. Number of resources that failed to be restored during the restore execution. format: int32 type: integer resourcesRestoredCount: description: Output only. Number of resources restored during the restore execution. format: int32 type: integer restoreConfig: description: Output only. Configuration of the Restore. Inherited from parent RestorePlan's [restore_config][google.cloud.gkebackup.v1.RestorePlan.restore_config]. properties: allNamespaces: description: Restore all namespaced resources in the Backup if set to "True". Specifying this field to "False" is an error. type: boolean clusterResourceConflictPolicy: description: Optional. Defines the behavior for handling the situation where cluster-scoped resources being restored already exist in the target cluster. This MUST be set to a value other than CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED if [cluster_resource_restore_scope][google.cloud.gkebackup.v1.RestoreConfig.cluster_resource_restore_scope] is not empty. type: string clusterResourceRestoreScope: description: Optional. Identifies the cluster-scoped resources to restore from the Backup. Not specifying it means NO cluster resource will be restored. properties: allGroupKinds: description: Optional. If True, all valid cluster-scoped resources will be restored. Mutually exclusive to any other field in the message. type: boolean excludedGroupKinds: description: Optional. A list of cluster-scoped resource group kinds to NOT restore from the backup. If specified, all valid cluster-scoped resources will be restored except for those specified in the list. Mutually exclusive to any other field in the message. items: properties: resourceGroup: description: 'Optional. API group string of a Kubernetes resource, e.g. "apiextensions.k8s.io", "storage.k8s.io", etc. Note: use empty string for core API group' type: string resourceKind: description: Optional. Kind of a Kubernetes resource, must be in UpperCamelCase (PascalCase) and singular form. E.g. "CustomResourceDefinition", "StorageClass", etc. type: string type: object type: array noGroupKinds: description: Optional. If True, no cluster-scoped resources will be restored. This has the same restore scope as if the message is not defined. Mutually exclusive to any other field in the message. type: boolean selectedGroupKinds: description: Optional. A list of cluster-scoped resource group kinds to restore from the backup. If specified, only the selected resources will be restored. Mutually exclusive to any other field in the message. items: properties: resourceGroup: description: 'Optional. API group string of a Kubernetes resource, e.g. "apiextensions.k8s.io", "storage.k8s.io", etc. Note: use empty string for core API group' type: string resourceKind: description: Optional. Kind of a Kubernetes resource, must be in UpperCamelCase (PascalCase) and singular form. E.g. "CustomResourceDefinition", "StorageClass", etc. type: string type: object type: array type: object excludedNamespaces: description: A list of selected namespaces excluded from restoration. All namespaces except those in this list will be restored. properties: namespaces: description: Optional. A list of Kubernetes Namespaces items: type: string type: array type: object namespacedResourceRestoreMode: description: Optional. Defines the behavior for handling the situation where sets of namespaced resources being restored already exist in the target cluster. This MUST be set to a value other than NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED. type: string noNamespaces: description: Do not restore any namespaced resources if set to "True". Specifying this field to "False" is not allowed. type: boolean restoreOrder: description: Optional. RestoreOrder contains custom ordering to use on a Restore. properties: groupKindDependencies: description: Optional. Contains a list of group kind dependency pairs provided by the customer, that is used by Backup for GKE to generate a group kind restore order. items: properties: requiring: description: Required. The requiring group kind requires that the other group kind be restored first. properties: resourceGroup: description: 'Optional. API group string of a Kubernetes resource, e.g. "apiextensions.k8s.io", "storage.k8s.io", etc. Note: use empty string for core API group' type: string resourceKind: description: Optional. Kind of a Kubernetes resource, must be in UpperCamelCase (PascalCase) and singular form. E.g. "CustomResourceDefinition", "StorageClass", etc. type: string type: object satisfying: description: Required. The satisfying group kind must be restored first in order to satisfy the dependency. properties: resourceGroup: description: 'Optional. API group string of a Kubernetes resource, e.g. "apiextensions.k8s.io", "storage.k8s.io", etc. Note: use empty string for core API group' type: string resourceKind: description: Optional. Kind of a Kubernetes resource, must be in UpperCamelCase (PascalCase) and singular form. E.g. "CustomResourceDefinition", "StorageClass", etc. type: string type: object required: - requiring - satisfying type: object type: array type: object selectedApplications: description: A list of selected ProtectedApplications to restore. The listed ProtectedApplications and all the resources to which they refer will be restored. properties: namespacedNames: description: Optional. A list of namespaced Kubernetes resources. items: properties: name: description: Optional. The name of the Kubernetes resource. type: string namespace: description: Optional. The Namespace of the Kubernetes resource. type: string type: object type: array type: object selectedNamespaces: description: A list of selected Namespaces to restore from the Backup. The listed Namespaces and all resources contained in them will be restored. properties: namespaces: description: Optional. A list of Kubernetes Namespaces items: type: string type: array type: object substitutionRules: description: Optional. A list of transformation rules to be applied against Kubernetes resources as they are selected for restoration from a Backup. Rules are executed in order defined - this order matters, as changes made by a rule may impact the filtering logic of subsequent rules. An empty list means no substitution will occur. items: properties: newValue: description: Optional. This is the new value to set for any fields that pass the filtering and selection criteria. To remove a value from a Kubernetes resource, either leave this field unspecified, or set it to the empty string (""). type: string originalValuePattern: description: Optional. (Filtering parameter) This is a [regular expression] (https://en.wikipedia.org/wiki/Regular_expression) that is compared against the fields matched by the target_json_path expression (and must also have passed the previous filters). Substitution will not be performed against fields whose value does not match this expression. If this field is NOT specified, then ALL fields matched by the target_json_path expression will undergo substitution. Note that an empty (e.g., "", rather than unspecified) value for this field will only match empty fields. type: string targetGroupKinds: description: Optional. (Filtering parameter) Any resource subject to substitution must belong to one of the listed "types". If this field is not provided, no type filtering will be performed (all resources of all types matching previous filtering parameters will be candidates for substitution). items: properties: resourceGroup: description: 'Optional. API group string of a Kubernetes resource, e.g. "apiextensions.k8s.io", "storage.k8s.io", etc. Note: use empty string for core API group' type: string resourceKind: description: Optional. Kind of a Kubernetes resource, must be in UpperCamelCase (PascalCase) and singular form. E.g. "CustomResourceDefinition", "StorageClass", etc. type: string type: object type: array targetJSONPath: description: Required. This is a [JSONPath] (https://kubernetes.io/docs/reference/kubectl/jsonpath/) expression that matches specific fields of candidate resources and it operates as both a filtering parameter (resources that are not matched with this expression will not be candidates for substitution) as well as a field identifier (identifies exactly which fields out of the candidate resources will be modified). type: string targetNamespaces: description: Optional. (Filtering parameter) Any resource subject to substitution must be contained within one of the listed Kubernetes Namespace in the Backup. If this field is not provided, no namespace filtering will be performed (all resources in all Namespaces, including all cluster-scoped resources, will be candidates for substitution). To mix cluster-scoped and namespaced resources in the same rule, use an empty string ("") as one of the target namespaces. items: type: string type: array required: - targetJSONPath type: object type: array transformationRules: description: Optional. A list of transformation rules to be applied against Kubernetes resources as they are selected for restoration from a Backup. Rules are executed in order defined - this order matters, as changes made by a rule may impact the filtering logic of subsequent rules. An empty list means no transformation will occur. items: properties: description: description: Optional. The description is a user specified string description of the transformation rule. type: string fieldActions: description: Required. A list of transformation rule actions to take against candidate resources. Actions are executed in order defined - this order matters, as they could potentially interfere with each other and the first operation could affect the outcome of the second operation. items: properties: fromPath: description: Optional. A string containing a JSON Pointer value that references the location in the target document to move the value from. type: string op: description: Required. op specifies the operation to perform. type: string path: description: Optional. A string containing a JSON-Pointer value that references a location within the target document where the operation is performed. type: string value: description: Optional. A string that specifies the desired value in string format to use for transformation. type: string required: - op type: object type: array resourceFilter: description: Optional. This field is used to specify a set of fields that should be used to determine which resources in backup should be acted upon by the supplied transformation rule actions, and this will ensure that only specific resources are affected by transformation rule actions. properties: groupKinds: description: Optional. (Filtering parameter) Any resource subject to transformation must belong to one of the listed "types". If this field is not provided, no type filtering will be performed (all resources of all types matching previous filtering parameters will be candidates for transformation). items: properties: resourceGroup: description: 'Optional. API group string of a Kubernetes resource, e.g. "apiextensions.k8s.io", "storage.k8s.io", etc. Note: use empty string for core API group' type: string resourceKind: description: Optional. Kind of a Kubernetes resource, must be in UpperCamelCase (PascalCase) and singular form. E.g. "CustomResourceDefinition", "StorageClass", etc. type: string type: object type: array jsonPath: description: Optional. This is a [JSONPath] (https://github.com/json-path/JsonPath/blob/master/README.md) expression that matches specific fields of candidate resources and it operates as a filtering parameter (resources that are not matched with this expression will not be candidates for transformation). type: string namespaces: description: Optional. (Filtering parameter) Any resource subject to transformation must be contained within one of the listed Kubernetes Namespace in the Backup. If this field is not provided, no namespace filtering will be performed (all resources in all Namespaces, including all cluster-scoped resources, will be candidates for transformation). items: type: string type: array type: object required: - fieldActions type: object type: array volumeDataRestorePolicy: description: 'Optional. Specifies the mechanism to be used to restore volume data. Default: VOLUME_DATA_RESTORE_POLICY_UNSPECIFIED (will be treated as NO_VOLUME_DATA_RESTORATION).' type: string volumeDataRestorePolicyBindings: description: Optional. A table that binds volumes by their scope to a restore policy. Bindings must have a unique scope. Any volumes not scoped in the bindings are subject to the policy defined in volume_data_restore_policy. items: properties: policy: description: Required. The VolumeDataRestorePolicy to apply when restoring volumes in scope. type: string volumeType: description: The volume type, as determined by the PVC's bound PV, to apply the policy to. type: string required: - policy type: object type: array type: object state: description: Output only. The current state of the Restore. type: string stateReason: description: Output only. Human-readable description of why the Restore is in its current state. type: string uid: description: Output only. Server generated global unique identifier of [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) format. type: string updateTime: description: Output only. The timestamp when this Restore resource was last updated. type: string volumesRestoredCount: description: Output only. Number of volumes restored during the restore execution. format: int32 type: integer type: object type: object required: - spec type: object served: true storage: true subresources: status: {}