aboutsummaryrefslogtreecommitdiffstats
path: root/syz-cluster/Makefile
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2025-02-24 14:30:04 +0100
committerAleksandr Nogikh <nogikh@google.com>2025-02-26 15:09:27 +0000
commit68aa75abe16fb593ee02b5a37783371c3dfc24b2 (patch)
tree5e0880ae57b64a7ba472ca579f9f316ed264959c /syz-cluster/Makefile
parentd34966d146f584d390b49f213d1fccd59548dc6d (diff)
syz-cluster: make image prefix and tag configurable
Accept IMAGE_PREFIX and IMAGE_TAG parameters that allow to reuse the Makefile and a lot of k8s configurations both for local and prod environments. Refactor Makefile: define build-* and push-* rules, use templates to avoid repetition.
Diffstat (limited to 'syz-cluster/Makefile')
-rw-r--r--syz-cluster/Makefile81
1 files changed, 41 insertions, 40 deletions
diff --git a/syz-cluster/Makefile b/syz-cluster/Makefile
index 1f042b064..b3227e15c 100644
--- a/syz-cluster/Makefile
+++ b/syz-cluster/Makefile
@@ -1,66 +1,67 @@
# Copyright 2024 syzkaller project authors. All rights reserved.
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
-build-controller-dev:
- eval $$(minikube docker-env);\
- docker build -t controller-image-local -f ./controller/Dockerfile ../
+IMAGE_TAG ?= latest
+IMAGE_PREFIX ?= local/
+SHELL := /bin/bash
-build-series-tracker-dev:
- eval $$(minikube docker-env);\
- docker build -t series-tracker-local -f ./series-tracker/Dockerfile ../
+define build_image_rules =
+ image_name_$(2) := $(IMAGE_PREFIX)$(2):$(IMAGE_TAG)
+ dockerfile_$(2) := $(1)/Dockerfile
-deploy-series-tracker-dev: build-series-tracker-dev
- @kubectl rollout restart deployment series-tracker
+ build-$(2):
+ @echo "Building $$(image_name_$(2)) (Dockerfile: $$(dockerfile_$(2)))"
+ DOCKER_BUILDKIT=1 docker build -t $$(image_name_$(2)) -f $$(dockerfile_$(2)) ../
-run-series-tracker-dev: build-series-tracker-dev
- ./run-local.sh series-tracker
+ push-$(2): build-$(2)
+ @echo "Pushing $$(image_name_$(2))"
+ docker push $$(image_name_$(2))
-build-web-dashboard-dev:
- eval $$(minikube docker-env);\
- docker build -t web-dashboard-local -f ./dashboard/Dockerfile ../
+endef
-deploy-web-dashboard-dev: build-web-dashboard-dev
- @kubectl rollout restart deployment web-dashboard
+$(eval $(call build_image_rules,./controller,controller))
+$(eval $(call build_image_rules,./dashboard,web-dashboard))
+$(eval $(call build_image_rules,./reporter,reporter))
+$(eval $(call build_image_rules,./series-tracker,series-tracker))
+$(eval $(call build_image_rules,./db-mgmt,db-mgmt))
+$(eval $(call build_image_rules,./workflow/triage-step,triage-step))
+$(eval $(call build_image_rules,./workflow/build-step,build-step))
+$(eval $(call build_image_rules,./workflow/fuzz-step,fuzz-step))
+$(eval $(call build_image_rules,./workflow/boot-step,boot-step))
-build-reporter-dev:
- eval $$(minikube docker-env);\
- docker build -t reporter-image-local -f ./reporter/Dockerfile ../
+IMAGES := controller web-dashboard reporter series-tracker db-mgmt triage-step build-step boot-step fuzz-step
+BUILD_TARGETS := $(addprefix build-, $(IMAGES))
+PUSH_TARGETS := $(addprefix push-, $(IMAGES))
-install-dev-config:
- minikube kubectl -- apply -f ./overlays/dev/global-config.yaml
+.PHONY: build-all push-all deploy-series-tracker run-series-tracker install-dev-config build-go-tests-dev run-go-tests-dev restart-spanner kustomize-dev
-build-db-mgmt-dev:
- eval $$(minikube docker-env);\
- docker build -t db-mgmt-local -f ./db-mgmt/Dockerfile ../
+build-all: $(BUILD_TARGETS)
-build-triage-step-dev:
- eval $$(minikube docker-env);\
- docker build -t triage-step-local -f ./workflow/triage-step/Dockerfile ../
+push-all: $(PUSH_TARGETS)
-build-build-step-dev:
- eval $$(minikube docker-env);\
- docker build -t build-step-local -f ./workflow/build-step/Dockerfile ../
+deploy-series-tracker: build-series-tracker
+ @kubectl rollout restart deployment series-tracker
-build-boot-step-dev:
- eval $$(minikube docker-env);\
- docker build -t boot-step-local -f ./workflow/boot-step/Dockerfile ../
+run-series-tracker: build-series-tracker
+ ./run-local.sh series-tracker
-build-fuzz-step-dev:
- eval $$(minikube docker-env);\
- docker build -t fuzz-step-local -f ./workflow/fuzz-step/Dockerfile ../
+deploy-web-dashboard: build-web-dashboard
+ @kubectl rollout restart deployment web-dashboard
+
+install-dev-config:
+ minikube kubectl -- apply -f ./overlays/dev/global-config.yaml
build-go-tests-dev:
eval $$(minikube docker-env);\
docker build -t go-tests-local -f Dockerfile.go-tests ../
-build-workflow-dev: build-triage-step-dev build-build-step-dev build-boot-step-dev build-fuzz-step-dev
-
-all-containers: build-controller-dev build-series-tracker-dev build-db-mgmt-dev build-web-dashboard-dev build-reporter-dev build-workflow-dev
-
run-go-tests-dev: build-go-tests-dev
./run-local.sh go-tests
-restart-spanner: build-db-mgmt-dev
+restart-spanner: build-db-mgmt
minikube addons disable cloud-spanner;
minikube addons enable cloud-spanner;
./run-local.sh db-mgmt migrate
+
+k8s-config-dev:
+ @kubectl kustomize ./overlays/dev/ | IMAGE_PREFIX=${IMAGE_PREFIX} IMAGE_TAG=${IMAGE_TAG} envsubst