apiVersion: v1 kind: Pod metadata: name: client namespace: istio-vt-t30 labels: app: client annotations: sidecar.istio.io/inject: "true" spec: containers: - name: curl image: curlimages/curl:8.14.1 command: ["sleep", "infinity"] --- apiVersion: apps/v1 kind: Deployment metadata: name: drain-default-echo namespace: istio-vt-t30 labels: app: drain-default-echo spec: replicas: 1 selector: matchLabels: app: drain-default-echo template: metadata: labels: app: drain-default-echo annotations: sidecar.istio.io/inject: "true" spec: containers: - name: httpbin image: kennethreitz/httpbin ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: drain-default-echo namespace: istio-vt-t30 spec: selector: app: drain-default-echo ports: - name: http port: 80 targetPort: 80 --- apiVersion: apps/v1 kind: Deployment metadata: name: drain-good namespace: istio-vt-t30 labels: app: drain-good spec: replicas: 1 selector: matchLabels: app: drain-good template: metadata: labels: app: drain-good annotations: sidecar.istio.io/inject: "true" proxy.istio.io/config: '{"terminationDrainDuration":"20s"}' spec: terminationGracePeriodSeconds: 40 containers: - name: httpbin image: kennethreitz/httpbin ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: drain-good namespace: istio-vt-t30 spec: selector: app: drain-good ports: - name: http port: 80 targetPort: 80 --- apiVersion: apps/v1 kind: Deployment metadata: name: drain-bad namespace: istio-vt-t30 labels: app: drain-bad spec: replicas: 1 selector: matchLabels: app: drain-bad template: metadata: labels: app: drain-bad annotations: sidecar.istio.io/inject: "true" proxy.istio.io/config: '{"terminationDrainDuration":"20s"}' spec: terminationGracePeriodSeconds: 5 containers: - name: httpbin image: kennethreitz/httpbin ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: drain-bad namespace: istio-vt-t30 spec: selector: app: drain-bad ports: - name: http port: 80 targetPort: 80