From 7b1873ae9b7732668598b7227d72bbac6bbe2666 Mon Sep 17 00:00:00 2001 From: SANDEEP RAWAT Date: Sat, 10 Apr 2021 20:29:52 +0530 Subject: [PATCH 01/17] Moved k8s manifest files to top --- deployment-strategies/{recreate => }/rs1.yaml | 0 deployment-strategies/{recreate => }/rs2.yaml | 0 deployment-strategies/{recreate => }/service.yaml | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename deployment-strategies/{recreate => }/rs1.yaml (100%) rename deployment-strategies/{recreate => }/rs2.yaml (100%) rename deployment-strategies/{recreate => }/service.yaml (100%) diff --git a/deployment-strategies/recreate/rs1.yaml b/deployment-strategies/rs1.yaml similarity index 100% rename from deployment-strategies/recreate/rs1.yaml rename to deployment-strategies/rs1.yaml diff --git a/deployment-strategies/recreate/rs2.yaml b/deployment-strategies/rs2.yaml similarity index 100% rename from deployment-strategies/recreate/rs2.yaml rename to deployment-strategies/rs2.yaml diff --git a/deployment-strategies/recreate/service.yaml b/deployment-strategies/service.yaml similarity index 100% rename from deployment-strategies/recreate/service.yaml rename to deployment-strategies/service.yaml From dc94069bf0761ee29cc8fac3e181e7be105154c8 Mon Sep 17 00:00:00 2001 From: SANDEEP RAWAT Date: Sat, 10 Apr 2021 21:43:35 +0530 Subject: [PATCH 02/17] Updated code to simulate deployment for recreate --- deployment-strategies/k8s_helper.sh | 39 +++++++++++++++ deployment-strategies/recreate/Makefile | 12 +++++ deployment-strategies/recreate/recreate.sh | 55 +++++++++------------- deployment-strategies/rs1.yaml | 9 +++- deployment-strategies/rs2.yaml | 9 +++- 5 files changed, 90 insertions(+), 34 deletions(-) create mode 100644 deployment-strategies/k8s_helper.sh create mode 100644 deployment-strategies/recreate/Makefile diff --git a/deployment-strategies/k8s_helper.sh b/deployment-strategies/k8s_helper.sh new file mode 100644 index 0000000..6c6b750 --- /dev/null +++ b/deployment-strategies/k8s_helper.sh @@ -0,0 +1,39 @@ +function getReplicaCount() { + RS_NAME=$1 + kubectl get rs ${RS_NAME} -o json | jq '.status.readyReplicas' +} + +function apply_manifest() { + MANIFEST_FILE=$1 + kubectl apply -f ${MANIFEST_FILE} +} + +function setReplicaForRS() { + RS_NAME=$1 + RS_DESIRED_COUNT=$2 + kubectl scale rs --replicas="${RS_DESIRED_COUNT}" ${RS_NAME} +} + +function deleteManifest() { + MANIFEST_FILE=$1 + kubectl delete -f ${MANIFEST_FILE} +} + +function replicaSetStatus() { + echo "Status of replicasets" + kubectl get rs +} + +function waitForRS() { + RS_NAME=$1 + RS_DESIRED_COUNT=$2 + + replica_count=`getReplicaCount ${RS_NAME}` + while [ $replica_count != ${RS_DESIRED_COUNT} ] + do + echo "Reday replicas of ${RS_NAME}:$replica_count" + echo "Wating to reach to ${RS_DESIRED_COUNT}" + sleep 1s + replica_count=`getReplicaCount ${RS_NAME}` + done +} \ No newline at end of file diff --git a/deployment-strategies/recreate/Makefile b/deployment-strategies/recreate/Makefile new file mode 100644 index 0000000..f14b226 --- /dev/null +++ b/deployment-strategies/recreate/Makefile @@ -0,0 +1,12 @@ +initialSetup: + source recreate.sh;startDeployment + +deployment: + source recreate.sh;recreateDeployment + +rollback: + source recreate.sh;rollback + +tearDown: + source recreate.sh;cleanUp + diff --git a/deployment-strategies/recreate/recreate.sh b/deployment-strategies/recreate/recreate.sh index 8bb469e..7024de2 100755 --- a/deployment-strategies/recreate/recreate.sh +++ b/deployment-strategies/recreate/recreate.sh @@ -1,37 +1,28 @@ #!/bin/bash +source ../k8s_helper.sh -source recreate_strategy.sh +function startDeployment() { + apply_manifest ../rs1.yaml + waitForRS my-app-v1 5 + apply_manifest ../service.yaml + replicaSetStatus +} -# Creating ReplicaSet and its Service -kubectl apply -f rs1.yaml -kubectl apply -f service.yaml +function recreateDeployment() { + setReplicaForRS my-app-v1 0 + apply_manifest ../rs2.yaml + replicaSetStatus +} +function rollback() { + setReplicaForRS my-app-v2 0 + setReplicaForRS my-app-v1 5 + replicaSetStatus +} -replica_count=`kubectl get rs my-app -o json | jq '.status.readyReplicas'` -while [ $replica_count != 5 ] - do - echo "Reday replicas of Version 1 : $replica_count" - sleep 1s - replica_count=`kubectl get rs my-app -o json | jq '.status.readyReplicas'` - done - -# Current ReplicaSet Host and Version Details -service=$(minikube service my-app --url) -version=$(curl "$service") -echo "Current ReplicaSet host and version -------- $version" - -# Scaling ReplicaSet -echo -n " Do you want to scale Replica set select yes(y) or no(n) --> " -read option -case $option in -y) - rc=0 - scaleReplicas "$rc" -;; -n) - exit; -;; -*) - echo "Invalid option select y to yes and n to exit" -;; -esac \ No newline at end of file +function cleanUp() { + deleteManifest ../rs1.yaml + deleteManifest ../rs2.yaml + deleteManifest ../service.yaml + replicaSetStatus +} \ No newline at end of file diff --git a/deployment-strategies/rs1.yaml b/deployment-strategies/rs1.yaml index e14f817..8faa1c3 100644 --- a/deployment-strategies/rs1.yaml +++ b/deployment-strategies/rs1.yaml @@ -1,7 +1,7 @@ apiVersion: apps/v1 kind: ReplicaSet metadata: - name: my-app + name: my-app-v1 labels: app: my-app spec: @@ -22,6 +22,13 @@ spec: containers: - name: my-app image: containersol/k8s-deployment-strategies + resources: + limits: + cpu: 100m + memory: 100Mi + requests: + cpu: 50m + memory: 50Mi ports: - name: http containerPort: 8080 diff --git a/deployment-strategies/rs2.yaml b/deployment-strategies/rs2.yaml index 8458bf7..fee7912 100644 --- a/deployment-strategies/rs2.yaml +++ b/deployment-strategies/rs2.yaml @@ -1,7 +1,7 @@ apiVersion: apps/v1 kind: ReplicaSet metadata: - name: my-app + name: my-app-v2 labels: app: my-app spec: @@ -22,6 +22,13 @@ spec: containers: - name: my-app image: containersol/k8s-deployment-strategies + resources: + limits: + cpu: 100m + memory: 100Mi + requests: + cpu: 50m + memory: 50Mi ports: - name: http containerPort: 8080 From d19a4543bf9241692347755c5c75816262cfa86d Mon Sep 17 00:00:00 2001 From: SANDEEP RAWAT Date: Sat, 10 Apr 2021 21:47:17 +0530 Subject: [PATCH 03/17] Removed the file --- .../recreate/recreate_strategy.sh | 27 ------------------- 1 file changed, 27 deletions(-) delete mode 100755 deployment-strategies/recreate/recreate_strategy.sh diff --git a/deployment-strategies/recreate/recreate_strategy.sh b/deployment-strategies/recreate/recreate_strategy.sh deleted file mode 100755 index 1f09cc1..0000000 --- a/deployment-strategies/recreate/recreate_strategy.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash - -scaleReplicas(){ - kubectl scale rs --replicas="$1" my-app - # jq needs to be installed through sudo apt install jq - replica_count=`kubectl get rs my-app -o json | jq '.status.readyReplicas'` - while [ $replica_count != 'null' ] - do - sleep 1s - replica_count=`kubectl get rs my-app -o json | jq '.status.readyReplicas'` - done - - kubectl apply -f rs2.yaml - - replica_count=`kubectl get rs my-app -o json | jq '.status.readyReplicas'` - while [ $replica_count != 5 ] - do - echo "Ready Replicas of Version 2 : $replica_count" - sleep 1s - replica_count=`kubectl get rs my-app -o json | jq '.status.readyReplicas'` - done - - echo "Scaling of replicaset v1 to v2 completed" - service=$(minikube service my-app --url) - version=$(curl "$service") - echo "Current ReplicaSet host and version -------- $version" -} \ No newline at end of file From 33f09dc443ef2d71604c1dfaa2ebdca9f334746d Mon Sep 17 00:00:00 2001 From: SANDEEP RAWAT Date: Sat, 10 Apr 2021 22:22:30 +0530 Subject: [PATCH 04/17] Done with rolling deployment --- deployment-strategies/k8s_helper.sh | 5 ++ deployment-strategies/rolling-update/Makefile | 12 ++++ .../rolling-update/rolling.sh | 67 +++++++++++-------- .../rolling-update/rolling_strategy.sh | 31 --------- deployment-strategies/rolling-update/rs1.yaml | 44 ------------ deployment-strategies/rolling-update/rs2.yaml | 44 ------------ .../rolling-update/service.yaml | 14 ---- deployment-strategies/rs2.yaml | 2 +- 8 files changed, 58 insertions(+), 161 deletions(-) create mode 100644 deployment-strategies/rolling-update/Makefile delete mode 100755 deployment-strategies/rolling-update/rolling_strategy.sh delete mode 100644 deployment-strategies/rolling-update/rs1.yaml delete mode 100644 deployment-strategies/rolling-update/rs2.yaml delete mode 100644 deployment-strategies/rolling-update/service.yaml diff --git a/deployment-strategies/k8s_helper.sh b/deployment-strategies/k8s_helper.sh index 6c6b750..5270f04 100644 --- a/deployment-strategies/k8s_helper.sh +++ b/deployment-strategies/k8s_helper.sh @@ -29,6 +29,11 @@ function waitForRS() { RS_DESIRED_COUNT=$2 replica_count=`getReplicaCount ${RS_NAME}` + if [ ${RS_DESIRED_COUNT} = "0" ] + then + #Just handling a boundary + return + fi while [ $replica_count != ${RS_DESIRED_COUNT} ] do echo "Reday replicas of ${RS_NAME}:$replica_count" diff --git a/deployment-strategies/rolling-update/Makefile b/deployment-strategies/rolling-update/Makefile new file mode 100644 index 0000000..d2b7b9b --- /dev/null +++ b/deployment-strategies/rolling-update/Makefile @@ -0,0 +1,12 @@ +initialSetup: + source rolling.sh;startDeployment + +deployment: + source rolling.sh;recreateDeployment + +rollback: + source rolling.sh;rollback + +tearDown: + source rolling.sh;cleanUp + diff --git a/deployment-strategies/rolling-update/rolling.sh b/deployment-strategies/rolling-update/rolling.sh index 1d963d6..48800f2 100755 --- a/deployment-strategies/rolling-update/rolling.sh +++ b/deployment-strategies/rolling-update/rolling.sh @@ -1,35 +1,48 @@ #!/bin/bash -source rolling_strategy.sh +source ../k8s_helper.sh -kubectl apply -f rs1.yaml -kubectl apply -f rs2.yaml -kubectl apply -f service.yaml +function startDeployment() { + apply_manifest ../rs1.yaml + apply_manifest ../rs2.yaml + waitForRS my-app-v1 5 + apply_manifest ../service.yaml + replicaSetStatus +} -replica_count_v1=`kubectl get rs my-app-v1 -o json | jq '.status.readyReplicas'` -while [ $replica_count_v1 != 5 ] +function recreateDeployment() { + rs1_replica_count=5 + rs2_replica_count=0 + while [[ $rs2_replica_count != "5" ]] do - echo "Ready replicas of Version 1 : $replica_count_v1" - sleep 1s - replica_count_v1=`kubectl get rs my-app-v1 -o json | jq '.status.readyReplicas'` + rs1_replica_count=$((rs1_replica_count-1)) + rs2_replica_count=$((rs2_replica_count+1)) + + setReplicaForRS my-app-v1 ${rs1_replica_count} + setReplicaForRS my-app-v2 ${rs2_replica_count} + waitForRS my-app-v2 ${rs2_replica_count} + replicaSetStatus done +} + +function rollback() { + rs1_replica_count=0 + rs2_replica_count=5 + while [[ $rs1_replica_count != "5" ]] + do + rs1_replica_count=$((rs1_replica_count+1)) + rs2_replica_count=$((rs2_replica_count-1)) -# Current ReplicaSet Host and Version Details -service=$(minikube service my-app --url) -version=$(curl "$service") -echo "Current ReplicaSet host and version -------- $version" + setReplicaForRS my-app-v1 ${rs1_replica_count} + setReplicaForRS my-app-v2 ${rs2_replica_count} + waitForRS my-app-v2 ${rs2_replica_count} + replicaSetStatus + done +} -# Scaling ReplicaSet -echo -n " Do you want to scale Replica set select yes(y) or no(n) --> " -read option -case $option in -y) - scaleReplicas -;; -n) - exit; -;; -*) - echo "Invalid option select y to yes and n to exit" -;; -esac \ No newline at end of file +function cleanUp() { + deleteManifest ../rs1.yaml + deleteManifest ../rs2.yaml + deleteManifest ../service.yaml + replicaSetStatus +} diff --git a/deployment-strategies/rolling-update/rolling_strategy.sh b/deployment-strategies/rolling-update/rolling_strategy.sh deleted file mode 100755 index d2e4203..0000000 --- a/deployment-strategies/rolling-update/rolling_strategy.sh +++ /dev/null @@ -1,31 +0,0 @@ -scaleReplicas(){ - replica_count_current_v1=`kubectl get rs my-app-v1 -o json | jq '.status.readyReplicas'` - replica_count_current_v2=0 - echo $replica_count_current_v1 - echo $replica_count_current_v2 - while [[ $replica_count_current_v1 != 'null' && $replica_count_current_v2 != 5 ]] - do - ##V1 - replica_count_desired_v1=$((replica_count_current_v1-1)) - echo $replica_count_desired_v1 - kubectl scale rs --replicas="$replica_count_desired_v1" my-app-v1 - sleep 1s - replica_count_current_v1="$replica_count_desired_v1" - - ## V2 - replica_count_desired_v2=$((replica_count_current_v2+1)) - kubectl scale rs --replicas="$replica_count_desired_v2" my-app-v2 - sleep 1s - replica_count_current_v2=`kubectl get rs my-app-v2 -o json | jq '.status.readyReplicas'` - while [ $replica_count_current_v2 != $replica_count_desired_v2 ] - do - echo "Ready replicas of Version 2 : $replica_count_current_v2" - sleep 1s - replica_count_current_v2=`kubectl get rs my-app-v2 -o json | jq '.status.readyReplicas'` - done - done - echo "Scaling of replicaset v1 to v2 completed" - service=$(minikube service my-app --url) - version=$(curl "$service") - echo "Current ReplicaSet host and version -------- $version" -} \ No newline at end of file diff --git a/deployment-strategies/rolling-update/rs1.yaml b/deployment-strategies/rolling-update/rs1.yaml deleted file mode 100644 index daeff56..0000000 --- a/deployment-strategies/rolling-update/rs1.yaml +++ /dev/null @@ -1,44 +0,0 @@ -apiVersion: apps/v1 -kind: ReplicaSet -metadata: - name: my-app-v1 - labels: - app: my-app -spec: - # modify replicas according to your case - replicas: 5 - selector: - matchLabels: - app: my-app - template: - metadata: - labels: - app: my-app - version: v1.0.0 - annotations: - prometheus.io/scrape: "true" - prometheus.io/port: "9101" - spec: - containers: - - name: my-app - image: containersol/k8s-deployment-strategies - ports: - - name: http - containerPort: 8080 - - name: probe - containerPort: 8086 - env: - - name: VERSION - value: v1.0.0 - livenessProbe: - httpGet: - path: /live - port: probe - initialDelaySeconds: 5 - periodSeconds: 5 - readinessProbe: - httpGet: - path: /ready - port: probe - periodSeconds: 5 - diff --git a/deployment-strategies/rolling-update/rs2.yaml b/deployment-strategies/rolling-update/rs2.yaml deleted file mode 100644 index 5d5f4f0..0000000 --- a/deployment-strategies/rolling-update/rs2.yaml +++ /dev/null @@ -1,44 +0,0 @@ -apiVersion: apps/v1 -kind: ReplicaSet -metadata: - name: my-app-v2 - labels: - app: my-app -spec: - # modify replicas according to your case - replicas: 0 - selector: - matchLabels: - app: my-app - template: - metadata: - labels: - app: my-app - version: v2.0.0 - annotations: - prometheus.io/scrape: "true" - prometheus.io/port: "9101" - spec: - containers: - - name: my-app - image: containersol/k8s-deployment-strategies - ports: - - name: http - containerPort: 8080 - - name: probe - containerPort: 8086 - env: - - name: VERSION - value: v2.0.0 - livenessProbe: - httpGet: - path: /live - port: probe - initialDelaySeconds: 5 - periodSeconds: 5 - readinessProbe: - httpGet: - path: /ready - port: probe - periodSeconds: 5 - diff --git a/deployment-strategies/rolling-update/service.yaml b/deployment-strategies/rolling-update/service.yaml deleted file mode 100644 index b84c8f1..0000000 --- a/deployment-strategies/rolling-update/service.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: my-app - labels: - app: my-app -spec: - type: NodePort - ports: - - name: http - port: 80 - targetPort: http - selector: - app: my-app diff --git a/deployment-strategies/rs2.yaml b/deployment-strategies/rs2.yaml index fee7912..87bd7ee 100644 --- a/deployment-strategies/rs2.yaml +++ b/deployment-strategies/rs2.yaml @@ -6,7 +6,7 @@ metadata: app: my-app spec: # modify replicas according to your case - replicas: 5 + replicas: 0 selector: matchLabels: app: my-app From 5c72fe6a01d6bcd3ca2e783e1da1b01e1a50e6c8 Mon Sep 17 00:00:00 2001 From: himanshuDevopsGuy Date: Sun, 11 Apr 2021 11:54:03 +0530 Subject: [PATCH 05/17] modified files --- deployment-strategies/recreate/recreate.sh | 4 ++-- deployment-strategies/recreate/recreate_strategy.sh | 10 +++++----- deployment-strategies/recreate/rs1.yaml | 2 +- deployment-strategies/recreate/rs2.yaml | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/deployment-strategies/recreate/recreate.sh b/deployment-strategies/recreate/recreate.sh index 8bb469e..c92d381 100755 --- a/deployment-strategies/recreate/recreate.sh +++ b/deployment-strategies/recreate/recreate.sh @@ -7,12 +7,12 @@ kubectl apply -f rs1.yaml kubectl apply -f service.yaml -replica_count=`kubectl get rs my-app -o json | jq '.status.readyReplicas'` +replica_count=`kubectl get rs my-app-v1 -o json | jq '.status.readyReplicas'` while [ $replica_count != 5 ] do echo "Reday replicas of Version 1 : $replica_count" sleep 1s - replica_count=`kubectl get rs my-app -o json | jq '.status.readyReplicas'` + replica_count=`kubectl get rs my-app-v1 -o json | jq '.status.readyReplicas'` done # Current ReplicaSet Host and Version Details diff --git a/deployment-strategies/recreate/recreate_strategy.sh b/deployment-strategies/recreate/recreate_strategy.sh index 1f09cc1..54e5cf5 100755 --- a/deployment-strategies/recreate/recreate_strategy.sh +++ b/deployment-strategies/recreate/recreate_strategy.sh @@ -1,23 +1,23 @@ #!/bin/bash scaleReplicas(){ - kubectl scale rs --replicas="$1" my-app + kubectl scale rs --replicas="$1" my-app-v1 # jq needs to be installed through sudo apt install jq - replica_count=`kubectl get rs my-app -o json | jq '.status.readyReplicas'` + replica_count=`kubectl get rs my-app-v1 -o json | jq '.status.readyReplicas'` while [ $replica_count != 'null' ] do sleep 1s - replica_count=`kubectl get rs my-app -o json | jq '.status.readyReplicas'` + replica_count=`kubectl get rs my-app-v1 -o json | jq '.status.readyReplicas'` done kubectl apply -f rs2.yaml - replica_count=`kubectl get rs my-app -o json | jq '.status.readyReplicas'` + replica_count=`kubectl get rs my-app-v2 -o json | jq '.status.readyReplicas'` while [ $replica_count != 5 ] do echo "Ready Replicas of Version 2 : $replica_count" sleep 1s - replica_count=`kubectl get rs my-app -o json | jq '.status.readyReplicas'` + replica_count=`kubectl get rs my-app-v2 -o json | jq '.status.readyReplicas'` done echo "Scaling of replicaset v1 to v2 completed" diff --git a/deployment-strategies/recreate/rs1.yaml b/deployment-strategies/recreate/rs1.yaml index e14f817..daeff56 100644 --- a/deployment-strategies/recreate/rs1.yaml +++ b/deployment-strategies/recreate/rs1.yaml @@ -1,7 +1,7 @@ apiVersion: apps/v1 kind: ReplicaSet metadata: - name: my-app + name: my-app-v1 labels: app: my-app spec: diff --git a/deployment-strategies/recreate/rs2.yaml b/deployment-strategies/recreate/rs2.yaml index 8458bf7..693b5ca 100644 --- a/deployment-strategies/recreate/rs2.yaml +++ b/deployment-strategies/recreate/rs2.yaml @@ -1,7 +1,7 @@ apiVersion: apps/v1 kind: ReplicaSet metadata: - name: my-app + name: my-app-v2 labels: app: my-app spec: From 052cd5838bc55f7eae8763fb201b682c822b46d3 Mon Sep 17 00:00:00 2001 From: SANDEEP RAWAT Date: Sun, 11 Apr 2021 14:18:38 +0530 Subject: [PATCH 06/17] Added witing part --- deployment-strategies/recreate/recreate.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/deployment-strategies/recreate/recreate.sh b/deployment-strategies/recreate/recreate.sh index 7024de2..28580b9 100755 --- a/deployment-strategies/recreate/recreate.sh +++ b/deployment-strategies/recreate/recreate.sh @@ -11,12 +11,15 @@ function startDeployment() { function recreateDeployment() { setReplicaForRS my-app-v1 0 apply_manifest ../rs2.yaml + setReplicaForRS my-app-v2 5 + waitForRS my-app-v2 5 replicaSetStatus } function rollback() { setReplicaForRS my-app-v2 0 setReplicaForRS my-app-v1 5 + waitForRS my-app-v1 5 replicaSetStatus } From cbdedd5026a2006e8c50ef57fe7d5e1481c5c2bd Mon Sep 17 00:00:00 2001 From: himanshuDevopsGuy Date: Thu, 15 Apr 2021 23:20:36 +0530 Subject: [PATCH 07/17] some change --- deployment-strategies/recreate/recreate.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deployment-strategies/recreate/recreate.sh b/deployment-strategies/recreate/recreate.sh index c92d381..9f8cb00 100755 --- a/deployment-strategies/recreate/recreate.sh +++ b/deployment-strategies/recreate/recreate.sh @@ -10,7 +10,7 @@ kubectl apply -f service.yaml replica_count=`kubectl get rs my-app-v1 -o json | jq '.status.readyReplicas'` while [ $replica_count != 5 ] do - echo "Reday replicas of Version 1 : $replica_count" + echo "Ready replicas of Version 1 : $replica_count" sleep 1s replica_count=`kubectl get rs my-app-v1 -o json | jq '.status.readyReplicas'` done @@ -34,4 +34,4 @@ n) *) echo "Invalid option select y to yes and n to exit" ;; -esac \ No newline at end of file +esac From d6ca387984ba7de805acb1db8a6ff5c2e9f2370e Mon Sep 17 00:00:00 2001 From: Abhishek Dubey Date: Fri, 16 Apr 2021 18:39:27 +0530 Subject: [PATCH 08/17] Update Makefile --- deployment-strategies/rolling-update/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/deployment-strategies/rolling-update/Makefile b/deployment-strategies/rolling-update/Makefile index d2b7b9b..b63a4d0 100644 --- a/deployment-strategies/rolling-update/Makefile +++ b/deployment-strategies/rolling-update/Makefile @@ -1,3 +1,5 @@ +SHELL := /bin/bash + initialSetup: source rolling.sh;startDeployment @@ -9,4 +11,3 @@ rollback: tearDown: source rolling.sh;cleanUp - From 0b1504f1ab7c631c2e460c1f25a27c6263986f1c Mon Sep 17 00:00:00 2001 From: Abhishek Dubey Date: Fri, 16 Apr 2021 18:39:43 +0530 Subject: [PATCH 09/17] Update Makefile --- deployment-strategies/recreate/Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/deployment-strategies/recreate/Makefile b/deployment-strategies/recreate/Makefile index f14b226..5646fad 100644 --- a/deployment-strategies/recreate/Makefile +++ b/deployment-strategies/recreate/Makefile @@ -1,3 +1,5 @@ +SHELL := /bin/bash + initialSetup: source recreate.sh;startDeployment From f7a169bb8f8d49d6d2c0a6ba238e482f128be80f Mon Sep 17 00:00:00 2001 From: rachit shrivastava Date: Fri, 16 Apr 2021 23:18:19 +0530 Subject: [PATCH 10/17] changing scripts as per team --- .../recreate/app-v1-deploy.yaml | 59 +++++++++++++++++++ .../recreate/app-v2-deploy.yaml | 44 ++++++++++++++ deployment-strategies/rs1.yaml | 4 +- deployment-strategies/rs2.yaml | 4 +- deployment-strategies/service.yaml | 4 +- 5 files changed, 109 insertions(+), 6 deletions(-) create mode 100644 deployment-strategies/recreate/app-v1-deploy.yaml create mode 100644 deployment-strategies/recreate/app-v2-deploy.yaml diff --git a/deployment-strategies/recreate/app-v1-deploy.yaml b/deployment-strategies/recreate/app-v1-deploy.yaml new file mode 100644 index 0000000..32bfeb5 --- /dev/null +++ b/deployment-strategies/recreate/app-v1-deploy.yaml @@ -0,0 +1,59 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: my-app + labels: + app: my-app +spec: + replicas: 3 + strategy: + type: Recreate + selector: + matchLabels: + app: my-app-team-z + template: + metadata: + labels: + app: my-app-team-z + version: v1.0.0 + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "9101" + spec: + containers: + - name: my-app + image: containersol/k8s-deployment-strategies + ports: + - name: http + containerPort: 8080 + - name: probe + containerPort: 8086 + env: + - name: VERSION + value: v1.0.0 + livenessProbe: + httpGet: + path: /live + port: probe + initialDelaySeconds: 5 + periodSeconds: 5 + readinessProbe: + httpGet: + path: /ready + port: probe + periodSeconds: 5 +--- +apiVersion: v1 +kind: Service +metadata: + name: my-app + labels: + app: my-app-team-z +spec: + type: NodePort + ports: + - name: http + port: 80 + targetPort: http + selector: + app: my-app-team-z diff --git a/deployment-strategies/recreate/app-v2-deploy.yaml b/deployment-strategies/recreate/app-v2-deploy.yaml new file mode 100644 index 0000000..29e8f5a --- /dev/null +++ b/deployment-strategies/recreate/app-v2-deploy.yaml @@ -0,0 +1,44 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: my-app + labels: + app: my-app +spec: + replicas: 3 + selector: + matchLabels: + app: my-app-team-z + strategy: + type: Recreate + template: + metadata: + labels: + app: my-app-team-z + version: v2.0.0 + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "9101" + spec: + containers: + - name: my-app + image: containersol/k8s-deployment-strategies + ports: + - name: http + containerPort: 8080 + - name: probe + containerPort: 8086 + env: + - name: VERSION + value: v2.0.0 + livenessProbe: + httpGet: + path: /live + port: probe + initialDelaySeconds: 5 + periodSeconds: 5 + readinessProbe: + httpGet: + path: /ready + port: probe + periodSeconds: 5 diff --git a/deployment-strategies/rs1.yaml b/deployment-strategies/rs1.yaml index 8faa1c3..d0d350a 100644 --- a/deployment-strategies/rs1.yaml +++ b/deployment-strategies/rs1.yaml @@ -9,11 +9,11 @@ spec: replicas: 5 selector: matchLabels: - app: my-app + app: my-app-team-z template: metadata: labels: - app: my-app + app: my-app-team-z version: v1.0.0 annotations: prometheus.io/scrape: "true" diff --git a/deployment-strategies/rs2.yaml b/deployment-strategies/rs2.yaml index 87bd7ee..da9d7ba 100644 --- a/deployment-strategies/rs2.yaml +++ b/deployment-strategies/rs2.yaml @@ -9,11 +9,11 @@ spec: replicas: 0 selector: matchLabels: - app: my-app + app: my-app-team-z template: metadata: labels: - app: my-app + app: my-app-team-z version: v2.0.0 annotations: prometheus.io/scrape: "true" diff --git a/deployment-strategies/service.yaml b/deployment-strategies/service.yaml index b84c8f1..b1802cc 100644 --- a/deployment-strategies/service.yaml +++ b/deployment-strategies/service.yaml @@ -3,7 +3,7 @@ kind: Service metadata: name: my-app labels: - app: my-app + app: my-app-team-z spec: type: NodePort ports: @@ -11,4 +11,4 @@ spec: port: 80 targetPort: http selector: - app: my-app + app: my-app-team-z From 3d76b966353392fbf413cf5b0fdb8c04c50e4bde Mon Sep 17 00:00:00 2001 From: himanshuDevopsGuy Date: Sat, 17 Apr 2021 01:06:24 +0530 Subject: [PATCH 11/17] added depployment files for rolling update --- .../rolling-update/app-v1-deploy.yaml | 57 +++++++++++++++++++ .../rolling-update/app-v2-deploy.yaml | 47 +++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 deployment-strategies/rolling-update/app-v1-deploy.yaml create mode 100644 deployment-strategies/rolling-update/app-v2-deploy.yaml diff --git a/deployment-strategies/rolling-update/app-v1-deploy.yaml b/deployment-strategies/rolling-update/app-v1-deploy.yaml new file mode 100644 index 0000000..9f5719a --- /dev/null +++ b/deployment-strategies/rolling-update/app-v1-deploy.yaml @@ -0,0 +1,57 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: my-app + labels: + app: my-app +spec: + replicas: 10 + selector: + matchLabels: + app: my-app-team-z + template: + metadata: + labels: + app: my-app-team-z + version: v1.0.0 + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "9101" + spec: + containers: + - name: my-app + image: containersol/k8s-deployment-strategies + ports: + - name: http + containerPort: 8080 + - name: probe + containerPort: 8086 + env: + - name: VERSION + value: v1.0.0 + livenessProbe: + httpGet: + path: /live + port: probe + initialDelaySeconds: 5 + periodSeconds: 5 + readinessProbe: + httpGet: + path: /ready + port: probe + periodSeconds: 5 +--- +apiVersion: v1 +kind: Service +metadata: + name: my-app + labels: + app: my-app-team-z +spec: + type: NodePort + ports: + - name: http + port: 80 + targetPort: http + selector: + app: my-app-team-z diff --git a/deployment-strategies/rolling-update/app-v2-deploy.yaml b/deployment-strategies/rolling-update/app-v2-deploy.yaml new file mode 100644 index 0000000..72971fc --- /dev/null +++ b/deployment-strategies/rolling-update/app-v2-deploy.yaml @@ -0,0 +1,47 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: my-app + labels: + app: my-app +spec: + replicas: 10 + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 + selector: + matchLabels: + app: my-app-team-z + template: + metadata: + labels: + app: my-app-team-z + version: v2.0.0 + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "9101" + spec: + containers: + - name: my-app + image: containersol/k8s-deployment-strategies + ports: + - name: http + containerPort: 8080 + - name: probe + containerPort: 8086 + env: + - name: VERSION + value: v2.0.0 + livenessProbe: + httpGet: + path: /live + port: probe + initialDelaySeconds: 5 + periodSeconds: 5 + readinessProbe: + httpGet: + path: /ready + port: probe + periodSeconds: 5 \ No newline at end of file From 7dce4b4c9e535b148c0a08c302a8c9951bc403d4 Mon Sep 17 00:00:00 2001 From: Heena Sejwal Date: Sat, 17 Apr 2021 01:34:18 +0530 Subject: [PATCH 12/17] adding tear_down and made changes --- deployment-strategies/blue-green/deploy-blue.sh | 4 +++- deployment-strategies/blue-green/rs1.yaml | 4 ++-- deployment-strategies/blue-green/rs2.yaml | 4 ++-- deployment-strategies/blue-green/service-blue.yaml | 4 ++-- deployment-strategies/blue-green/service-green.yaml | 4 ++-- deployment-strategies/blue-green/tear_down.sh | 8 ++++++++ 6 files changed, 19 insertions(+), 9 deletions(-) create mode 100755 deployment-strategies/blue-green/tear_down.sh diff --git a/deployment-strategies/blue-green/deploy-blue.sh b/deployment-strategies/blue-green/deploy-blue.sh index 129f1be..6873fe9 100755 --- a/deployment-strategies/blue-green/deploy-blue.sh +++ b/deployment-strategies/blue-green/deploy-blue.sh @@ -6,4 +6,6 @@ #service-blue.yaml kubectl apply -f $blue_app kubectl apply -f $blue_svc -echo "perform testing of your blue version --curl my-app-blue" \ No newline at end of file +#kubectl apply -f rs2.yaml +#kubectl apply -f service-blue.yaml +echo "perform testing of your blue version --curl my-app-blue" diff --git a/deployment-strategies/blue-green/rs1.yaml b/deployment-strategies/blue-green/rs1.yaml index 8e4c68d..bda3e3b 100644 --- a/deployment-strategies/blue-green/rs1.yaml +++ b/deployment-strategies/blue-green/rs1.yaml @@ -9,12 +9,12 @@ spec: replicas: 5 selector: matchLabels: - app: my-app + app: my-app-team-y version: v1.0.0 template: metadata: labels: - app: my-app + app: my-app-team-y version: v1.0.0 annotations: prometheus.io/scrape: "true" diff --git a/deployment-strategies/blue-green/rs2.yaml b/deployment-strategies/blue-green/rs2.yaml index 345065c..9b38535 100644 --- a/deployment-strategies/blue-green/rs2.yaml +++ b/deployment-strategies/blue-green/rs2.yaml @@ -9,12 +9,12 @@ spec: replicas: 5 selector: matchLabels: - app: my-app + app: my-app-team-y version: v2.0.0 template: metadata: labels: - app: my-app + app: my-app-team-y version: v2.0.0 annotations: prometheus.io/scrape: "true" diff --git a/deployment-strategies/blue-green/service-blue.yaml b/deployment-strategies/blue-green/service-blue.yaml index 7cec494..dfa211b 100644 --- a/deployment-strategies/blue-green/service-blue.yaml +++ b/deployment-strategies/blue-green/service-blue.yaml @@ -3,7 +3,7 @@ kind: Service metadata: name: my-app-blue labels: - app: my-app + app: my-app-team-y spec: type: NodePort ports: @@ -11,5 +11,5 @@ spec: port: 80 targetPort: http selector: - app: my-app + app: my-app-team-y version: v2.0.0 diff --git a/deployment-strategies/blue-green/service-green.yaml b/deployment-strategies/blue-green/service-green.yaml index 3226d6b..fa46d8f 100644 --- a/deployment-strategies/blue-green/service-green.yaml +++ b/deployment-strategies/blue-green/service-green.yaml @@ -3,7 +3,7 @@ kind: Service metadata: name: my-app-green labels: - app: my-app + app: my-app-team-y spec: type: NodePort ports: @@ -11,5 +11,5 @@ spec: port: 80 targetPort: http selector: - app: my-app + app: my-app-team-y version: v1.0.0 diff --git a/deployment-strategies/blue-green/tear_down.sh b/deployment-strategies/blue-green/tear_down.sh new file mode 100755 index 0000000..40f81e5 --- /dev/null +++ b/deployment-strategies/blue-green/tear_down.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +teardown (){ + +kubectl delete -f rs1.yaml -f rs2.yaml +kubectl delete -f service-green.yaml -f service-blue.yaml +} +teardown From 6a290403c8560aad78d5a0c16243056ae8f9c365 Mon Sep 17 00:00:00 2001 From: rachit shrivastava Date: Sat, 17 Apr 2021 01:50:35 +0530 Subject: [PATCH 13/17] adding nginx deployment --- .../nginx-deployment/deployment.yaml | 20 +++++++++++++++++++ .../nginx-deployment/service.yaml | 11 ++++++++++ 2 files changed, 31 insertions(+) create mode 100644 deployment-strategies/nginx-deployment/deployment.yaml create mode 100644 deployment-strategies/nginx-deployment/service.yaml diff --git a/deployment-strategies/nginx-deployment/deployment.yaml b/deployment-strategies/nginx-deployment/deployment.yaml new file mode 100644 index 0000000..b5f8f37 --- /dev/null +++ b/deployment-strategies/nginx-deployment/deployment.yaml @@ -0,0 +1,20 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nginx-deployment +spec: + selector: + matchLabels: + app: nginx + replicas: 2 # tells deployment to run 2 pods matching the template + template: + metadata: + labels: + app: nginx + spec: + containers: + - name: nginx + image: nginx + ports: + - containerPort: 80 + diff --git a/deployment-strategies/nginx-deployment/service.yaml b/deployment-strategies/nginx-deployment/service.yaml new file mode 100644 index 0000000..84ddb02 --- /dev/null +++ b/deployment-strategies/nginx-deployment/service.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Service +metadata: + name: my-nginx +spec: + selector: + app: nginx + ports: + - protocol: TCP + port: 80 + targetPort: 80 From 86511088209987d0521e08383f59a84a07152f21 Mon Sep 17 00:00:00 2001 From: rachit shrivastava Date: Sat, 17 Apr 2021 01:53:31 +0530 Subject: [PATCH 14/17] rearranging rolling yaml --- deployment-strategies/recreate/app-v2-deploy.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deployment-strategies/recreate/app-v2-deploy.yaml b/deployment-strategies/recreate/app-v2-deploy.yaml index 6835303..a25bf73 100644 --- a/deployment-strategies/recreate/app-v2-deploy.yaml +++ b/deployment-strategies/recreate/app-v2-deploy.yaml @@ -6,11 +6,11 @@ metadata: app: my-app spec: replicas: 3 + strategy: + type: Recreate selector: matchLabels: app: my-app-team-z - strategy: - type: Recreate template: metadata: labels: From dcc3b9e1e59f274d1655e071271e4b20fcc7a846 Mon Sep 17 00:00:00 2001 From: rachit shrivastava Date: Sat, 17 Apr 2021 02:04:28 +0530 Subject: [PATCH 15/17] adding pod for testing --- .../nginx-deployment/test-pod.yaml | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 deployment-strategies/nginx-deployment/test-pod.yaml diff --git a/deployment-strategies/nginx-deployment/test-pod.yaml b/deployment-strategies/nginx-deployment/test-pod.yaml new file mode 100644 index 0000000..f796f8c --- /dev/null +++ b/deployment-strategies/nginx-deployment/test-pod.yaml @@ -0,0 +1,26 @@ +test-pod.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: test +spec: + selector: + matchLabels: + app: test + replicas: 1 + template: + metadata: + labels: + app: test + spec: + containers: + - name: test + image: rachitsrivastava007/sleep:8 + ports: + - containerPort: 80 + args: + - -c + - while true; do echo hello; sleep 10;done + command: + - /bin/sh + From 0d5ed6c6df0cf5e9ecfd2e28294ae4912e393cbf Mon Sep 17 00:00:00 2001 From: rachit shrivastava Date: Sat, 17 Apr 2021 02:06:11 +0530 Subject: [PATCH 16/17] renaming --- .../nginx-deployment/{test-pod.yaml => test-ms.yaml} | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename deployment-strategies/nginx-deployment/{test-pod.yaml => test-ms.yaml} (85%) diff --git a/deployment-strategies/nginx-deployment/test-pod.yaml b/deployment-strategies/nginx-deployment/test-ms.yaml similarity index 85% rename from deployment-strategies/nginx-deployment/test-pod.yaml rename to deployment-strategies/nginx-deployment/test-ms.yaml index f796f8c..3ef22fa 100644 --- a/deployment-strategies/nginx-deployment/test-pod.yaml +++ b/deployment-strategies/nginx-deployment/test-ms.yaml @@ -2,19 +2,19 @@ test-pod.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: test + name: ms spec: selector: matchLabels: - app: test + app: ms replicas: 1 template: metadata: labels: - app: test + app: ms spec: containers: - - name: test + - name: ms image: rachitsrivastava007/sleep:8 ports: - containerPort: 80 From 692a4349bb7832b91e181c8847d59efcee915417 Mon Sep 17 00:00:00 2001 From: rachit shrivastava Date: Sat, 17 Apr 2021 10:32:13 +0530 Subject: [PATCH 17/17] removing comments --- deployment-strategies/blue-green/deploy-blue.sh | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/deployment-strategies/blue-green/deploy-blue.sh b/deployment-strategies/blue-green/deploy-blue.sh index 6873fe9..115af82 100755 --- a/deployment-strategies/blue-green/deploy-blue.sh +++ b/deployment-strategies/blue-green/deploy-blue.sh @@ -1,11 +1,4 @@ #!/bin/bash -#primary=$1 -#blue_app=$1 -#blue_svc=$2 -#rs2.yaml -#service-blue.yaml -kubectl apply -f $blue_app -kubectl apply -f $blue_svc -#kubectl apply -f rs2.yaml -#kubectl apply -f service-blue.yaml +kubectl apply -f rs2.yaml +kubectl apply -f service-blue.yaml echo "perform testing of your blue version --curl my-app-blue"