Skip to content

Commit 10899b0

Browse files
aritrbassknat
authored andcommitted
refactor: backport repo layout-aware targets for VPP kube-test
Backport Makefile targets and kube-test manifest to `release/v3.32.0`. After the unify images and flatten repo layout refactoring, VPP kube-test delegates CalicoVPP repo layout details to generic make targets so it can work with both the old split-image releases (upto `release/v3.32.0`) as well as the new unified image releases (`release/v3.33.0` onwards). - `make vpp` delegates to vpp-manager and passes `VPP_DIR`/`BASE`. - `make kube-test-template` renders `yaml/generated/calico-vpp-kubetest.yaml` with old-layout values: `calicovpp/agent` and `vpp-manager/vpp_build`. - `make kube-test-push-images` pulls, tags, and pushes the v3.32 split images into the local kind registry. Updated vpp-manager's `clone-vpp` target to honor `VPP_DIR` so top-level `make vpp` target's override is used consistently throughout VPP build. Also added new kube-test manifest `yaml/generated/calico-vpp-kubetest.yaml`. This keeps VPP kube-test independent of CalicoVPP's internal repo layout while preserving compatibility with v3.32 split-image releases. Signed-off-by: Aritra Basu <aritrbas+gh@cisco.com>
1 parent 690c961 commit 10899b0

3 files changed

Lines changed: 492 additions & 1 deletion

File tree

Makefile

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,36 @@ image-kind: image
2525
docker push localhost:5000/calicovpp/$$image ; \
2626
done
2727

28+
# vpp: build VPP from source. VPP_DIR overrides the default build location
29+
# (default: vpp-manager/vpp_build/). BASE overrides the VPP commit.
30+
.PHONY: vpp
31+
vpp:
32+
$(MAKE) -C vpp-manager $@ VPP_DIR=$(VPP_DIR) BASE=$(BASE)
33+
34+
# kube-test-template: emit a KinD manifest template for kube-test.
35+
# Bakes in repo layout-specific values (CALICOVPP_AGENT_IMAGE, VPP_BUILD_REL_PATH)
36+
# so that VPP kube-test does not need to know the repo layout.
37+
# Old layout: separate images, VPP build at vpp-manager/vpp_build/.
38+
.PHONY: kube-test-template
39+
kube-test-template:
40+
@CALICOVPP_AGENT_IMAGE=calicovpp/agent VPP_BUILD_REL_PATH=vpp-manager/vpp_build \
41+
envsubst '$$CALICOVPP_AGENT_IMAGE $$VPP_BUILD_REL_PATH' \
42+
< yaml/generated/calico-vpp-kubetest.yaml
43+
44+
# kube-test-push-images: pull this release's CalicoVPP images from docker.io and push
45+
# to localhost:5000 for kube-test consumption. Called by kube-test release-cluster flow.
46+
.PHONY: kube-test-push-images
47+
kube-test-push-images:
48+
docker pull docker.io/calicovpp/agent:$(CALICOVPP_VERSION)
49+
docker image tag docker.io/calicovpp/agent:$(CALICOVPP_VERSION) localhost:5000/calicovpp/agent:$(CALICOVPP_VERSION)
50+
docker push localhost:5000/calicovpp/agent:$(CALICOVPP_VERSION)
51+
docker pull docker.io/calicovpp/vpp:$(CALICOVPP_VERSION)
52+
docker image tag docker.io/calicovpp/vpp:$(CALICOVPP_VERSION) localhost:5000/calicovpp/vpp:$(CALICOVPP_VERSION)
53+
docker push localhost:5000/calicovpp/vpp:$(CALICOVPP_VERSION)
54+
docker pull docker.io/calicovpp/multinet-monitor:$(CALICOVPP_VERSION)
55+
docker image tag docker.io/calicovpp/multinet-monitor:$(CALICOVPP_VERSION) localhost:5000/calicovpp/multinet-monitor:$(CALICOVPP_VERSION)
56+
docker push localhost:5000/calicovpp/multinet-monitor:$(CALICOVPP_VERSION)
57+
2858
.PHONY: kind-cluster-name
2959
kind-cluster-name:
3060
@echo $(CLUSTER_NAME)

vpp-manager/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ clean: clean-vpp
154154

155155
.PHONY: clone-vpp
156156
clone-vpp:
157-
BASE=$(BASE) bash $(VPPLINK_DIR)/generated/vpp_clone_current.sh ./vpp_build
157+
BASE=$(BASE) bash $(VPPLINK_DIR)/generated/vpp_clone_current.sh $(VPP_DIR)
158158

159159
.PHONY: clean-vpp
160160
clean-vpp:

0 commit comments

Comments
 (0)