apiVersion: apps/v1 kind: Deployment metadata: name: adservice namespace: default spec: selector: matchLabels: app: adservice template: metadata: labels: app: adservice spec: containers: - env: - name: PORT value: "9555" image: edenfed/adservice:v2.1 name: server ports: - containerPort: 9555 resources: limits: cpu: 300m memory: 300Mi requests: cpu: 200m memory: 180Mi serviceAccountName: default terminationGracePeriodSeconds: 5 --- apiVersion: v1 kind: Service metadata: name: adservice namespace: default spec: ports: - name: grpc port: 9555 targetPort: 9555 selector: app: adservice type: ClusterIP --- apiVersion: apps/v1 kind: Deployment metadata: name: cartservice namespace: default spec: selector: matchLabels: app: cartservice template: metadata: labels: app: cartservice spec: containers: - env: - name: REDIS_ADDR value: redis-cart:6379 image: edenfed/cartservice:v2.1 name: server ports: - containerPort: 7070 resources: limits: cpu: 300m memory: 128Mi requests: cpu: 200m memory: 64Mi serviceAccountName: default terminationGracePeriodSeconds: 5 --- apiVersion: v1 kind: Service metadata: name: cartservice namespace: default spec: ports: - name: grpc port: 7070 targetPort: 7070 selector: app: cartservice type: ClusterIP --- apiVersion: apps/v1 kind: Deployment metadata: name: checkoutservice namespace: default spec: selector: matchLabels: app: checkoutservice template: metadata: labels: app: checkoutservice spec: containers: - 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 image: edenfed/checkoutservice:v2.1 name: server ports: - containerPort: 5050 resources: limits: cpu: 200m memory: 128Mi requests: cpu: 100m memory: 64Mi serviceAccountName: default --- apiVersion: v1 kind: Service metadata: name: checkoutservice namespace: default spec: ports: - name: grpc port: 5050 targetPort: 5050 selector: app: checkoutservice type: ClusterIP --- apiVersion: apps/v1 kind: Deployment metadata: name: currencyservice namespace: default spec: selector: matchLabels: app: currencyservice template: metadata: labels: app: currencyservice spec: containers: - env: - name: PORT value: "7000" image: edenfed/currencyservice:v2.1 name: server ports: - containerPort: 7000 name: grpc resources: limits: cpu: 200m memory: 128Mi requests: cpu: 100m memory: 64Mi serviceAccountName: default terminationGracePeriodSeconds: 5 --- apiVersion: v1 kind: Service metadata: name: currencyservice namespace: default spec: ports: - name: grpc port: 7000 targetPort: 7000 selector: app: currencyservice type: ClusterIP --- apiVersion: apps/v1 kind: Deployment metadata: name: emailservice namespace: default spec: selector: matchLabels: app: emailservice template: metadata: labels: app: emailservice spec: containers: - env: - name: PORT value: "8080" - name: DISABLE_PROFILER value: "1" image: edenfed/emailservice:v2.1 name: server ports: - containerPort: 8080 resources: limits: cpu: 200m memory: 128Mi requests: cpu: 100m memory: 64Mi serviceAccountName: default terminationGracePeriodSeconds: 5 --- apiVersion: v1 kind: Service metadata: name: emailservice namespace: default spec: ports: - name: grpc port: 5000 targetPort: 8080 selector: app: emailservice type: ClusterIP --- apiVersion: apps/v1 kind: Deployment metadata: name: frontend namespace: default spec: selector: matchLabels: app: frontend template: metadata: annotations: sidecar.istio.io/rewriteAppHTTPProbers: "true" labels: app: frontend spec: containers: - 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: aws image: edenfed/frontend:v2.2 name: server ports: - containerPort: 8080 resources: limits: cpu: 200m memory: 128Mi requests: cpu: 100m memory: 64Mi serviceAccountName: default --- apiVersion: v1 kind: Service metadata: name: frontend namespace: default spec: ports: - name: http port: 80 targetPort: 8080 selector: app: frontend type: ClusterIP --- apiVersion: v1 kind: Service metadata: name: frontend-external namespace: default spec: ports: - name: http port: 8081 targetPort: 8080 selector: app: frontend type: LoadBalancer --- apiVersion: apps/v1 kind: Deployment metadata: name: paymentservice namespace: default spec: selector: matchLabels: app: paymentservice template: metadata: labels: app: paymentservice spec: containers: - env: - name: PORT value: "50051" image: edenfed/paymentservice:v2.1 name: server ports: - containerPort: 50051 resources: limits: cpu: 200m memory: 128Mi requests: cpu: 100m memory: 64Mi serviceAccountName: default terminationGracePeriodSeconds: 5 --- apiVersion: v1 kind: Service metadata: name: paymentservice namespace: default spec: ports: - name: grpc port: 50051 targetPort: 50051 selector: app: paymentservice type: ClusterIP --- apiVersion: apps/v1 kind: Deployment metadata: name: productcatalogservice namespace: default spec: selector: matchLabels: app: productcatalogservice template: metadata: labels: app: productcatalogservice spec: containers: - env: - name: PORT value: "3550" image: edenfed/productcatalogservice:v2.2 name: server ports: - containerPort: 3550 resources: limits: cpu: 200m memory: 128Mi requests: cpu: 100m memory: 64Mi serviceAccountName: default terminationGracePeriodSeconds: 5 --- apiVersion: v1 kind: Service metadata: name: productcatalogservice namespace: default spec: ports: - name: grpc port: 3550 targetPort: 3550 selector: app: productcatalogservice type: ClusterIP --- apiVersion: apps/v1 kind: Deployment metadata: name: recommendationservice namespace: default spec: selector: matchLabels: app: recommendationservice template: metadata: labels: app: recommendationservice spec: containers: - env: - name: PORT value: "8080" - name: PRODUCT_CATALOG_SERVICE_ADDR value: productcatalogservice:3550 image: edenfed/recommendationservice:v2.1 name: server ports: - containerPort: 8080 resources: limits: cpu: 200m memory: 450Mi requests: cpu: 100m memory: 220Mi serviceAccountName: default terminationGracePeriodSeconds: 5 --- apiVersion: v1 kind: Service metadata: name: recommendationservice namespace: default spec: ports: - name: grpc port: 8080 targetPort: 8080 selector: app: recommendationservice type: ClusterIP --- apiVersion: apps/v1 kind: Deployment metadata: name: redis-cart namespace: default spec: selector: matchLabels: app: redis-cart template: metadata: labels: app: redis-cart spec: containers: - image: redis:alpine livenessProbe: periodSeconds: 5 tcpSocket: port: 6379 name: redis ports: - containerPort: 6379 readinessProbe: periodSeconds: 5 tcpSocket: port: 6379 resources: limits: cpu: 125m memory: 256Mi requests: cpu: 70m memory: 200Mi volumeMounts: - mountPath: /data name: redis-data volumes: - emptyDir: {} name: redis-data --- apiVersion: v1 kind: Service metadata: name: redis-cart namespace: default spec: ports: - name: redis port: 6379 targetPort: 6379 selector: app: redis-cart type: ClusterIP --- apiVersion: apps/v1 kind: Deployment metadata: name: shippingservice namespace: default spec: selector: matchLabels: app: shippingservice template: metadata: labels: app: shippingservice spec: containers: - env: - name: PORT value: "50051" image: edenfed/shippingservice:v2.1 name: server ports: - containerPort: 50051 resources: limits: cpu: 200m memory: 128Mi requests: cpu: 100m memory: 64Mi serviceAccountName: default --- apiVersion: v1 kind: Service metadata: name: shippingservice namespace: default spec: ports: - name: grpc port: 50051 targetPort: 50051 selector: app: shippingservice type: ClusterIP --- # 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. apiVersion: apps/v1 kind: Deployment metadata: name: loadgenerator annotations: odigos.io/skip: "true" labels: odigos-instrumentation: disabled spec: selector: matchLabels: app: loadgenerator replicas: 1 template: metadata: labels: app: loadgenerator annotations: sidecar.istio.io/rewriteAppHTTPProbers: "true" spec: serviceAccountName: default terminationGracePeriodSeconds: 5 restartPolicy: Always securityContext: fsGroup: 1000 runAsGroup: 1000 runAsNonRoot: true runAsUser: 1000 initContainers: - command: - /bin/sh - -exc - | echo "Init container pinging frontend: ${FRONTEND_ADDR}..." STATUSCODE=$(wget --server-response http://${FRONTEND_ADDR} 2>&1 | awk '/^ HTTP/{print $2}') if test $STATUSCODE -ne 200; then echo "Error: Could not reach frontend - Status code: ${STATUSCODE}" exit 1 fi name: frontend-check image: busybox:latest env: - name: FRONTEND_ADDR value: "frontend:80" containers: - name: main securityContext: allowPrivilegeEscalation: false capabilities: drop: - all privileged: false readOnlyRootFilesystem: true image: edenfed/loadgenerator:v2.1 env: - name: FRONTEND_ADDR value: "frontend:80" - name: USERS value: "10" resources: requests: cpu: 300m memory: 256Mi limits: cpu: 500m memory: 512Mi