Skip to content

Commit c34fea0

Browse files
committed
Update build tooling, install crossplane cli
1 parent d40b620 commit c34fea0

File tree

3 files changed

+62
-10
lines changed

3 files changed

+62
-10
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ go.cachedir:
106106
# NOTE(hasheddan): we must ensure up is installed in tool cache prior to build
107107
# as including the k8s_tools machinery prior to the xpkg machinery sets UP to
108108
# point to tool cache.
109-
build.init: $(UP)
109+
build.init: $(CROSSPLANE_CLI)
110110

111111
# This is for running out-of-cluster locally, and is for convenience. Running
112112
# this make target will print out the command which was used. For more control,

cluster/images/provider-sql/Makefile

Lines changed: 60 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,28 +8,80 @@ include ../../../build/makelib/common.mk
88

99
include ../../../build/makelib/imagelight.mk
1010

11+
# ====================================================================================
12+
# Setup k8s tools
13+
14+
-include ../../../build/makelib/k8s_tools.mk
15+
16+
# ====================================================================================
17+
# Setup xpkg
18+
19+
-include ../../../build/makelib/xpkg.mk
20+
1121
# ====================================================================================
1222
# Targets
1323

1424
img.build:
15-
@$(INFO) docker build $(IMAGE)
16-
@$(MAKE) BUILD_ARGS="--load" img.build.shared
17-
@$(OK) docker build $(IMAGE)
18-
19-
img.publish:
20-
@$(INFO) Skipping image publish for $(IMAGE)
21-
@echo Publish is deferred to xpkg machinery
22-
@$(OK) Image publish skipped for $(IMAGE)
25+
@$(INFO) Family base image to build: $(IMAGE)
26+
@$(INFO) Building image $${IMAGE}; \
27+
$(MAKE) BUILD_ARGS="--load ${BUILD_ARGS}" IMAGE=$${IMAGE} XPKG_REG_ORGS=$(XPKG_REG_ORGS) img.build.shared; \
28+
if [[ "$${LOAD_PACKAGES}" == "true" ]]; then \
29+
$(MAKE) batch-process SUBPACKAGES="$(SUBPACKAGES)" XPKG_DIR=$(XPKG_DIR) XPKG_IGNORE=$(XPKG_IGNORE) BATCH_PLATFORMS=$(PLATFORM) BUILD_ONLY=true STORE_PACKAGES="$$(tr ' ' ',' <<< "$(SUBPACKAGES)")" && \
30+
for s in $(SUBPACKAGES); do \
31+
export t=$$(docker load -qi "$(XPKG_OUTPUT_DIR)/$(PLATFORM)/$(PROJECT_NAME)-$${s}-$(VERSION).xpkg") && \
32+
docker tag $${t##*:} $(BUILD_REGISTRY)/$(PROJECT_NAME)-$${s}-$(ARCH); \
33+
done; \
34+
fi || $(FAIL)
35+
@$(OK) docker build $${IMAGE}
2336

2437
img.build.shared:
2538
@cp Dockerfile $(IMAGE_TEMP_DIR) || $(FAIL)
2639
@cp -r $(OUTPUT_DIR)/bin/ $(IMAGE_TEMP_DIR)/bin || $(FAIL)
2740
@docker buildx build $(BUILD_ARGS) \
2841
--platform $(IMAGE_PLATFORMS) \
42+
--build-arg CROSSPLANE_PROVIDER_VERSION=$(VERSION) \
2943
-t $(IMAGE) \
3044
$(IMAGE_TEMP_DIR) || $(FAIL)
3145

46+
img.publish: batch-process
47+
3248
img.promote:
3349
@$(INFO) Skipping image promotion from $(FROM_IMAGE) to $(TO_IMAGE)
3450
@echo Promote is deferred to xpkg machinery
3551
@$(OK) Image promotion skipped for $(FROM_IMAGE) to $(TO_IMAGE)
52+
53+
CONCURRENCY ?= 30
54+
DEP_CONSTRAINT := >= 0.0.0
55+
ifeq (-,$(findstring -,$(VERSION)))
56+
DEP_CONSTRAINT = >= 0.0.0-0
57+
endif
58+
BUILD_ONLY ?= false
59+
STORE_PACKAGES ?= ""
60+
XPKG_CLEANUP_EXAMPLES_VERSION ?= v0.12.1
61+
batch-process: $(UP)
62+
@rm -rf $(WORK_DIR)/xpkg-cleaned-examples
63+
@GOOS=$(HOSTOS) GOARCH=$(TARGETARCH) go run github.com/upbound/uptest/cmd/cleanupexamples@$(XPKG_CLEANUP_EXAMPLES_VERSION) $(ROOT_DIR)/examples $(WORK_DIR)/xpkg-cleaned-examples || $(FAIL)
64+
@$(INFO) Batch processing smaller provider packages for: "$(SUBPACKAGES)"
65+
@mkdir -p "$(XPKG_OUTPUT_DIR)/$(PLATFORM)" && \
66+
$(UP) xpkg batch --smaller-providers "$$(tr ' ' ',' <<< "$(SUBPACKAGES)")" \
67+
--family-base-image $(BUILD_REGISTRY)/$(PROJECT_NAME) \
68+
--platform $(BATCH_PLATFORMS) \
69+
--provider-name $(PROJECT_NAME) \
70+
--family-package-url-format $(XPKG_REG_ORGS)/%s:$(VERSION) \
71+
--package-repo-override monolith=$(PROJECT_NAME) --package-repo-override config=provider-family-$(PROVIDER_NAME) \
72+
--provider-bin-root $(OUTPUT_DIR)/bin \
73+
--output-dir $(XPKG_OUTPUT_DIR) \
74+
--store-packages "$(STORE_PACKAGES)" \
75+
--build-only=$(BUILD_ONLY) \
76+
--examples-root $(WORK_DIR)/xpkg-cleaned-examples \
77+
--examples-group-override monolith=* --examples-group-override config=providerconfig \
78+
--auth-ext $(XPKG_DIR)/auth.yaml \
79+
--crd-root $(XPKG_DIR)/crds \
80+
--ignore $(XPKG_IGNORE) \
81+
--crd-group-override monolith=* --crd-group-override config=$(CONFIG_CRD_GROUP) \
82+
--package-metadata-template $(XPKG_DIR)/crossplane.yaml.tmpl \
83+
--template-var XpkgRegOrg=$(XPKG_REG_ORGS) --template-var DepConstraint="$(DEP_CONSTRAINT)" --template-var ProviderName=$(PROVIDER_NAME) --template-var ProviderAuthGroup=$(PROVIDER_AUTH_GROUP) \
84+
--concurrency $(CONCURRENCY) \
85+
--push-retry 10 || $(FAIL)
86+
@$(OK) Done processing smaller provider packages for: "$(SUBPACKAGES)"
87+
@rm -rf $(WORK_DIR)/xpkg-cleaned-examples

0 commit comments

Comments
 (0)