build: fix test-integration - #175
Open
n-losse wants to merge 1 commit into
Open
Conversation
Signed-off-by: Nikolas Losse <nikolas.losse@sap.com>
n-losse
force-pushed
the
fix-test-integration
branch
from
September 2, 2026 12:19
9cc7ada to
d0fd947
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes
make test-integrationwhich was broken for several reasons accumulated since the script was last tested against the current build system and Crossplane v2.Fixes
Build system mismatches
HELM3is not exported by the build system (it exportsHELM); renamed throughout the script and in the Makefile prerequisite — without this, thehelmbinary was never downloaded and the variable was always emptyKIND_NODE_IMAGE_TAG ?= v1.29.0added to the Makefile so the value is defined before being passed to the script viaKIND_NODE_IMAGE_TAG=${KIND_NODE_IMAGE_TAG}; previously it would expand to empty, causing kind to usekindest/node:with no versionCONTROLLER_IMAGEincorrectly included a-controller-infix that no image in this repo is built with; corrected to match the actual image name produced bymake buildPACKAGE_CONTROLLER_IMAGEused${DOCKER_REGISTRY}/unconditionally, producing an invalid leading-slash reference whenDOCKER_REGISTRYis empty; replaced with${DOCKER_REGISTRY:+${DOCKER_REGISTRY}/}. The variable is now unused — the controller image is loaded into kind directly under its build name — but kept for potential external usehelm repo addnow passes--force-updateso repeated runs don't fail if the repo is already registeredCrossplane v2 package cache
up xpkg xp-extract --from-daemonon the controller runtime image, which is not a crossplane package — this produced an empty (EOF) cache file. Changed tocrossplane xpkg extract --from-xpkgagainst the.xpkgfile produced bymake build.spec.packageto be a fully qualified OCI reference (registry.example.com/repo/name:tagor@digest). The previous value"provider-template"is rejected. The fix uses the non-routable hostnamexpkg.crossplane.internalwith a zeroed digest (sha256:0000...), which passes validation and causes Crossplane to skip the registryHEADrequest and go straight to the local cache.FriendlyID(source, digest)formula —truncate(source, 50) + "-" + truncate(digest, 12), DNS-label sanitized — so Crossplane can locate the extracted package.Controller image for the provider pod
xpkg extractproduces only the package metadata (CRDs,crossplane.yaml); it does not preserve the embedded runtime image. Crossplane therefore falls back to using the package OCI reference as the pod image, which does not exist in the kind cluster. ADeploymentRuntimeConfigis now created alongside theProviderto override the pod image to the locally loaded controller image, following the same pattern used bybuild/makelib/local.xpkg.mk.