Skip to content

Commit 85a7531

Browse files
feat: Add delete override option in the API (#972)
1 parent 299da87 commit 85a7531

File tree

4 files changed

+27
-7
lines changed

4 files changed

+27
-7
lines changed

apis/placement/v1alpha1/override_types.go

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,14 +74,32 @@ type OverrideRule struct {
7474
// +optional
7575
ClusterSelector *placementv1beta1.ClusterSelector `json:"clusterSelector,omitempty"`
7676

77+
// OverrideType defines the type of the override rules.
78+
// +kubebuilder:validation:Enum=JSONPatch;Delete
79+
// +kubebuilder:default:JSONPatch
80+
// +optional
81+
OverrideType OverrideType `json:"overrideType,omitempty"`
82+
7783
// JSONPatchOverrides defines a list of JSON patch override rules.
84+
// This field is only allowed when OverrideType is JSONPatch.
7885
// +kubebuilder:validation:Required
7986
// +kubebuilder:validation:MinItems=1
8087
// +kubebuilder:validation:MaxItems=20
81-
// +required
82-
JSONPatchOverrides []JSONPatchOverride `json:"jsonPatchOverrides"`
88+
// +optional
89+
JSONPatchOverrides []JSONPatchOverride `json:"jsonPatchOverrides,omitempty"`
8390
}
8491

92+
// OverrideType defines the type of Override
93+
type OverrideType string
94+
95+
const (
96+
// JSONPatchOverrideType applies a JSON patch on the selected resources following [RFC 6902](https://datatracker.ietf.org/doc/html/rfc6902).
97+
JSONPatchOverrideType OverrideType = "JSONPatch"
98+
99+
// DeleteOverrideType deletes the selected resources on the target clusters.
100+
DeleteOverrideType OverrideType = "Delete"
101+
)
102+
85103
// +genclient
86104
// +genclient:Namespaced
87105
// +kubebuilder:object:root=true

apis/placement/v1alpha1/zz_generated.deepcopy.go

Lines changed: 3 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/controllers/updaterun/controller.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ import (
1111
"fmt"
1212
"time"
1313

14-
"go.goms.io/fleet/pkg/utils"
15-
"go.goms.io/fleet/pkg/utils/controller"
1614
"k8s.io/apimachinery/pkg/types"
1715
"k8s.io/client-go/tools/record"
1816
"k8s.io/client-go/util/workqueue"
@@ -27,6 +25,8 @@ import (
2725
"sigs.k8s.io/controller-runtime/pkg/reconcile"
2826

2927
placementv1alpha1 "go.goms.io/fleet/apis/placement/v1alpha1"
28+
"go.goms.io/fleet/pkg/utils"
29+
"go.goms.io/fleet/pkg/utils/controller"
3030
)
3131

3232
// Reconciler reconciles a ClusterStagedUpdateRun object.

pkg/controllers/updaterun/controller_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,12 @@ package updaterun
88
import (
99
"testing"
1010

11-
placementv1alpha1 "go.goms.io/fleet/apis/placement/v1alpha1"
1211
"k8s.io/client-go/util/workqueue"
1312
"sigs.k8s.io/controller-runtime/pkg/client"
1413
"sigs.k8s.io/controller-runtime/pkg/controller/controllertest"
1514
"sigs.k8s.io/controller-runtime/pkg/reconcile"
15+
16+
placementv1alpha1 "go.goms.io/fleet/apis/placement/v1alpha1"
1617
)
1718

1819
func TestHandleClusterApprovalRequest(t *testing.T) {

0 commit comments

Comments
 (0)