diff --git a/kubernetes-manifests/recommendationservice.yaml b/kubernetes-manifests/recommendationservice.yaml index 1ccc4ab..9a5aee3 100644 --- a/kubernetes-manifests/recommendationservice.yaml +++ b/kubernetes-manifests/recommendationservice.yaml @@ -15,15 +15,17 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: recommendationservice + name: recommendationservice-v1 spec: selector: matchLabels: app: recommendationservice + version: v1 template: metadata: labels: app: recommendationservice + version: v1 spec: terminationGracePeriodSeconds: 5 containers: @@ -54,15 +56,78 @@ spec: cpu: 200m memory: 450Mi --- -apiVersion: v1 -kind: Service +apiVersion: apps/v1 +kind: Deployment +metadata: + name: recommendationservice-v2 +spec: + selector: + matchLabels: + app: recommendationservice + version: v2 + template: + metadata: + labels: + app: recommendationservice + version: v2 + spec: + terminationGracePeriodSeconds: 5 + containers: + - name: server + image: recommendationservice + 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: ENABLE_PROFILER + value: "0" + resources: + requests: + cpu: 100m + memory: 220Mi + limits: + cpu: 200m + memory: 450Mi +--- +apiVersion: networking.istio.io/v1alpha3 +kind: VirtualService metadata: name: recommendationservice spec: - type: ClusterIP - selector: - app: recommendationservice - ports: - - name: grpc - port: 8080 - targetPort: 8080 + hosts: + - recommendationservice + http: + - route: + - destination: + host: recommendationservice + subset: v1 + weight: 90 + - destination: + host: recommendationservice + subset: v2 + weight: 10 +--- +apiVersion: networking.istio.io/v1alpha3 +kind: DestinationRule +metadata: + name: recommendationservice +spec: + host: recommendationservice + subsets: + - name: v1 + labels: + version: v1 + - name: v2 + labels: + version: v2