--- kind: EndpointSlice apiVersion: discovery.k8s.io/v1 metadata: name: whoami6-abc namespace: baz labels: kubernetes.io/service-name: whoami6 addressType: IPv4 ports: - name: web port: 8080 endpoints: - addresses: - 10.10.0.5 - 10.10.0.6 conditions: ready: true --- kind: EndpointSlice apiVersion: discovery.k8s.io/v1 metadata: name: whoami5-abc namespace: foo labels: kubernetes.io/service-name: whoami5 addressType: IPv4 ports: - name: web port: 8080 endpoints: - addresses: - 10.10.0.3 - 10.10.0.4 conditions: ready: true --- kind: EndpointSlice apiVersion: discovery.k8s.io/v1 metadata: name: whoami4-abc namespace: foo labels: kubernetes.io/service-name: whoami4 addressType: IPv4 ports: - name: web port: 8080 endpoints: - addresses: - 10.10.0.1 - 10.10.0.2 conditions: ready: true --- apiVersion: v1 kind: Service metadata: name: whoami6 namespace: baz spec: ports: - name: web port: 8080 selector: app: traefiklabs task: whoami6 --- apiVersion: v1 kind: Service metadata: name: whoami5 namespace: foo spec: ports: - name: web port: 8080 selector: app: traefiklabs task: whoami5 --- apiVersion: v1 kind: Service metadata: name: whoami4 namespace: foo spec: ports: - name: web port: 8080 selector: app: traefiklabs task: whoami4 --- apiVersion: traefik.io/v1alpha1 kind: TraefikService metadata: name: mirror1 namespace: foo spec: mirroring: name: whoami5 port: 8080 namespace: foo mirrors: - name: whoami4 port: 8080 - name: whoami6 port: 8080 namespace: baz - name: mirrored kind: TraefikService namespace: bar --- apiVersion: traefik.io/v1alpha1 kind: TraefikService metadata: name: wrr2 namespace: bar spec: weighted: services: - name: whoami5 namespace: foo weight: 1 port: 8080 --- apiVersion: traefik.io/v1alpha1 kind: TraefikService metadata: name: mirror2 namespace: foo spec: mirroring: name: whoami5 port: 8080 mirrors: - name: whoami4 port: 8080 - name: whoami6 port: 8080 namespace: baz - name: mirrored kind: TraefikService namespace: bar - name: wrr1 kind: TraefikService namespace: foo --- apiVersion: traefik.io/v1alpha1 kind: TraefikService metadata: name: mirror3 namespace: foo spec: mirroring: name: wrr1 kind: TraefikService namespace: foo mirrors: - name: whoami4 port: 8080 - name: whoami6 port: 8080 namespace: baz - name: mirrored kind: TraefikService namespace: bar - name: wrr1 kind: TraefikService namespace: foo --- apiVersion: traefik.io/v1alpha1 kind: TraefikService metadata: name: mirror4 namespace: foo spec: mirroring: name: wrr1 kind: TraefikService mirrors: - name: whoami4 port: 8080 - name: whoami6 port: 8080 namespace: baz - name: mirrored kind: TraefikService namespace: bar - name: wrr1 kind: TraefikService namespace: foo --- apiVersion: traefik.io/v1alpha1 kind: TraefikService metadata: name: mirrored namespace: bar spec: mirroring: name: whoami6 port: 8080 namespace: baz mirrors: - name: whoami4 percent: 50 port: 8080 namespace: foo --- apiVersion: traefik.io/v1alpha1 kind: TraefikService metadata: name: wrr1 namespace: foo spec: weighted: services: - name: whoami4 port: 8080 - name: whoami6 port: 8080 namespace: baz - name: mirror1 kind: TraefikService - name: wrr2 kind: TraefikService namespace: bar --- apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: test.route namespace: default spec: entryPoints: - web routes: - match: Host(`foo.com`) && PathPrefix(`/foo`) kind: Rule priority: 12 services: - name: whoami6 port: 8080 namespace: baz - name: wrr1 kind: TraefikService namespace: foo - name: mirror2 kind: TraefikService namespace: foo - name: mirror3 kind: TraefikService namespace: foo - name: mirror4 kind: TraefikService namespace: foo