From f426005f576eaac5d93ca5f8282d38ecf9d5bb20 Mon Sep 17 00:00:00 2001 From: Daniel King Date: Thu, 12 Nov 2020 18:56:08 -0500 Subject: [PATCH] [services] ensure all make deploy require & use NAMESPACE (#9695) --- admin-pod/Makefile | 3 ++- auth/Makefile | 5 +++-- batch/Makefile | 9 +++++---- benchmark-service/Makefile | 5 +++-- ci/Makefile | 5 +++-- config.mk | 6 ++++++ image-fetcher/Makefile | 3 ++- memory/Makefile | 12 +++--------- monitoring/Makefile | 5 +++-- query/Makefile | 11 ++++++----- router/Makefile | 5 +++-- shuffler/Makefile | 4 ++-- site/Makefile | 2 +- 13 files changed, 42 insertions(+), 33 deletions(-) diff --git a/admin-pod/Makefile b/admin-pod/Makefile index 1b890f2b562..96797a16638 100644 --- a/admin-pod/Makefile +++ b/admin-pod/Makefile @@ -4,6 +4,7 @@ SERVICE_BASE_IMAGE = gcr.io/$(PROJECT)/service-base:$(shell docker images -q --n .PHONY: deploy deploy: + ! [ -z $(NAMESPACE) ] # call this like: make deploy NAMESPACE=default $(MAKE) -C ../docker push python3 ../ci/jinja2_render.py '{"service_base_image":{"image":"$(SERVICE_BASE_IMAGE)"}}' admin-pod.yaml admin-pod.yaml.out - kubectl -n default apply -f admin-pod.yaml.out + kubectl -n $(NAMESPACE) apply -f admin-pod.yaml.out diff --git a/auth/Makefile b/auth/Makefile index 39958c6df06..4370cb32d63 100644 --- a/auth/Makefile +++ b/auth/Makefile @@ -28,8 +28,9 @@ push: build .PHONY: deploy deploy: push - python3 ../ci/jinja2_render.py '{"code":{"sha":"$(shell git rev-parse --short=12 HEAD)"},"deploy":true,"default_ns":{"name":"default"},"batch_pods_ns":{"name":"batch-pods"},"auth_image":{"image":"$(AUTH_IMAGE)"},"auth_database":{"user_secret_name":"sql-auth-user-config"},"global":{"project":"$(PROJECT)","zone":"$(ZONE)","domain":"$(DOMAIN)"}}' deployment.yaml deployment.yaml.out - kubectl -n default apply -f deployment.yaml.out + ! [ -z $(NAMESPACE) ] # call this like: make deploy NAMESPACE=default + python3 ../ci/jinja2_render.py '{"code":{"sha":"$(shell git rev-parse --short=12 HEAD)"},"deploy":true,"default_ns":{"name":"$(NAMESPACE)"},"batch_pods_ns":{"name":"$(BATCH_PODS_NAMESPACE)"},"auth_image":{"image":"$(AUTH_IMAGE)"},"auth_database":{"user_secret_name":"sql-auth-user-config"},"global":{"project":"$(PROJECT)","zone":"$(ZONE)","domain":"$(DOMAIN)"}}' deployment.yaml deployment.yaml.out + kubectl -n $(NAMESPACE) apply -f deployment.yaml.out .PHONY: clean: diff --git a/batch/Makefile b/batch/Makefile index 9a68422c1f8..766753d7a2a 100644 --- a/batch/Makefile +++ b/batch/Makefile @@ -37,17 +37,18 @@ push: build docker tag batch-worker $(BATCH_WORKER_IMAGE) docker push $(BATCH_WORKER_IMAGE) -JINJA_ENVIRONMENT = '{"code":{"sha":"$(shell git rev-parse --short=12 HEAD)"},"deploy":true,"batch_image":{"image":"$(BATCH_IMAGE)"},"batch_worker_image":{"image":"$(BATCH_WORKER_IMAGE)"},"default_ns":{"name":"default"},"batch_pods_ns":{"name":"batch-pods"},"batch_database":{"user_secret_name":"sql-batch-user-config"},"global":{"project":"$(PROJECT)","domain":"$(DOMAIN)","k8s_server_url":"$(KUBERNETES_SERVER_URL)"},"scope":"deploy"}' +JINJA_ENVIRONMENT = '{"code":{"sha":"$(shell git rev-parse --short=12 HEAD)"},"deploy":true,"batch_image":{"image":"$(BATCH_IMAGE)"},"batch_worker_image":{"image":"$(BATCH_WORKER_IMAGE)"},"default_ns":{"name":"$(NAMESPACE)"},"batch_pods_ns":{"name":"$(BATCH_PODS_NAMESPACE)"},"batch_database":{"user_secret_name":"sql-batch-user-config"},"global":{"project":"$(PROJECT)","domain":"$(DOMAIN)","k8s_server_url":"$(KUBERNETES_SERVER_URL)"},"scope":"deploy"}' .PHONY: deploy deploy: push + ! [ -z $(NAMESPACE) ] # call this like: make deploy NAMESPACE=default E=$(JINJA_ENVIRONMENT) && \ python3 ../ci/jinja2_render.py $$E deployment.yaml deployment.yaml.out && \ python3 ../ci/jinja2_render.py $$E service-account.yaml service-account.yaml.out && \ python3 ../ci/jinja2_render.py $$E service-account-batch-pods.yaml service-account-batch-pods.yaml.out - kubectl -n default apply -f service-account.yaml.out - kubectl -n default apply -f service-account-batch-pods.yaml.out - kubectl -n default apply -f deployment.yaml.out + kubectl -n $(NAMESPACE) apply -f service-account.yaml.out + kubectl -n $(NAMESPACE) apply -f service-account-batch-pods.yaml.out + kubectl -n $(NAMESPACE) apply -f deployment.yaml.out .PHONY: create-build-worker-image-instance create-build-worker-image-instance: diff --git a/benchmark-service/Makefile b/benchmark-service/Makefile index 5718c8fb097..f37d3619d05 100644 --- a/benchmark-service/Makefile +++ b/benchmark-service/Makefile @@ -27,8 +27,9 @@ push: build .PHONY: deploy deploy: push - python3 ../ci/jinja2_render.py '{"code":{"sha":"$(shell git rev-parse --short=12 HEAD)"},"deploy":true,"default_ns":{"name":"default"},"batch_pods_ns":{"name":"batch-pods"}, "benchmark_image":{"image":"$(BENCHMARK_IMAGE)"},"benchmark_database":{"user_secret_name":"sql-benchmark-user-config"},"global":{"project":"$(PROJECT)","zone":"$(ZONE)","domain":"$(DOMAIN)"}}' deployment.yaml deployment.yaml.out - kubectl -n default apply -f deployment.yaml.out + ! [ -z $(NAMESPACE) ] # call this like: make deploy NAMESPACE=default + python3 ../ci/jinja2_render.py '{"code":{"sha":"$(shell git rev-parse --short=12 HEAD)"},"deploy":true,"default_ns":{"name":"$(NAMESPACE)"},"batch_pods_ns":{"name":"$(BATCH_PODS_NAMESPACE)"}, "benchmark_image":{"image":"$(BENCHMARK_IMAGE)"},"benchmark_database":{"user_secret_name":"sql-benchmark-user-config"},"global":{"project":"$(PROJECT)","zone":"$(ZONE)","domain":"$(DOMAIN)"}}' deployment.yaml deployment.yaml.out + kubectl -n $(NAMESPACE) apply -f deployment.yaml.out .PHONY: clean clean: diff --git a/ci/Makefile b/ci/Makefile index 07aea026b4e..469390f0f5f 100644 --- a/ci/Makefile +++ b/ci/Makefile @@ -45,5 +45,6 @@ push: build .PHONY: deploy deploy: push push-ci-utils - python3 jinja2_render.py '{"code":{"sha":"$(shell git rev-parse --short=12 HEAD)"},"deploy":true,"default_ns":{"name":"default"},"batch_pods_ns":{"name":"batch-pods"},"ci_image":{"image":"$(CI_IMAGE)"},"global":{"project":"$(PROJECT)","zone":"$(ZONE)","ip":"$(IP)","domain":"$(DOMAIN)", "k8s_server_url":"$(KUBERNETES_SERVER_URL)"},"ci_utils_image":{"image":"$(CI_UTILS_IMAGE)"},"ci_database":{"user_secret_name":"sql-ci-user-config"}}' deployment.yaml deployment.yaml.out - kubectl -n default apply -f deployment.yaml.out + ! [ -z $(NAMESPACE) ] # call this like: make deploy NAMESPACE=default + python3 jinja2_render.py '{"code":{"sha":"$(shell git rev-parse --short=12 HEAD)"},"deploy":true,"default_ns":{"name":"$(NAMESPACE)"},"batch_pods_ns":{"name":"$(BATCH_PODS_NAMESPACE)"},"ci_image":{"image":"$(CI_IMAGE)"},"global":{"project":"$(PROJECT)","zone":"$(ZONE)","ip":"$(IP)","domain":"$(DOMAIN)", "k8s_server_url":"$(KUBERNETES_SERVER_URL)"},"ci_utils_image":{"image":"$(CI_UTILS_IMAGE)"},"ci_database":{"user_secret_name":"sql-ci-user-config"}}' deployment.yaml deployment.yaml.out + kubectl -n $(NAMESPACE) apply -f deployment.yaml.out diff --git a/config.mk b/config.mk index 182650547b4..884558618a0 100644 --- a/config.mk +++ b/config.mk @@ -6,3 +6,9 @@ IP := 35.188.91.25 KUBERNETES_SERVER_URL := https://104.198.230.143 REGION := us-central1 ZONE := us-central1-a +ifeq ($(NAMESPACE), "default") +BATCH_PODS_NAMESPACE = batch-pods +else +BATCH_PODS_NAMESPACE = $(NAMESPACE) +endif + diff --git a/image-fetcher/Makefile b/image-fetcher/Makefile index 28d481775f2..8df1cee3ba1 100644 --- a/image-fetcher/Makefile +++ b/image-fetcher/Makefile @@ -27,7 +27,8 @@ push: build docker push $(FETCH_IMAGE) deploy: push + ! [ -z $(NAMESPACE) ] # call this like: make deploy NAMESPACE=default sed -e "s,@sha@,$(shell git rev-parse --short=12 HEAD)," \ -e "s,@image@,$(FETCH_IMAGE)," \ < deployment.yaml.in > deployment.yaml - kubectl -n default apply -f deployment.yaml + kubectl -n $(NAMESPACE) apply -f deployment.yaml diff --git a/memory/Makefile b/memory/Makefile index e9af2f68153..f26c457cb57 100644 --- a/memory/Makefile +++ b/memory/Makefile @@ -6,12 +6,6 @@ PYTHON := PYTHONPATH=$(PYTHONPATH) python3 MEMORY_LATEST = gcr.io/$(PROJECT)/memory:latest MEMORY_IMAGE = gcr.io/$(PROJECT)/memory:$(shell docker images -q --no-trunc memory | sed -e 's,[^:]*:,,') -ifeq ($(NAMESPACE), "default") -BATCH_PODS_NS = batch-pods -else -BATCH_PODS_NS = $(NAMESPACE) -endif - .PHONY: check check: $(PYTHON) -m flake8 --config ../setup.cfg memory @@ -34,9 +28,9 @@ push: build .PHONY: deploy deploy: push - ! [ -z $(NAMESPACE) ] # set NAMESPACE + ! [ -z $(NAMESPACE) ] # call this like: make deploy NAMESPACE=default kubectl -n $(NAMESPACE) apply -f service-account.yaml python3 ../ci/jinja2_render.py '{"default_ns":{"name":"$(NAMESPACE)"}}' service-account-batch-pods.yaml service-account-batch-pods.yaml.out - kubectl -n $(BATCH_PODS_NS) apply -f service-account-batch-pods.yaml.out - python3 ../ci/jinja2_render.py '{"code":{"sha":"$(shell git rev-parse --short=12 HEAD)"},"deploy":true,"memory_image":{"image":"$(MEMORY_IMAGE)"},"batch_pods_ns":{"name":"$(BATCH_PODS_NS)"},"global":{"project":"$(PROJECT)","domain":"$(DOMAIN)"}}' deployment.yaml deployment.yaml.out + kubectl -n $(BATCH_PODS_NAMESPACE) apply -f service-account-batch-pods.yaml.out + python3 ../ci/jinja2_render.py '{"code":{"sha":"$(shell git rev-parse --short=12 HEAD)"},"deploy":true,"memory_image":{"image":"$(MEMORY_IMAGE)"},"batch_pods_ns":{"name":"$(BATCH_PODS_NAMESPACe)"},"global":{"project":"$(PROJECT)","domain":"$(DOMAIN)"}}' deployment.yaml deployment.yaml.out kubectl -n $(NAMESPACE) apply -f deployment.yaml.out diff --git a/monitoring/Makefile b/monitoring/Makefile index c0ec20023f3..9106e5ed572 100644 --- a/monitoring/Makefile +++ b/monitoring/Makefile @@ -29,8 +29,9 @@ push: build .PHONY: deploy deploy: push - python3 ../ci/jinja2_render.py '{"code":{"sha":"$(shell git rev-parse --short=12 HEAD)"},"deploy":true,"default_ns":{"name":"default"},"batch_pods_ns":{"name":"batch-pods"}, "monitoring_image":{"image":"$(MONITORING_IMAGE)"},"monitoring_database":{"user_secret_name":"sql-monitoring-user-config"},"global":{"project":"$(PROJECT)","zone":"$(ZONE)","domain":"$(DOMAIN)"}}' deployment.yaml deployment.yaml.out - kubectl -n default apply -f deployment.yaml.out + ! [ -z $(NAMESPACE) ] # call this like: make deploy NAMESPACE=default + python3 ../ci/jinja2_render.py '{"code":{"sha":"$(shell git rev-parse --short=12 HEAD)"},"deploy":true,"default_ns":{"name":"$(NAMESPACE)"},"batch_pods_ns":{"name":"$(BATCH_PODS_NAMESPACE)"}, "monitoring_image":{"image":"$(MONITORING_IMAGE)"},"monitoring_database":{"user_secret_name":"sql-monitoring-user-config"},"global":{"project":"$(PROJECT)","zone":"$(ZONE)","domain":"$(DOMAIN)"}}' deployment.yaml deployment.yaml.out + kubectl -n $(NAMESPACE) apply -f deployment.yaml.out .PHONY: clean clean: diff --git a/query/Makefile b/query/Makefile index 97e188c36ce..36fe72cba6d 100644 --- a/query/Makefile +++ b/query/Makefile @@ -30,8 +30,9 @@ push: build .PHONY: deploy deploy: push - kubectl -n default apply -f service-account.yaml - python3 ../ci/jinja2_render.py '{"default_ns":{"name":"default"}}' service-account-batch-pods.yaml service-account-batch-pods.yaml.out - kubectl -n batch-pods apply -f service-account-batch-pods.yaml.out - python3 ../ci/jinja2_render.py '{"code":{"sha":"$(shell git rev-parse --short=12 HEAD)"},"deploy":true,"query_image":{"image":"$(QUERY_IMAGE)"},"batch_pods_ns":{"name":"batch-pods"},"global":{"project":"$(PROJECT)","domain":"$(DOMAIN)"}}' deployment.yaml deployment.yaml.out - kubectl -n default apply -f deployment.yaml.out \ No newline at end of file + ! [ -z $(NAMESPACE) ] # call this like: make deploy NAMESPACE=default + kubectl -n $(NAMESPACE) apply -f service-account.yaml + python3 ../ci/jinja2_render.py '{"default_ns":{"name":"$(NAMESPACE)"}}' service-account-batch-pods.yaml service-account-batch-pods.yaml.out + kubectl -n $(BATCH_PODS_NAMESPACE) apply -f service-account-batch-pods.yaml.out + python3 ../ci/jinja2_render.py '{"code":{"sha":"$(shell git rev-parse --short=12 HEAD)"},"deploy":true,"query_image":{"image":"$(QUERY_IMAGE)"},"batch_pods_ns":{"name":"$(BATCH_PODS_NAMESPACE)"},"global":{"project":"$(PROJECT)","domain":"$(DOMAIN)"}}' deployment.yaml deployment.yaml.out + kubectl -n $(NAMESPACE) apply -f deployment.yaml.out diff --git a/router/Makefile b/router/Makefile index 2e23bb7e465..42261e605df 100644 --- a/router/Makefile +++ b/router/Makefile @@ -19,8 +19,9 @@ push: build .PHONY: deploy deploy: push - python3 ../ci/jinja2_render.py '{"code":{"sha":"$(shell git rev-parse --short=12 HEAD)"},"deploy":true,"router_image":{"image":"$(ROUTER_IMAGE)"},"default_ns":{"name":"default"},"global":{"domain":"$(DOMAIN)"}}' deployment.yaml deployment.yaml.out - kubectl -n default apply -f deployment.yaml.out + ! [ -z $(NAMESPACE) ] # call this like: make deploy NAMESPACE=default + python3 ../ci/jinja2_render.py '{"code":{"sha":"$(shell git rev-parse --short=12 HEAD)"},"deploy":true,"router_image":{"image":"$(ROUTER_IMAGE)"},"default_ns":{"name":"$(NAMESPACE)"},"global":{"domain":"$(DOMAIN)"}}' deployment.yaml deployment.yaml.out + kubectl -n $(NAMESPACE) apply -f deployment.yaml.out .PHONY: clean clean: diff --git a/shuffler/Makefile b/shuffler/Makefile index 5226b421262..a57e1ba7d64 100644 --- a/shuffler/Makefile +++ b/shuffler/Makefile @@ -24,6 +24,6 @@ push: build .PHONY: deploy deploy: push - ! [ -z $(NAMESPACE) ] # set NAMESPACE - python3 ../ci/jinja2_render.py '{"code":{"sha":"$(shell git rev-parse --short=12 HEAD)"},"deploy":true,"shuffler_image":{"image":"$(SHUFFLER_IMAGE)"},"default_ns":{"name":"default"},"global":{"project":"$(PROJECT)","domain":"$(DOMAIN)","k8s_server_url":"$(KUBERNETES_SERVER_URL)"}}' deployment.yaml deployment.yaml.out + ! [ -z $(NAMESPACE) ] # call this like: make deploy NAMESPACE=default + python3 ../ci/jinja2_render.py '{"code":{"sha":"$(shell git rev-parse --short=12 HEAD)"},"deploy":true,"shuffler_image":{"image":"$(SHUFFLER_IMAGE)"},"default_ns":{"name":"$(NAMESPACE)"},"global":{"project":"$(PROJECT)","domain":"$(DOMAIN)","k8s_server_url":"$(KUBERNETES_SERVER_URL)"}}' deployment.yaml deployment.yaml.out kubectl -n $(NAMESPACE) apply -f deployment.yaml.out diff --git a/site/Makefile b/site/Makefile index 5405caad2cc..f891085dec9 100644 --- a/site/Makefile +++ b/site/Makefile @@ -47,8 +47,8 @@ push: build docker push $(IMAGE) deploy: push + ! [ -z $(NAMESPACE) ] # call this like: make deploy NAMESPACE=default $(MAKE) -C ../docker hail-ubuntu - test $(NAMESPACE) python3 ../ci/jinja2_render.py '{"global": {"domain":"hail.is"},"default_ns":{"name":"$(NAMESPACE)"},"code":{"sha":"$(shell git rev-parse --short=12 HEAD)"},"deploy":true,"site_image":{"image":"$(IMAGE)"},"hail_ubuntu_image":{"image":"hail-ubuntu"}' deployment.yaml deployment.yaml.out kubectl -n $(NAMESPACE) apply -f deployment.yaml.out