From e8f9cfb2765a7ffdb2122637f8d1ec36209fc0dc Mon Sep 17 00:00:00 2001 From: Arpit Bansal Date: Sun, 3 May 2020 05:47:12 -0400 Subject: [PATCH 1/3] Canary Deployment feature of Istio #116 --- deployments/destination-rules.yaml | 13 ++++++++ deployments/gateway-istio.yaml | 29 ++++++++++++++++++ deployments/ui-vm.yaml | 30 ++++++++++++++++++- deployments/ui.yaml | 30 ++++++++++++++++++- deployments/virtual-services.yaml | 48 ++++++++++++++++++++++++++++++ 5 files changed, 148 insertions(+), 2 deletions(-) create mode 100644 deployments/destination-rules.yaml create mode 100644 deployments/gateway-istio.yaml create mode 100644 deployments/virtual-services.yaml diff --git a/deployments/destination-rules.yaml b/deployments/destination-rules.yaml new file mode 100644 index 0000000..18d1db7 --- /dev/null +++ b/deployments/destination-rules.yaml @@ -0,0 +1,13 @@ +apiVersion: networking.istio.io/v1alpha3 +kind: DestinationRule +metadata: +  name: ui-app +spec: +  host: ui-app +  subsets: +  - name: v1 +    labels: +      version: v1 +  - name: v2 +    labels: +      version: v2 \ No newline at end of file diff --git a/deployments/gateway-istio.yaml b/deployments/gateway-istio.yaml new file mode 100644 index 0000000..38b1251 --- /dev/null +++ b/deployments/gateway-istio.yaml @@ -0,0 +1,29 @@ +apiVersion: networking.istio.io/v1alpha3 +kind: Gateway +metadata: + name: captivate-gateway +spec: + selector: + istio: ingressgateway + servers: + - port: + number: 80 + name: http + protocol: HTTP + hosts: + - "*" + +--- +apiVersion: networking.istio.io/v1alpha3 +kind: VirtualService +metadata: + name: api-gateway +spec: + hosts: + - api-gateway + gateways: + - captivate-gateway + http: + - route: + - destination: + host: api-gateway \ No newline at end of file diff --git a/deployments/ui-vm.yaml b/deployments/ui-vm.yaml index a240c7a..c41f077 100644 --- a/deployments/ui-vm.yaml +++ b/deployments/ui-vm.yaml @@ -1,7 +1,9 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: ui-deployment + name: ui-deployment-v1 + labels: + version: v1 spec: replicas: 1 selector: @@ -11,6 +13,7 @@ spec: metadata: labels: app: ui-app + version: v1 spec: containers: - name: ui @@ -18,3 +21,28 @@ spec: imagePullPolicy: Always ports: - containerPort: 3000 + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: ui-deployment-v2 + labels: + version: v2 +spec: + replicas: 1 + selector: + matchLabels: + app: ui-app + template: + metadata: + labels: + app: ui-app + version: v2 + spec: + containers: + - name: ui + image: shubhangis91/captivate-ui-v2:v2.0 + imagePullPolicy: Always + ports: + - containerPort: 3000 \ No newline at end of file diff --git a/deployments/ui.yaml b/deployments/ui.yaml index 934ca7b..7a97c3b 100644 --- a/deployments/ui.yaml +++ b/deployments/ui.yaml @@ -15,7 +15,9 @@ spec: apiVersion: apps/v1 kind: Deployment metadata: - name: ui-deployment + name: ui-deployment-v1 + labels: + version: v1 spec: replicas: 1 selector: @@ -25,6 +27,7 @@ spec: metadata: labels: app: ui-app + version: v1 spec: containers: - name: ui @@ -33,3 +36,28 @@ spec: ports: - containerPort: 3000 +--- + +apiVersion: apps/v1 +kind: Deployment +metadata: + name: ui-deployment-v2 + labels: + version: v2 +spec: + replicas: 1 + selector: + matchLabels: + app: ui-app + template: + metadata: + labels: + app: ui-app + version: v2 + spec: + containers: + - name: ui + image: shubhangis91/captivate-ui-v2:v2.0 + imagePullPolicy: Always + ports: + - containerPort: 3000 diff --git a/deployments/virtual-services.yaml b/deployments/virtual-services.yaml new file mode 100644 index 0000000..adba9dd --- /dev/null +++ b/deployments/virtual-services.yaml @@ -0,0 +1,48 @@ +apiVersion: networking.istio.io/v1alpha3 +kind: VirtualService +metadata: +  name: ui-service +spec: +  hosts: ui-app +  gateways: api-gateway +  http: +  - route: +    - destination: +        host: ui-app +        subset: v1 +     weight: 80 +    - destination: +        host: ui-app +        subset: v2 +     weight: 20 +--- + +apiVersion: networking.istio.io/v1alpha3 +kind: VirtualService +metadata: +  name: session-management +spec: +  hosts: +  - session-management +  gateways: +  - captivate-gateway +  http: +  - route: +    - destination: +        host: session-management + +--- + +apiVersion: networking.istio.io/v1alpha3 +kind: VirtualService +metadata: +  name: user-management +spec: +  hosts: +  - user-management +  gateways: +  - captivate-gateway +  http: +  - route: +    - destination: +        host: user-management \ No newline at end of file From 4b12c8d74eb0f510f222c847be0c690ecf3f48b9 Mon Sep 17 00:00:00 2001 From: Shubhangi Shrivastava Date: Sun, 3 May 2020 05:47:12 -0400 Subject: [PATCH 2/3] Canary Deployment feature of Istio #116 --- deployments/destination-rules.yaml | 13 ++++++++ deployments/gateway-istio.yaml | 29 ++++++++++++++++++ deployments/ui-vm.yaml | 30 ++++++++++++++++++- deployments/ui.yaml | 30 ++++++++++++++++++- deployments/virtual-services.yaml | 48 ++++++++++++++++++++++++++++++ 5 files changed, 148 insertions(+), 2 deletions(-) create mode 100644 deployments/destination-rules.yaml create mode 100644 deployments/gateway-istio.yaml create mode 100644 deployments/virtual-services.yaml diff --git a/deployments/destination-rules.yaml b/deployments/destination-rules.yaml new file mode 100644 index 0000000..18d1db7 --- /dev/null +++ b/deployments/destination-rules.yaml @@ -0,0 +1,13 @@ +apiVersion: networking.istio.io/v1alpha3 +kind: DestinationRule +metadata: +  name: ui-app +spec: +  host: ui-app +  subsets: +  - name: v1 +    labels: +      version: v1 +  - name: v2 +    labels: +      version: v2 \ No newline at end of file diff --git a/deployments/gateway-istio.yaml b/deployments/gateway-istio.yaml new file mode 100644 index 0000000..38b1251 --- /dev/null +++ b/deployments/gateway-istio.yaml @@ -0,0 +1,29 @@ +apiVersion: networking.istio.io/v1alpha3 +kind: Gateway +metadata: + name: captivate-gateway +spec: + selector: + istio: ingressgateway + servers: + - port: + number: 80 + name: http + protocol: HTTP + hosts: + - "*" + +--- +apiVersion: networking.istio.io/v1alpha3 +kind: VirtualService +metadata: + name: api-gateway +spec: + hosts: + - api-gateway + gateways: + - captivate-gateway + http: + - route: + - destination: + host: api-gateway \ No newline at end of file diff --git a/deployments/ui-vm.yaml b/deployments/ui-vm.yaml index a240c7a..c41f077 100644 --- a/deployments/ui-vm.yaml +++ b/deployments/ui-vm.yaml @@ -1,7 +1,9 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: ui-deployment + name: ui-deployment-v1 + labels: + version: v1 spec: replicas: 1 selector: @@ -11,6 +13,7 @@ spec: metadata: labels: app: ui-app + version: v1 spec: containers: - name: ui @@ -18,3 +21,28 @@ spec: imagePullPolicy: Always ports: - containerPort: 3000 + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: ui-deployment-v2 + labels: + version: v2 +spec: + replicas: 1 + selector: + matchLabels: + app: ui-app + template: + metadata: + labels: + app: ui-app + version: v2 + spec: + containers: + - name: ui + image: shubhangis91/captivate-ui-v2:v2.0 + imagePullPolicy: Always + ports: + - containerPort: 3000 \ No newline at end of file diff --git a/deployments/ui.yaml b/deployments/ui.yaml index 934ca7b..7a97c3b 100644 --- a/deployments/ui.yaml +++ b/deployments/ui.yaml @@ -15,7 +15,9 @@ spec: apiVersion: apps/v1 kind: Deployment metadata: - name: ui-deployment + name: ui-deployment-v1 + labels: + version: v1 spec: replicas: 1 selector: @@ -25,6 +27,7 @@ spec: metadata: labels: app: ui-app + version: v1 spec: containers: - name: ui @@ -33,3 +36,28 @@ spec: ports: - containerPort: 3000 +--- + +apiVersion: apps/v1 +kind: Deployment +metadata: + name: ui-deployment-v2 + labels: + version: v2 +spec: + replicas: 1 + selector: + matchLabels: + app: ui-app + template: + metadata: + labels: + app: ui-app + version: v2 + spec: + containers: + - name: ui + image: shubhangis91/captivate-ui-v2:v2.0 + imagePullPolicy: Always + ports: + - containerPort: 3000 diff --git a/deployments/virtual-services.yaml b/deployments/virtual-services.yaml new file mode 100644 index 0000000..adba9dd --- /dev/null +++ b/deployments/virtual-services.yaml @@ -0,0 +1,48 @@ +apiVersion: networking.istio.io/v1alpha3 +kind: VirtualService +metadata: +  name: ui-service +spec: +  hosts: ui-app +  gateways: api-gateway +  http: +  - route: +    - destination: +        host: ui-app +        subset: v1 +     weight: 80 +    - destination: +        host: ui-app +        subset: v2 +     weight: 20 +--- + +apiVersion: networking.istio.io/v1alpha3 +kind: VirtualService +metadata: +  name: session-management +spec: +  hosts: +  - session-management +  gateways: +  - captivate-gateway +  http: +  - route: +    - destination: +        host: session-management + +--- + +apiVersion: networking.istio.io/v1alpha3 +kind: VirtualService +metadata: +  name: user-management +spec: +  hosts: +  - user-management +  gateways: +  - captivate-gateway +  http: +  - route: +    - destination: +        host: user-management \ No newline at end of file From f6ecfc7bc32a628ea73f6bb3fd45b48e1bdf77e9 Mon Sep 17 00:00:00 2001 From: Shubhangi Shrivastava Date: Tue, 5 May 2020 01:21:11 -0400 Subject: [PATCH 3/3] Upload service version screenshot --- docs/kiali.PNG | Bin 0 -> 38762 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/kiali.PNG diff --git a/docs/kiali.PNG b/docs/kiali.PNG new file mode 100644 index 0000000000000000000000000000000000000000..366d08bb1f36f59d46ec7f583b6d5a1b71ea78a8 GIT binary patch literal 38762 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 literal 0 HcmV?d00001