@@ -19,6 +19,7 @@ package sync
1919import (
2020 "context"
2121
22+ "github.com/kcp-dev/logicalcluster/v3"
2223 "go.uber.org/zap"
2324
2425 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -65,7 +66,7 @@ func ensureFinalizer(ctx context.Context, log *zap.SugaredLogger, client ctrlrun
6566 finalizers .Insert (deletionFinalizer )
6667 obj .SetFinalizers (sets .List (finalizers ))
6768
68- log .Debugw ("Adding finalizer…" , "on" , newObjectKey (obj , "" ), "finalizer" , finalizer )
69+ log .Debugw ("Adding finalizer…" , "on" , newObjectKey (obj , "" , logicalcluster . None ), "finalizer" , finalizer )
6970 if err := client .Patch (ctx , obj , ctrlruntimeclient .MergeFrom (original )); err != nil {
7071 return false , err
7172 }
@@ -84,7 +85,7 @@ func removeFinalizer(ctx context.Context, log *zap.SugaredLogger, client ctrlrun
8485 finalizers .Delete (deletionFinalizer )
8586 obj .SetFinalizers (sets .List (finalizers ))
8687
87- log .Debugw ("Removing finalizer…" , "on" , newObjectKey (obj , "" ), "finalizer" , finalizer )
88+ log .Debugw ("Removing finalizer…" , "on" , newObjectKey (obj , "" , logicalcluster . None ), "finalizer" , finalizer )
8889 if err := client .Patch (ctx , obj , ctrlruntimeclient .MergeFrom (original )); err != nil {
8990 return false , err
9091 }
@@ -93,16 +94,18 @@ func removeFinalizer(ctx context.Context, log *zap.SugaredLogger, client ctrlrun
9394}
9495
9596type objectKey struct {
96- Cluster string
97- Namespace string
98- Name string
97+ ClusterName logicalcluster.Name
98+ WorkspacePath logicalcluster.Path
99+ Namespace string
100+ Name string
99101}
100102
101- func newObjectKey (obj metav1.Object , clusterName string ) objectKey {
103+ func newObjectKey (obj metav1.Object , clusterName logicalcluster. Name , workspacePath logicalcluster. Path ) objectKey {
102104 return objectKey {
103- Cluster : clusterName ,
104- Namespace : obj .GetNamespace (),
105- Name : obj .GetName (),
105+ ClusterName : clusterName ,
106+ WorkspacePath : workspacePath ,
107+ Namespace : obj .GetNamespace (),
108+ Name : obj .GetName (),
106109 }
107110}
108111
@@ -111,8 +114,8 @@ func (k objectKey) String() string {
111114 if k .Namespace != "" {
112115 result = k .Namespace + "/" + result
113116 }
114- if k .Cluster != "" {
115- result = k . Cluster + "|" + result
117+ if k .ClusterName != "" {
118+ result = string ( k . ClusterName ) + "|" + result
116119 }
117120
118121 return result
@@ -123,17 +126,27 @@ func (k objectKey) Key() string {
123126 if k .Namespace != "" {
124127 result = k .Namespace + "_" + result
125128 }
126- if k .Cluster != "" {
127- result = k . Cluster + "_" + result
129+ if k .ClusterName != "" {
130+ result = string ( k . ClusterName ) + "_" + result
128131 }
129132
130133 return result
131134}
132135
133136func (k objectKey ) Labels () labels.Set {
134137 return labels.Set {
135- remoteObjectClusterLabel : k . Cluster ,
138+ remoteObjectClusterLabel : string ( k . ClusterName ) ,
136139 remoteObjectNamespaceLabel : k .Namespace ,
137140 remoteObjectNameLabel : k .Name ,
138141 }
139142}
143+
144+ func (k objectKey ) Annotations () labels.Set {
145+ s := labels.Set {}
146+
147+ if ! k .WorkspacePath .Empty () {
148+ s [remoteObjectWorkspacePathAnnotation ] = k .WorkspacePath .String ()
149+ }
150+
151+ return s
152+ }
0 commit comments