-
Notifications
You must be signed in to change notification settings - Fork 39
/
Makefile
63 lines (54 loc) · 1.97 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
all: clean setup_gke container run_job teardown_gke
.PHONY: all
GCP_PROJECT ?= astronomer-dag-authoring
GIT_HASH = $(shell git log -1 --format=%h)
APP ?= benchmark
CONTAINER_REGISTRY=gcr.io/$(GCP_PROJECT)/$(APP)
check_google_credentials:
ifndef GOOGLE_APPLICATION_CREDENTIALS
@echo "The GOOGLE_APPLICATION_CREDENTIALS environment variable is missing."
exit 1
endif
clean:
@echo "Deleting unnecessary files"
@find . | grep -E "(/__pycache__$|\.pyc$|\.pyo$\)" | xargs rm -rf
@rm -f unittests.cfg
@rm -f unittests.db
@rm -f webserver_config.py
@rm -f ../../unittests.cfg
@rm -f ../../unittests.db
@rm -f ../../airflow.cfg
@rm -f ../../airflow.db
# Takes approximately 7min
setup_gke:
@cd infrastructure/terraform && \
terraform init && \
terraform apply
container:
@echo "Building and pushing container $(CONTAINER_REGISTRY)"
@gcloud auth configure-docker
@docker build --build-arg=GIT_HASH=$(GIT_HASH) --tag=$(CONTAINER_REGISTRY):$(GIT_HASH) --tag=$(CONTAINER_REGISTRY):latest -f ./Dockerfile ../../
@docker push $(CONTAINER_REGISTRY)
local: check_google_credentials
@echo "Building and pushing container $(CONTAINER_REGISTRY)"
@gcloud auth configure-docker
@docker build -t benchmark -f ./Dockerfile ../../ --build-arg=GIT_HASH=`git rev-parse --short HEAD`
@mkdir -p /tmp/docker
@sudo chmod a+rwx /tmp/docker/
@docker run -it \
-v /tmp/docker:/tmp:rw \
-v ${GOOGLE_APPLICATION_CREDENTIALS}:/tmp/gcp.json:ro \
-e GOOGLE_APPLICATION_CREDENTIALS=/tmp/gcp.json \
benchmark
@rm -rf astro-sdk
run_job:
@gcloud container clusters get-credentials astro-sdk --zone us-central1-a --project ${GCP_PROJECT}
@kubectl apply -f infrastructure/kubernetes/namespace.yaml
@kubectl apply -f infrastructure/kubernetes/postgres.yaml
@kubectl apply -f infrastructure/kubernetes/postgres_svc.yaml
@kubectl create -f infrastructure/kubernetes/job.yaml
# Takes approximately 2min
teardown_gke:
@cd infrastructure/terraform && \
terraform init && \
terraform apply -destroy