Created
December 13, 2019 00:55
-
-
Save askmeegs/8df65d22d6a9d33fbb63b1f97f06899f to your computer and use it in GitHub Desktop.
onlineboutique-example.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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.1.2 | |
| imagePullPolicy: Always | |
| 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"] | |
| 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: shoppingcartservice | |
| spec: | |
| selector: | |
| matchLabels: | |
| app: shoppingcartservice | |
| template: | |
| metadata: | |
| labels: | |
| app: shoppingcartservice | |
| spec: | |
| containers: | |
| - name: server | |
| image: gcr.io/google-samples/microservices-demo/checkoutservice:v0.1.2 | |
| 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 | |
| metadata: | |
| name: shoppingcartservice | |
| spec: | |
| type: ClusterIP | |
| selector: | |
| app: shoppingcartservice | |
| ports: | |
| - port: 5050 | |
| name: grpc | |
| 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.1.2 | |
| imagePullPolicy: Always | |
| 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: PRODUCT_CATALOG_SERVICE_ADDR | |
| value: "productcatalogservice:3550" | |
| 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: | |
| - port: 8080 | |
| name: grpc | |
| targetPort: 8080 | |
| --- | |
| #Istio | |
| apiVersion: apps/v1 | |
| kind: Deployment | |
| metadata: | |
| name: frontend | |
| spec: | |
| selector: | |
| matchLabels: | |
| app: frontend | |
| template: | |
| metadata: | |
| labels: | |
| app: frontend | |
| version: v1 | |
| spec: | |
| containers: | |
| - name: server | |
| image: gcr.io/onlineboutique/frontend:v0.1.2 | |
| 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: VERSION | |
| value: v1 | |
| - 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: "shoppingcartservice: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 | |
| metadata: | |
| name: frontend | |
| spec: | |
| type: ClusterIP | |
| selector: | |
| app: frontend | |
| ports: # Istio can detect HTTP! | |
| - port: 80 | |
| targetPort: 8080 | |
| name: http | |
| --- | |
| 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.1.2 | |
| 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: | |
| - port: 50051 | |
| name: grpc | |
| targetPort: 50051 | |
| --- | |
| apiVersion: apps/v1 | |
| kind: Deployment | |
| metadata: | |
| name: productcatalogservice | |
| spec: | |
| selector: | |
| matchLabels: | |
| app: productcatalogservice | |
| template: | |
| metadata: | |
| labels: | |
| app: productcatalogservice | |
| version: v1 | |
| spec: | |
| terminationGracePeriodSeconds: 5 | |
| containers: | |
| - name: server | |
| image: gcr.io/onlineboutique/productcatalogservice:v0.1.2 | |
| ports: | |
| - containerPort: 3550 | |
| readinessProbe: | |
| exec: | |
| command: ["/bin/grpc_health_probe", "-addr=:3550"] | |
| livenessProbe: | |
| exec: | |
| command: ["/bin/grpc_health_probe", "-addr=:3550"] | |
| env: | |
| - 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: productcatalogservice | |
| spec: | |
| type: ClusterIP | |
| selector: | |
| app: productcatalogservice | |
| ports: | |
| - port: 3550 | |
| name: grpc | |
| 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.1.2 | |
| 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"] | |
| livenessProbe: | |
| initialDelaySeconds: 15 | |
| periodSeconds: 10 | |
| exec: | |
| command: ["/bin/grpc_health_probe", "-addr=:7070"] | |
| --- | |
| apiVersion: v1 | |
| kind: Service | |
| metadata: | |
| name: cartservice | |
| spec: | |
| type: ClusterIP | |
| selector: | |
| app: cartservice | |
| ports: | |
| - port: 7070 | |
| name: grpc | |
| targetPort: 7070 | |
| --- | |
| apiVersion: apps/v1 | |
| kind: Deployment | |
| metadata: | |
| name: loadgenerator | |
| spec: | |
| selector: | |
| matchLabels: | |
| app: loadgenerator | |
| replicas: 1 | |
| template: | |
| metadata: | |
| labels: | |
| app: loadgenerator | |
| spec: | |
| terminationGracePeriodSeconds: 5 | |
| restartPolicy: Always | |
| containers: | |
| - name: main | |
| image: gcr.io/google-samples/microservices-demo/loadgenerator:v0.1.2 | |
| env: | |
| - name: FRONTEND_ADDR | |
| value: "frontend:80" | |
| - name: USERS | |
| value: "50" | |
| 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/mokeefe/currency:real | |
| ports: | |
| - containerPort: 7000 | |
| env: | |
| - name: PORT | |
| value: "7000" | |
| 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: | |
| - port: 7000 | |
| name: grpc | |
| 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.1.2 | |
| ports: | |
| - containerPort: 50051 | |
| readinessProbe: | |
| periodSeconds: 5 | |
| exec: | |
| command: ["/bin/grpc_health_probe", "-addr=:50051"] | |
| livenessProbe: | |
| exec: | |
| command: ["/bin/grpc_health_probe", "-addr=:50051"] | |
| env: | |
| - 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: shippingservice | |
| spec: | |
| type: ClusterIP | |
| selector: | |
| app: shippingservice | |
| ports: | |
| - port: 50051 | |
| name: grpc | |
| 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: | |
| - port: 6379 | |
| name: redis | |
| 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.1.2 | |
| ports: | |
| - containerPort: 9555 | |
| env: | |
| - name: PORT | |
| value: "9555" | |
| - 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: | |
| - port: 9555 | |
| name: redis | |
| targetPort: 9555 | |
| --- | |
| #Istio manifests | |
| 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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment