@@ -182,22 +182,18 @@ boot_linode() {
182
182
183
183
update_coreos_config () {
184
184
linode_api linode.config.update LinodeID=$LINODE_ID ConfigID=$CONFIG_ID Label=" CoreOS" \
185
- DiskList=$DISK_ID KernelID=213 RootDeviceNum=1 helper_network=false
185
+ DiskList=$DISK_ID , $STORAGE_DISK_ID KernelID=213 RootDeviceNum=1 helper_network=false
186
186
}
187
187
188
188
transfer_acme () {
189
+ IP=$1
189
190
ssh -i ~ /.ssh/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -tt " core@$IP " \
190
191
" sudo truncate -s 0 /etc/traefik/acme/acme.json; echo '$( base64 $base64_args < acme.json ) ' \
191
192
| base64 --decode | sudo tee --append /etc/traefik/acme/acme.json" 2> /dev/null > /dev/null
192
193
ssh -i ~ /.ssh/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -tt " core@$IP " \
193
194
" sudo chmod 600 /etc/traefik/acme/acme.json" 2> /dev/null > /dev/null
194
195
}
195
196
196
- delete_bootstrap_script () {
197
- ssh -i ~ /.ssh/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -tt " core@$IP " \
198
- " rm bootstrap.sh" 2> /dev/null
199
- }
200
-
201
197
change_to_provisioned () {
202
198
local LINODE_ID=$1
203
199
local NODE_TYPE=$2
@@ -232,7 +228,6 @@ install() {
232
228
local LINODE_ID
233
229
local PLAN
234
230
local ROOT_PASSWORD
235
- local COREOS_OLD_DISK_SIZE
236
231
NODE_TYPE=$1
237
232
LINODE_ID=$2
238
233
PUBLIC_IP=$( get_public_ip $LINODE_ID )
@@ -241,28 +236,31 @@ install() {
241
236
spinner " ${CYAN} [$PUBLIC_IP ]${NORMAL} Retrieving current plan" " get_plan_id $LINODE_ID " PLAN
242
237
spinner " ${CYAN} [$PUBLIC_IP ]${NORMAL} Retrieving maximum available disk size" " get_max_disk_size $PLAN " TOTAL_DISK_SIZE
243
238
244
- INSTALL_DISK_SIZE=4096
245
- COREOS_OLD_DISK_SIZE=$(( ${TOTAL_DISK_SIZE} - ${INSTALL_DISK_SIZE} ))
239
+ INSTALL_DISK_SIZE=1024
240
+ COREOS_DISK_SIZE=10240
241
+ STORAGE_DISK_SIZE=$(( ${TOTAL_DISK_SIZE} - ${COREOS_DISK_SIZE} ))
246
242
247
- spinner " ${CYAN} [$PUBLIC_IP ]${NORMAL} Creating CoreOS disk" " create_raw_disk $LINODE_ID $COREOS_OLD_DISK_SIZE CoreOS" DISK_ID
243
+ spinner " ${CYAN} [$PUBLIC_IP ]${NORMAL} Creating ${COREOS_DISK_SIZE} mb CoreOS disk" " create_raw_disk $LINODE_ID $COREOS_DISK_SIZE CoreOS" DISK_ID
248
244
249
245
# Create the install OS disk from script
250
- spinner " ${CYAN} [$PUBLIC_IP ]${NORMAL} Creating install disk" create_install_disk INSTALL_DISK_ID
246
+ spinner " ${CYAN} [$PUBLIC_IP ]${NORMAL} Creating ${INSTALL_DISK_SIZE} mb install disk" create_install_disk INSTALL_DISK_ID
251
247
252
248
# Configure the installer to boot
253
249
spinner " ${CYAN} [$PUBLIC_IP ]${NORMAL} Creating boot configuration" create_boot_configuration CONFIG_ID
254
250
spinner " ${CYAN} [$PUBLIC_IP ]${NORMAL} Booting installer" " boot_linode $LINODE_ID $CONFIG_ID "
255
- spinner " ${CYAN} [$PUBLIC_IP ]${NORMAL} Updating CoreOS config" update_coreos_config
256
251
spinner " ${CYAN} [$PUBLIC_IP ]${NORMAL} Installing CoreOS (might take a while)" " install_coreos $LINODE_ID $NODE_TYPE "
257
252
spinner " ${CYAN} [$PUBLIC_IP ]${NORMAL} Shutting down CoreOS" " linode_api linode.shutdown LinodeID=$LINODE_ID "
258
253
spinner " ${CYAN} [$PUBLIC_IP ]${NORMAL} Deleting install disk $INSTALL_DISK_ID " " linode_api linode.disk.delete LinodeID=$LINODE_ID DiskID=$INSTALL_DISK_ID "
259
- spinner " ${CYAN} [$PUBLIC_IP ]${NORMAL} Resizing CoreOS disk $DISK_ID " " linode_api linode.disk.resize LinodeID=$LINODE_ID DiskID=$DISK_ID Size=$TOTAL_DISK_SIZE "
254
+ spinner " ${CYAN} [$PUBLIC_IP ]${NORMAL} Waiting for existing jobs to complete" " wait_jobs $LINODE_ID "
255
+ spinner " ${CYAN} [$PUBLIC_IP ]${NORMAL} Creating ${STORAGE_DISK_SIZE} mb storage disk" " create_raw_disk $LINODE_ID $STORAGE_DISK_SIZE Storage" STORAGE_DISK_ID
256
+ spinner " ${CYAN} [$PUBLIC_IP ]${NORMAL} Updating CoreOS config" update_coreos_config
257
+ spinner " ${CYAN} [$PUBLIC_IP ]${NORMAL} Waiting for existing jobs to complete" " wait_jobs $LINODE_ID "
260
258
spinner " ${CYAN} [$PUBLIC_IP ]${NORMAL} Booting CoreOS" " linode_api linode.boot LinodeID=$LINODE_ID ConfigID=$CONFIG_ID "
261
259
spinner " ${CYAN} [$PUBLIC_IP ]${NORMAL} Waiting for CoreOS to be ready" " wait_jobs $LINODE_ID ; sleep 20"
262
260
263
261
if [ " $NODE_TYPE " = " master" ] ; then
264
262
if [ -e acme.json ] ; then
265
- spinner " ${CYAN} [$PUBLIC_IP ]${NORMAL} Transferring acme.json" transfer_acme
263
+ spinner " ${CYAN} [$PUBLIC_IP ]${NORMAL} Transferring acme.json" " transfer_acme $PUBLIC_IP "
266
264
fi
267
265
fi
268
266
@@ -288,23 +286,24 @@ provision_master() {
288
286
[ -e ~ /.kube/config ] && mv ~ /.kube/config ~ /.kube/config.bak
289
287
cp cluster/auth/kubeconfig ~ /.kube/config
290
288
while true ; do kubectl --namespace=kube-system create secret generic kubesecret --from-file auth --request-timeout 0 && break || sleep 5; done
291
- if kubectl --request-timeout 0 get namespaces | grep -q " monitoring" ; then
292
- echo " namespace monitoring exists"
293
- else
294
- while true ; do kubectl create namespace " monitoring" --request-timeout 0 && break || sleep 5; done
295
- fi
296
- if kubectl --request-timeout 0 get namespaces | grep -q " rook" ; then
297
- echo " namespace rook exists"
298
- else
299
- while true ; do kubectl create namespace " rook" --request-timeout 0 && break || sleep 5; done
300
- fi
289
+ cat << EOF | kubectl apply --request-timeout 0 -f -
290
+ apiVersion: v1
291
+ kind: Namespace
292
+ metadata:
293
+ name: monitoring
294
+ ---
295
+ apiVersion: v1
296
+ kind: Namespace
297
+ metadata:
298
+ name: rook
299
+ EOF
301
300
while true ; do kubectl --namespace=monitoring create secret generic kubesecret --from-file auth --request-timeout 0 && break || sleep 5; done
302
- while true ; do kubectl apply -f manifests/heapster.yaml --validate=false -- request-timeout 0 && break || sleep 5; done
301
+ while true ; do kubectl apply -f manifests/heapster.yaml --request-timeout 0 && break || sleep 5; done
303
302
if [ $INSTALL_K8S_DASHBOARD = true ]; then
304
303
while true ; do cat manifests/kube-dashboard.yaml | sed " s/\$ {DOMAIN}/${DOMAIN} /g" | kubectl apply --request-timeout 0 --validate=false -f - && break || sleep 5; done
305
304
fi
306
305
if [ $INSTALL_TRAEFIK = true ]; then
307
- while true ; do cat manifests/traefik.yaml | sed " s/\$ {DOMAIN}/${DOMAIN} /g" | sed " s/\$ {MASTER_IP}/ ${IP} /g " | sed " s/ \$ EMAIL/${EMAIL} /g" | kubectl apply --request-timeout 0 --validate=false -f - && break || sleep 5; done
306
+ while true ; do cat manifests/traefik.yaml | sed " s/\$ {DOMAIN}/${DOMAIN} /g" | sed " s/\$ EMAIL/${EMAIL} /g" | kubectl apply --request-timeout 0 --validate=false -f - && break || sleep 5; done
308
307
fi
309
308
echo " provisioned master"
310
309
}
@@ -321,37 +320,29 @@ provision_worker() {
321
320
322
321
if [ $INSTALL_ROOK = true ]; then
323
322
if ! kubectl --namespace rook get pods --request-timeout 0 2> /dev/null | grep -q " ^rook-api" ; then
324
- if ! kubectl --namespace rook get pods --request-timeout 0 2> /dev/null | grep -q " ^rook-api" ; then
325
- if ! kubectl --namespace rook get pods --request-timeout 0 2> /dev/null | grep -q " ^rook-api" ; then
326
- while true ; do kubectl apply -f manifests/rook/rook-operator.yaml --request-timeout 0 && break || sleep 5; done
327
- while true ; do kubectl apply -f manifests/rook/rook-cluster.yaml --request-timeout 0 && break || sleep 5; done
328
- while true ; do kubectl apply -f manifests/rook/rook-storageclass.yaml --request-timeout 0 && break || sleep 5; done
329
- fi
330
- fi
323
+ while true ; do kubectl apply -f manifests/rook/rook-operator.yaml --request-timeout 0 && break || sleep 5; done
324
+ while true ; do kubectl apply -f manifests/rook/rook-cluster.yaml --request-timeout 0 && break || sleep 5; done
325
+ while true ; do kubectl apply -f manifests/rook/rook-storageclass.yaml --request-timeout 0 && break || sleep 5; done
331
326
fi
332
327
fi
333
328
334
329
if [ $INSTALL_PROMETHEUS = true ]; then
335
330
until kubectl get nodes > /dev/null 2>&1 ; do sleep 1; done
336
331
if ! kubectl --namespace monitoring get ingress --request-timeout 0 2> /dev/null | grep -q " ^prometheus-ingress" ; then
337
- if ! kubectl --namespace monitoring get ingress --request-timeout 0 2> /dev/null | grep -q " ^prometheus-ingress" ; then
338
- if ! kubectl --namespace monitoring get ingress --request-timeout 0 2> /dev/null | grep -q " ^prometheus-ingress" ; then
339
- while true ; do kubectl --namespace monitoring apply -f manifests/prometheus-operator --request-timeout 0 && break || sleep 5; done
340
- printf " Waiting for Operator to register third party objects..."
341
- until kubectl --namespace monitoring get servicemonitor > /dev/null 2>&1 ; do sleep 1; printf " ." ; done
342
- until kubectl --namespace monitoring get prometheus > /dev/null 2>&1 ; do sleep 1; printf " ." ; done
343
- until kubectl --namespace monitoring get alertmanager > /dev/null 2>&1 ; do sleep 1; printf " ." ; done
344
- while true ; do kubectl --namespace monitoring apply -f manifests/node-exporter --request-timeout 0 && break || sleep 5; done
345
- while true ; do kubectl --namespace monitoring apply -f manifests/kube-state-metrics --request-timeout 0 && break || sleep 5; done
346
- while true ; do kubectl --namespace monitoring apply -f manifests/grafana/grafana-credentials.yaml --request-timeout 0 && break || sleep 5; done
347
- while true ; do kubectl --namespace monitoring apply -f manifests/grafana --request-timeout 0 && break || sleep 5; done
348
- while true ; do find manifests/prometheus -type f ! -name prometheus-k8s-roles.yaml ! -name prometheus-k8s-role-bindings.yaml ! -name prometheus-k8s-ingress.yaml -exec kubectl --request-timeout 0 --namespace " monitoring" apply -f {} \; && break || sleep 5; done
349
- while true ; do kubectl apply -f manifests/prometheus/prometheus-k8s-roles.yaml --request-timeout 0 && break || sleep 5; done
350
- while true ; do kubectl apply -f manifests/prometheus/prometheus-k8s-role-bindings.yaml --request-timeout 0 && break || sleep 5; done
351
- while true ; do kubectl --namespace monitoring apply -f manifests/alertmanager/ --request-timeout 0 && break || sleep 5; done
352
- while true ; do cat manifests/prometheus/prometheus-k8s-ingress.yaml | sed " s/\$ {DOMAIN}/${DOMAIN} /g" | kubectl apply --request-timeout 0 --validate=false -f - && break || sleep 5; done
353
- fi
354
- fi
332
+ while true ; do kubectl --namespace monitoring apply -f manifests/prometheus-operator --request-timeout 0 && break || sleep 5; done
333
+ printf " Waiting for Operator to register third party objects..."
334
+ until kubectl --namespace monitoring get servicemonitor > /dev/null 2>&1 ; do sleep 1; printf " ." ; done
335
+ until kubectl --namespace monitoring get prometheus > /dev/null 2>&1 ; do sleep 1; printf " ." ; done
336
+ until kubectl --namespace monitoring get alertmanager > /dev/null 2>&1 ; do sleep 1; printf " ." ; done
337
+ while true ; do kubectl --namespace monitoring apply -f manifests/node-exporter --request-timeout 0 && break || sleep 5; done
338
+ while true ; do kubectl --namespace monitoring apply -f manifests/kube-state-metrics --request-timeout 0 && break || sleep 5; done
339
+ while true ; do kubectl --namespace monitoring apply -f manifests/grafana/grafana-credentials.yaml --request-timeout 0 && break || sleep 5; done
340
+ while true ; do kubectl --namespace monitoring apply -f manifests/grafana --request-timeout 0 && break || sleep 5; done
341
+ while true ; do find manifests/prometheus -type f ! -name prometheus-k8s-roles.yaml ! -name prometheus-k8s-role-bindings.yaml ! -name prometheus-k8s-ingress.yaml -exec kubectl --request-timeout 0 --namespace " monitoring" apply -f {} \; && break || sleep 5; done
342
+ while true ; do kubectl apply -f manifests/prometheus/prometheus-k8s-roles.yaml --request-timeout 0 && break || sleep 5; done
343
+ while true ; do kubectl apply -f manifests/prometheus/prometheus-k8s-role-bindings.yaml --request-timeout 0 && break || sleep 5; done
344
+ while true ; do kubectl --namespace monitoring apply -f manifests/alertmanager/ --request-timeout 0 && break || sleep 5; done
345
+ while true ; do cat manifests/prometheus/prometheus-k8s-ingress.yaml | sed " s/\$ {DOMAIN}/${DOMAIN} /g" | kubectl apply --request-timeout 0 --validate=false -f - && break || sleep 5; done
355
346
fi
356
347
fi
357
348
0 commit comments