Make namespace and toleration configurable

This commit is contained in:
Dmitry 2020-07-06 14:19:29 -07:00 committed by Dmitrii Anoshin
parent 85242bffd9
commit 74c34776dd
14 changed files with 18 additions and 66 deletions

View file

@ -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 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). 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 This will build and deploy the application. If you need to rebuild the images
automatically as you refactor the code, run `skaffold dev` command. automatically as you refactor the code, run `skaffold dev` command.

View file

@ -27,6 +27,10 @@ TAG="${TAG:?TAG env variable must be specified}"
REPO_PREFIX="${REPO_PREFIX:?REPO_PREFIX env variable must be specified}" REPO_PREFIX="${REPO_PREFIX:?REPO_PREFIX env variable must be specified}"
DOMAIN="${DOMAIN:?DOMAIN env variable must be specified}" DOMAIN="${DOMAIN:?DOMAIN env variable must be specified}"
OUT_DIR="${OUT_DIR:-${SCRIPTDIR}/../release}" 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() { print_license_header() {
cat "${SCRIPTDIR}/license_header.txt" cat "${SCRIPTDIR}/license_header.txt"
@ -79,9 +83,20 @@ mk_kubernetes_manifests() {
done done
# insert node selector # insert node selector
pattern="^(\s*)nodeSelector:" if [ ${NODE_SELECTOR_KEY} != "-" ] && [ ${NODE_SELECTOR_VALUE} != "-" ]
replace="\1nodeSelector: \n\1 dedicated: demo-env" then
out_manifest="$(gsed -r "s|$pattern|$replace|g" <(echo "${out_manifest}") )" 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 # substitude loadgenerator port: 8089 -> 80
pattern="^(\s*)port:\s+8089(\s*)" pattern="^(\s*)port:\s+8089(\s*)"

View file

@ -16,7 +16,6 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: adservice name: adservice
namespace: demo-env
spec: spec:
selector: selector:
matchLabels: matchLabels:
@ -28,9 +27,6 @@ spec:
spec: spec:
terminationGracePeriodSeconds: 5 terminationGracePeriodSeconds: 5
tolerations: tolerations:
- key: dedicated
operator: Equal
value: demo-env
nodeSelector: nodeSelector:
containers: containers:
- name: server - name: server
@ -69,7 +65,6 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: adservice name: adservice
namespace: demo-env
spec: spec:
type: ClusterIP type: ClusterIP
selector: selector:

View file

@ -16,7 +16,6 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: cartservice name: cartservice
namespace: demo-env
spec: spec:
selector: selector:
matchLabels: matchLabels:
@ -28,9 +27,6 @@ spec:
spec: spec:
terminationGracePeriodSeconds: 5 terminationGracePeriodSeconds: 5
tolerations: tolerations:
- key: dedicated
operator: Equal
value: demo-env
nodeSelector: nodeSelector:
containers: containers:
- name: server - name: server
@ -65,7 +61,6 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: cartservice name: cartservice
namespace: demo-env
spec: spec:
type: ClusterIP type: ClusterIP
selector: selector:

View file

@ -16,7 +16,6 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: checkoutservice name: checkoutservice
namespace: demo-env
spec: spec:
selector: selector:
matchLabels: matchLabels:
@ -27,9 +26,6 @@ spec:
app: checkoutservice app: checkoutservice
spec: spec:
tolerations: tolerations:
- key: dedicated
operator: Equal
value: demo-env
nodeSelector: nodeSelector:
containers: containers:
- name: server - name: server
@ -76,7 +72,6 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: checkoutservice name: checkoutservice
namespace: demo-env
spec: spec:
type: ClusterIP type: ClusterIP
selector: selector:

View file

@ -16,7 +16,6 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: currencyservice name: currencyservice
namespace: demo-env
spec: spec:
selector: selector:
matchLabels: matchLabels:
@ -27,9 +26,6 @@ spec:
app: currencyservice app: currencyservice
spec: spec:
tolerations: tolerations:
- key: dedicated
operator: Equal
value: demo-env
nodeSelector: nodeSelector:
terminationGracePeriodSeconds: 5 terminationGracePeriodSeconds: 5
containers: containers:
@ -65,7 +61,6 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: currencyservice name: currencyservice
namespace: demo-env
spec: spec:
type: ClusterIP type: ClusterIP
selector: selector:

View file

@ -16,7 +16,6 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: emailservice name: emailservice
namespace: demo-env
spec: spec:
selector: selector:
matchLabels: matchLabels:
@ -27,9 +26,6 @@ spec:
app: emailservice app: emailservice
spec: spec:
tolerations: tolerations:
- key: dedicated
operator: Equal
value: demo-env
nodeSelector: nodeSelector:
terminationGracePeriodSeconds: 5 terminationGracePeriodSeconds: 5
containers: containers:
@ -64,7 +60,6 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: emailservice name: emailservice
namespace: demo-env
spec: spec:
type: ClusterIP type: ClusterIP
selector: selector:

View file

@ -16,7 +16,6 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: frontend name: frontend
namespace: demo-env
spec: spec:
selector: selector:
matchLabels: matchLabels:
@ -29,9 +28,6 @@ spec:
sidecar.istio.io/rewriteAppHTTPProbers: "true" sidecar.istio.io/rewriteAppHTTPProbers: "true"
spec: spec:
tolerations: tolerations:
- key: dedicated
operator: Equal
value: demo-env
nodeSelector: nodeSelector:
containers: containers:
- name: server - name: server
@ -92,7 +88,6 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: frontend name: frontend
namespace: demo-env
spec: spec:
type: ClusterIP type: ClusterIP
selector: selector:
@ -106,7 +101,6 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: frontend-external name: frontend-external
namespace: demo-env
annotations: annotations:
service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0 service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0
service.beta.kubernetes.io/aws-load-balancer-healthcheck-interval: "5" service.beta.kubernetes.io/aws-load-balancer-healthcheck-interval: "5"

View file

@ -15,7 +15,6 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: loadgenerator name: loadgenerator
namespace: demo-env
spec: spec:
selector: selector:
matchLabels: matchLabels:
@ -29,9 +28,6 @@ spec:
sidecar.istio.io/rewriteAppHTTPProbers: "true" sidecar.istio.io/rewriteAppHTTPProbers: "true"
spec: spec:
tolerations: tolerations:
- key: dedicated
operator: Equal
value: demo-env
nodeSelector: nodeSelector:
terminationGracePeriodSeconds: 5 terminationGracePeriodSeconds: 5
restartPolicy: Always restartPolicy: Always
@ -57,7 +53,6 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: loadgenerator name: loadgenerator
namespace: demo-env
annotations: annotations:
service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0 service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0
service.beta.kubernetes.io/aws-load-balancer-healthcheck-interval: "5" service.beta.kubernetes.io/aws-load-balancer-healthcheck-interval: "5"

View file

@ -16,7 +16,6 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: paymentservice name: paymentservice
namespace: demo-env
spec: spec:
selector: selector:
matchLabels: matchLabels:
@ -27,9 +26,6 @@ spec:
app: paymentservice app: paymentservice
spec: spec:
tolerations: tolerations:
- key: dedicated
operator: Equal
value: demo-env
nodeSelector: nodeSelector:
terminationGracePeriodSeconds: 5 terminationGracePeriodSeconds: 5
containers: containers:
@ -58,7 +54,6 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: paymentservice name: paymentservice
namespace: demo-env
spec: spec:
type: ClusterIP type: ClusterIP
selector: selector:

View file

@ -16,7 +16,6 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: productcatalogservice name: productcatalogservice
namespace: demo-env
spec: spec:
selector: selector:
matchLabels: matchLabels:
@ -27,9 +26,6 @@ spec:
app: productcatalogservice app: productcatalogservice
spec: spec:
tolerations: tolerations:
- key: dedicated
operator: Equal
value: demo-env
nodeSelector: nodeSelector:
terminationGracePeriodSeconds: 5 terminationGracePeriodSeconds: 5
containers: containers:
@ -65,7 +61,6 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: productcatalogservice name: productcatalogservice
namespace: demo-env
spec: spec:
type: ClusterIP type: ClusterIP
selector: selector:

View file

@ -16,7 +16,6 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: recommendationservice name: recommendationservice
namespace: demo-env
spec: spec:
selector: selector:
matchLabels: matchLabels:
@ -27,9 +26,6 @@ spec:
app: recommendationservice app: recommendationservice
spec: spec:
tolerations: tolerations:
- key: dedicated
operator: Equal
value: demo-env
nodeSelector: nodeSelector:
terminationGracePeriodSeconds: 5 terminationGracePeriodSeconds: 5
containers: containers:
@ -68,7 +64,6 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: recommendationservice name: recommendationservice
namespace: demo-env
spec: spec:
type: ClusterIP type: ClusterIP
selector: selector:

View file

@ -16,7 +16,6 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: redis-cart name: redis-cart
namespace: demo-env
spec: spec:
selector: selector:
matchLabels: matchLabels:
@ -27,9 +26,6 @@ spec:
app: redis-cart app: redis-cart
spec: spec:
tolerations: tolerations:
- key: dedicated
operator: Equal
value: demo-env
nodeSelector: nodeSelector:
containers: containers:
- name: redis - name: redis
@ -62,7 +58,6 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: redis-cart name: redis-cart
namespace: demo-env
spec: spec:
type: ClusterIP type: ClusterIP
selector: selector:

View file

@ -16,7 +16,6 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: shippingservice name: shippingservice
namespace: demo-env
spec: spec:
selector: selector:
matchLabels: matchLabels:
@ -27,9 +26,6 @@ spec:
app: shippingservice app: shippingservice
spec: spec:
tolerations: tolerations:
- key: dedicated
operator: Equal
value: demo-env
nodeSelector: nodeSelector:
containers: containers:
- name: server - name: server
@ -65,7 +61,6 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: shippingservice name: shippingservice
namespace: demo-env
spec: spec:
type: ClusterIP type: ClusterIP
selector: selector: