Skip to content

Commit a2c35f2

Browse files
authored
interface: support skipping validation when deleting member cluster (#251)
interface: support force delete when deleting member cluster Signed-off-by: Zhiying Lin <[email protected]>
1 parent 8bd12e0 commit a2c35f2

File tree

8 files changed

+406
-5
lines changed

8 files changed

+406
-5
lines changed

apis/cluster/v1beta1/membercluster_types.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,30 @@ type MemberClusterSpec struct {
7474
// +kubebuilder:validation:MaxItems=100
7575
// +optional
7676
Taints []Taint `json:"taints,omitempty"`
77+
78+
// DeleteOptions for deleting the MemberCluster.
79+
// +optional
80+
DeleteOptions *DeleteOptions `json:"deleteOptions,omitempty"`
81+
}
82+
83+
// DeleteValidationMode identifies the type of validation when deleting a MemberCluster.
84+
// +enum
85+
type DeleteValidationMode string
86+
87+
const (
88+
// DeleteValidationModeSkip skips the validation when deleting a MemberCluster.
89+
DeleteValidationModeSkip = "Skip"
90+
91+
// DeleteValidationModeStrict performs strict validation when deleting a MemberCluster.
92+
DeleteValidationModeStrict = "Strict"
93+
)
94+
95+
type DeleteOptions struct {
96+
// Mode of validation. Can be "Skip", or "Strict". Default is Strict.
97+
// +kubebuilder:validation:Enum=Skip;Strict
98+
// +kubebuilder:default=Strict
99+
// +kubebuilder:validation:Optional
100+
ValidationMode DeleteValidationMode `json:"validationMode,omitempty"`
77101
}
78102

79103
// PropertyName is the name of a cluster property; it should be a Kubernetes label name.

apis/cluster/v1beta1/zz_generated.deepcopy.go

Lines changed: 21 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apis/placement/v1alpha1/zz_generated.deepcopy.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apis/placement/v1beta1/zz_generated.deepcopy.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apis/v1alpha1/zz_generated.deepcopy.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/cluster.kubernetes-fleet.io_memberclusters.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -432,6 +432,18 @@ spec:
432432
spec:
433433
description: The desired state of MemberCluster.
434434
properties:
435+
deleteOptions:
436+
description: DeleteOptions for deleting the MemberCluster.
437+
properties:
438+
validationMode:
439+
default: Strict
440+
description: Mode of validation. Can be "Skip", or "Strict". Default
441+
is Strict.
442+
enum:
443+
- Skip
444+
- Strict
445+
type: string
446+
type: object
435447
heartbeatPeriodSeconds:
436448
default: 60
437449
description: 'How often (in seconds) for the member cluster to send

0 commit comments

Comments
 (0)