-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
72 lines (59 loc) · 2.87 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
64
65
66
67
68
69
70
71
72
.DEFAULT_GOAL := help
#help: @ List available tasks on this project
help:
@grep -E '[a-zA-Z\.\-]+:.*?@ .*$$' $(MAKEFILE_LIST)| tr -d '#' | awk 'BEGIN {FS = ":.*?@ "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
## Variables
HASH := $(shell git rev-parse --short HEAD | tr -d '\n')
CLUSTER ?= prod-bkpd prod-bkpi dr-bkpd dr-bkpi qa-bkpd qa-bkpi prod-voutil prod-voranch qa-voranch prod-scidmz qa-scidmz
.PHONY: build dlogin.qa dlogin.prod push.qa push.prod \
secrets.qa secrets.prod deploy.qa deploy.prod
#local-dev: @ pull in secrets from bke-vo-secrets repo
local-dev:
git clone [email protected]:BrownUniversity/bke-vo-secrets.git
cd bke-vo-secrets && make secrets
mkdir secrets
cp ./bke-vo-secrets/kubeconf/*.yaml ./secrets
cp ./bke-vo-secrets/robot/*.txt ./secrets
## DOCKER BUILD ##
#build: @ Build the docker image, one for all envs
build:
docker build --load -t harbor.services.brown.edu/bkereporting/reporter:$(HASH) \
-t harbor.cis-qas.brown.edu/bkereporting/reporter:$(HASH) ./
## DOCKER LOGIN ##
#dlogin.qa: @ QA docker login
dlogin.qa:
cat secrets/robot.qa | docker login -u 'bke-vo-auto' \
--password-stdin harbor.cis-qas.brown.edu
#dlogin.prod: @ PROD docker login
dlogin.prod:
cat secrets/robot.prod | docker login -u 'bke-vo-auto' \
--password-stdin harbor.services.brown.edu
## DOCKER PUSH ##
#push.qa: @ Push image to QA harbor
push.qa: dlogin.qa
docker push harbor.cis-qas.brown.edu/bkereporting/reporter:$(HASH)
#push.prod: @ Push image to PROD harbor
push.prod: dlogin.prod
docker push harbor.services.brown.edu/bkereporting/reporter:$(HASH)
## CREATE/UPDATE SECRETS TO NAMESPACE ##
#secrets.qa: @ publish secrets to QA namespace
secrets.qa:
$(foreach CL_NAME, $(CLUSTER), \
kubectl delete secret $(CL_NAME) --ignore-not-found -n bkereporting --kubeconfig=secrets/qa-bkpi.yaml; \
kubectl create secret generic $(CL_NAME) --from-file=secrets/$(CL_NAME).yaml \
-n bkereporting --kubeconfig=secrets/qa-bkpi.yaml ; )
#secrets.prod: @ publish secrets to PROD namespace
secrets.prod:
$(foreach CL_NAME, $(CLUSTER), \
kubectl delete secret $(CL_NAME) --ignore-not-found -n bkereporting --kubeconfig=secrets/prod-bkpi.yaml; \
kubectl create secret generic $(CL_NAME) --from-file=secrets/$(CL_NAME).yaml \
-n bkereporting --kubeconfig=secrets/prod-bkpi.yaml ; )
## DELPOY APP TO NAMESPACE ##
#deploy.qa: @ deploy app to QA namespace
deploy.qa: secrets.qa
kubectl apply -k overlays/qa --kubeconfig=secrets/qa-bkpi.yaml
kubectl set image deployment/bkereporting bkereporting=harbor.cis-qas.brown.edu/bkereporting/reporter:$(HASH) -n bkereporting --kubeconfig=secrets/qa-bkpi.yaml
#deploy.prod: @ deploy app to PROD namespace
deploy.prod: secrets.prod
kubectl apply -k overlays/prod --kubeconfig=secrets/prod-bkpi.yaml
kubectl set image deployment/bkereporting bkereporting=harbor.services.brown.edu/bkereporting/reporter:$(HASH) -n bkereporting --kubeconfig=secrets/prod-bkpi.yaml