1
0
Fork 0

Support for all services kinds (and sticky) in CRD

Co-authored-by: Jean-Baptiste Doumenjou <jb.doumenjou@gmail.com>
Co-authored-by: Julien Salleyron <julien.salleyron@gmail.com>
This commit is contained in:
mpl 2019-11-14 19:28:04 +01:00 committed by Traefiker Bot
parent 424e2a9439
commit f30a52c2dc
42 changed files with 3344 additions and 354 deletions

View file

@ -0,0 +1,96 @@
---
kind: Endpoints
apiVersion: v1
metadata:
name: whoami4
namespace: default
subsets:
- addresses:
- ip: 10.10.0.1
- ip: 10.10.0.2
ports:
- name: web
port: 8080
---
apiVersion: v1
kind: Service
metadata:
name: whoami4
namespace: default
spec:
ports:
- name: web
port: 8080
selector:
app: containous
task: whoami4
------
kind: Endpoints
apiVersion: v1
metadata:
name: whoami5
namespace: default
subsets:
- addresses:
- ip: 10.10.0.3
- ip: 10.10.0.4
ports:
- name: web
port: 8080
---
apiVersion: v1
kind: Service
metadata:
name: whoami5
namespace: default
spec:
ports:
- name: web
port: 8080
selector:
app: containous
task: whoami5
---
apiVersion: traefik.containo.us/v1alpha1
kind: TraefikService
metadata:
name: mirror1
namespace: default
spec:
mirroring:
name: whoami5
kind: Service
port: 8080
mirrors:
- name: whoami4
kind: Service
percent: 50
port: 8080
---
apiVersion: traefik.containo.us/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: mirror1
kind: TraefikService

View file

@ -0,0 +1,122 @@
---
kind: Endpoints
apiVersion: v1
metadata:
name: whoami4
namespace: default
subsets:
- addresses:
- ip: 10.10.0.1
- ip: 10.10.0.2
ports:
- name: web
port: 8080
---
apiVersion: v1
kind: Service
metadata:
name: whoami4
namespace: default
spec:
ports:
- name: web
port: 8080
selector:
app: containous
task: whoami4
------
kind: Endpoints
apiVersion: v1
metadata:
name: whoami5
namespace: default
subsets:
- addresses:
- ip: 10.10.0.3
- ip: 10.10.0.4
ports:
- name: web
port: 8080
---
apiVersion: v1
kind: Service
metadata:
name: whoami5
namespace: default
spec:
ports:
- name: web
port: 8080
selector:
app: containous
task: whoami5
---
apiVersion: traefik.containo.us/v1alpha1
kind: TraefikService
metadata:
name: wrr2
namespace: default
spec:
weighted:
services:
- name: whoami5
weight: 1
port: 8080
---
apiVersion: traefik.containo.us/v1alpha1
kind: TraefikService
metadata:
name: wrr1
namespace: default
spec:
weighted:
services:
- name: whoami4
weight: 1
port: 8080
---
apiVersion: traefik.containo.us/v1alpha1
kind: TraefikService
metadata:
name: mirror1
namespace: default
spec:
mirroring:
name: wrr1
kind: TraefikService
mirrors:
- name: wrr2
kind: TraefikService
percent: 30
---
apiVersion: traefik.containo.us/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: mirror1
kind: TraefikService

View file

@ -0,0 +1,271 @@
---
kind: Endpoints
apiVersion: v1
metadata:
name: whoami6
namespace: baz
subsets:
- addresses:
- ip: 10.10.0.5
- ip: 10.10.0.6
ports:
- name: web
port: 8080
---
kind: Endpoints
apiVersion: v1
metadata:
name: whoami5
namespace: foo
subsets:
- addresses:
- ip: 10.10.0.3
- ip: 10.10.0.4
ports:
- name: web
port: 8080
---
kind: Endpoints
apiVersion: v1
metadata:
name: whoami4
namespace: foo
subsets:
- addresses:
- ip: 10.10.0.1
- ip: 10.10.0.2
ports:
- name: web
port: 8080
---
apiVersion: v1
kind: Service
metadata:
name: whoami6
namespace: baz
spec:
ports:
- name: web
port: 8080
selector:
app: containous
task: whoami6
---
apiVersion: v1
kind: Service
metadata:
name: whoami5
namespace: foo
spec:
ports:
- name: web
port: 8080
selector:
app: containous
task: whoami5
---
apiVersion: v1
kind: Service
metadata:
name: whoami4
namespace: foo
spec:
ports:
- name: web
port: 8080
selector:
app: containous
task: whoami4
---
apiVersion: traefik.containo.us/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.containo.us/v1alpha1
kind: TraefikService
metadata:
name: wrr2
namespace: bar
spec:
weighted:
services:
- name: whoami5
namespace: foo
weight: 1
port: 8080
---
apiVersion: traefik.containo.us/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.containo.us/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.containo.us/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.containo.us/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.containo.us/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.containo.us/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

View file

@ -0,0 +1,63 @@
---
kind: Endpoints
apiVersion: v1
metadata:
name: whoami5
namespace: default
subsets:
- addresses:
- ip: 10.10.0.3
- ip: 10.10.0.4
ports:
- name: web
port: 8080
---
apiVersion: v1
kind: Service
metadata:
name: whoami5
namespace: default
spec:
ports:
- name: web
port: 8080
selector:
app: containous
task: whoami5
---
apiVersion: traefik.containo.us/v1alpha1
kind: TraefikService
metadata:
name: wrr1
namespace: default
spec:
weighted:
services:
- name: whoami5
kind: Service
weight: 1
port: 8080
---
apiVersion: traefik.containo.us/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: wrr1
kind: TraefikService

View file

@ -0,0 +1,174 @@
---
kind: Endpoints
apiVersion: v1
metadata:
name: whoami4
namespace: default
subsets:
- addresses:
- ip: 10.10.0.1
- ip: 10.10.0.2
ports:
- name: web
port: 80
---
kind: Endpoints
apiVersion: v1
metadata:
name: whoami5
namespace: default
subsets:
- addresses:
- ip: 10.10.0.3
- ip: 10.10.0.4
ports:
- name: web
port: 8080
---
kind: Endpoints
apiVersion: v1
metadata:
name: whoami6
namespace: default
subsets:
- addresses:
- ip: 10.10.0.5
- ip: 10.10.0.6
ports:
- name: web
port: 80
---
kind: Endpoints
apiVersion: v1
metadata:
name: whoami7
namespace: default
subsets:
- addresses:
- ip: 10.10.0.7
- ip: 10.10.0.8
ports:
- name: web
port: 8080
---
apiVersion: v1
kind: Service
metadata:
name: whoami4
namespace: default
spec:
ports:
- name: web
port: 80
selector:
app: containous
task: whoami4
---
apiVersion: v1
kind: Service
metadata:
name: whoami5
namespace: default
spec:
ports:
- name: web
port: 8080
selector:
app: containous
task: whoami5
---
apiVersion: v1
kind: Service
metadata:
name: whoami6
namespace: default
spec:
ports:
- name: web
port: 80
selector:
app: containous
task: whoami6
---
apiVersion: v1
kind: Service
metadata:
name: whoami7
namespace: default
spec:
ports:
- name: web
port: 8080
selector:
app: containous
task: whoami7
---
apiVersion: traefik.containo.us/v1alpha1
kind: TraefikService
metadata:
name: wrr1
namespace: default
spec:
weighted:
services:
- name: whoami4
port: 80
weight: 1
- name: whoami5
port: 8080
weight: 1
---
apiVersion: traefik.containo.us/v1alpha1
kind: TraefikService
metadata:
name: wrr2
namespace: default
spec:
weighted:
services:
- name: whoami6
port: 80
weight: 1
- name: whoami7
port: 8080
weight: 1
---
apiVersion: traefik.containo.us/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: wrr1
kind: TraefikService
- name: wrr2
kind: TraefikService

View file

@ -0,0 +1,79 @@
---
kind: Endpoints
apiVersion: v1
metadata:
name: whoami5
namespace: default
subsets:
- addresses:
- ip: 10.10.0.3
- ip: 10.10.0.4
ports:
- name: web
port: 8080
---
apiVersion: traefik.containo.us/v1alpha1
kind: TraefikService
metadata:
name: wrr2
namespace: default
spec:
weighted:
services:
- name: whoami5
weight: 1
port: 8080
---
apiVersion: v1
kind: Service
metadata:
name: whoami5
namespace: default
spec:
ports:
- name: web
port: 8080
selector:
app: containous
task: whoami5
---
apiVersion: traefik.containo.us/v1alpha1
kind: TraefikService
metadata:
name: wrr1
namespace: default
spec:
weighted:
services:
- name: wrr2
kind: TraefikService
weight: 1
- name: whoami5
weight: 1
port: 8080
---
apiVersion: traefik.containo.us/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: wrr1
kind: TraefikService

View file

@ -0,0 +1,128 @@
---
kind: Endpoints
apiVersion: v1
metadata:
name: whoami5
namespace: default
subsets:
- addresses:
- ip: 10.10.0.3
- ip: 10.10.0.4
ports:
- name: web
port: 8080
---
kind: Endpoints
apiVersion: v1
metadata:
name: whoami4
namespace: default
subsets:
- addresses:
- ip: 10.10.0.1
- ip: 10.10.0.2
ports:
- name: web
port: 8080
---
apiVersion: v1
kind: Service
metadata:
name: whoami5
namespace: default
spec:
ports:
- name: web
port: 8080
selector:
app: containous
task: whoami5
---
apiVersion: v1
kind: Service
metadata:
name: whoami4
namespace: default
spec:
ports:
- name: web
port: 8080
selector:
app: containous
task: whoami4
---
apiVersion: traefik.containo.us/v1alpha1
kind: TraefikService
metadata:
name: wrr2
namespace: default
spec:
weighted:
services:
- name: whoami5
weight: 1
port: 8080
---
apiVersion: traefik.containo.us/v1alpha1
kind: TraefikService
metadata:
name: mirror1
namespace: default
spec:
mirroring:
name: whoami5
port: 8080
mirrors:
- name: whoami4
percent: 50
port: 8080
---
apiVersion: traefik.containo.us/v1alpha1
kind: TraefikService
metadata:
name: wrr1
namespace: default
spec:
weighted:
services:
- name: wrr2
kind: TraefikService
weight: 1
- name: whoami5
weight: 1
port: 8080
- name: mirror1
kind: TraefikService
weight: 1
---
apiVersion: traefik.containo.us/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: wrr1
kind: TraefikService

View file

@ -0,0 +1,44 @@
---
kind: Endpoints
apiVersion: v1
metadata:
name: whoami5
namespace: default
subsets:
- addresses:
- ip: 10.10.0.3
- ip: 10.10.0.4
ports:
- name: web
port: 8080
---
apiVersion: v1
kind: Service
metadata:
name: whoami5
namespace: default
spec:
ports:
- name: web
port: 8080
selector:
app: containous
task: whoami5
---
apiVersion: traefik.containo.us/v1alpha1
kind: TraefikService
metadata:
name: wrr1
namespace: default
spec:
weighted:
services:
- name: whoami5
kind: Service
weight: 1
port: 8080

View file

@ -58,4 +58,4 @@ spec:
tls:
options:
name: foo
namespace: myns
namespace: myns

View file

@ -29,4 +29,4 @@ spec:
tls:
options:
name: foo
namespace: unknown
namespace: unknown