From 5140545ac008c9effa650b050432a5670c354451 Mon Sep 17 00:00:00 2001 From: m-okeefe Date: Tue, 29 Jan 2019 11:18:42 -0800 Subject: [PATCH] demo.yaml is generated --- hack/README.md | 2 +- hack/make-release-artifacts.sh | 23 +++- release/.googleheader | 13 ++ release/kubernetes-manifests/demo.yaml | 163 ++++++++++++------------- 4 files changed, 111 insertions(+), 90 deletions(-) create mode 100644 release/.googleheader diff --git a/hack/README.md b/hack/README.md index d949e34..41d89df 100755 --- a/hack/README.md +++ b/hack/README.md @@ -13,6 +13,6 @@ releases. ### scripts 1. `./make-docker-images.sh`: builds and pushes images to the specified Docker repository. -2. `./make-release-artifacts.sh`: injects updated images/tag into +2. `./make-release-artifacts.sh`: generates a combined YAML file with image $TAG at: `./release/kubernetes-manifests/demo.yaml`. 3. `./make-release.sh`: runs scripts 1 and 2, then runs `git tag` / pushes updated manifests to master. diff --git a/hack/make-release-artifacts.sh b/hack/make-release-artifacts.sh index 9b6dc6e..1479f8a 100755 --- a/hack/make-release-artifacts.sh +++ b/hack/make-release-artifacts.sh @@ -23,10 +23,25 @@ fail() { log "$1"; exit 1; } TAG="${TAG?TAG env variable must be specified}" REPO_PREFIX="${REPO_PREFIX?REPO_PREFIX env variable must be specified}" - -# inject new tag into the relevant k8s manifest +# overwrite release/ with the latest manifests, adding "---" separator. +src="./kubernetes-manifests/*" manifestfile="./release/kubernetes-manifests/demo.yaml" +tmp="./release/kubernetes-manifests/tmp.yaml" +[ -e $manifestfile ] && rm $manifestfile +for f in $src; do (cat "${f}"; echo "---") >> $tmp; done +# remove extra google headers +gsed -i '/^#/d' $tmp + +# remove empty lines +gsed -r -i '/^\s*$/d' $tmp + +# add 1 google header to the top +cat "./release/.googleheader" $tmp > $manifestfile +rm $tmp + + +# replace image repo, tag for each deployment for dir in ./src/*/ do svcname="$(basename $dir)" @@ -34,7 +49,7 @@ do pattern="^(\s*)image:\s.*$svcname(.*)(\s*)" replace="\1image: $image\3" - gsed -r -i "s|$pattern|$replace|g" $manifestfile + gsed -r -i "s|$pattern|$replace|g" $manifestfile done -log "Successfully injected image tag into demo.yaml". +log "Successfully added image tags > wrote to demo.yaml". diff --git a/release/.googleheader b/release/.googleheader new file mode 100644 index 0000000..ddd71c0 --- /dev/null +++ b/release/.googleheader @@ -0,0 +1,13 @@ +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/release/kubernetes-manifests/demo.yaml b/release/kubernetes-manifests/demo.yaml index 6b0e498..f46670e 100644 --- a/release/kubernetes-manifests/demo.yaml +++ b/release/kubernetes-manifests/demo.yaml @@ -11,8 +11,6 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - - apiVersion: extensions/v1beta1 kind: Deployment metadata: @@ -129,38 +127,38 @@ spec: app: checkoutservice spec: containers: - - name: server - image: checkoutservice - ports: - - containerPort: 5050 - readinessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:5050"] - livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:5050"] - env: - - name: PRODUCT_CATALOG_SERVICE_ADDR - value: "productcatalogservice:3550" - - name: SHIPPING_SERVICE_ADDR - value: "shippingservice:50051" - - name: PAYMENT_SERVICE_ADDR - value: "paymentservice:50051" - - name: EMAIL_SERVICE_ADDR - value: "emailservice:5000" - - name: CURRENCY_SERVICE_ADDR - value: "currencyservice:7000" - - name: CART_SERVICE_ADDR - value: "cartservice:7070" - # - name: JAEGER_SERVICE_ADDR - # value: "jaeger-collector:14268" - resources: - requests: - cpu: 100m - memory: 64Mi - limits: - cpu: 200m - memory: 128Mi + - name: server + image: checkoutservice + ports: + - containerPort: 5050 + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:5050"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:5050"] + env: + - name: PRODUCT_CATALOG_SERVICE_ADDR + value: "productcatalogservice:3550" + - name: SHIPPING_SERVICE_ADDR + value: "shippingservice:50051" + - name: PAYMENT_SERVICE_ADDR + value: "paymentservice:50051" + - name: EMAIL_SERVICE_ADDR + value: "emailservice:5000" + - name: CURRENCY_SERVICE_ADDR + value: "currencyservice:7000" + - name: CART_SERVICE_ADDR + value: "cartservice:7070" + # - name: JAEGER_SERVICE_ADDR + # value: "jaeger-collector:14268" + resources: + requests: + cpu: 100m + memory: 64Mi + limits: + cpu: 200m + memory: 128Mi --- apiVersion: v1 kind: Service @@ -275,50 +273,50 @@ spec: app: frontend spec: containers: - - name: server - image: frontend - ports: - - containerPort: 8080 - readinessProbe: - initialDelaySeconds: 10 - httpGet: - path: "/_healthz" - port: 8080 - httpHeaders: - - name: "Cookie" - value: "shop_session-id=x-readiness-probe" - livenessProbe: - initialDelaySeconds: 10 - httpGet: - path: "/_healthz" - port: 8080 - httpHeaders: - - name: "Cookie" - value: "shop_session-id=x-liveness-probe" - env: - - name: PRODUCT_CATALOG_SERVICE_ADDR - value: "productcatalogservice:3550" - - name: CURRENCY_SERVICE_ADDR - value: "currencyservice:7000" - - name: CART_SERVICE_ADDR - value: "cartservice:7070" - - name: RECOMMENDATION_SERVICE_ADDR - value: "recommendationservice:8080" - - name: SHIPPING_SERVICE_ADDR - value: "shippingservice:50051" - - name: CHECKOUT_SERVICE_ADDR - value: "checkoutservice:5050" - - name: AD_SERVICE_ADDR - value: "adservice:9555" - # - name: JAEGER_SERVICE_ADDR - # value: "jaeger-collector:14268" - resources: - requests: - cpu: 100m - memory: 64Mi - limits: - cpu: 200m - memory: 128Mi + - name: server + image: frontend + ports: + - containerPort: 8080 + readinessProbe: + initialDelaySeconds: 10 + httpGet: + path: "/_healthz" + port: 8080 + httpHeaders: + - name: "Cookie" + value: "shop_session-id=x-readiness-probe" + livenessProbe: + initialDelaySeconds: 10 + httpGet: + path: "/_healthz" + port: 8080 + httpHeaders: + - name: "Cookie" + value: "shop_session-id=x-liveness-probe" + env: + - name: PRODUCT_CATALOG_SERVICE_ADDR + value: "productcatalogservice:3550" + - name: CURRENCY_SERVICE_ADDR + value: "currencyservice:7000" + - name: CART_SERVICE_ADDR + value: "cartservice:7070" + - name: RECOMMENDATION_SERVICE_ADDR + value: "recommendationservice:8080" + - name: SHIPPING_SERVICE_ADDR + value: "shippingservice:50051" + - name: CHECKOUT_SERVICE_ADDR + value: "checkoutservice:5050" + - name: AD_SERVICE_ADDR + value: "adservice:9555" + # - name: JAEGER_SERVICE_ADDR + # value: "jaeger-collector:14268" + resources: + requests: + cpu: 100m + memory: 64Mi + limits: + cpu: 200m + memory: 128Mi --- apiVersion: v1 kind: Service @@ -361,7 +359,7 @@ spec: restartPolicy: Always initContainers: - name: wait-frontend - image: loadgenerator + image: alpine:3.6 command: ['sh', '-c', 'set -x; apk add --no-cache curl; until timeout -t 2 curl -f "http://${FRONTEND_ADDR}"; do echo "waiting for http://${FRONTEND_ADDR}"; @@ -451,9 +449,6 @@ spec: livenessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:3550"] -# env: -# - name: JAEGER_SERVICE_ADDR -# value: "jaeger-collector:14268" resources: requests: cpu: 100m @@ -595,9 +590,6 @@ spec: livenessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:50051"] -# env: -# - name: JAEGER_SERVICE_ADDR -# value: "jaeger-collector:14268" resources: requests: cpu: 100m @@ -618,3 +610,4 @@ spec: - name: grpc port: 50051 targetPort: 50051 +---