Skip to content

Commit 5cbec0b

Browse files
committed
update codegen
Signed-off-by: Karol Szwaj <karol.szwaj@gmail.com> On-behalf-of: @SAP karol.szwaj@sap.com
1 parent 6a7c0d6 commit 5cbec0b

File tree

3 files changed

+21
-2
lines changed

3 files changed

+21
-2
lines changed

deploy/crd/kcp.io/syncagent.kcp.io_publishedresources.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -407,6 +407,9 @@ spec:
407407
type: object
408408
type: array
409409
type: object
410+
optional:
411+
description: Optional indicates whether the related resource must be referenced.
412+
type: boolean
410413
origin:
411414
description: '"service" or "kcp"'
412415
type: string

internal/sync/syncer_related.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,23 +72,28 @@ func (s *ResourceSyncer) processRelatedResource(log *zap.SugaredLogger, stateSto
7272
dest = local
7373
}
7474

75+
// to find the source related object, we first need to determine its name/namespace
7576
sourceKey, err := resolveResourceReference(source.object, relRes.Reference)
7677
if err != nil {
7778
return false, fmt.Errorf("failed to determine related object's source key: %w", err)
7879
}
7980

81+
// find the source related object
8082
sourceObj := &unstructured.Unstructured{}
81-
sourceObj.SetAPIVersion("v1")
83+
sourceObj.SetAPIVersion("v1") // we only support ConfigMaps and Secrets, both are in core/v1
8284
sourceObj.SetKind(relRes.Kind)
8385

8486
err = source.client.Get(source.ctx, *sourceKey, sourceObj)
8587
if err != nil {
8688
if apierrors.IsNotFound(err) {
89+
// the source object doesn't exist yet, so we can just stop
8790
return false, nil
8891
}
92+
8993
return false, fmt.Errorf("failed to get source object: %w", err)
9094
}
9195

96+
// do the same to find the destination object
9297
destKey, err := resolveResourceReference(dest.object, relRes.Reference)
9398
if err != nil {
9499
return false, fmt.Errorf("failed to determine related object's destination key: %w", err)
@@ -237,8 +242,10 @@ func resolveResourceLocator(jsonData string, loc syncagentv1alpha1.ResourceLocat
237242
if err != nil {
238243
return "", fmt.Errorf("invalid pattern %q: %w", re.Pattern, err)
239244
}
245+
// this does apply some coalescing, like turning numbers into strings
246+
strVal := gval.String()
240247

241-
return expr.ReplaceAllString(gval.String(), re.Replacement), nil
248+
return expr.ReplaceAllString(strVal, re.Replacement), nil
242249
}
243250

244251
return gval.String(), nil

sdk/applyconfiguration/syncagent/v1alpha1/relatedresourcespec.go

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

0 commit comments

Comments
 (0)