Skip to content

Commit

Permalink
update traefik crd (#427)
Browse files Browse the repository at this point in the history
  • Loading branch information
KyriosGN0 authored Nov 24, 2024
1 parent 835b0c1 commit 61d2e46
Show file tree
Hide file tree
Showing 10 changed files with 588 additions and 80 deletions.
108 changes: 95 additions & 13 deletions traefik.io/ingressroute_v1alpha1.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"description": "IngressRouteSpec defines the desired state of IngressRoute.",
"properties": {
"entryPoints": {
"description": "EntryPoints defines the list of entry point names to bind to.\nEntry points have to be configured in the static configuration.\nMore info: https://doc.traefik.io/traefik/v2.11/routing/entrypoints/\nDefault: all.",
"description": "EntryPoints defines the list of entry point names to bind to.\nEntry points have to be configured in the static configuration.\nMore info: https://doc.traefik.io/traefik/v3.2/routing/entrypoints/\nDefault: all.",
"items": {
"type": "string"
},
Expand All @@ -35,11 +35,11 @@
"type": "string"
},
"match": {
"description": "Match defines the router's rule.\nMore info: https://doc.traefik.io/traefik/v2.11/routing/routers/#rule",
"description": "Match defines the router's rule.\nMore info: https://doc.traefik.io/traefik/v3.2/routing/routers/#rule",
"type": "string"
},
"middlewares": {
"description": "Middlewares defines the list of references to Middleware resources.\nMore info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-middleware",
"description": "Middlewares defines the list of references to Middleware resources.\nMore info: https://doc.traefik.io/traefik/v3.2/routing/providers/kubernetes-crd/#kind-middleware",
"items": {
"description": "MiddlewareRef is a reference to a Middleware resource.",
"properties": {
Expand All @@ -61,14 +61,84 @@
"type": "array"
},
"priority": {
"description": "Priority defines the router's priority.\nMore info: https://doc.traefik.io/traefik/v2.11/routing/routers/#priority",
"description": "Priority defines the router's priority.\nMore info: https://doc.traefik.io/traefik/v3.2/routing/routers/#priority",
"type": "integer"
},
"services": {
"description": "Services defines the list of Service.\nIt can contain any combination of TraefikService and/or reference to a Kubernetes Service.",
"items": {
"description": "Service defines an upstream HTTP service to proxy traffic to.",
"properties": {
"healthCheck": {
"description": "Healthcheck defines health checks for ExternalName services.",
"properties": {
"followRedirects": {
"description": "FollowRedirects defines whether redirects should be followed during the health check calls.\nDefault: true",
"type": "boolean"
},
"headers": {
"additionalProperties": {
"type": "string"
},
"description": "Headers defines custom headers to be sent to the health check endpoint.",
"type": "object"
},
"hostname": {
"description": "Hostname defines the value of hostname in the Host header of the health check request.",
"type": "string"
},
"interval": {
"anyOf": [
{
"type": "integer"
},
{
"type": "string"
}
],
"description": "Interval defines the frequency of the health check calls.\nDefault: 30s",
"x-kubernetes-int-or-string": true
},
"method": {
"description": "Method defines the healthcheck method.",
"type": "string"
},
"mode": {
"description": "Mode defines the health check mode.\nIf defined to grpc, will use the gRPC health check protocol to probe the server.\nDefault: http",
"type": "string"
},
"path": {
"description": "Path defines the server URL path for the health check endpoint.",
"type": "string"
},
"port": {
"description": "Port defines the server URL port for the health check endpoint.",
"type": "integer"
},
"scheme": {
"description": "Scheme replaces the server URL scheme for the health check endpoint.",
"type": "string"
},
"status": {
"description": "Status defines the expected HTTP status code of the response to the health check request.",
"type": "integer"
},
"timeout": {
"anyOf": [
{
"type": "integer"
},
{
"type": "string"
}
],
"description": "Timeout defines the maximum duration Traefik will wait for a health check request before considering the server unhealthy.\nDefault: 5s",
"x-kubernetes-int-or-string": true
}
},
"type": "object",
"additionalProperties": false
},
"kind": {
"description": "Kind defines the kind of the Service.",
"enum": [
Expand All @@ -89,6 +159,10 @@
"description": "NativeLB controls, when creating the load-balancer,\nwhether the LB's children are directly the pods IPs or if the only child is the Kubernetes Service clusterIP.\nThe Kubernetes Service itself does load-balance to the pods.\nBy default, NativeLB is false.",
"type": "boolean"
},
"nodePortLB": {
"description": "NodePortLB controls, when creating the load-balancer,\nwhether the LB's children are directly the nodes internal IPs using the nodePort when the service type is NodePort.\nIt allows services to be reachable when Traefik runs externally from the Kubernetes cluster but within the same network of the nodes.\nBy default, NodePortLB is false.",
"type": "boolean"
},
"passHostHeader": {
"description": "PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service.\nBy default, passHostHeader is true.",
"type": "boolean"
Expand Down Expand Up @@ -125,7 +199,7 @@
"type": "string"
},
"sticky": {
"description": "Sticky defines the sticky sessions configuration.\nMore info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions",
"description": "Sticky defines the sticky sessions configuration.\nMore info: https://doc.traefik.io/traefik/v3.2/routing/services/#sticky-sessions",
"properties": {
"cookie": {
"description": "Cookie defines the sticky cookie configuration.",
Expand All @@ -134,6 +208,10 @@
"description": "HTTPOnly defines whether the cookie can be accessed by client-side APIs, such as JavaScript.",
"type": "boolean"
},
"maxAge": {
"description": "MaxAge indicates the number of seconds until the cookie expires.\nWhen set to a negative number, the cookie expires immediately.\nWhen set to zero, the cookie never expires.",
"type": "integer"
},
"name": {
"description": "Name defines the Cookie name.",
"type": "string"
Expand Down Expand Up @@ -170,6 +248,10 @@
"additionalProperties": false
},
"type": "array"
},
"syntax": {
"description": "Syntax defines the router's rule syntax.\nMore info: https://doc.traefik.io/traefik/v3.2/routing/routers/#rulesyntax",
"type": "string"
}
},
"required": [
Expand All @@ -182,14 +264,14 @@
"type": "array"
},
"tls": {
"description": "TLS defines the TLS configuration.\nMore info: https://doc.traefik.io/traefik/v2.11/routing/routers/#tls",
"description": "TLS defines the TLS configuration.\nMore info: https://doc.traefik.io/traefik/v3.2/routing/routers/#tls",
"properties": {
"certResolver": {
"description": "CertResolver defines the name of the certificate resolver to use.\nCert resolvers have to be configured in the static configuration.\nMore info: https://doc.traefik.io/traefik/v2.11/https/acme/#certificate-resolvers",
"description": "CertResolver defines the name of the certificate resolver to use.\nCert resolvers have to be configured in the static configuration.\nMore info: https://doc.traefik.io/traefik/v3.2/https/acme/#certificate-resolvers",
"type": "string"
},
"domains": {
"description": "Domains defines the list of domains that will be used to issue certificates.\nMore info: https://doc.traefik.io/traefik/v2.11/routing/routers/#domains",
"description": "Domains defines the list of domains that will be used to issue certificates.\nMore info: https://doc.traefik.io/traefik/v3.2/routing/routers/#domains",
"items": {
"description": "Domain holds a domain name with SANs.",
"properties": {
Expand All @@ -211,14 +293,14 @@
"type": "array"
},
"options": {
"description": "Options defines the reference to a TLSOption, that specifies the parameters of the TLS connection.\nIf not defined, the `default` TLSOption is used.\nMore info: https://doc.traefik.io/traefik/v2.11/https/tls/#tls-options",
"description": "Options defines the reference to a TLSOption, that specifies the parameters of the TLS connection.\nIf not defined, the `default` TLSOption is used.\nMore info: https://doc.traefik.io/traefik/v3.2/https/tls/#tls-options",
"properties": {
"name": {
"description": "Name defines the name of the referenced TLSOption.\nMore info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsoption",
"description": "Name defines the name of the referenced TLSOption.\nMore info: https://doc.traefik.io/traefik/v3.2/routing/providers/kubernetes-crd/#kind-tlsoption",
"type": "string"
},
"namespace": {
"description": "Namespace defines the namespace of the referenced TLSOption.\nMore info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsoption",
"description": "Namespace defines the namespace of the referenced TLSOption.\nMore info: https://doc.traefik.io/traefik/v3.2/routing/providers/kubernetes-crd/#kind-tlsoption",
"type": "string"
}
},
Expand All @@ -236,11 +318,11 @@
"description": "Store defines the reference to the TLSStore, that will be used to store certificates.\nPlease note that only `default` TLSStore can be used.",
"properties": {
"name": {
"description": "Name defines the name of the referenced TLSStore.\nMore info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsstore",
"description": "Name defines the name of the referenced TLSStore.\nMore info: https://doc.traefik.io/traefik/v3.2/routing/providers/kubernetes-crd/#kind-tlsstore",
"type": "string"
},
"namespace": {
"description": "Namespace defines the namespace of the referenced TLSStore.\nMore info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsstore",
"description": "Namespace defines the namespace of the referenced TLSStore.\nMore info: https://doc.traefik.io/traefik/v3.2/routing/providers/kubernetes-crd/#kind-tlsstore",
"type": "string"
}
},
Expand Down
Loading

0 comments on commit 61d2e46

Please sign in to comment.