Skip to content

Commit decf4e5

Browse files
committed
fix: delete kusionstack.io/cluster label if object is Unstructured
1 parent 8f00ba1 commit decf4e5

2 files changed

Lines changed: 11 additions & 8 deletions

File tree

multicluster/help.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222

2323
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2424
"k8s.io/apimachinery/pkg/runtime"
25+
"sigs.k8s.io/controller-runtime/pkg/client"
2526

2627
"kusionstack.io/kube-utils/multicluster/clusterinfo"
2728
)
@@ -55,12 +56,14 @@ func getCluster(ctx context.Context, label map[string]string) (cluster string, e
5556
return
5657
}
5758

58-
func getThenDeleteCluster(ctx context.Context, label map[string]string) (cluster string, err error) {
59-
cluster, err = getCluster(ctx, label)
59+
func getThenDeleteCluster(ctx context.Context, obj client.Object) (cluster string, err error) {
60+
labels := obj.GetLabels()
61+
cluster, err = getCluster(ctx, labels)
6062
if err != nil {
6163
return
6264
}
63-
delete(label, clusterinfo.ClusterLabelKey)
65+
delete(labels, clusterinfo.ClusterLabelKey)
66+
obj.SetLabels(labels)
6467
return
6568
}
6669

multicluster/multi_cluster_client.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ func (mcc *multiClusterClient) Create(ctx context.Context, obj client.Object, op
127127
}()
128128

129129
// Get cluster info from context or labels, and delete it from labels because we should not write it into apiserver
130-
cluster, err = getThenDeleteCluster(ctx, obj.GetLabels())
130+
cluster, err = getThenDeleteCluster(ctx, obj)
131131
if err != nil {
132132
metrics.NewInvalidClusterCounterMetrics("Create", cluster)
133133
mcc.log.Error(err, "failed to get cluster")
@@ -309,7 +309,7 @@ func (mcc *multiClusterClient) Patch(ctx context.Context, obj client.Object, pat
309309
}()
310310

311311
// Get cluster info from context or labels, and delete it from labels because we should not write it into apiserver
312-
cluster, err = getThenDeleteCluster(ctx, obj.GetLabels())
312+
cluster, err = getThenDeleteCluster(ctx, obj)
313313
if err != nil {
314314
metrics.NewInvalidClusterCounterMetrics("Patch", cluster)
315315
mcc.log.Error(err, "failed to get cluster")
@@ -339,7 +339,7 @@ func (mcc *multiClusterClient) Update(ctx context.Context, obj client.Object, op
339339
}()
340340

341341
// Get cluster info from context or labels, and delete it from labels because we should not write it into apiserver
342-
cluster, err = getThenDeleteCluster(ctx, obj.GetLabels())
342+
cluster, err = getThenDeleteCluster(ctx, obj)
343343
if err != nil {
344344
metrics.NewInvalidClusterCounterMetrics("Update", cluster)
345345
mcc.log.Error(err, "failed to get cluster")
@@ -392,7 +392,7 @@ func (sw *statusWriter) Update(ctx context.Context, obj client.Object, opts ...c
392392
}()
393393

394394
// Get cluster info from context or labels, and delete it from labels because we should not write it into apiserver
395-
cluster, err = getThenDeleteCluster(ctx, obj.GetLabels())
395+
cluster, err = getThenDeleteCluster(ctx, obj)
396396
if err != nil {
397397
metrics.NewInvalidClusterCounterMetrics("StatusUpdate", cluster)
398398
sw.log.Error(err, "failed to get cluster")
@@ -419,7 +419,7 @@ func (sw *statusWriter) Patch(ctx context.Context, obj client.Object, patch clie
419419
}()
420420

421421
// Get cluster info from context or labels, and delete it from labels because we should not write it into apiserver
422-
cluster, err = getThenDeleteCluster(ctx, obj.GetLabels())
422+
cluster, err = getThenDeleteCluster(ctx, obj)
423423
if err != nil {
424424
metrics.NewInvalidClusterCounterMetrics("StatusPatch", cluster)
425425
sw.log.Error(err, "failed to get cluster")

0 commit comments

Comments
 (0)