Skip to content

Commit 59f097e

Browse files
authored
Merge pull request #91 from kcp-dev/fix-templating
fix templating variables for related resources
2 parents 0d1783f + 55fe26b commit 59f097e

File tree

2 files changed

+68
-2
lines changed

2 files changed

+68
-2
lines changed

internal/sync/syncer_related.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -599,10 +599,10 @@ func templateLabelSelector(relatedOrigin, relatedDest syncSide, origin syncagent
599599

600600
func remapSyncSides(relatedOrigin, relatedDest syncSide, origin syncagentv1alpha1.RelatedResourceOrigin) (localSide, remoteSide syncSide) {
601601
if origin == syncagentv1alpha1.RelatedResourceOriginKcp {
602-
return relatedOrigin, relatedDest
602+
return relatedDest, relatedOrigin
603603
}
604604

605-
return relatedDest, relatedOrigin
605+
return relatedOrigin, relatedDest
606606
}
607607

608608
func oppositeSide(origin syncagentv1alpha1.RelatedResourceOrigin) syncagentv1alpha1.RelatedResourceOrigin {

test/e2e/sync/related_test.go

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -404,6 +404,72 @@ func TestSyncRelatedObjects(t *testing.T) {
404404

405405
//////////////////////////////////////////////////////////////////////////////////////////////
406406

407+
{
408+
name: "use cluster-related fields in label selector",
409+
workspace: "sync-cluster-fields-selected-secret-up",
410+
mainResource: crds.Crontab{
411+
ObjectMeta: metav1.ObjectMeta{
412+
Name: "my-crontab",
413+
Namespace: "default",
414+
},
415+
Spec: crds.CrontabSpec{
416+
CronSpec: "* * *",
417+
Image: "ubuntu:latest",
418+
},
419+
},
420+
relatedConfig: syncagentv1alpha1.RelatedResourceSpec{
421+
Identifier: "credentials",
422+
Origin: syncagentv1alpha1.RelatedResourceOriginService,
423+
Kind: "Secret",
424+
Object: syncagentv1alpha1.RelatedResourceObject{
425+
RelatedResourceObjectSpec: syncagentv1alpha1.RelatedResourceObjectSpec{
426+
Selector: &syncagentv1alpha1.RelatedResourceObjectSelector{
427+
LabelSelector: metav1.LabelSelector{
428+
MatchLabels: map[string]string{
429+
"find": "foo-{{ .ClusterName | len }}",
430+
},
431+
},
432+
Rewrite: syncagentv1alpha1.RelatedResourceSelectorRewrite{
433+
Template: &syncagentv1alpha1.TemplateExpression{
434+
// same fixed name on both sides
435+
Template: "my-credentials",
436+
},
437+
},
438+
},
439+
},
440+
},
441+
},
442+
sourceRelatedObject: corev1.Secret{
443+
ObjectMeta: metav1.ObjectMeta{
444+
Name: "unknown-name",
445+
Namespace: "synced-default",
446+
Labels: map[string]string{
447+
"find": "foo-16",
448+
},
449+
},
450+
Data: map[string][]byte{
451+
"password": []byte("hunter2"),
452+
},
453+
Type: corev1.SecretTypeOpaque,
454+
},
455+
456+
expectedSyncedRelatedObject: corev1.Secret{
457+
ObjectMeta: metav1.ObjectMeta{
458+
Name: "my-credentials",
459+
Namespace: "default",
460+
Labels: map[string]string{
461+
"find": "foo-16",
462+
},
463+
},
464+
Data: map[string][]byte{
465+
"password": []byte("hunter2"),
466+
},
467+
Type: corev1.SecretTypeOpaque,
468+
},
469+
},
470+
471+
//////////////////////////////////////////////////////////////////////////////////////////////
472+
407473
{
408474
name: "find Secret based on templated label selector",
409475
workspace: "sync-templated-selected-secret-up",

0 commit comments

Comments
 (0)