diff --git a/scripts/clean.sh b/scripts/clean.sh new file mode 100644 index 0000000..baaaf14 --- /dev/null +++ b/scripts/clean.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +./kubectl delete pod ratings-v1 +./kubectl delete pod reviews-v1 +./kubectl delete pod reviews-v2 +./kubectl delete pod reviews-v3 +./kubectl delete pod details-v1 +./kubectl delete pod productpage + +./kubectl delete service ratings +./kubectl delete service reviews +./kubectl delete service details +./kubectl delete service productpage diff --git a/scripts/deploy.sh b/scripts/deploy.sh new file mode 100644 index 0000000..f810411 --- /dev/null +++ b/scripts/deploy.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +./kubectl apply -f ./test/kubectl/microservice/details.yaml +./kubectl apply -f ./test/kubectl/microservice/productpage.yaml +./kubectl apply -f ./test/kubectl/microservice/ratings.yaml +./kubectl apply -f ./test/kubectl/microservice/reviews-v1.yaml +./kubectl apply -f ./test/kubectl/microservice/reviews-v2.yaml +./kubectl apply -f ./test/kubectl/microservice/reviews-v3.yaml + +./kubectl apply -f ./test/kubectl/microservice/details-svc.yaml +./kubectl apply -f ./test/kubectl/microservice/productpage-svc.yaml +./kubectl apply -f ./test/kubectl/microservice/ratings-svc.yaml +./kubectl apply -f ./test/kubectl/microservice/reviews-svc.yaml diff --git a/test/kubectl/dns/dns.yaml b/test/kubectl/dns/dns.yaml new file mode 100644 index 0000000..8383bd5 --- /dev/null +++ b/test/kubectl/dns/dns.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: DNS +metadata: + name: my-dns +spec: + rules: + - host: myservice.com + paths: + - path: /nginx + backend: + service: + name: nginx-service + port: 800 + - path: /python + backend: + service: + name: python-service + port: 900 diff --git a/test/kubectl/dns/pod1.yaml b/test/kubectl/dns/pod1.yaml new file mode 100644 index 0000000..7422ff7 --- /dev/null +++ b/test/kubectl/dns/pod1.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Pod +metadata: + name: python-pod + namespace: default + labels: + app: python +spec: + containers: + - name: c1 + image: python:latest + command: ["python", "-m", "http.server", "1024"] + ports: + - containerPort: 1024 + protocol: tcp diff --git a/test/kubectl/dns/pod2.yaml b/test/kubectl/dns/pod2.yaml new file mode 100644 index 0000000..a3ceefb --- /dev/null +++ b/test/kubectl/dns/pod2.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Pod +metadata: + name: nginx-pod + namespace: default + labels: + app: nginx +spec: + containers: + - name: c1 + image: nginx:latest + ports: + - containerPort: 80 + protocol: tcp diff --git a/test/kubectl/dns/service1.yaml b/test/kubectl/dns/service1.yaml new file mode 100644 index 0000000..5369fb1 --- /dev/null +++ b/test/kubectl/dns/service1.yaml @@ -0,0 +1,12 @@ +kind: Service +apiVersion: v1 +metadata: + name: nginx-service +spec: + type: NodePort + ports: + - port: 800 + targetPort: 80 + nodePort: 30080 + selector: + app: nginx diff --git a/test/kubectl/dns/service2.yaml b/test/kubectl/dns/service2.yaml new file mode 100644 index 0000000..f9c770b --- /dev/null +++ b/test/kubectl/dns/service2.yaml @@ -0,0 +1,12 @@ +kind: Service +apiVersion: v1 +metadata: + name: python-service +spec: + type: NodePort + ports: + - port: 900 + targetPort: 1024 + nodePort: 30090 + selector: + app: python diff --git a/test/kubectl/microservice/details-svc.yaml b/test/kubectl/microservice/details-svc.yaml new file mode 100644 index 0000000..bba6e61 --- /dev/null +++ b/test/kubectl/microservice/details-svc.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Service +metadata: + name: details + namespace: default +spec: + ports: + - port: 9080 + targetPort: 9080 + selector: + app: details diff --git a/test/kubectl/microservice/details.yaml b/test/kubectl/microservice/details.yaml new file mode 100644 index 0000000..04eb1b2 --- /dev/null +++ b/test/kubectl/microservice/details.yaml @@ -0,0 +1,23 @@ +apiVersion: v1 +kind: Pod +metadata: + name: details-v1 + namespace: default + labels: + app: details +spec: + containers: + - name: productpage + image: istio/examples-bookinfo-details-v1:1.19.1 + ports: + - containerPort: 9080 + protocol: tcp + - name: envoy-proxy + image: sjtuzc/envoy:1.2 + securityContext: + runAsUser: 1337 + initContainers: + - name: envoy-init + image: sjtuzc/envoy-init:latest + securityContext: + privileged: true diff --git a/test/kubectl/microservice/productpage-svc.yaml b/test/kubectl/microservice/productpage-svc.yaml new file mode 100644 index 0000000..e284eab --- /dev/null +++ b/test/kubectl/microservice/productpage-svc.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Service +metadata: + name: productpage + namespace: default +spec: + ports: + - port: 9080 + targetPort: 9080 + selector: + app: productpage diff --git a/test/kubectl/microservice/productpage.yaml b/test/kubectl/microservice/productpage.yaml new file mode 100644 index 0000000..4cd2c12 --- /dev/null +++ b/test/kubectl/microservice/productpage.yaml @@ -0,0 +1,23 @@ +apiVersion: v1 +kind: Pod +metadata: + name: productpage + namespace: default + labels: + app: productpage +spec: + containers: + - name: productpage + image: istio/examples-bookinfo-productpage-v1:1.19.1 + ports: + - containerPort: 9080 + protocol: tcp + - name: envoy-proxy + image: sjtuzc/envoy:1.2 + securityContext: + runAsUser: 1337 + initContainers: + - name: envoy-init + image: sjtuzc/envoy-init:latest + securityContext: + privileged: true diff --git a/test/kubectl/microservice/ratings-svc.yaml b/test/kubectl/microservice/ratings-svc.yaml new file mode 100644 index 0000000..2aa090b --- /dev/null +++ b/test/kubectl/microservice/ratings-svc.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Service +metadata: + name: ratings + namespace: default +spec: + ports: + - port: 9080 + targetPort: 9080 + selector: + app: ratings diff --git a/test/kubectl/microservice/ratings.yaml b/test/kubectl/microservice/ratings.yaml new file mode 100644 index 0000000..e00668a --- /dev/null +++ b/test/kubectl/microservice/ratings.yaml @@ -0,0 +1,23 @@ +apiVersion: v1 +kind: Pod +metadata: + name: ratings-v1 + namespace: default + labels: + app: ratings +spec: + containers: + - name: productpage + image: istio/examples-bookinfo-ratings-v1:1.19.1 + ports: + - containerPort: 9080 + protocol: tcp + - name: envoy-proxy + image: sjtuzc/envoy:1.2 + securityContext: + runAsUser: 1337 + initContainers: + - name: envoy-init + image: sjtuzc/envoy-init:latest + securityContext: + privileged: true diff --git a/test/kubectl/microservice/reviews-svc.yaml b/test/kubectl/microservice/reviews-svc.yaml new file mode 100644 index 0000000..ae82acf --- /dev/null +++ b/test/kubectl/microservice/reviews-svc.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Service +metadata: + name: reviews + namespace: default +spec: + ports: + - port: 9080 + targetPort: 9080 + selector: + app: reviews diff --git a/test/kubectl/microservice/reviews-v1.yaml b/test/kubectl/microservice/reviews-v1.yaml new file mode 100644 index 0000000..300cb10 --- /dev/null +++ b/test/kubectl/microservice/reviews-v1.yaml @@ -0,0 +1,23 @@ +apiVersion: v1 +kind: Pod +metadata: + name: reviews-v1 + namespace: default + labels: + app: reviews +spec: + containers: + - name: productpage + image: istio/examples-bookinfo-reviews-v1:1.19.1 + ports: + - containerPort: 9080 + protocol: tcp + - name: envoy-proxy + image: sjtuzc/envoy:1.2 + securityContext: + runAsUser: 1337 + initContainers: + - name: envoy-init + image: sjtuzc/envoy-init:latest + securityContext: + privileged: true diff --git a/test/kubectl/microservice/reviews-v2.yaml b/test/kubectl/microservice/reviews-v2.yaml new file mode 100644 index 0000000..b8b5201 --- /dev/null +++ b/test/kubectl/microservice/reviews-v2.yaml @@ -0,0 +1,23 @@ +apiVersion: v1 +kind: Pod +metadata: + name: reviews-v2 + namespace: default + labels: + app: reviews +spec: + containers: + - name: productpage + image: istio/examples-bookinfo-reviews-v2:1.19.1 + ports: + - containerPort: 9080 + protocol: tcp + - name: envoy-proxy + image: sjtuzc/envoy:1.2 + securityContext: + runAsUser: 1337 + initContainers: + - name: envoy-init + image: sjtuzc/envoy-init:latest + securityContext: + privileged: true diff --git a/test/kubectl/microservice/reviews-v3.yaml b/test/kubectl/microservice/reviews-v3.yaml new file mode 100644 index 0000000..b43414d --- /dev/null +++ b/test/kubectl/microservice/reviews-v3.yaml @@ -0,0 +1,23 @@ +apiVersion: v1 +kind: Pod +metadata: + name: reviews-v3 + namespace: default + labels: + app: reviews +spec: + containers: + - name: productpage + image: istio/examples-bookinfo-reviews-v3:1.19.1 + ports: + - containerPort: 9080 + protocol: tcp + - name: envoy-proxy + image: sjtuzc/envoy:1.2 + securityContext: + runAsUser: 1337 + initContainers: + - name: envoy-init + image: sjtuzc/envoy-init:latest + securityContext: + privileged: true diff --git a/test/kubectl/microservice/rollingupdate.yaml b/test/kubectl/microservice/rollingupdate.yaml new file mode 100644 index 0000000..b0b8207 --- /dev/null +++ b/test/kubectl/microservice/rollingupdate.yaml @@ -0,0 +1,25 @@ +apiVersion: v1 +kind: RollingUpdate +metadata: + name: my-ru +spec: + serviceRef: reviews + port: 9080 + minimumAlive: 1 + interval: 15 + newPodSpec: + containers: + - name: reviews + image: istio/examples-bookinfo-reviews-v3:1.19.1 + ports: + - containerPort: 9080 + protocol: tcp + - name: envoy-proxy + image: sjtuzc/envoy:1.2 + securityContext: + runAsUser: 1337 + initContainers: + - name: proxy-init + image: sjtuzc/envoy-init:latest + securityContext: + privileged: true diff --git a/test/kubectl/microservice/subset-v1.yaml b/test/kubectl/microservice/subset-v1.yaml new file mode 100644 index 0000000..fb38aaa --- /dev/null +++ b/test/kubectl/microservice/subset-v1.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: Subset +metadata: + name: subset-v1 + namespace: default +spec: + pods: ["reviews-v1"] diff --git a/test/kubectl/microservice/subset-v2.yaml b/test/kubectl/microservice/subset-v2.yaml new file mode 100644 index 0000000..5df5c96 --- /dev/null +++ b/test/kubectl/microservice/subset-v2.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: Subset +metadata: + name: subset-v2 + namespace: default +spec: + pods: ["reviews-v2", "reviews-v3"] diff --git a/test/kubectl/microservice/vs_med.yaml b/test/kubectl/microservice/vs_med.yaml new file mode 100644 index 0000000..7b4e194 --- /dev/null +++ b/test/kubectl/microservice/vs_med.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: VirtualService +metadata: + name: my-vs + namespace: default +spec: + serviceRef: reviews + port: 9080 + subsets: + - name: subset-v1 + weight: 1 + - name: subset-v2 + weight: 1 diff --git a/test/kubectl/microservice/vs_new.yaml b/test/kubectl/microservice/vs_new.yaml new file mode 100644 index 0000000..a1dcfa2 --- /dev/null +++ b/test/kubectl/microservice/vs_new.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: VirtualService +metadata: + name: my-vs + namespace: default +spec: + serviceRef: reviews + port: 9080 + subsets: + - name: subset-v1 + weight: 0 + - name: subset-v2 + weight: 1 diff --git a/test/kubectl/microservice/vs_old.yaml b/test/kubectl/microservice/vs_old.yaml new file mode 100644 index 0000000..c4613a7 --- /dev/null +++ b/test/kubectl/microservice/vs_old.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: VirtualService +metadata: + name: my-vs + namespace: default +spec: + serviceRef: reviews + port: 9080 + subsets: + - name: subset-v1 + weight: 1 + - name: subset-v2 + weight: 0 diff --git a/test/kubectl/microservice/vs_url.yaml b/test/kubectl/microservice/vs_url.yaml new file mode 100644 index 0000000..e1b1e3d --- /dev/null +++ b/test/kubectl/microservice/vs_url.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: VirtualService +metadata: + name: my-vs + namespace: default +spec: + serviceRef: reviews + port: 9080 + subsets: + - name: subset-v1 + url: ^/reviews/1$ + - name: subset-v2 + url: ^/reviews/[2-3]$