diff --git a/api/v1beta1/common_types.go b/api/v1beta1/common_types.go index 64317c0a..ded817f5 100644 --- a/api/v1beta1/common_types.go +++ b/api/v1beta1/common_types.go @@ -440,7 +440,7 @@ type ValidateHealth struct { JobCheck *JobHealthCheck `json:"jobCheck,omitempty"` } -// +kubebuilder:validation:Enum:=Provisioning;Provisioned;Failed;FailedNonRetriable;Removing;Removed;AgentRemoving +// +kubebuilder:validation:Enum:=Provisioning;Provisioned;Failed;FailedNonRetriable;Removing;Removed;AgentRemoving;Blocked type FeatureStatus string const ( @@ -470,6 +470,11 @@ const ( // FeatureStatusRemoved indicates that feature is removed FeatureStatusRemoved = FeatureStatus("Removed") + + // FeatureStatusBlocked indicates that removal of this feature is deferred: + // a dependent ClusterSummary (DependsOn) has not been removed yet, or a + // successor ClusterSummary (TransitionFrom) has not reached Provisioned yet. + FeatureStatusBlocked = FeatureStatus("Blocked") ) type FeatureDeploymentInfo struct { diff --git a/config/crd/bases/lib.projectsveltos.io_configurationgroups.yaml b/config/crd/bases/lib.projectsveltos.io_configurationgroups.yaml index e99ec574..36b9bf20 100644 --- a/config/crd/bases/lib.projectsveltos.io_configurationgroups.yaml +++ b/config/crd/bases/lib.projectsveltos.io_configurationgroups.yaml @@ -1276,6 +1276,7 @@ spec: - Removing - Removed - AgentRemoving + - Blocked type: string type: object type: object diff --git a/lib/crd/configurationgroups.go b/lib/crd/configurationgroups.go index 316b7d0c..8c293eb4 100644 --- a/lib/crd/configurationgroups.go +++ b/lib/crd/configurationgroups.go @@ -1294,6 +1294,7 @@ spec: - Removing - Removed - AgentRemoving + - Blocked type: string type: object type: object diff --git a/manifests/apiextensions.k8s.io_v1_customresourcedefinition_configurationgroups.lib.projectsveltos.io.yaml b/manifests/apiextensions.k8s.io_v1_customresourcedefinition_configurationgroups.lib.projectsveltos.io.yaml index 8729bbd4..9d1029ab 100644 --- a/manifests/apiextensions.k8s.io_v1_customresourcedefinition_configurationgroups.lib.projectsveltos.io.yaml +++ b/manifests/apiextensions.k8s.io_v1_customresourcedefinition_configurationgroups.lib.projectsveltos.io.yaml @@ -1275,6 +1275,7 @@ spec: - Removing - Removed - AgentRemoving + - Blocked type: string type: object type: object