-
Notifications
You must be signed in to change notification settings - Fork 1
/
Makefile
224 lines (171 loc) · 6.29 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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
GCLOUD_PROJECT?=
GCLOUD_CONTAINER_REGISTRY?=gcr.io
IBMCLOUD_REGISTRY_NAMESPACE?=signalsciences
CLUSTER?=signalsciences
OS=$(shell uname -s)
# CREATE CLUSTER
gcloud-kube-create-cluster:
gcloud config set project $(GCLOUD_PROJECT)
gcloud container clusters create $(CLUSTER) --zone us-central1 --no-enable-autorepair --num-nodes 1
ibmcloud-kube-create-cluster:
bx cs cluster-create --name $(CLUSTER)
aws-kube-create-cluster:
#kops create cluster --node-count=2 --node-size=t2.medium --zones=us-east-1a --name=$(CLUSTER)
aws ecs create-cluster --cluster-name $(CLUSTER)
# DELETE CLUSTER
gcloud-kube-delete-cluster:
gcloud config set project $(GCLOUD_PROJECT)
gcloud container clusters delete $(CLUSTER)
ibmcloud-kube-delete-cluster:
bx cs cluster-rm $(CLUSTER)
aws-kube-delete-cluster:
aws ecs delete-cluster --cluster $(CLUSTER)
# ADD SIGSCI TO REGISTRY
gcloud-sigsci-to-registry:
# https://cloud.google.com/container-registry/docs/pushing-and-pulling
gcloud auth configure-docker
docker pull foospidy/sigsci:latest
docker tag foospidy/sigsci registry.ng.bluemix.net/$(GCLOUD_PROJECT)/sigsci:latest
docker push gcr.io/$(GCLOUD_PROJECT)/sigsci:latest
ibmcloud-sigsci-to-registry:
bx cr namespace-add $(IBMCLOUD_REGISTRY_NAMESPACE)
docker pull foospidy/sigsci:latest
docker tag foospidy/sigsci registry.ng.bluemix.net/$(IBMCLOUD_REGISTRY_NAMESPACE)/sigsci:latest
docker push registry.ng.bluemix.net/$(IBMCLOUD_REGISTRY_NAMESPACE)/sigsci:latest
# LIST CLUSTERS
gcloud-list-clusters:
gcloud container clusters list
ibmcloud-list-clusters:
bx cs clusters
aws-list-clusters:
aws ecs list-clusters
# DEPLOY DEPLOYMENTS
gcloud-kube-apply-deployment:
gcloud config set container/cluster $(CLUSTER)
gcloud container clusters get-credentials $(CLUSTER)
kubectl apply -f gcloud-deployment.yaml
ibmcloud-kube-apply-deployment:
eval $$(bx cs cluster-config $(CLUSTER) --export) \
&& kubectl apply -f ibmcloud-deployment.yaml
aws-kube-apply-deployment:
aws ecs register-task-definition --cli-input-json file://aws-ecs-task.json
# EXPOSE SERVICE
gcloud-kube-expose-service:
gcloud config set container/cluster $(CLUSTER)
gcloud container clusters get-credentials $(CLUSTER)
kubectl expose deployment sigsci-agent-deployment --name=sigsci-agent-service --type=LoadBalancer --port 80 --target-port 8080
kubectl get service -o wide
ibmcloud-kube-expose-service:
eval $$(bx cs cluster-config $(CLUSTER) --export) \
&& kubectl expose deployment sigsci-agent-deployment --name=sigsci-agent-service --type=NodePort --port 80 --target-port 8080 \
&& kubectl get service -o wide \
&& sleep 10 \
&& ibmcloud ks workers $(CLUSTER) \
&& kubectl describe service sigsci-agent-service
aws-kube-expose-service:
aws ecs create-service --cluster $(CLUSTER) --service-name sigsci-agent-service --task-definition sigsci:1 --desired-count 2 --launch-type "FARGATE" --network-configuration "awsvpcConfiguration={subnets=[subnet-abcd1234],securityGroups=[sg-abcd1234]}"
# UN-EXPOSE SERVICE
gcloud-kube-delete-service:
gcloud config set container/cluster $(CLUSTER)
gcloud container clusters get-credentials $(CLUSTER)
kubectl delete service sigsci-agent-service
ibmcloud-kube-delete-service:
eval $(bx cs cluster-config $(CLUSTER) --export) \
&& kubectl delete service sigsci-agent-service
aws-kube-delete-service:
aws ecs delete-service --service sigsci-agent-service
# TOOLS
ibmcloud-install-tools:
#https://console.bluemix.net/docs/cli/index.html#overview
curl -sL https://ibm.biz/idt-installer | bash
bx login
bx plugin install container-service -r Bluemix
bx cs init
bx plugin update container-registry -r Bluemix
gcloud-install-tools:
@echo See https://cloud.google.com/sdk/install
aws-install-tools:
# https://medium.com/containermind/how-to-create-a-kubernetes-cluster-on-aws-in-few-minutes-89dda10354f4
ifeq ($(OS), Darwin)
brew install awscli
brew install kops
else
pip install awscli --upgrade --user
curl -LO https://github.com/kubernetes/kops/releases/download/$(curl -s https://api.github.com/repos/kubernetes/kops/releases/latest | grep tag_name | cut -d '"' -f 4)/kops-linux-amd64
chmod +x kops-linux-amd64
sudo mv kops-linux-amd64 /usr/local/bin/kops
endif
gcloud-update-tools:
gcloud components update
ibmcloud-update-tools:
bx plugin update container-service -r Bluemix
aws-update-tools:
ifeq ($(OS), Darwin)
brew upgrade awscli
brew upgrade kops
else
pip install awscli --upgrade --user
curl -LO https://github.com/kubernetes/kops/releases/download/$(curl -s https://api.github.com/repos/kubernetes/kops/releases/latest | grep tag_name | cut -d '"' -f 4)/kops-linux-amd64
chmod +x kops-linux-amd64
sudo mv kops-linux-amd64 /usr/local/bin/kops
endif
# BUILD
install:
ifeq ($(OS), Darwin)
brew install shellcheck
else
# for travis-ci
apt-get install shellcheck
endif
lint:
shellcheck sigsci-cloud-kube
clean:
if [ -f "ibmcloud-deployment.yaml" ]; then rm ibmcloud-deployment.yaml; fi
if [ -f "gcloud-deployment.yaml" ]; then rm gcloud-deployment.yaml; fi
# OTHER (NOT USED BY SCRIPT)
gcloud-kube-describe-deployment:
kubectl describe deployment sigsci-agent-deployment
gcloud-kube-get-pods:
kubectl get pods -l app=sigsci-agent
gcloud-kube-get-service:
kubectl get service
glcoud-kube-scale-app:
kubectl scale deployment app --replicas 3
kube-get-pod:
kubectl get pod -o wide
kube-create-deployment:
kubectl create -f deployment.yaml
kube-get-deployment:
kubectl get deployment -o wide
kube-get-service:
kubectl get service -o wide
kube-get-node:
kubectl get node -o wide
kube-describe-pod:
kubectl describe pod sigsci-agent-pod
kube-describe-deployment:
kubectl describe deployment sigsci-agent-deployment
kube-describe-service:
kubectl describe service sigsci-agent-service
kube-delete-pod:
kubectl delete pod sigsci-agent-pod
kube-delete-deployment:
kubectl delete deployment sigsci-agent-deployment
kube-delete-service:
kubectl delete service sigsci-agent-service
ibmcloud-cr-namespace-list:
bx cr namespace-list
ibmcloud-cr-images:
bx cr images
ibmcloud-cs-cluster-rm:
bx cs cluster-rm mycluster
ibmcloud-cs-cluster-config:
bx cs cluster-config mycluster
ibmcloud-cs-workers:
bx cs workers mycluster
aws-task-definitions:
aws ecs list-task-definitions
aws-list-services:
aws ecs list-services --cluster $(CLUSTER)
aws-deregister-task-definition:
aws ecs deregister-task-definition --task-definition $(TASK)