Skip to content

Commit 26e1a1f

Browse files
committed
update codegen
Signed-off-by: Karol Szwaj <[email protected]> On-behalf-of: @SAP [email protected]
1 parent 6a7c0d6 commit 26e1a1f

File tree

4 files changed

+28
-4
lines changed

4 files changed

+28
-4
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

hack/update-codegen-crds.sh

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,13 @@ reconcileHelpers=internal/resources/reconciling/zz_generated_reconcile.go
2828
go run k8c.io/reconciler/cmd/reconciler-gen --config hack/reconciling.yaml > $reconcileHelpers
2929

3030
currentYear=$(date +%Y)
31-
$sed -i "s/Copyright YEAR/Copyright $currentYear/g" $reconcileHelpers
32-
$sed -i "s/Copyright © YEAR/Copyright © $currentYear/g" $reconcileHelpers
31+
if [[ "$sed" == "gsed" ]]; then
32+
$sed -i "s/Copyright YEAR/Copyright $currentYear/g" $reconcileHelpers
33+
$sed -i "s/Copyright © YEAR/Copyright © $currentYear/g" $reconcileHelpers
34+
else
35+
$sed -i "" "s/Copyright YEAR/Copyright $currentYear/g" $reconcileHelpers
36+
$sed -i "" "s/Copyright © YEAR/Copyright © $currentYear/g" $reconcileHelpers
37+
fi
3338

3439
CRD_DIR=deploy/crd
3540
KCP_CRD_DIR="$CRD_DIR/kcp.io"

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)