From 74c34776dda78514415365968b634aa97eb2e2cb Mon Sep 17 00:00:00 2001 From: Dmitry Date: Mon, 6 Jul 2020 14:19:29 -0700 Subject: [PATCH] Make namespace and toleration configurable --- README.md | 2 -- hack/make-release-artifacts.sh | 21 ++++++++++++++++--- kubernetes-manifests/adservice.yaml | 5 ----- kubernetes-manifests/cartservice.yaml | 5 ----- kubernetes-manifests/checkoutservice.yaml | 5 ----- kubernetes-manifests/currencyservice.yaml | 5 ----- kubernetes-manifests/emailservice.yaml | 5 ----- kubernetes-manifests/frontend.yaml | 6 ------ kubernetes-manifests/loadgenerator.yaml | 5 ----- kubernetes-manifests/paymentservice.yaml | 5 ----- .../productcatalogservice.yaml | 5 ----- .../recommendationservice.yaml | 5 ----- kubernetes-manifests/redis.yaml | 5 ----- kubernetes-manifests/shippingservice.yaml | 5 ----- 14 files changed, 18 insertions(+), 66 deletions(-) diff --git a/README.md b/README.md index eb6d364..0506344 100644 --- a/README.md +++ b/README.md @@ -137,8 +137,6 @@ We offer the following installation methods: 1. Run `kubectl get nodes` to verify you're connected to “Kubernetes on Docker”. -1. Run `kubectl create ns demo-env` to create a namespace to run the app in. - 1. Run `skaffold run` (first time will be slow, it can take ~20 minutes). This will build and deploy the application. If you need to rebuild the images automatically as you refactor the code, run `skaffold dev` command. diff --git a/hack/make-release-artifacts.sh b/hack/make-release-artifacts.sh index 1a05474..d769e7a 100755 --- a/hack/make-release-artifacts.sh +++ b/hack/make-release-artifacts.sh @@ -27,6 +27,10 @@ TAG="${TAG:?TAG env variable must be specified}" REPO_PREFIX="${REPO_PREFIX:?REPO_PREFIX env variable must be specified}" DOMAIN="${DOMAIN:?DOMAIN env variable must be specified}" OUT_DIR="${OUT_DIR:-${SCRIPTDIR}/../release}" +NODE_SELECTOR_KEY="${NODE_SELECTOR_KEY:--}" +NODE_SELECTOR_VALUE="${NODE_SELECTOR_VALUE:--}" +TOLERATION_KEY="${TOLERATION_KEY:--}" +TOLERATION_VALUE="${TOLERATION_VALUE:--}" print_license_header() { cat "${SCRIPTDIR}/license_header.txt" @@ -79,9 +83,20 @@ mk_kubernetes_manifests() { done # insert node selector - pattern="^(\s*)nodeSelector:" - replace="\1nodeSelector: \n\1 dedicated: demo-env" - out_manifest="$(gsed -r "s|$pattern|$replace|g" <(echo "${out_manifest}") )" + if [ ${NODE_SELECTOR_KEY} != "-" ] && [ ${NODE_SELECTOR_VALUE} != "-" ] + then + pattern="^(\s*)nodeSelector:" + replace="\1nodeSelector: \n\1 ${NODE_SELECTOR_KEY}: ${NODE_SELECTOR_VALUE}" + out_manifest="$(gsed -r "s|$pattern|$replace|g" <(echo "${out_manifest}") )" + fi + + # insert toleration + if [ ${TOLERATION_KEY} != "-" ] && [ ${TOLERATION_VALUE} != "-" ] + then + pattern="^(\s*)tolerations:" + replace="\1tolerations: \n\1- key: ${TOLERATION_KEY}\n\1 operator: Equal\n\1 value: ${TOLERATION_VALUE}" + out_manifest="$(gsed -r "s|$pattern|$replace|g" <(echo "${out_manifest}") )" + fi # substitude loadgenerator port: 8089 -> 80 pattern="^(\s*)port:\s+8089(\s*)" diff --git a/kubernetes-manifests/adservice.yaml b/kubernetes-manifests/adservice.yaml index 1b571c8..257c6f2 100644 --- a/kubernetes-manifests/adservice.yaml +++ b/kubernetes-manifests/adservice.yaml @@ -16,7 +16,6 @@ apiVersion: apps/v1 kind: Deployment metadata: name: adservice - namespace: demo-env spec: selector: matchLabels: @@ -28,9 +27,6 @@ spec: spec: terminationGracePeriodSeconds: 5 tolerations: - - key: dedicated - operator: Equal - value: demo-env nodeSelector: containers: - name: server @@ -69,7 +65,6 @@ apiVersion: v1 kind: Service metadata: name: adservice - namespace: demo-env spec: type: ClusterIP selector: diff --git a/kubernetes-manifests/cartservice.yaml b/kubernetes-manifests/cartservice.yaml index bc6495e..dd03f90 100644 --- a/kubernetes-manifests/cartservice.yaml +++ b/kubernetes-manifests/cartservice.yaml @@ -16,7 +16,6 @@ apiVersion: apps/v1 kind: Deployment metadata: name: cartservice - namespace: demo-env spec: selector: matchLabels: @@ -28,9 +27,6 @@ spec: spec: terminationGracePeriodSeconds: 5 tolerations: - - key: dedicated - operator: Equal - value: demo-env nodeSelector: containers: - name: server @@ -65,7 +61,6 @@ apiVersion: v1 kind: Service metadata: name: cartservice - namespace: demo-env spec: type: ClusterIP selector: diff --git a/kubernetes-manifests/checkoutservice.yaml b/kubernetes-manifests/checkoutservice.yaml index d75aca2..485d941 100644 --- a/kubernetes-manifests/checkoutservice.yaml +++ b/kubernetes-manifests/checkoutservice.yaml @@ -16,7 +16,6 @@ apiVersion: apps/v1 kind: Deployment metadata: name: checkoutservice - namespace: demo-env spec: selector: matchLabels: @@ -27,9 +26,6 @@ spec: app: checkoutservice spec: tolerations: - - key: dedicated - operator: Equal - value: demo-env nodeSelector: containers: - name: server @@ -76,7 +72,6 @@ apiVersion: v1 kind: Service metadata: name: checkoutservice - namespace: demo-env spec: type: ClusterIP selector: diff --git a/kubernetes-manifests/currencyservice.yaml b/kubernetes-manifests/currencyservice.yaml index f62280e..e154774 100644 --- a/kubernetes-manifests/currencyservice.yaml +++ b/kubernetes-manifests/currencyservice.yaml @@ -16,7 +16,6 @@ apiVersion: apps/v1 kind: Deployment metadata: name: currencyservice - namespace: demo-env spec: selector: matchLabels: @@ -27,9 +26,6 @@ spec: app: currencyservice spec: tolerations: - - key: dedicated - operator: Equal - value: demo-env nodeSelector: terminationGracePeriodSeconds: 5 containers: @@ -65,7 +61,6 @@ apiVersion: v1 kind: Service metadata: name: currencyservice - namespace: demo-env spec: type: ClusterIP selector: diff --git a/kubernetes-manifests/emailservice.yaml b/kubernetes-manifests/emailservice.yaml index 946294d..922fef4 100644 --- a/kubernetes-manifests/emailservice.yaml +++ b/kubernetes-manifests/emailservice.yaml @@ -16,7 +16,6 @@ apiVersion: apps/v1 kind: Deployment metadata: name: emailservice - namespace: demo-env spec: selector: matchLabels: @@ -27,9 +26,6 @@ spec: app: emailservice spec: tolerations: - - key: dedicated - operator: Equal - value: demo-env nodeSelector: terminationGracePeriodSeconds: 5 containers: @@ -64,7 +60,6 @@ apiVersion: v1 kind: Service metadata: name: emailservice - namespace: demo-env spec: type: ClusterIP selector: diff --git a/kubernetes-manifests/frontend.yaml b/kubernetes-manifests/frontend.yaml index 102577e..0dec07d 100644 --- a/kubernetes-manifests/frontend.yaml +++ b/kubernetes-manifests/frontend.yaml @@ -16,7 +16,6 @@ apiVersion: apps/v1 kind: Deployment metadata: name: frontend - namespace: demo-env spec: selector: matchLabels: @@ -29,9 +28,6 @@ spec: sidecar.istio.io/rewriteAppHTTPProbers: "true" spec: tolerations: - - key: dedicated - operator: Equal - value: demo-env nodeSelector: containers: - name: server @@ -92,7 +88,6 @@ apiVersion: v1 kind: Service metadata: name: frontend - namespace: demo-env spec: type: ClusterIP selector: @@ -106,7 +101,6 @@ apiVersion: v1 kind: Service metadata: name: frontend-external - namespace: demo-env annotations: service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0 service.beta.kubernetes.io/aws-load-balancer-healthcheck-interval: "5" diff --git a/kubernetes-manifests/loadgenerator.yaml b/kubernetes-manifests/loadgenerator.yaml index 0571aff..ef3305e 100644 --- a/kubernetes-manifests/loadgenerator.yaml +++ b/kubernetes-manifests/loadgenerator.yaml @@ -15,7 +15,6 @@ apiVersion: apps/v1 kind: Deployment metadata: name: loadgenerator - namespace: demo-env spec: selector: matchLabels: @@ -29,9 +28,6 @@ spec: sidecar.istio.io/rewriteAppHTTPProbers: "true" spec: tolerations: - - key: dedicated - operator: Equal - value: demo-env nodeSelector: terminationGracePeriodSeconds: 5 restartPolicy: Always @@ -57,7 +53,6 @@ apiVersion: v1 kind: Service metadata: name: loadgenerator - namespace: demo-env annotations: service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0 service.beta.kubernetes.io/aws-load-balancer-healthcheck-interval: "5" diff --git a/kubernetes-manifests/paymentservice.yaml b/kubernetes-manifests/paymentservice.yaml index ff8df13..1819b81 100644 --- a/kubernetes-manifests/paymentservice.yaml +++ b/kubernetes-manifests/paymentservice.yaml @@ -16,7 +16,6 @@ apiVersion: apps/v1 kind: Deployment metadata: name: paymentservice - namespace: demo-env spec: selector: matchLabels: @@ -27,9 +26,6 @@ spec: app: paymentservice spec: tolerations: - - key: dedicated - operator: Equal - value: demo-env nodeSelector: terminationGracePeriodSeconds: 5 containers: @@ -58,7 +54,6 @@ apiVersion: v1 kind: Service metadata: name: paymentservice - namespace: demo-env spec: type: ClusterIP selector: diff --git a/kubernetes-manifests/productcatalogservice.yaml b/kubernetes-manifests/productcatalogservice.yaml index 48058ba..0fc7e40 100644 --- a/kubernetes-manifests/productcatalogservice.yaml +++ b/kubernetes-manifests/productcatalogservice.yaml @@ -16,7 +16,6 @@ apiVersion: apps/v1 kind: Deployment metadata: name: productcatalogservice - namespace: demo-env spec: selector: matchLabels: @@ -27,9 +26,6 @@ spec: app: productcatalogservice spec: tolerations: - - key: dedicated - operator: Equal - value: demo-env nodeSelector: terminationGracePeriodSeconds: 5 containers: @@ -65,7 +61,6 @@ apiVersion: v1 kind: Service metadata: name: productcatalogservice - namespace: demo-env spec: type: ClusterIP selector: diff --git a/kubernetes-manifests/recommendationservice.yaml b/kubernetes-manifests/recommendationservice.yaml index 3d097f3..68720a6 100644 --- a/kubernetes-manifests/recommendationservice.yaml +++ b/kubernetes-manifests/recommendationservice.yaml @@ -16,7 +16,6 @@ apiVersion: apps/v1 kind: Deployment metadata: name: recommendationservice - namespace: demo-env spec: selector: matchLabels: @@ -27,9 +26,6 @@ spec: app: recommendationservice spec: tolerations: - - key: dedicated - operator: Equal - value: demo-env nodeSelector: terminationGracePeriodSeconds: 5 containers: @@ -68,7 +64,6 @@ apiVersion: v1 kind: Service metadata: name: recommendationservice - namespace: demo-env spec: type: ClusterIP selector: diff --git a/kubernetes-manifests/redis.yaml b/kubernetes-manifests/redis.yaml index 7bc42f2..f97b1c4 100644 --- a/kubernetes-manifests/redis.yaml +++ b/kubernetes-manifests/redis.yaml @@ -16,7 +16,6 @@ apiVersion: apps/v1 kind: Deployment metadata: name: redis-cart - namespace: demo-env spec: selector: matchLabels: @@ -27,9 +26,6 @@ spec: app: redis-cart spec: tolerations: - - key: dedicated - operator: Equal - value: demo-env nodeSelector: containers: - name: redis @@ -62,7 +58,6 @@ apiVersion: v1 kind: Service metadata: name: redis-cart - namespace: demo-env spec: type: ClusterIP selector: diff --git a/kubernetes-manifests/shippingservice.yaml b/kubernetes-manifests/shippingservice.yaml index 2b3cf69..491e8c7 100644 --- a/kubernetes-manifests/shippingservice.yaml +++ b/kubernetes-manifests/shippingservice.yaml @@ -16,7 +16,6 @@ apiVersion: apps/v1 kind: Deployment metadata: name: shippingservice - namespace: demo-env spec: selector: matchLabels: @@ -27,9 +26,6 @@ spec: app: shippingservice spec: tolerations: - - key: dedicated - operator: Equal - value: demo-env nodeSelector: containers: - name: server @@ -65,7 +61,6 @@ apiVersion: v1 kind: Service metadata: name: shippingservice - namespace: demo-env spec: type: ClusterIP selector: