diff --git a/.gitignore b/.gitignore index 66f5f93..26ec7db 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,7 @@ pkg/ .skaffold-*.yaml .kubernetes-manifests-*/ .project -.eclipse.buildship.core.prefs \ No newline at end of file +.eclipse.buildship.core.prefs + +# ignore auto-generated k8s manifests +release/*.yaml \ No newline at end of file diff --git a/hack/make-release-artifacts.sh b/hack/make-release-artifacts.sh index 10fcb25..1523e6a 100755 --- a/hack/make-release-artifacts.sh +++ b/hack/make-release-artifacts.sh @@ -25,6 +25,7 @@ log() { echo "$1" >&2; } TAG="${TAG:?TAG env variable must be specified}" REPO_PREFIX="${REPO_PREFIX:?REPO_PREFIX env variable must be specified}" +FRONTEND_URL="${FRONTEND_URL:?FRONTEND_URL env variable must be specified}" OUT_DIR="${OUT_DIR:-${SCRIPTDIR}/../release}" print_license_header() { @@ -63,6 +64,9 @@ read_manifests() { mk_kubernetes_manifests() { out_manifest="$(read_manifests "${SCRIPTDIR}/../kubernetes-manifests")" + # replace env variables + out_manifest="$(echo "${out_manifest}" | envsubst)" + # replace "image" repo, tag for each service for dir in ./src/*/ do diff --git a/kubernetes-manifests/adservice.yaml b/kubernetes-manifests/adservice.yaml index 05dd9bb..20b8a19 100644 --- a/kubernetes-manifests/adservice.yaml +++ b/kubernetes-manifests/adservice.yaml @@ -16,6 +16,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: adservice + namespace: demo-env spec: selector: matchLabels: @@ -26,6 +27,12 @@ spec: app: adservice spec: terminationGracePeriodSeconds: 5 + tolerations: + - key: dedicated + operator: Equal + value: demo-env + nodeSelector: + dedicated: demo-env containers: - name: server image: adservice @@ -62,6 +69,7 @@ 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 31175da..9f63db8 100644 --- a/kubernetes-manifests/cartservice.yaml +++ b/kubernetes-manifests/cartservice.yaml @@ -16,6 +16,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: cartservice + namespace: demo-env spec: selector: matchLabels: @@ -26,6 +27,12 @@ spec: app: cartservice spec: terminationGracePeriodSeconds: 5 + tolerations: + - key: dedicated + operator: Equal + value: demo-env + nodeSelector: + dedicated: demo-env containers: - name: server image: cartservice @@ -59,6 +66,7 @@ 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 3e244c4..c3aafab 100644 --- a/kubernetes-manifests/checkoutservice.yaml +++ b/kubernetes-manifests/checkoutservice.yaml @@ -16,6 +16,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: checkoutservice + namespace: demo-env spec: selector: matchLabels: @@ -25,6 +26,12 @@ spec: labels: app: checkoutservice spec: + tolerations: + - key: dedicated + operator: Equal + value: demo-env + nodeSelector: + dedicated: demo-env containers: - name: server image: checkoutservice @@ -71,6 +78,7 @@ 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 5c10ec7..986c56b 100644 --- a/kubernetes-manifests/currencyservice.yaml +++ b/kubernetes-manifests/currencyservice.yaml @@ -16,6 +16,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: currencyservice + namespace: demo-env spec: selector: matchLabels: @@ -25,6 +26,12 @@ spec: labels: app: currencyservice spec: + tolerations: + - key: dedicated + operator: Equal + value: demo-env + nodeSelector: + dedicated: demo-env terminationGracePeriodSeconds: 5 containers: - name: server @@ -59,6 +66,7 @@ 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 bc7e6b9..89bee9e 100644 --- a/kubernetes-manifests/emailservice.yaml +++ b/kubernetes-manifests/emailservice.yaml @@ -16,6 +16,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: emailservice + namespace: demo-env spec: selector: matchLabels: @@ -25,6 +26,12 @@ spec: labels: app: emailservice spec: + tolerations: + - key: dedicated + operator: Equal + value: demo-env + nodeSelector: + dedicated: demo-env terminationGracePeriodSeconds: 5 containers: - name: server @@ -58,6 +65,7 @@ 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 faf461d..38b77f8 100644 --- a/kubernetes-manifests/frontend.yaml +++ b/kubernetes-manifests/frontend.yaml @@ -16,6 +16,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: frontend + namespace: demo-env spec: selector: matchLabels: @@ -27,6 +28,12 @@ spec: annotations: sidecar.istio.io/rewriteAppHTTPProbers: "true" spec: + tolerations: + - key: dedicated + operator: Equal + value: demo-env + nodeSelector: + dedicated: demo-env containers: - name: server image: frontend @@ -85,6 +92,7 @@ apiVersion: v1 kind: Service metadata: name: frontend + namespace: demo-env spec: type: ClusterIP selector: @@ -98,6 +106,13 @@ 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" + service.beta.kubernetes.io/aws-load-balancer-healthcheck-timeout: "3" + service.beta.kubernetes.io/aws-load-balancer-healthcheck-unhealthy-threshold: "2" + external-dns.alpha.kubernetes.io/hostname: ${FRONTEND_URL} spec: type: LoadBalancer selector: diff --git a/kubernetes-manifests/loadgenerator.yaml b/kubernetes-manifests/loadgenerator.yaml index 53e947e..e7e9621 100644 --- a/kubernetes-manifests/loadgenerator.yaml +++ b/kubernetes-manifests/loadgenerator.yaml @@ -15,6 +15,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: loadgenerator + namespace: demo-env spec: selector: matchLabels: @@ -27,6 +28,12 @@ spec: annotations: sidecar.istio.io/rewriteAppHTTPProbers: "true" spec: + tolerations: + - key: dedicated + operator: Equal + value: demo-env + nodeSelector: + dedicated: demo-env terminationGracePeriodSeconds: 5 restartPolicy: Always containers: diff --git a/kubernetes-manifests/namespace.yaml b/kubernetes-manifests/namespace.yaml new file mode 100644 index 0000000..bb468f3 --- /dev/null +++ b/kubernetes-manifests/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: demo-env diff --git a/kubernetes-manifests/paymentservice.yaml b/kubernetes-manifests/paymentservice.yaml index fa62c08..c805791 100644 --- a/kubernetes-manifests/paymentservice.yaml +++ b/kubernetes-manifests/paymentservice.yaml @@ -16,6 +16,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: paymentservice + namespace: demo-env spec: selector: matchLabels: @@ -25,6 +26,12 @@ spec: labels: app: paymentservice spec: + tolerations: + - key: dedicated + operator: Equal + value: demo-env + nodeSelector: + dedicated: demo-env terminationGracePeriodSeconds: 5 containers: - name: server @@ -52,6 +59,7 @@ 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 6949be0..1013648 100644 --- a/kubernetes-manifests/productcatalogservice.yaml +++ b/kubernetes-manifests/productcatalogservice.yaml @@ -16,6 +16,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: productcatalogservice + namespace: demo-env spec: selector: matchLabels: @@ -25,6 +26,12 @@ spec: labels: app: productcatalogservice spec: + tolerations: + - key: dedicated + operator: Equal + value: demo-env + nodeSelector: + dedicated: demo-env terminationGracePeriodSeconds: 5 containers: - name: server @@ -60,6 +67,7 @@ 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 0e75f9f..b21f12a 100644 --- a/kubernetes-manifests/recommendationservice.yaml +++ b/kubernetes-manifests/recommendationservice.yaml @@ -16,6 +16,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: recommendationservice + namespace: demo-env spec: selector: matchLabels: @@ -25,6 +26,12 @@ spec: labels: app: recommendationservice spec: + tolerations: + - key: dedicated + operator: Equal + value: demo-env + nodeSelector: + dedicated: demo-env terminationGracePeriodSeconds: 5 containers: - name: server @@ -62,6 +69,7 @@ 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 b67649b..c7d90a8 100644 --- a/kubernetes-manifests/redis.yaml +++ b/kubernetes-manifests/redis.yaml @@ -16,6 +16,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: redis-cart + namespace: demo-env spec: selector: matchLabels: @@ -25,6 +26,12 @@ spec: labels: app: redis-cart spec: + tolerations: + - key: dedicated + operator: Equal + value: demo-env + nodeSelector: + dedicated: demo-env containers: - name: redis image: redis:alpine @@ -56,6 +63,7 @@ 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 e3027a1..839848a 100644 --- a/kubernetes-manifests/shippingservice.yaml +++ b/kubernetes-manifests/shippingservice.yaml @@ -16,6 +16,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: shippingservice + namespace: demo-env spec: selector: matchLabels: @@ -25,6 +26,12 @@ spec: labels: app: shippingservice spec: + tolerations: + - key: dedicated + operator: Equal + value: demo-env + nodeSelector: + dedicated: demo-env containers: - name: server image: shippingservice @@ -60,6 +67,7 @@ apiVersion: v1 kind: Service metadata: name: shippingservice + namespace: demo-env spec: type: ClusterIP selector: diff --git a/release/istio-manifests.yaml b/release/istio-manifests.yaml deleted file mode 100644 index 57d669d..0000000 --- a/release/istio-manifests.yaml +++ /dev/null @@ -1,96 +0,0 @@ -# Copyright 2018 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. - -# ---------------------------------------------------------- -# WARNING: This file is autogenerated. Do not manually edit. -# ---------------------------------------------------------- - -apiVersion: networking.istio.io/v1alpha3 -kind: Gateway -metadata: - name: frontend-gateway -spec: - selector: - istio: ingressgateway # use Istio default gateway implementation - servers: - - port: - number: 80 - name: http - protocol: HTTP - hosts: - - "*" ---- -apiVersion: networking.istio.io/v1alpha3 -kind: VirtualService -metadata: - name: frontend-ingress -spec: - hosts: - - "*" - gateways: - - frontend-gateway - http: - - route: - - destination: - host: frontend - port: - number: 80 ---- -apiVersion: networking.istio.io/v1alpha3 -kind: VirtualService -metadata: - name: frontend -spec: - hosts: - - "frontend.default.svc.cluster.local" - http: - - route: - - destination: - host: frontend - port: - number: 80 ---- -apiVersion: networking.istio.io/v1alpha3 -kind: ServiceEntry -metadata: - name: whitelist-egress-googleapis -spec: - hosts: - - "accounts.google.com" # Used to get token - - "*.googleapis.com" - ports: - - number: 80 - protocol: HTTP - name: http - - number: 443 - protocol: HTTPS - name: https ---- -apiVersion: networking.istio.io/v1alpha3 -kind: ServiceEntry -metadata: - name: whitelist-egress-google-metadata -spec: - hosts: - - metadata.google.internal - addresses: - - 169.254.169.254 # GCE metadata server - ports: - - number: 80 - name: http - protocol: HTTP - - number: 443 - name: https - protocol: HTTPS ---- diff --git a/release/kubernetes-manifests.yaml b/release/kubernetes-manifests.yaml deleted file mode 100644 index eb29927..0000000 --- a/release/kubernetes-manifests.yaml +++ /dev/null @@ -1,716 +0,0 @@ -# Copyright 2018 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. - -# ---------------------------------------------------------- -# WARNING: This file is autogenerated. Do not manually edit. -# ---------------------------------------------------------- - -apiVersion: apps/v1 -kind: Deployment -metadata: - name: emailservice -spec: - selector: - matchLabels: - app: emailservice - template: - metadata: - labels: - app: emailservice - spec: - terminationGracePeriodSeconds: 5 - containers: - - name: server - image: gcr.io/google-samples/microservices-demo/emailservice:v0.2.0 - ports: - - containerPort: 8080 - env: - - name: PORT - value: "8080" - # - name: DISABLE_TRACING - # value: "1" - - name: DISABLE_PROFILER - value: "1" - readinessProbe: - periodSeconds: 5 - exec: - command: ["/bin/grpc_health_probe", "-addr=:8080"] - livenessProbe: - periodSeconds: 5 - exec: - command: ["/bin/grpc_health_probe", "-addr=:8080"] - resources: - requests: - cpu: 100m - memory: 64Mi - limits: - cpu: 200m - memory: 128Mi ---- -apiVersion: v1 -kind: Service -metadata: - name: emailservice -spec: - type: ClusterIP - selector: - app: emailservice - ports: - - name: grpc - port: 5000 - targetPort: 8080 ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: checkoutservice -spec: - selector: - matchLabels: - app: checkoutservice - template: - metadata: - labels: - app: checkoutservice - spec: - containers: - - name: server - image: gcr.io/google-samples/microservices-demo/checkoutservice:v0.2.0 - ports: - - containerPort: 5050 - readinessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:5050"] - livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:5050"] - env: - - name: PORT - value: "5050" - - 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: DISABLE_STATS - # value: "1" - # - name: DISABLE_TRACING - # value: "1" - # - name: DISABLE_PROFILER - # value: "1" - # - name: JAEGER_SERVICE_ADDR - # value: "jaeger-collector:14268" - resources: - requests: - cpu: 100m - memory: 64Mi - limits: - cpu: 200m - memory: 128Mi ---- -apiVersion: v1 -kind: Service -metadata: - name: checkoutservice -spec: - type: ClusterIP - selector: - app: checkoutservice - ports: - - name: grpc - port: 5050 - targetPort: 5050 ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: recommendationservice -spec: - selector: - matchLabels: - app: recommendationservice - template: - metadata: - labels: - app: recommendationservice - spec: - terminationGracePeriodSeconds: 5 - containers: - - name: server - image: gcr.io/google-samples/microservices-demo/recommendationservice:v0.2.0 - ports: - - containerPort: 8080 - readinessProbe: - periodSeconds: 5 - exec: - command: ["/bin/grpc_health_probe", "-addr=:8080"] - livenessProbe: - periodSeconds: 5 - exec: - command: ["/bin/grpc_health_probe", "-addr=:8080"] - env: - - name: PORT - value: "8080" - - name: PRODUCT_CATALOG_SERVICE_ADDR - value: "productcatalogservice:3550" - # - name: DISABLE_TRACING - # value: "1" - # - name: DISABLE_PROFILER - # value: "1" - # - name: DISABLE_DEBUGGER - # value: "1" - resources: - requests: - cpu: 100m - memory: 220Mi - limits: - cpu: 200m - memory: 450Mi ---- -apiVersion: v1 -kind: Service -metadata: - name: recommendationservice -spec: - type: ClusterIP - selector: - app: recommendationservice - ports: - - name: grpc - port: 8080 - targetPort: 8080 ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: frontend -spec: - selector: - matchLabels: - app: frontend - template: - metadata: - labels: - app: frontend - annotations: - sidecar.istio.io/rewriteAppHTTPProbers: "true" - spec: - containers: - - name: server - image: gcr.io/google-samples/microservices-demo/frontend:v0.2.0 - 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: PORT - value: "8080" - - 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: ENV_PLATFORM - value: "gcp" - # - name: DISABLE_TRACING - # value: "1" - # - name: DISABLE_PROFILER - # value: "1" - # - name: JAEGER_SERVICE_ADDR - # value: "jaeger-collector:14268" - resources: - requests: - cpu: 100m - memory: 64Mi - limits: - cpu: 200m - memory: 128Mi ---- -apiVersion: v1 -kind: Service -metadata: - name: frontend -spec: - type: ClusterIP - selector: - app: frontend - ports: - - name: http - port: 80 - targetPort: 8080 ---- -apiVersion: v1 -kind: Service -metadata: - name: frontend-external -spec: - type: LoadBalancer - selector: - app: frontend - ports: - - name: http - port: 80 - targetPort: 8080 ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: paymentservice -spec: - selector: - matchLabels: - app: paymentservice - template: - metadata: - labels: - app: paymentservice - spec: - terminationGracePeriodSeconds: 5 - containers: - - name: server - image: gcr.io/google-samples/microservices-demo/paymentservice:v0.2.0 - ports: - - containerPort: 50051 - env: - - name: PORT - value: "50051" - readinessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:50051"] - livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:50051"] - resources: - requests: - cpu: 100m - memory: 64Mi - limits: - cpu: 200m - memory: 128Mi ---- -apiVersion: v1 -kind: Service -metadata: - name: paymentservice -spec: - type: ClusterIP - selector: - app: paymentservice - ports: - - name: grpc - port: 50051 - targetPort: 50051 ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: productcatalogservice -spec: - selector: - matchLabels: - app: productcatalogservice - template: - metadata: - labels: - app: productcatalogservice - spec: - terminationGracePeriodSeconds: 5 - containers: - - name: server - image: gcr.io/google-samples/microservices-demo/productcatalogservice:v0.2.0 - ports: - - containerPort: 3550 - env: - - name: PORT - value: "3550" - # - name: DISABLE_STATS - # value: "1" - # - name: DISABLE_TRACING - # value: "1" - # - name: DISABLE_PROFILER - # value: "1" - # - name: JAEGER_SERVICE_ADDR - # value: "jaeger-collector:14268" - readinessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:3550"] - livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:3550"] - resources: - requests: - cpu: 100m - memory: 64Mi - limits: - cpu: 200m - memory: 128Mi ---- -apiVersion: v1 -kind: Service -metadata: - name: productcatalogservice -spec: - type: ClusterIP - selector: - app: productcatalogservice - ports: - - name: grpc - port: 3550 - targetPort: 3550 ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: cartservice -spec: - selector: - matchLabels: - app: cartservice - template: - metadata: - labels: - app: cartservice - spec: - terminationGracePeriodSeconds: 5 - containers: - - name: server - image: gcr.io/google-samples/microservices-demo/cartservice:v0.2.0 - ports: - - containerPort: 7070 - env: - - name: REDIS_ADDR - value: "redis-cart:6379" - - name: PORT - value: "7070" - - name: LISTEN_ADDR - value: "0.0.0.0" - resources: - requests: - cpu: 200m - memory: 64Mi - limits: - cpu: 300m - memory: 128Mi - readinessProbe: - initialDelaySeconds: 15 - exec: - command: ["/bin/grpc_health_probe", "-addr=:7070", "-rpc-timeout=5s"] - livenessProbe: - initialDelaySeconds: 15 - periodSeconds: 10 - exec: - command: ["/bin/grpc_health_probe", "-addr=:7070", "-rpc-timeout=5s"] ---- -apiVersion: v1 -kind: Service -metadata: - name: cartservice -spec: - type: ClusterIP - selector: - app: cartservice - ports: - - name: grpc - port: 7070 - targetPort: 7070 ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: loadgenerator -spec: - selector: - matchLabels: - app: loadgenerator - replicas: 1 - template: - metadata: - labels: - app: loadgenerator - annotations: - sidecar.istio.io/rewriteAppHTTPProbers: "true" - spec: - terminationGracePeriodSeconds: 5 - restartPolicy: Always - containers: - - name: main - image: gcr.io/google-samples/microservices-demo/loadgenerator:v0.2.0 - env: - - name: FRONTEND_ADDR - value: "frontend:80" - - name: USERS - value: "10" - resources: - requests: - cpu: 300m - memory: 256Mi - limits: - cpu: 500m - memory: 512Mi ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: currencyservice -spec: - selector: - matchLabels: - app: currencyservice - template: - metadata: - labels: - app: currencyservice - spec: - terminationGracePeriodSeconds: 5 - containers: - - name: server - image: gcr.io/google-samples/microservices-demo/currencyservice:v0.2.0 - ports: - - name: grpc - containerPort: 7000 - env: - - name: PORT - value: "7000" - # - name: DISABLE_TRACING - # value: "1" - # - name: DISABLE_PROFILER - # value: "1" - # - name: DISABLE_DEBUGGER - # value: "1" - readinessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:7000"] - livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:7000"] - resources: - requests: - cpu: 100m - memory: 64Mi - limits: - cpu: 200m - memory: 128Mi ---- -apiVersion: v1 -kind: Service -metadata: - name: currencyservice -spec: - type: ClusterIP - selector: - app: currencyservice - ports: - - name: grpc - port: 7000 - targetPort: 7000 ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: shippingservice -spec: - selector: - matchLabels: - app: shippingservice - template: - metadata: - labels: - app: shippingservice - spec: - containers: - - name: server - image: gcr.io/google-samples/microservices-demo/shippingservice:v0.2.0 - ports: - - containerPort: 50051 - env: - - name: PORT - value: "50051" - # - name: DISABLE_STATS - # value: "1" - # - name: DISABLE_TRACING - # value: "1" - # - name: DISABLE_PROFILER - # value: "1" - # - name: JAEGER_SERVICE_ADDR - # value: "jaeger-collector:14268" - readinessProbe: - periodSeconds: 5 - exec: - command: ["/bin/grpc_health_probe", "-addr=:50051"] - livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:50051"] - resources: - requests: - cpu: 100m - memory: 64Mi - limits: - cpu: 200m - memory: 128Mi ---- -apiVersion: v1 -kind: Service -metadata: - name: shippingservice -spec: - type: ClusterIP - selector: - app: shippingservice - ports: - - name: grpc - port: 50051 - targetPort: 50051 ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: redis-cart -spec: - selector: - matchLabels: - app: redis-cart - template: - metadata: - labels: - app: redis-cart - spec: - containers: - - name: redis - image: redis:alpine - ports: - - containerPort: 6379 - readinessProbe: - periodSeconds: 5 - tcpSocket: - port: 6379 - livenessProbe: - periodSeconds: 5 - tcpSocket: - port: 6379 - volumeMounts: - - mountPath: /data - name: redis-data - resources: - limits: - memory: 256Mi - cpu: 125m - requests: - cpu: 70m - memory: 200Mi - volumes: - - name: redis-data - emptyDir: {} ---- -apiVersion: v1 -kind: Service -metadata: - name: redis-cart -spec: - type: ClusterIP - selector: - app: redis-cart - ports: - - name: redis - port: 6379 - targetPort: 6379 ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: adservice -spec: - selector: - matchLabels: - app: adservice - template: - metadata: - labels: - app: adservice - spec: - terminationGracePeriodSeconds: 5 - containers: - - name: server - image: gcr.io/google-samples/microservices-demo/adservice:v0.2.0 - ports: - - containerPort: 9555 - env: - - name: PORT - value: "9555" - # - name: DISABLE_STATS - # value: "1" - # - name: DISABLE_TRACING - # value: "1" - #- name: JAEGER_SERVICE_ADDR - # value: "jaeger-collector:14268" - resources: - requests: - cpu: 200m - memory: 180Mi - limits: - cpu: 300m - memory: 300Mi - readinessProbe: - initialDelaySeconds: 20 - periodSeconds: 15 - exec: - command: ["/bin/grpc_health_probe", "-addr=:9555"] - livenessProbe: - initialDelaySeconds: 20 - periodSeconds: 15 - exec: - command: ["/bin/grpc_health_probe", "-addr=:9555"] ---- -apiVersion: v1 -kind: Service -metadata: - name: adservice -spec: - type: ClusterIP - selector: - app: adservice - ports: - - name: grpc - port: 9555 - targetPort: 9555 ----