Merge branch v2.10 into v3.0

This commit is contained in:
Fernandez Ludovic 2023-03-21 12:00:46 +01:00
commit 7875826bd9
387 changed files with 19080 additions and 976 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,93 @@
# This IngressRoute is expected to be ignored, because it already declared in API GroupVersion "traefik.io/v1alpha1".
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: test.route
namespace: default
labels:
app: traefik
spec:
entryPoints:
- web
routes:
- match: Host(`collision`)
kind: Rule
priority: 12
services:
- name: whoami
port: 80
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: test.route.containous
namespace: default
labels:
app: traefik
spec:
entryPoints:
- web
routes:
- match: Host(`bar.com`) && PathPrefix(`/foo`)
kind: Rule
priority: 12
middlewares:
- name: stripprefix-containous
services:
- name: whoami
port: 80
tls:
options:
name: mytlsoption-containous
store:
name: mytlsstore-containous
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: stripprefix-containous
namespace: default
labels:
app: traefik
spec:
stripPrefix:
prefixes:
- /tobestripped
---
apiVersion: traefik.containo.us/v1alpha1
kind: TLSOption
metadata:
name: mytlsoption-containous
namespace: default
labels:
app: traefik
spec:
minVersion: VersionTLS12
sniStrict: true
cipherSuites:
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_RSA_WITH_AES_256_GCM_SHA384
---
apiVersion: traefik.containo.us/v1alpha1
kind: TLSStore
metadata:
name: mytlsstore-containous
namespace: default
labels:
app: traefik
spec:
defaultCertificate:
secretName: tls-cert

View file

@ -1,4 +1,4 @@
apiVersion: traefik.containo.us/v1alpha1
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: test.route

View file

@ -1,4 +1,4 @@
apiVersion: traefik.containo.us/v1alpha1
apiVersion: traefik.io/v1alpha1
kind: TLSOption
metadata:
name: mytlsoption

View file

@ -1,4 +1,4 @@
apiVersion: traefik.containo.us/v1alpha1
apiVersion: traefik.io/v1alpha1
kind: TLSStore
metadata:
name: mytlsstore

View file

@ -1,4 +1,4 @@
apiVersion: traefik.containo.us/v1alpha1
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: mychain
@ -10,7 +10,7 @@ spec:
- name: stripprefix
---
apiVersion: traefik.containo.us/v1alpha1
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: stripprefix
@ -22,7 +22,7 @@ spec:
- /tobestripped
---
apiVersion: traefik.containo.us/v1alpha1
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: test2.route

View file

@ -0,0 +1,22 @@
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRouteTCP
metadata:
name: test3.route-containous
namespace: default
spec:
entryPoints:
- footcp
routes:
- match: HostSNI(`*`)
services:
- name: whoamitcp
namespace: default
port: 8080
- name: externalname-svc
port: 9090
tls:
options:
name: mytlsoption-containous
store:
name: mytlsstore-containous

View file

@ -1,4 +1,4 @@
apiVersion: traefik.containo.us/v1alpha1
apiVersion: traefik.io/v1alpha1
kind: IngressRouteTCP
metadata:
name: test3.route

View file

@ -0,0 +1,16 @@
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRouteUDP
metadata:
name: test3.route-containous
namespace: default
spec:
entryPoints:
- fooudp
routes:
- services:
- name: whoamiudp
namespace: default
port: 8090
- name: externalname-svc
port: 9090

View file

@ -1,4 +1,4 @@
apiVersion: traefik.containo.us/v1alpha1
apiVersion: traefik.io/v1alpha1
kind: IngressRouteUDP
metadata:
name: test3.route

View file

@ -1,5 +1,5 @@
---
apiVersion: traefik.containo.us/v1alpha1
apiVersion: traefik.io/v1alpha1
kind: TraefikService
metadata:
name: mirror1
@ -14,7 +14,7 @@ spec:
port: 80
---
apiVersion: traefik.containo.us/v1alpha1
apiVersion: traefik.io/v1alpha1
kind: TraefikService
metadata:
name: wrr1
@ -29,7 +29,7 @@ spec:
port: 80
---
apiVersion: traefik.containo.us/v1alpha1
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: test3.route
@ -45,7 +45,7 @@ spec:
- name: wrr1
kind: TraefikService
---
apiVersion: traefik.containo.us/v1alpha1
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: api.route

View file

@ -20,7 +20,7 @@ spec:
task: whoami
---
apiVersion: traefik.containo.us/v1alpha1
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: test6.route
@ -65,7 +65,7 @@ spec:
- name: test-errorpage
---
apiVersion: traefik.containo.us/v1alpha1
apiVersion: traefik.io/v1alpha1
kind: TraefikService
metadata:
name: wrr2
@ -78,7 +78,7 @@ spec:
port: 80
---
apiVersion: traefik.containo.us/v1alpha1
apiVersion: traefik.io/v1alpha1
kind: TraefikService
metadata:
name: wrr3
@ -92,7 +92,7 @@ spec:
port: 80
---
apiVersion: traefik.containo.us/v1alpha1
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: stripprefix2
@ -104,7 +104,7 @@ spec:
- /tobestripped
---
apiVersion: traefik.containo.us/v1alpha1
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: test-errorpage

View file

@ -1,5 +1,5 @@
---
apiVersion: traefik.containo.us/v1alpha1
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: testst.route
@ -17,7 +17,7 @@ spec:
serversTransport: mytransport
---
apiVersion: traefik.containo.us/v1alpha1
apiVersion: traefik.io/v1alpha1
kind: ServersTransport
metadata:
name: mytransport

View file

@ -215,7 +215,7 @@ func matchesConfig(wantConfig string, buf *bytes.Buffer) try.ResponseCondition {
// The pods IPs are dynamic, so we cannot predict them,
// which is why we have to ignore them in the comparison.
rxURL := regexp.MustCompile(`"(url|address)":\s+(".*")`)
sanitizedExpected := rxURL.ReplaceAll(expected, []byte(`"$1": "XXXX"`))
sanitizedExpected := rxURL.ReplaceAll(bytes.TrimSpace(expected), []byte(`"$1": "XXXX"`))
sanitizedGot := rxURL.ReplaceAll(got, []byte(`"$1": "XXXX"`))
rxServerStatus := regexp.MustCompile(`"http://.*?":\s+(".*")`)

View file

@ -26,6 +26,37 @@
"using": [
"web"
]
},
"default-test-route-containous-1bc3efa892379bb93c6e@kubernetescrd": {
"entryPoints": [
"web"
],
"middlewares": [
"default-stripprefix-containous@kubernetescrd"
],
"service": "default-test-route-containous-1bc3efa892379bb93c6e",
"rule": "Host(`bar.com`) \u0026\u0026 PathPrefix(`/foo`)",
"priority": 12,
"tls": {
"options": "default-mytlsoption-containous"
},
"status": "enabled",
"using": [
"web"
]
}
},
"middlewares": {
"default-stripprefix-containous@kubernetescrd": {
"stripPrefix": {
"prefixes": [
"/tobestripped"
]
},
"status": "enabled",
"usedBy": [
"default-test-route-containous-1bc3efa892379bb93c6e@kubernetescrd"
]
}
},
"services": {
@ -45,7 +76,7 @@
"url": "http://10.42.0.3:80"
},
{
"url": "http://10.42.0.4:80"
"url": "http://10.42.0.7:80"
}
],
"passHostHeader": true,
@ -59,11 +90,35 @@
],
"serverStatus": {
"http://10.42.0.3:80": "UP",
"http://10.42.0.4:80": "UP"
"http://10.42.0.7:80": "UP"
}
},
"default-test-route-containous-1bc3efa892379bb93c6e@kubernetescrd": {
"loadBalancer": {
"servers": [
{
"url": "http://10.42.0.3:80"
},
{
"url": "http://10.42.0.7:80"
}
],
"passHostHeader": true,
"responseForwarding": {
"flushInterval": "100ms"
}
},
"status": "enabled",
"usedBy": [
"default-test-route-containous-1bc3efa892379bb93c6e@kubernetescrd"
],
"serverStatus": {
"http://10.42.0.3:80": "UP",
"http://10.42.0.7:80": "UP"
}
},
"noop@internal": {
"status": "enabled"
}
}
}
}

View file

@ -27,6 +27,24 @@
"web"
]
},
"default-test-route-containous-1bc3efa892379bb93c6e@kubernetescrd": {
"entryPoints": [
"web"
],
"middlewares": [
"default-stripprefix-containous@kubernetescrd"
],
"service": "default-test-route-containous-1bc3efa892379bb93c6e",
"rule": "Host(`bar.com`) \u0026\u0026 PathPrefix(`/foo`)",
"priority": 12,
"tls": {
"options": "default-mytlsoption-containous"
},
"status": "enabled",
"using": [
"web"
]
},
"default-test2-route-23c7f4c450289ee29016@kubernetescrd": {
"entryPoints": [
"web"
@ -94,6 +112,17 @@
"default-test2-route-23c7f4c450289ee29016@kubernetescrd"
]
},
"default-stripprefix-containous@kubernetescrd": {
"stripPrefix": {
"prefixes": [
"/tobestripped"
]
},
"status": "enabled",
"usedBy": [
"default-test-route-containous-1bc3efa892379bb93c6e@kubernetescrd"
]
},
"default-stripprefix2@kubernetescrd": {
"stripPrefix": {
"prefixes": [
@ -136,10 +165,10 @@
"loadBalancer": {
"servers": [
{
"url": "http://10.42.0.6:80"
"url": "http://10.42.0.4:80"
},
{
"url": "http://10.42.0.7:80"
"url": "http://10.42.0.6:80"
}
],
"passHostHeader": true,
@ -152,18 +181,42 @@
"default-test-route-6b204d94623b3df4370c@kubernetescrd"
],
"serverStatus": {
"http://10.42.0.6:80": "UP",
"http://10.42.0.7:80": "UP"
"http://10.42.0.4:80": "UP",
"http://10.42.0.6:80": "UP"
}
},
"default-test-route-containous-1bc3efa892379bb93c6e@kubernetescrd": {
"loadBalancer": {
"servers": [
{
"url": "http://10.42.0.4:80"
},
{
"url": "http://10.42.0.6:80"
}
],
"passHostHeader": true,
"responseForwarding": {
"flushInterval": "100ms"
}
},
"status": "enabled",
"usedBy": [
"default-test-route-containous-1bc3efa892379bb93c6e@kubernetescrd"
],
"serverStatus": {
"http://10.42.0.4:80": "UP",
"http://10.42.0.6:80": "UP"
}
},
"default-test2-route-23c7f4c450289ee29016@kubernetescrd": {
"loadBalancer": {
"servers": [
{
"url": "http://10.42.0.6:80"
"url": "http://10.42.0.4:80"
},
{
"url": "http://10.42.0.7:80"
"url": "http://10.42.0.6:80"
}
],
"passHostHeader": true,
@ -176,18 +229,18 @@
"default-test2-route-23c7f4c450289ee29016@kubernetescrd"
],
"serverStatus": {
"http://10.42.0.6:80": "UP",
"http://10.42.0.7:80": "UP"
"http://10.42.0.4:80": "UP",
"http://10.42.0.6:80": "UP"
}
},
"default-testst-route-60ad45fcb5fc1f5f3629@kubernetescrd": {
"loadBalancer": {
"servers": [
{
"url": "http://10.42.0.6:80"
"url": "http://10.42.0.4:80"
},
{
"url": "http://10.42.0.7:80"
"url": "http://10.42.0.6:80"
}
],
"passHostHeader": true,
@ -201,18 +254,18 @@
"default-testst-route-60ad45fcb5fc1f5f3629@kubernetescrd"
],
"serverStatus": {
"http://10.42.0.6:80": "UP",
"http://10.42.0.7:80": "UP"
"http://10.42.0.4:80": "UP",
"http://10.42.0.6:80": "UP"
}
},
"default-whoami-80@kubernetescrd": {
"loadBalancer": {
"servers": [
{
"url": "http://10.42.0.6:80"
"url": "http://10.42.0.4:80"
},
{
"url": "http://10.42.0.7:80"
"url": "http://10.42.0.6:80"
}
],
"passHostHeader": true,
@ -222,8 +275,8 @@
},
"status": "enabled",
"serverStatus": {
"http://10.42.0.6:80": "UP",
"http://10.42.0.7:80": "UP"
"http://10.42.0.4:80": "UP",
"http://10.42.0.6:80": "UP"
}
},
"default-wrr1@kubernetescrd": {
@ -275,6 +328,22 @@
"using": [
"footcp"
]
},
"default-test3.route-containous-673acf455cb2dab0b43a@kubernetescrd": {
"entryPoints": [
"footcp"
],
"service": "default-test3.route-containous-673acf455cb2dab0b43a",
"rule": "HostSNI(`*`)",
"priority": -1,
"tls": {
"passthrough": false,
"options": "default-mytlsoption-containous"
},
"status": "enabled",
"using": [
"footcp"
]
}
},
"tcpServices": {
@ -292,10 +361,10 @@
"loadBalancer": {
"servers": [
{
"address": "10.42.0.10:8080"
"address": "10.42.0.2:8080"
},
{
"address": "10.42.0.8:8080"
"address": "10.42.0.3:8080"
}
]
},
@ -318,6 +387,47 @@
"usedBy": [
"default-test3.route-673acf455cb2dab0b43a@kubernetescrd"
]
},
"default-test3.route-containous-673acf455cb2dab0b43a-externalname-svc-9090@kubernetescrd": {
"loadBalancer": {
"servers": [
{
"address": "domain.com:9090"
}
]
},
"status": "enabled"
},
"default-test3.route-containous-673acf455cb2dab0b43a-whoamitcp-8080@kubernetescrd": {
"loadBalancer": {
"servers": [
{
"address": "10.42.0.2:8080"
},
{
"address": "10.42.0.3:8080"
}
]
},
"status": "enabled"
},
"default-test3.route-containous-673acf455cb2dab0b43a@kubernetescrd": {
"weighted": {
"services": [
{
"name": "default-test3.route-containous-673acf455cb2dab0b43a-whoamitcp-8080",
"weight": 1
},
{
"name": "default-test3.route-containous-673acf455cb2dab0b43a-externalname-svc-9090",
"weight": 1
}
]
},
"status": "enabled",
"usedBy": [
"default-test3.route-containous-673acf455cb2dab0b43a@kubernetescrd"
]
}
},
"udpRouters": {
@ -330,6 +440,16 @@
"using": [
"fooudp"
]
},
"default-test3.route-containous-0@kubernetescrd": {
"entryPoints": [
"fooudp"
],
"service": "default-test3.route-containous-0",
"status": "enabled",
"using": [
"fooudp"
]
}
},
"udpServices": {
@ -347,10 +467,10 @@
"loadBalancer": {
"servers": [
{
"address": "10.42.0.4:8090"
"address": "10.42.0.5:8090"
},
{
"address": "10.42.0.9:8090"
"address": "10.42.0.7:8090"
}
]
},
@ -373,6 +493,47 @@
"usedBy": [
"default-test3.route-0@kubernetescrd"
]
},
"default-test3.route-containous-0-externalname-svc-9090@kubernetescrd": {
"loadBalancer": {
"servers": [
{
"address": "domain.com:9090"
}
]
},
"status": "enabled"
},
"default-test3.route-containous-0-whoamiudp-8090@kubernetescrd": {
"loadBalancer": {
"servers": [
{
"address": "10.42.0.5:8090"
},
{
"address": "10.42.0.7:8090"
}
]
},
"status": "enabled"
},
"default-test3.route-containous-0@kubernetescrd": {
"weighted": {
"services": [
{
"name": "default-test3.route-containous-0-whoamiudp-8090",
"weight": 1
},
{
"name": "default-test3.route-containous-0-externalname-svc-9090",
"weight": 1
}
]
},
"status": "enabled",
"usedBy": [
"default-test3.route-containous-0@kubernetescrd"
]
}
}
}
}