Skip to content

Commit 4385c59

Browse files
committed
fix labels and annotations leaking into kcp workspaces for related resources
On-behalf-of: @SAP [email protected]
1 parent 187fa93 commit 4385c59

File tree

3 files changed

+21
-5
lines changed

3 files changed

+21
-5
lines changed

internal/controller/syncmanager/lifecycle/cluster.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import (
2929

3030
kcpdevcorev1alpha1 "github.com/kcp-dev/kcp/sdk/apis/core/v1alpha1"
3131

32+
corev1 "k8s.io/api/core/v1"
3233
"k8s.io/apimachinery/pkg/api/meta"
3334
"k8s.io/apimachinery/pkg/runtime"
3435
"k8s.io/client-go/rest"
@@ -135,6 +136,10 @@ func NewCluster(address string, baseRestConfig *rest.Config) (*Cluster, error) {
135136

136137
scheme := runtime.NewScheme()
137138

139+
if err := corev1.AddToScheme(scheme); err != nil {
140+
return nil, fmt.Errorf("failed to register scheme %s: %w", corev1.SchemeGroupVersion, err)
141+
}
142+
138143
if err := kcpdevcorev1alpha1.AddToScheme(scheme); err != nil {
139144
return nil, fmt.Errorf("failed to register scheme %s: %w", kcpdevcorev1alpha1.SchemeGroupVersion, err)
140145
}

internal/sync/metadata.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,16 @@ var unsyncableLabels = sets.New(
9494

9595
// filterUnsyncableLabels removes all unwanted remote labels and returns a new label set.
9696
func filterUnsyncableLabels(original labels.Set) labels.Set {
97-
return filterLabels(original, unsyncableLabels)
97+
filtered := filterLabels(original, unsyncableLabels)
98+
99+
out := labels.Set{}
100+
for k, v := range filtered {
101+
if !strings.HasPrefix(k, "claimed.internal.apis.kcp.io/") {
102+
out[k] = v
103+
}
104+
}
105+
106+
return out
98107
}
99108

100109
// unsyncableAnnotations are annotations we never want to copy from the remote to local objects.

internal/sync/object_syncer.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -302,11 +302,13 @@ func (s *objectSyncer) ensureDestinationObject(log *zap.SugaredLogger, source, d
302302

303303
// remember the connection between the source and destination object
304304
sourceObjKey := newObjectKey(source.object, source.clusterName, source.workspacePath)
305-
ensureLabels(destObj, sourceObjKey.Labels())
306-
ensureAnnotations(destObj, sourceObjKey.Annotations())
305+
if s.metadataOnDestination {
306+
ensureLabels(destObj, sourceObjKey.Labels())
307+
ensureAnnotations(destObj, sourceObjKey.Annotations())
307308

308-
// remember what agent synced this object
309-
s.labelWithAgent(destObj)
309+
// remember what agent synced this object
310+
s.labelWithAgent(destObj)
311+
}
310312

311313
// finally, we can create the destination object
312314
objectLog := log.With("dest-object", newObjectKey(destObj, dest.clusterName, logicalcluster.None))

0 commit comments

Comments
 (0)