Skip to main content
Version: 3.6

ProtectionGroup CRD reference

The ProtectionGroup CRD represents a protection group consisting of a set of applications and schedules for running DR migrations between clusters.

Example

apiVersion: multicluster.portworx.com/v1alpha1
kind: ProtectionGroup
metadata:
name: <protection-group-name>
namespace: <namespace>
spec:
disasterRecoveryPairRef: <dr-pair-name> # Name of the DisasterRecoveryPair resource
namespaceSelection: # Namespaces in this protection group
namespaces:
- <namespace-name>
replicationSchedulePolicy: # When DR replications should run
interval:
intervalMinutes: <minutes> # Required within interval

ProtectionGroup

FieldDescriptionType
apiVersionAPIVersion 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
string
kindKind 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
string
specProtectionGroupSpec defines the desired state of ProtectionGroup.object
statusProtectionGroupStatus defines the observed state of ProtectionGroup.object

spec fields

FieldDescriptionType
spec.advanceConfigurationAdvanceConfiguration provides fine-grained migration control options. .object
spec.advanceConfiguration.applicationLifecycleHooksApplicationLifecycleHooks defines the hooks that should be executed before and after application migration.object
spec.advanceConfiguration.applicationLifecycleHooks.postMigrationHookPostMigrationHook is the list of hooks that should be executed after application migration completes.object
spec.advanceConfiguration.applicationLifecycleHooks.preMigrationHookPreMigrationHook is the list of hooks that should be executed before application migration starts.object
spec.advanceConfiguration.ignoreDeletedNamespacesAtSourceSkipDeletedNamespaces determines whether namespaces that have been deleted should be skipped during migration.boolean
spec.advanceConfiguration.ignoreOwnerReferencesValidationIgnoreOwnerReferencesValidation specifies whether the migration should ignore checks related to owner references.boolean
spec.advanceConfiguration.purgeDeletedResourcesAtSourcePurgeDeletedResources specifies whether deleted resources (that existed before but no longer exist) should be removed from destination cluster.boolean
spec.advanceConfiguration.resourceTransformationsResourceTransformations is a list of transformation specifications that should be applied to Kubernetes resources before they are migrated.array
spec.advanceConfiguration.resourceTransformationsInlineResourceTransformation stores a full stork.libopenstorage.org/v1alpha1 ResourceTransformation object inline.object
spec.advanceConfiguration.skipServiceUpdateSkipServiceUpdate determines whether service updates should be skipped during migration.boolean
spec.disasterRecoveryPairRefDisasterRecoveryPairRef is the name of the DisasterRecoveryPair resource
that defines the source/destination clusters and backup location.
string
spec.namespaceSelectionNamespaceSelection controls which namespaces are in this protection group.
At least one of namespaces or namespaceSelector must be provided.
object
spec.namespaceSelection.namespaceSelectorsNamespaceSelectors selects namespaces by label.array
spec.namespaceSelection.namespaceSelectors.labelKey is the label key to match.string
spec.namespaceSelection.namespaceSelectors.operatorOperator is the label operator to use.string
spec.namespaceSelection.namespaceSelectors.valueValue is the label value to match.string
spec.namespaceSelection.namespacesNamespaces is the explicit list of namespaces that are part of thisarray
spec.replicationSchedulePolicyReplicationSchedulePolicy defines when DR replications for this protection group should run.
At least one schedule policy (interval) should be specified.
object
spec.replicationSchedulePolicy.intervalInterval policy that will be triggered at the specified intervalobject
spec.replicationSchedulePolicy.interval.intervalMinutesIntervalMinutes specifies the interval in minutes between triggers.integer
spec.replicationSchedulePolicy.interval.retainRetain specifies the number of backups to retain.integer
spec.replicationSchedulePolicy.suspendSuspend indicates whether the migrations for the protection group are to be suspended.boolean
spec.resourceConfigurationResourceConfiguration defines the resource configuration, including label rules, PVC inclusion and PVC label rules, and resource type filters.object
spec.resourceConfiguration.customSelectionResourceSelector controls which resources and volumes within the selected namespaces are protected.object
spec.resourceConfiguration.customSelection.excludeLabelSelectorsExcludeFilters is a set of label-based selectors used to filter the objects that should be excluded from the migration.array
spec.resourceConfiguration.customSelection.excludeLabelSelectors.labelKey is the label key to match.string
spec.resourceConfiguration.customSelection.excludeLabelSelectors.operatorOperator is the label operator to use.string
spec.resourceConfiguration.customSelection.excludeLabelSelectors.valueValue is the label value to match.string
spec.resourceConfiguration.customSelection.includeApplicationVolumesIncludeApplicationVolumes specifies whether application volumes (PVCs) should
be included in the protection group.
boolean
spec.resourceConfiguration.customSelection.includeCIDRBasedNetworkPoliciesIncludeCIDRBasedNetworkPolicies specifies whether network policies with CIDR-based rules should be included in the migration.boolean
spec.resourceConfiguration.customSelection.includeLabelSelectorsIncludeLabelSelectors is a set of label-based selectors used to filter the objects that should be included in the migration.array
spec.resourceConfiguration.customSelection.includeLabelSelectors.labelKey is the label key to match.string
spec.resourceConfiguration.customSelection.includeLabelSelectors.operatorOperator is the label operator to use.string
spec.resourceConfiguration.customSelection.includeLabelSelectors.valueValue is the label value to match.string
spec.resourceConfiguration.customSelection.resourceTypeSelectorResourceTypeSelector controls which resource kinds are included or excluded from protection.object
spec.resourceConfiguration.customSelection.resourceTypeSelector.excludeExclude is a list of resource types that should be excluded from the migration.array
spec.resourceConfiguration.customSelection.resourceTypeSelector.includeInclude is a list of optional Kubernetes resource types that should be included in the migration.array
spec.resourceConfiguration.customSelection.startApplicationsAfterFailoverStartApplicationsAfterFailover determines whether migrated applications should be started after failover.boolean
spec.resourceConfiguration.includeAllResourcesIncludeAllResources specifies whether all resources in the selected namespaces should be included in the protection group.boolean

status fields

FieldDescriptionType
status.activeSiteActiveSite indicates which cluster site is currently active (Primary or Secondary).string
status.applicationActivatedApplicationActivated indicates whether the application is activated.boolean
status.compliantCompliant represents the compliance status of the protection group.object
status.compliant.reasonReason is short description of why the resource is in non compliant state.string
status.compliant.statusStatus: is true then resource is compliant and operational.boolean
status.conditionsConditions represent the latest available observations of the ProtectionGroup's statearray
status.conditions.lastTransitionTimelastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
string
status.conditions.messagemessage is a human readable message indicating details about the transition.
This may be an empty string.
string
status.conditions.observedGenerationobservedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
integer
status.conditions.reasonreason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
string
status.conditions.statusstatus of the condition, one of True, False, Unknown.string
status.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.string
status.failbackNamespacesFailbackNamespaces is the aggregated list of all namespaces that have been failed back.array
status.failbackStatusesFailbackStatuses contains status information for all failback operations.
Each entry is keyed by the DREvent UID that triggered the failback.
array
status.failbackStatuses.UIDUID is the unique identifier of the DR action that triggered this failback.string
status.failbackStatuses.nameName is the name of the DisasterRecoveryAction object created for this failback.string
status.failbackStatuses.namespaceNamespace is the namespace of the DisasterRecoveryAction object created for this failback.string
status.failbackStatuses.statusStatus indicates the current status of the failback operation.string
status.failoverNamespacesFailoverNamespaces is the aggregated list of all namespaces that have been failed over.array
status.failoverStatusesFailoverStatuses contains status information for all failover operations.
Each entry is keyed by the DREvent UID that triggered the failover.
array
status.failoverStatuses.UIDUID is the unique identifier of the DR action that triggered this failover.string
status.failoverStatuses.nameName is the name of the DisasterRecoveryAction object created for this failover.string
status.failoverStatuses.namespaceNamespace is the namespace of the DisasterRecoveryAction object created for this failover.string
status.failoverStatuses.statusStatus indicates the current status of the failover operation.string
status.lastAgentUpdateTimestampLastAgentUpdateTimestamp is the time when the protection group status was last updated by the agentstring
status.migrationStatusMigrationStatus groups recent migration runs by schedule policy type.object
status.migrationStatus.creationTimestampCreationTimestamp is when the migration was created.string
status.migrationStatus.finishTimestampFinishTimestamp is when the migration finished, if it has completed.string
status.migrationStatus.nameName is the name of the migration object created for this run.string
status.migrationStatus.statusStatus is the final (or current) status of the migration.string
status.migrationStatus.summarysummary of the migrationobject
status.migrationStatus.summary.elapsedTimeForResourceMigrationElapsedTimeForResourceMigration provides the total time the
resource migration stage has been running or the total time
taken for the resource migration to complete if the volume migration has finished
string
status.migrationStatus.summary.elapsedTimeForVolumeMigrationElapsedTimeForVolumeMigration provides the total time the
volume migration stage has been running or the total time
taken for the volume migration to complete if the volume migration has finished
string
status.migrationStatus.summary.migrationFailureReasonsMigrationFailureReasons provides the list of failure reasons for migration failuresarray
status.migrationStatus.summary.numOfMigratedResourcesNumberOfMigratedResources gives the total count of migrated k8s resourcesinteger
status.migrationStatus.summary.numOfMigratedVolumesNumberOfMigratedVolumes gives the total count of successfully migrated volumesinteger
status.migrationStatus.summary.totalBytesMigratedTotalBytesMigrated gives the total amount of bytes migrated across all the volumesinteger
status.migrationStatus.summary.totalNumberOfResourcesTotalNumberOfResources gives the total count of resourcsinteger
status.migrationStatus.summary.totalNumberOfVolumesTotalNumberOfVolumes gives the total count of volumesinteger
status.protectedNamespacesCountProtectedNamespacesCount is the count of namespaces currently protected by this protection group.integer
status.protectionStateProtectionState represents the overall state of the protection group.string
status.reverseSpecReverseSpec defines the reverse direction configuration for this protection group.
This is used to track overridden spec attributes for the reverse DR direction (secondary to primary).
This is copied from the ReverseProtectionGroup CR created for the reverse direction.
object
status.reverseSpec.advanceConfigurationAdvanceConfiguration provides fine-grained migration control options for reverse direction.
If not specified, the AdvanceConfiguration from the main ProtectionGroup is used.
object
status.reverseSpec.advanceConfiguration.applicationLifecycleHooksApplicationLifecycleHooks defines the hooks that should be executed before and after application migration.object
status.reverseSpec.advanceConfiguration.applicationLifecycleHooks.postMigrationHookPostMigrationHook is the list of hooks that should be executed after application migration completes.object
status.reverseSpec.advanceConfiguration.applicationLifecycleHooks.preMigrationHookPreMigrationHook is the list of hooks that should be executed before application migration starts.object
status.reverseSpec.advanceConfiguration.ignoreDeletedNamespacesAtSourceSkipDeletedNamespaces determines whether namespaces that have been deleted should be skipped during migration.boolean
status.reverseSpec.advanceConfiguration.ignoreOwnerReferencesValidationIgnoreOwnerReferencesValidation specifies whether the migration should ignore checks related to owner references.boolean
status.reverseSpec.advanceConfiguration.purgeDeletedResourcesAtSourcePurgeDeletedResources specifies whether deleted resources (that existed before but no longer exist) should be removed from destination cluster.boolean
status.reverseSpec.advanceConfiguration.resourceTransformationsResourceTransformations is a list of transformation specifications that should be applied to Kubernetes resources before they are migrated.array
status.reverseSpec.advanceConfiguration.resourceTransformationsInlineResourceTransformation stores a full stork.libopenstorage.org/v1alpha1 ResourceTransformation object inline.object
status.reverseSpec.advanceConfiguration.skipServiceUpdateSkipServiceUpdate determines whether service updates should be skipped during migration.boolean
status.reverseSpec.namespaceSelectionNamespaceSelection controls which namespaces are in the reverse protection group.
If not specified, the NamespaceSelection from the main ProtectionGroup is used.
object
status.reverseSpec.namespaceSelection.namespaceSelectorsNamespaceSelectors selects namespaces by label.array
status.reverseSpec.namespaceSelection.namespaceSelectors.labelKey is the label key to match.string
status.reverseSpec.namespaceSelection.namespaceSelectors.operatorOperator is the label operator to use.string
status.reverseSpec.namespaceSelection.namespaceSelectors.valueValue is the label value to match.string
status.reverseSpec.namespaceSelection.namespacesNamespaces is the explicit list of namespaces that are part of thisarray
status.reverseSpec.replicationSchedulePolicyReplicationSchedulePolicy defines the replication schedule for the reverse direction.
If not specified, the ReplicationSchedulePolicy from the main ProtectionGroup is used.
object
status.reverseSpec.replicationSchedulePolicy.intervalInterval policy that will be triggered at the specified intervalobject
status.reverseSpec.replicationSchedulePolicy.interval.intervalMinutesIntervalMinutes specifies the interval in minutes between triggers.integer
status.reverseSpec.replicationSchedulePolicy.interval.retainRetain specifies the number of backups to retain.integer
status.reverseSpec.replicationSchedulePolicy.suspendSuspend indicates whether the migrations for the protection group are to be suspended.boolean
status.reverseSpec.resourceConfigurationResourceConfiguration for the reverse direction.
If not specified, the ResourceConfiguration from the main ProtectionGroup is used.
object
status.reverseSpec.resourceConfiguration.customSelectionResourceSelector controls which resources and volumes within the selected namespaces are protected.object
status.reverseSpec.resourceConfiguration.customSelection.excludeLabelSelectorsExcludeFilters is a set of label-based selectors used to filter the objects that should be excluded from the migration.array
status.reverseSpec.resourceConfiguration.customSelection.excludeLabelSelectors.labelKey is the label key to match.string
status.reverseSpec.resourceConfiguration.customSelection.excludeLabelSelectors.operatorOperator is the label operator to use.string
status.reverseSpec.resourceConfiguration.customSelection.excludeLabelSelectors.valueValue is the label value to match.string
status.reverseSpec.resourceConfiguration.customSelection.includeApplicationVolumesIncludeApplicationVolumes specifies whether application volumes (PVCs) should
be included in the protection group.
boolean
status.reverseSpec.resourceConfiguration.customSelection.includeCIDRBasedNetworkPoliciesIncludeCIDRBasedNetworkPolicies specifies whether network policies with CIDR-based rules should be included in the migration.boolean
status.reverseSpec.resourceConfiguration.customSelection.includeLabelSelectorsIncludeLabelSelectors is a set of label-based selectors used to filter the objects that should be included in the migration.array
status.reverseSpec.resourceConfiguration.customSelection.includeLabelSelectors.labelKey is the label key to match.string
status.reverseSpec.resourceConfiguration.customSelection.includeLabelSelectors.operatorOperator is the label operator to use.string
status.reverseSpec.resourceConfiguration.customSelection.includeLabelSelectors.valueValue is the label value to match.string
status.reverseSpec.resourceConfiguration.customSelection.resourceTypeSelectorResourceTypeSelector controls which resource kinds are included or excluded from protection.object
status.reverseSpec.resourceConfiguration.customSelection.resourceTypeSelector.excludeExclude is a list of resource types that should be excluded from the migration.array
status.reverseSpec.resourceConfiguration.customSelection.resourceTypeSelector.includeInclude is a list of optional Kubernetes resource types that should be included in the migration.array
status.reverseSpec.resourceConfiguration.customSelection.startApplicationsAfterFailoverStartApplicationsAfterFailover determines whether migrated applications should be started after failover.boolean
status.reverseSpec.resourceConfiguration.includeAllResourcesIncludeAllResources specifies whether all resources in the selected namespaces should be included in the protection group.boolean
status.suspendSuspend indicates whether the status of the migrations for the protection group is suspended.boolean
In this topic: