apiVersion: v1 kind: Pod metadata: name: client namespace: istio-vt-t69 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: weight-echo-v1 namespace: istio-vt-t69 labels: app: weight-echo version: v1 spec: replicas: 1 selector: matchLabels: app: weight-echo version: v1 template: metadata: labels: app: weight-echo version: v1 annotations: sidecar.istio.io/inject: "true" spec: containers: - name: echo image: hashicorp/http-echo:0.2.3 args: ["-text=v1-ok", "-listen=:5678"] ports: - containerPort: 5678 --- apiVersion: apps/v1 kind: Deployment metadata: name: weight-echo-v2 namespace: istio-vt-t69 labels: app: weight-echo version: v2 spec: replicas: 1 selector: matchLabels: app: weight-echo version: v2 template: metadata: labels: app: weight-echo version: v2 annotations: sidecar.istio.io/inject: "true" spec: containers: - name: echo image: hashicorp/http-echo:0.2.3 args: ["-text=v2-ok", "-listen=:5678"] ports: - containerPort: 5678 --- apiVersion: v1 kind: Service metadata: name: weight-echo namespace: istio-vt-t69 spec: selector: app: weight-echo ports: - name: http port: 80 targetPort: 5678 --- apiVersion: networking.istio.io/v1 kind: DestinationRule metadata: name: weight-echo-dr namespace: istio-vt-t69 spec: host: weight-echo.istio-vt-t69.svc.homelab.local subsets: - name: v1 labels: version: v1 - name: v2 labels: version: v2 --- apiVersion: networking.istio.io/v1 kind: VirtualService metadata: name: weight-echo-vs namespace: istio-vt-t69 spec: hosts: - weight-echo.istio-vt-t69.svc.homelab.local http: - route: - destination: host: weight-echo.istio-vt-t69.svc.homelab.local subset: v1 weight: 80 - destination: host: weight-echo.istio-vt-t69.svc.homelab.local subset: v2 weight: 20