diff --git a/10-0-deployment.yaml b/10-0-deployment.yaml new file mode 100644 index 0000000..cb2acd6 --- /dev/null +++ b/10-0-deployment.yaml @@ -0,0 +1,24 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: kuard +spec: + selector: + matchLabels: + run: kuard + replicas: 200 + strategy: + rollingUpdate: + maxSurge: 25% + maxUnavailable: 25% + type: RollingUpdate + template: + metadata: + annotations: + kubernetes.io/change-cause: "Update to blue kuard" + labels: + run: kuard + spec: + containers: + - name: kuard + image: gcr.io/kuar-demo/kuard-amd64:blue diff --git a/9-1-fluentd.yaml b/11-1-fluentd.yaml similarity index 92% rename from 9-1-fluentd.yaml rename to 11-1-fluentd.yaml index 64065f9..51e5a90 100644 --- a/9-1-fluentd.yaml +++ b/11-1-fluentd.yaml @@ -1,4 +1,4 @@ -apiVersion: extensions/v1beta1 +apiVersion: apps/v1 kind: DaemonSet metadata: name: fluentd @@ -6,6 +6,9 @@ metadata: labels: app: fluentd spec: + selector: + matchLabels: + app: fluentd template: metadata: labels: diff --git a/9-2-nginx-fast-storage.yaml b/11-2-nginx-fast-storage.yaml similarity index 78% rename from 9-2-nginx-fast-storage.yaml rename to 11-2-nginx-fast-storage.yaml index f693e24..8e66746 100644 --- a/9-2-nginx-fast-storage.yaml +++ b/11-2-nginx-fast-storage.yaml @@ -1,4 +1,4 @@ -apiVersion: extensions/v1beta1 +apiVersion: apps/v1 kind: "DaemonSet" metadata: labels: @@ -6,6 +6,10 @@ metadata: ssd: "true" name: nginx-fast-storage spec: + selector: + matchLabels: + app: nginx + ssd: "true" template: metadata: labels: diff --git a/10-1-job-oneshot.yaml b/12-1-job-oneshot.yaml similarity index 91% rename from 10-1-job-oneshot.yaml rename to 12-1-job-oneshot.yaml index 063ba65..7819ee1 100644 --- a/10-1-job-oneshot.yaml +++ b/12-1-job-oneshot.yaml @@ -1,3 +1,4 @@ +# TODO fix image name (blue) in book apiVersion: batch/v1 kind: Job metadata: diff --git a/10-2-job-oneshot-failure1.yaml b/12-2-job-oneshot-failure1.yaml similarity index 100% rename from 10-2-job-oneshot-failure1.yaml rename to 12-2-job-oneshot-failure1.yaml diff --git a/10-3-job-parallel.yaml b/12-3-job-parallel.yaml similarity index 100% rename from 10-3-job-parallel.yaml rename to 12-3-job-parallel.yaml diff --git a/10-4-rs-queue.yaml b/12-4-rs-queue.yaml similarity index 76% rename from 10-4-rs-queue.yaml rename to 12-4-rs-queue.yaml index d8c06f5..28c9363 100644 --- a/10-4-rs-queue.yaml +++ b/12-4-rs-queue.yaml @@ -1,4 +1,4 @@ -apiVersion: extensions/v1beta1 +apiVersion: apps/v1 kind: ReplicaSet metadata: labels: @@ -8,6 +8,11 @@ metadata: name: queue spec: replicas: 1 + selector: + matchLabels: + app: work-queue + component: queue + chapter: jobs template: metadata: labels: diff --git a/10-5-service-queue.yaml b/12-5-service-queue.yaml similarity index 100% rename from 10-5-service-queue.yaml rename to 12-5-service-queue.yaml diff --git a/10-6-load-queue.sh b/12-6-load-queue.sh similarity index 100% rename from 10-6-load-queue.sh rename to 12-6-load-queue.sh diff --git a/10-7-job-consumers.yaml b/12-7-job-consumers.yaml similarity index 100% rename from 10-7-job-consumers.yaml rename to 12-7-job-consumers.yaml diff --git a/11-1-simple-config.txt b/13-1-my-config.txt similarity index 100% rename from 11-1-simple-config.txt rename to 13-1-my-config.txt diff --git a/11-2-kuard-config.yaml b/13-2-kuard-config.yaml similarity index 100% rename from 11-2-kuard-config.yaml rename to 13-2-kuard-config.yaml diff --git a/13-1-dns-service.yaml b/15-1-dns-service.yaml similarity index 100% rename from 13-1-dns-service.yaml rename to 15-1-dns-service.yaml diff --git a/13-10-mongo-simple.yaml b/15-10-mongo-simple.yaml similarity index 84% rename from 13-10-mongo-simple.yaml rename to 15-10-mongo-simple.yaml index 0e50b65..aa453a5 100644 --- a/13-10-mongo-simple.yaml +++ b/15-10-mongo-simple.yaml @@ -1,10 +1,13 @@ -apiVersion: apps/v1beta1 +apiVersion: apps/v1 kind: StatefulSet metadata: name: mongo spec: serviceName: "mongo" replicas: 3 + selector: + matchLabels: + app: mongo template: metadata: labels: diff --git a/13-11-mongo-service.yaml b/15-11-mongo-service.yaml similarity index 100% rename from 13-11-mongo-service.yaml rename to 15-11-mongo-service.yaml diff --git a/15-12-1-mongo-init.sh b/15-12-1-mongo-init.sh new file mode 100644 index 0000000..87c5219 --- /dev/null +++ b/15-12-1-mongo-init.sh @@ -0,0 +1,45 @@ + #!/bin/bash + +# Need to wait for the readiness health check to pass so that the +# mongo names resolve. This is kind of wonky. +until ping -c 1 ${HOSTNAME}.mongo; do + echo "waiting for DNS (${HOSTNAME}.mongo)..." + sleep 2 +done + + until /usr/bin/mongo --eval 'printjson(db.serverStatus())'; do + echo "connecting to local mongo..." + sleep 2 + done + echo "connected to local." + + HOST=mongo-0.mongo:27017 + + until /usr/bin/mongo --host=${HOST} --eval 'printjson(db.serverStatus())'; do + echo "connecting to remote mongo..." + sleep 2 + done + echo "connected to remote." + + if [[ "${HOSTNAME}" != 'mongo-0' ]]; then + until /usr/bin/mongo --host=${HOST} --eval="printjson(rs.status())" \ + | grep -v "no replset config has been received"; do + echo "waiting for replication set initialization" + sleep 2 + done + echo "adding self to mongo-0" + /usr/bin/mongo --host=${HOST} \ + --eval="printjson(rs.add('${HOSTNAME}.mongo'))" + fi + + if [[ "${HOSTNAME}" == 'mongo-0' ]]; then + echo "initializing replica set" + /usr/bin/mongo --eval="printjson(rs.initiate(\ + {'_id': 'rs0', 'members': [{'_id': 0, \ + 'host': 'mongo-0.mongo:27017'}]}))" + fi + echo "initialized" + + while true; do + sleep 3600 + done \ No newline at end of file diff --git a/13-12-mongo-configmap.yaml b/15-12-mongo-configmap.yaml similarity index 100% rename from 13-12-mongo-configmap.yaml rename to 15-12-mongo-configmap.yaml diff --git a/13-13-mongo.yaml b/15-13-mongo.yaml similarity index 91% rename from 13-13-mongo.yaml rename to 15-13-mongo.yaml index 368b1a6..1897e86 100644 --- a/13-13-mongo.yaml +++ b/15-13-mongo.yaml @@ -1,10 +1,13 @@ -apiVersion: apps/v1beta1 +apiVersion: apps/v1 kind: StatefulSet metadata: name: mongo spec: serviceName: "mongo" replicas: 3 + selector: + matchLabels: + app: mongo template: metadata: labels: diff --git a/13-2-external-ip-service.yaml b/15-2-external-ip-service.yaml similarity index 100% rename from 13-2-external-ip-service.yaml rename to 15-2-external-ip-service.yaml diff --git a/13-3-external-ip-endpoints.yaml b/15-3-external-ip-endpoints.yaml similarity index 100% rename from 13-3-external-ip-endpoints.yaml rename to 15-3-external-ip-endpoints.yaml diff --git a/13-4-nfs-volume.yaml b/15-4-nfs-volume.yaml similarity index 100% rename from 13-4-nfs-volume.yaml rename to 15-4-nfs-volume.yaml diff --git a/13-5-nfs-volume-claim.yaml b/15-5-nfs-volume-claim.yaml similarity index 100% rename from 13-5-nfs-volume-claim.yaml rename to 15-5-nfs-volume-claim.yaml diff --git a/13-6-mysql-replicaset.yaml b/15-6-mysql-replicaset.yaml similarity index 97% rename from 13-6-mysql-replicaset.yaml rename to 15-6-mysql-replicaset.yaml index fe70d29..041ef76 100644 --- a/13-6-mysql-replicaset.yaml +++ b/15-6-mysql-replicaset.yaml @@ -1,4 +1,4 @@ -apiVersion: extensions/v1beta1 +apiVersion: apps/v1 kind: ReplicaSet metadata: name: mysql diff --git a/13-7-mysql-service.yaml b/15-7-mysql-service.yaml similarity index 100% rename from 13-7-mysql-service.yaml rename to 15-7-mysql-service.yaml diff --git a/13-8-storageclass.yaml b/15-8-storageclass.yaml similarity index 100% rename from 13-8-storageclass.yaml rename to 15-8-storageclass.yaml diff --git a/13-9-dynamic-volume-claim.yaml b/15-9-dynamic-volume-claim.yaml similarity index 100% rename from 13-9-dynamic-volume-claim.yaml rename to 15-9-dynamic-volume-claim.yaml diff --git a/14-1-parse.yaml b/17-1-parse.yaml similarity index 88% rename from 14-1-parse.yaml rename to 17-1-parse.yaml index f5b87a6..6e1f013 100644 --- a/14-1-parse.yaml +++ b/17-1-parse.yaml @@ -1,10 +1,13 @@ -apiVersion: extensions/v1beta1 +apiVersion: apps/v1 kind: Deployment metadata: name: parse-server namespace: default spec: replicas: 1 + selector: + matchLabels: + run: parse-server template: metadata: labels: diff --git a/14-9-redis-service.yaml b/17-10-redis-service.yaml similarity index 100% rename from 14-9-redis-service.yaml rename to 17-10-redis-service.yaml diff --git a/14-10-redis.yaml b/17-11-redis.yaml similarity index 92% rename from 14-10-redis.yaml rename to 17-11-redis.yaml index 2a8cd58..46a88a6 100644 --- a/14-10-redis.yaml +++ b/17-11-redis.yaml @@ -1,9 +1,12 @@ -apiVersion: apps/v1beta1 +apiVersion: apps/v1 kind: StatefulSet metadata: name: redis spec: replicas: 3 + selector: + matchLabels: + app: redis serviceName: redis template: metadata: diff --git a/14-2-parse-service.yaml b/17-2-parse-service.yaml similarity index 100% rename from 14-2-parse-service.yaml rename to 17-2-parse-service.yaml diff --git a/14-3-ghost-config.js b/17-3-ghost-config.js similarity index 100% rename from 14-3-ghost-config.js rename to 17-3-ghost-config.js diff --git a/14-4-ghost.yaml b/17-4-ghost.yaml similarity index 95% rename from 14-4-ghost.yaml rename to 17-4-ghost.yaml index f553ac0..02b9596 100644 --- a/14-4-ghost.yaml +++ b/17-4-ghost.yaml @@ -1,4 +1,4 @@ -apiVersion: extensions/v1beta1 +apiVersion: apps/v1 kind: Deployment metadata: name: ghost diff --git a/14-4-master.conf b/17-5-master.conf similarity index 100% rename from 14-4-master.conf rename to 17-5-master.conf diff --git a/14-5-slave.conf b/17-6-slave.conf similarity index 100% rename from 14-5-slave.conf rename to 17-6-slave.conf diff --git a/14-6-sentinel.conf b/17-7-sentinel.conf similarity index 100% rename from 14-6-sentinel.conf rename to 17-7-sentinel.conf diff --git a/14-7-init.sh b/17-8-init.sh similarity index 100% rename from 14-7-init.sh rename to 17-8-init.sh diff --git a/14-8-sentinel.sh b/17-9-sentinel.sh similarity index 100% rename from 14-8-sentinel.sh rename to 17-9-sentinel.sh diff --git a/7-1-alpaca-prod-readiness.yaml b/7-1-alpaca-prod-readiness.yaml new file mode 100644 index 0000000..c2b4fc9 --- /dev/null +++ b/7-1-alpaca-prod-readiness.yaml @@ -0,0 +1,44 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: alpaca + env: prod + ver: "1" + name: alpaca-prod +spec: + replicas: 3 + revisionHistoryLimit: 10 + selector: + matchLabels: + app: alpaca + env: prod + ver: "1" + strategy: + rollingUpdate: + maxSurge: 25% + maxUnavailable: 25% + type: RollingUpdate + template: + metadata: + labels: + app: alpaca + env: prod + ver: "1" + spec: + containers: + - image: gcr.io/kuar-demo/kuard-amd64:blue + imagePullPolicy: IfNotPresent + name: alpaca-prod + ports: + - containerPort: 8080 + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: 8080 + scheme: HTTP + periodSeconds: 2 + successThreshold: 1 + timeoutSeconds: 1 diff --git a/8-1-kuard-rs.yaml b/9-1-kuard-rs.yaml similarity index 64% rename from 8-1-kuard-rs.yaml rename to 9-1-kuard-rs.yaml index 439b9f6..234f670 100644 --- a/8-1-kuard-rs.yaml +++ b/9-1-kuard-rs.yaml @@ -1,9 +1,15 @@ -apiVersion: extensions/v1beta1 +apiVersion: apps/v1 kind: ReplicaSet metadata: + labels: + app: kuard name: kuard spec: - replicas: 1 + replicas: 10 + selector: + matchLabels: + app: kuard + version: "2" template: metadata: labels: