Introduce traefik.io API Group CRDs

This commit is contained in:
Romain 2023-03-20 15:38:08 +01:00 committed by GitHub
parent b3f162a8a6
commit 7af9d16208
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
298 changed files with 16218 additions and 582 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

@ -16,6 +16,7 @@ import (
"github.com/traefik/traefik/v2/pkg/log"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials"
"google.golang.org/grpc/credentials/insecure"
)
var (
@ -94,7 +95,7 @@ func getHelloClientGRPC() (helloworld.GreeterClient, func() error, error) {
}
func getHelloClientGRPCh2c() (helloworld.GreeterClient, func() error, error) {
conn, err := grpc.Dial("127.0.0.1:8081", grpc.WithInsecure())
conn, err := grpc.Dial("127.0.0.1:8081", grpc.WithTransportCredentials(insecure.NewCredentials()))
if err != nil {
return nil, func() error { return nil }, err
}

View file

@ -25,6 +25,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": {
@ -44,7 +75,7 @@
"url": "http://10.42.0.3:80"
},
{
"url": "http://10.42.0.4:80"
"url": "http://10.42.0.7:80"
}
],
"passHostHeader": true
@ -55,7 +86,28 @@
],
"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
},
"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": {

View file

@ -26,6 +26,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"
@ -89,6 +107,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": [
@ -131,10 +160,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
@ -144,18 +173,39 @@
"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
},
"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
@ -165,18 +215,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,
@ -187,26 +237,26 @@
"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
},
"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": {
@ -257,6 +307,21 @@
"using": [
"footcp"
]
},
"default-test3.route-containous-673acf455cb2dab0b43a@kubernetescrd": {
"entryPoints": [
"footcp"
],
"service": "default-test3.route-containous-673acf455cb2dab0b43a",
"rule": "HostSNI(`*`)",
"tls": {
"passthrough": false,
"options": "default-mytlsoption-containous"
},
"status": "enabled",
"using": [
"footcp"
]
}
},
"tcpServices": {
@ -276,10 +341,10 @@
"terminationDelay": 100,
"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"
}
]
},
@ -302,6 +367,49 @@
"usedBy": [
"default-test3.route-673acf455cb2dab0b43a@kubernetescrd"
]
},
"default-test3.route-containous-673acf455cb2dab0b43a-externalname-svc-9090@kubernetescrd": {
"loadBalancer": {
"terminationDelay": 100,
"servers": [
{
"address": "domain.com:9090"
}
]
},
"status": "enabled"
},
"default-test3.route-containous-673acf455cb2dab0b43a-whoamitcp-8080@kubernetescrd": {
"loadBalancer": {
"terminationDelay": 100,
"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": {
@ -314,6 +422,16 @@
"using": [
"fooudp"
]
},
"default-test3.route-containous-0@kubernetescrd": {
"entryPoints": [
"fooudp"
],
"service": "default-test3.route-containous-0",
"status": "enabled",
"using": [
"fooudp"
]
}
},
"udpServices": {
@ -331,10 +449,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"
}
]
},
@ -357,6 +475,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"
]
}
}
}