Update cloudflared
This commit is contained in:
parent
1174b68d0f
commit
dcf98f9e07
@ -1,6 +1,6 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
- name: common
|
- name: common
|
||||||
repository: https://library-charts.truecharts.org
|
repository: https://library-charts.truecharts.org
|
||||||
version: 14.0.6
|
version: 14.3.5
|
||||||
digest: sha256:df8345d83abf40d549397019a3910f2b06630fdcbdbd02a790a0e60bac8b7139
|
digest: sha256:b7cb6511c16fc5f11e4769ebf0c48524b2522a0408b8de14207cdf19109996c6
|
||||||
generated: "2023-09-05T03:53:33.985985835Z"
|
generated: "2023-12-03T22:27:06.661421448Z"
|
||||||
|
|||||||
@ -1,14 +1,17 @@
|
|||||||
annotations:
|
annotations:
|
||||||
|
max_scale_version: 23.10.1
|
||||||
|
min_scale_version: 22.12.4
|
||||||
truecharts.org/SCALE-support: "true"
|
truecharts.org/SCALE-support: "true"
|
||||||
truecharts.org/catagories: |
|
truecharts.org/category: network
|
||||||
- network
|
truecharts.org/max_helm_version: "3.13"
|
||||||
truecharts.org/grade: U
|
truecharts.org/min_helm_version: "3.12"
|
||||||
|
truecharts.org/train: stable
|
||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
appVersion: 2023.8.2
|
appVersion: 2023.10.0
|
||||||
dependencies:
|
dependencies:
|
||||||
- name: common
|
- name: common
|
||||||
repository: https://library-charts.truecharts.org
|
repository: https://library-charts.truecharts.org
|
||||||
version: 14.0.6
|
version: 14.3.5
|
||||||
description: Client for Cloudflare Tunnel, a daemon that exposes private services
|
description: Client for Cloudflare Tunnel, a daemon that exposes private services
|
||||||
through the Cloudflare edge.
|
through the Cloudflare edge.
|
||||||
home: https://truecharts.org/charts/stable/cloudflared
|
home: https://truecharts.org/charts/stable/cloudflared
|
||||||
@ -16,7 +19,7 @@ icon: https://truecharts.org/img/hotlink-ok/chart-icons/cloudflared.png
|
|||||||
keywords:
|
keywords:
|
||||||
- cloudflared
|
- cloudflared
|
||||||
- networking
|
- networking
|
||||||
kubeVersion: '>=1.16.0-0'
|
kubeVersion: '>=1.24.0'
|
||||||
maintainers:
|
maintainers:
|
||||||
- email: info@truecharts.org
|
- email: info@truecharts.org
|
||||||
name: TrueCharts
|
name: TrueCharts
|
||||||
@ -24,5 +27,5 @@ maintainers:
|
|||||||
name: cloudflared
|
name: cloudflared
|
||||||
sources:
|
sources:
|
||||||
- https://github.com/truecharts/charts/tree/master/charts/stable/cloudflared
|
- https://github.com/truecharts/charts/tree/master/charts/stable/cloudflared
|
||||||
type: application
|
- https://hub.docker.com/r/cloudflare/cloudflared
|
||||||
version: 6.0.4
|
version: 6.0.15
|
||||||
|
|||||||
@ -14,4 +14,4 @@ maintainers:
|
|||||||
url: https://truecharts.org
|
url: https://truecharts.org
|
||||||
name: common
|
name: common
|
||||||
type: library
|
type: library
|
||||||
version: 14.0.6
|
version: 14.3.5
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1,275 +0,0 @@
|
|||||||
|
|
||||||
---
|
|
||||||
apiVersion: apiextensions.k8s.io/v1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
controller-gen.kubebuilder.io/version: v0.6.2
|
|
||||||
creationTimestamp: null
|
|
||||||
name: ingressroutes.traefik.io
|
|
||||||
spec:
|
|
||||||
group: traefik.io
|
|
||||||
names:
|
|
||||||
kind: IngressRoute
|
|
||||||
listKind: IngressRouteList
|
|
||||||
plural: ingressroutes
|
|
||||||
singular: ingressroute
|
|
||||||
scope: Namespaced
|
|
||||||
versions:
|
|
||||||
- name: v1alpha1
|
|
||||||
schema:
|
|
||||||
openAPIV3Schema:
|
|
||||||
description: IngressRoute is the CRD implementation of a Traefik HTTP Router.
|
|
||||||
properties:
|
|
||||||
apiVersion:
|
|
||||||
description: 'APIVersion defines the versioned schema of this representation
|
|
||||||
of an object. Servers should convert recognized schemas to the latest
|
|
||||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
|
||||||
type: string
|
|
||||||
kind:
|
|
||||||
description: 'Kind is a string value representing the REST resource this
|
|
||||||
object represents. Servers may infer this from the endpoint the client
|
|
||||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
|
||||||
type: string
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
spec:
|
|
||||||
description: IngressRouteSpec defines the desired state of IngressRoute.
|
|
||||||
properties:
|
|
||||||
entryPoints:
|
|
||||||
description: 'EntryPoints defines the list of entry point names to
|
|
||||||
bind to. Entry points have to be configured in the static configuration.
|
|
||||||
More info: https://doc.traefik.io/traefik/v2.10/routing/entrypoints/
|
|
||||||
Default: all.'
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
routes:
|
|
||||||
description: Routes defines the list of routes.
|
|
||||||
items:
|
|
||||||
description: Route holds the HTTP route configuration.
|
|
||||||
properties:
|
|
||||||
kind:
|
|
||||||
description: Kind defines the kind of the route. Rule is the
|
|
||||||
only supported kind.
|
|
||||||
enum:
|
|
||||||
- Rule
|
|
||||||
type: string
|
|
||||||
match:
|
|
||||||
description: 'Match defines the router''s rule. More info: https://doc.traefik.io/traefik/v2.10/routing/routers/#rule'
|
|
||||||
type: string
|
|
||||||
middlewares:
|
|
||||||
description: 'Middlewares defines the list of references to
|
|
||||||
Middleware resources. More info: https://doc.traefik.io/traefik/v2.10/routing/providers/kubernetes-crd/#kind-middleware'
|
|
||||||
items:
|
|
||||||
description: MiddlewareRef is a reference to a Middleware
|
|
||||||
resource.
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
description: Name defines the name of the referenced Middleware
|
|
||||||
resource.
|
|
||||||
type: string
|
|
||||||
namespace:
|
|
||||||
description: Namespace defines the namespace of the referenced
|
|
||||||
Middleware resource.
|
|
||||||
type: string
|
|
||||||
required:
|
|
||||||
- name
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
priority:
|
|
||||||
description: 'Priority defines the router''s priority. More
|
|
||||||
info: https://doc.traefik.io/traefik/v2.10/routing/routers/#priority'
|
|
||||||
type: integer
|
|
||||||
services:
|
|
||||||
description: Services defines the list of Service. It 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:
|
|
||||||
kind:
|
|
||||||
description: Kind defines the kind of the Service.
|
|
||||||
enum:
|
|
||||||
- Service
|
|
||||||
- TraefikService
|
|
||||||
type: string
|
|
||||||
name:
|
|
||||||
description: Name defines the name of the referenced Kubernetes
|
|
||||||
Service or TraefikService. The differentiation between
|
|
||||||
the two is specified in the Kind field.
|
|
||||||
type: string
|
|
||||||
namespace:
|
|
||||||
description: Namespace defines the namespace of the referenced
|
|
||||||
Kubernetes Service or TraefikService.
|
|
||||||
type: string
|
|
||||||
nativeLB:
|
|
||||||
description: NativeLB controls, when creating the load-balancer,
|
|
||||||
whether the LB's children are directly the pods IPs
|
|
||||||
or if the only child is the Kubernetes Service clusterIP.
|
|
||||||
The Kubernetes Service itself does load-balance to the
|
|
||||||
pods. By default, NativeLB is false.
|
|
||||||
type: boolean
|
|
||||||
passHostHeader:
|
|
||||||
description: PassHostHeader defines whether the client
|
|
||||||
Host header is forwarded to the upstream Kubernetes
|
|
||||||
Service. By default, passHostHeader is true.
|
|
||||||
type: boolean
|
|
||||||
port:
|
|
||||||
anyOf:
|
|
||||||
- type: integer
|
|
||||||
- type: string
|
|
||||||
description: Port defines the port of a Kubernetes Service.
|
|
||||||
This can be a reference to a named port.
|
|
||||||
x-kubernetes-int-or-string: true
|
|
||||||
responseForwarding:
|
|
||||||
description: ResponseForwarding defines how Traefik forwards
|
|
||||||
the response from the upstream Kubernetes Service to
|
|
||||||
the client.
|
|
||||||
properties:
|
|
||||||
flushInterval:
|
|
||||||
description: 'FlushInterval defines the interval,
|
|
||||||
in milliseconds, in between flushes to the client
|
|
||||||
while copying the response body. A negative value
|
|
||||||
means to flush immediately after each write to the
|
|
||||||
client. This configuration is ignored when ReverseProxy
|
|
||||||
recognizes a response as a streaming response; for
|
|
||||||
such responses, writes are flushed to the client
|
|
||||||
immediately. Default: 100ms'
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
scheme:
|
|
||||||
description: Scheme defines the scheme to use for the
|
|
||||||
request to the upstream Kubernetes Service. It defaults
|
|
||||||
to https when Kubernetes Service port is 443, http otherwise.
|
|
||||||
type: string
|
|
||||||
serversTransport:
|
|
||||||
description: ServersTransport defines the name of ServersTransport
|
|
||||||
resource to use. It allows to configure the transport
|
|
||||||
between Traefik and your servers. Can only be used on
|
|
||||||
a Kubernetes Service.
|
|
||||||
type: string
|
|
||||||
sticky:
|
|
||||||
description: 'Sticky defines the sticky sessions configuration.
|
|
||||||
More info: https://doc.traefik.io/traefik/v2.10/routing/services/#sticky-sessions'
|
|
||||||
properties:
|
|
||||||
cookie:
|
|
||||||
description: Cookie defines the sticky cookie configuration.
|
|
||||||
properties:
|
|
||||||
httpOnly:
|
|
||||||
description: HTTPOnly defines whether the cookie
|
|
||||||
can be accessed by client-side APIs, such as
|
|
||||||
JavaScript.
|
|
||||||
type: boolean
|
|
||||||
name:
|
|
||||||
description: Name defines the Cookie name.
|
|
||||||
type: string
|
|
||||||
sameSite:
|
|
||||||
description: 'SameSite defines the same site policy.
|
|
||||||
More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite'
|
|
||||||
type: string
|
|
||||||
secure:
|
|
||||||
description: Secure defines whether the cookie
|
|
||||||
can only be transmitted over an encrypted connection
|
|
||||||
(i.e. HTTPS).
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
strategy:
|
|
||||||
description: Strategy defines the load balancing strategy
|
|
||||||
between the servers. RoundRobin is the only supported
|
|
||||||
value at the moment.
|
|
||||||
type: string
|
|
||||||
weight:
|
|
||||||
description: Weight defines the weight and should only
|
|
||||||
be specified when Name references a TraefikService object
|
|
||||||
(and to be precise, one that embeds a Weighted Round
|
|
||||||
Robin).
|
|
||||||
type: integer
|
|
||||||
required:
|
|
||||||
- name
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
required:
|
|
||||||
- kind
|
|
||||||
- match
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
tls:
|
|
||||||
description: 'TLS defines the TLS configuration. More info: https://doc.traefik.io/traefik/v2.10/routing/routers/#tls'
|
|
||||||
properties:
|
|
||||||
certResolver:
|
|
||||||
description: 'CertResolver defines the name of the certificate
|
|
||||||
resolver to use. Cert resolvers have to be configured in the
|
|
||||||
static configuration. More info: https://doc.traefik.io/traefik/v2.10/https/acme/#certificate-resolvers'
|
|
||||||
type: string
|
|
||||||
domains:
|
|
||||||
description: 'Domains defines the list of domains that will be
|
|
||||||
used to issue certificates. More info: https://doc.traefik.io/traefik/v2.10/routing/routers/#domains'
|
|
||||||
items:
|
|
||||||
description: Domain holds a domain name with SANs.
|
|
||||||
properties:
|
|
||||||
main:
|
|
||||||
description: Main defines the main domain name.
|
|
||||||
type: string
|
|
||||||
sans:
|
|
||||||
description: SANs defines the subject alternative domain
|
|
||||||
names.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
options:
|
|
||||||
description: 'Options defines the reference to a TLSOption, that
|
|
||||||
specifies the parameters of the TLS connection. If not defined,
|
|
||||||
the `default` TLSOption is used. More info: https://doc.traefik.io/traefik/v2.10/https/tls/#tls-options'
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
description: 'Name defines the name of the referenced TLSOption.
|
|
||||||
More info: https://doc.traefik.io/traefik/v2.10/routing/providers/kubernetes-crd/#kind-tlsoption'
|
|
||||||
type: string
|
|
||||||
namespace:
|
|
||||||
description: 'Namespace defines the namespace of the referenced
|
|
||||||
TLSOption. More info: https://doc.traefik.io/traefik/v2.10/routing/providers/kubernetes-crd/#kind-tlsoption'
|
|
||||||
type: string
|
|
||||||
required:
|
|
||||||
- name
|
|
||||||
type: object
|
|
||||||
secretName:
|
|
||||||
description: SecretName is the name of the referenced Kubernetes
|
|
||||||
Secret to specify the certificate details.
|
|
||||||
type: string
|
|
||||||
store:
|
|
||||||
description: Store defines the reference to the TLSStore, that
|
|
||||||
will be used to store certificates. Please note that only `default`
|
|
||||||
TLSStore can be used.
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
description: 'Name defines the name of the referenced TLSStore.
|
|
||||||
More info: https://doc.traefik.io/traefik/v2.10/routing/providers/kubernetes-crd/#kind-tlsstore'
|
|
||||||
type: string
|
|
||||||
namespace:
|
|
||||||
description: 'Namespace defines the namespace of the referenced
|
|
||||||
TLSStore. More info: https://doc.traefik.io/traefik/v2.10/routing/providers/kubernetes-crd/#kind-tlsstore'
|
|
||||||
type: string
|
|
||||||
required:
|
|
||||||
- name
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
required:
|
|
||||||
- routes
|
|
||||||
type: object
|
|
||||||
required:
|
|
||||||
- metadata
|
|
||||||
- spec
|
|
||||||
type: object
|
|
||||||
served: true
|
|
||||||
storage: true
|
|
||||||
status:
|
|
||||||
acceptedNames:
|
|
||||||
kind: ""
|
|
||||||
plural: ""
|
|
||||||
conditions: []
|
|
||||||
storedVersions: []
|
|
||||||
@ -1,218 +0,0 @@
|
|||||||
|
|
||||||
---
|
|
||||||
apiVersion: apiextensions.k8s.io/v1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
controller-gen.kubebuilder.io/version: v0.6.2
|
|
||||||
creationTimestamp: null
|
|
||||||
name: ingressroutetcps.traefik.io
|
|
||||||
spec:
|
|
||||||
group: traefik.io
|
|
||||||
names:
|
|
||||||
kind: IngressRouteTCP
|
|
||||||
listKind: IngressRouteTCPList
|
|
||||||
plural: ingressroutetcps
|
|
||||||
singular: ingressroutetcp
|
|
||||||
scope: Namespaced
|
|
||||||
versions:
|
|
||||||
- name: v1alpha1
|
|
||||||
schema:
|
|
||||||
openAPIV3Schema:
|
|
||||||
description: IngressRouteTCP is the CRD implementation of a Traefik TCP Router.
|
|
||||||
properties:
|
|
||||||
apiVersion:
|
|
||||||
description: 'APIVersion defines the versioned schema of this representation
|
|
||||||
of an object. Servers should convert recognized schemas to the latest
|
|
||||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
|
||||||
type: string
|
|
||||||
kind:
|
|
||||||
description: 'Kind is a string value representing the REST resource this
|
|
||||||
object represents. Servers may infer this from the endpoint the client
|
|
||||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
|
||||||
type: string
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
spec:
|
|
||||||
description: IngressRouteTCPSpec defines the desired state of IngressRouteTCP.
|
|
||||||
properties:
|
|
||||||
entryPoints:
|
|
||||||
description: 'EntryPoints defines the list of entry point names to
|
|
||||||
bind to. Entry points have to be configured in the static configuration.
|
|
||||||
More info: https://doc.traefik.io/traefik/v2.10/routing/entrypoints/
|
|
||||||
Default: all.'
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
routes:
|
|
||||||
description: Routes defines the list of routes.
|
|
||||||
items:
|
|
||||||
description: RouteTCP holds the TCP route configuration.
|
|
||||||
properties:
|
|
||||||
match:
|
|
||||||
description: 'Match defines the router''s rule. More info: https://doc.traefik.io/traefik/v2.10/routing/routers/#rule_1'
|
|
||||||
type: string
|
|
||||||
middlewares:
|
|
||||||
description: Middlewares defines the list of references to MiddlewareTCP
|
|
||||||
resources.
|
|
||||||
items:
|
|
||||||
description: ObjectReference is a generic reference to a Traefik
|
|
||||||
resource.
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
description: Name defines the name of the referenced Traefik
|
|
||||||
resource.
|
|
||||||
type: string
|
|
||||||
namespace:
|
|
||||||
description: Namespace defines the namespace of the referenced
|
|
||||||
Traefik resource.
|
|
||||||
type: string
|
|
||||||
required:
|
|
||||||
- name
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
priority:
|
|
||||||
description: 'Priority defines the router''s priority. More
|
|
||||||
info: https://doc.traefik.io/traefik/v2.10/routing/routers/#priority_1'
|
|
||||||
type: integer
|
|
||||||
services:
|
|
||||||
description: Services defines the list of TCP services.
|
|
||||||
items:
|
|
||||||
description: ServiceTCP defines an upstream TCP service to
|
|
||||||
proxy traffic to.
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
description: Name defines the name of the referenced Kubernetes
|
|
||||||
Service.
|
|
||||||
type: string
|
|
||||||
namespace:
|
|
||||||
description: Namespace defines the namespace of the referenced
|
|
||||||
Kubernetes Service.
|
|
||||||
type: string
|
|
||||||
nativeLB:
|
|
||||||
description: NativeLB controls, when creating the load-balancer,
|
|
||||||
whether the LB's children are directly the pods IPs
|
|
||||||
or if the only child is the Kubernetes Service clusterIP.
|
|
||||||
The Kubernetes Service itself does load-balance to the
|
|
||||||
pods. By default, NativeLB is false.
|
|
||||||
type: boolean
|
|
||||||
port:
|
|
||||||
anyOf:
|
|
||||||
- type: integer
|
|
||||||
- type: string
|
|
||||||
description: Port defines the port of a Kubernetes Service.
|
|
||||||
This can be a reference to a named port.
|
|
||||||
x-kubernetes-int-or-string: true
|
|
||||||
proxyProtocol:
|
|
||||||
description: 'ProxyProtocol defines the PROXY protocol
|
|
||||||
configuration. More info: https://doc.traefik.io/traefik/v2.10/routing/services/#proxy-protocol'
|
|
||||||
properties:
|
|
||||||
version:
|
|
||||||
description: Version defines the PROXY Protocol version
|
|
||||||
to use.
|
|
||||||
type: integer
|
|
||||||
type: object
|
|
||||||
terminationDelay:
|
|
||||||
description: TerminationDelay defines the deadline that
|
|
||||||
the proxy sets, after one of its connected peers indicates
|
|
||||||
it has closed the writing capability of its connection,
|
|
||||||
to close the reading capability as well, hence fully
|
|
||||||
terminating the connection. It is a duration in milliseconds,
|
|
||||||
defaulting to 100. A negative value means an infinite
|
|
||||||
deadline (i.e. the reading capability is never closed).
|
|
||||||
type: integer
|
|
||||||
weight:
|
|
||||||
description: Weight defines the weight used when balancing
|
|
||||||
requests between multiple Kubernetes Service.
|
|
||||||
type: integer
|
|
||||||
required:
|
|
||||||
- name
|
|
||||||
- port
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
required:
|
|
||||||
- match
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
tls:
|
|
||||||
description: 'TLS defines the TLS configuration on a layer 4 / TCP
|
|
||||||
Route. More info: https://doc.traefik.io/traefik/v2.10/routing/routers/#tls_1'
|
|
||||||
properties:
|
|
||||||
certResolver:
|
|
||||||
description: 'CertResolver defines the name of the certificate
|
|
||||||
resolver to use. Cert resolvers have to be configured in the
|
|
||||||
static configuration. More info: https://doc.traefik.io/traefik/v2.10/https/acme/#certificate-resolvers'
|
|
||||||
type: string
|
|
||||||
domains:
|
|
||||||
description: 'Domains defines the list of domains that will be
|
|
||||||
used to issue certificates. More info: https://doc.traefik.io/traefik/v2.10/routing/routers/#domains'
|
|
||||||
items:
|
|
||||||
description: Domain holds a domain name with SANs.
|
|
||||||
properties:
|
|
||||||
main:
|
|
||||||
description: Main defines the main domain name.
|
|
||||||
type: string
|
|
||||||
sans:
|
|
||||||
description: SANs defines the subject alternative domain
|
|
||||||
names.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
options:
|
|
||||||
description: 'Options defines the reference to a TLSOption, that
|
|
||||||
specifies the parameters of the TLS connection. If not defined,
|
|
||||||
the `default` TLSOption is used. More info: https://doc.traefik.io/traefik/v2.10/https/tls/#tls-options'
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
description: Name defines the name of the referenced Traefik
|
|
||||||
resource.
|
|
||||||
type: string
|
|
||||||
namespace:
|
|
||||||
description: Namespace defines the namespace of the referenced
|
|
||||||
Traefik resource.
|
|
||||||
type: string
|
|
||||||
required:
|
|
||||||
- name
|
|
||||||
type: object
|
|
||||||
passthrough:
|
|
||||||
description: Passthrough defines whether a TLS router will terminate
|
|
||||||
the TLS connection.
|
|
||||||
type: boolean
|
|
||||||
secretName:
|
|
||||||
description: SecretName is the name of the referenced Kubernetes
|
|
||||||
Secret to specify the certificate details.
|
|
||||||
type: string
|
|
||||||
store:
|
|
||||||
description: Store defines the reference to the TLSStore, that
|
|
||||||
will be used to store certificates. Please note that only `default`
|
|
||||||
TLSStore can be used.
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
description: Name defines the name of the referenced Traefik
|
|
||||||
resource.
|
|
||||||
type: string
|
|
||||||
namespace:
|
|
||||||
description: Namespace defines the namespace of the referenced
|
|
||||||
Traefik resource.
|
|
||||||
type: string
|
|
||||||
required:
|
|
||||||
- name
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
required:
|
|
||||||
- routes
|
|
||||||
type: object
|
|
||||||
required:
|
|
||||||
- metadata
|
|
||||||
- spec
|
|
||||||
type: object
|
|
||||||
served: true
|
|
||||||
storage: true
|
|
||||||
status:
|
|
||||||
acceptedNames:
|
|
||||||
kind: ""
|
|
||||||
plural: ""
|
|
||||||
conditions: []
|
|
||||||
storedVersions: []
|
|
||||||
@ -1,105 +0,0 @@
|
|||||||
|
|
||||||
---
|
|
||||||
apiVersion: apiextensions.k8s.io/v1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
controller-gen.kubebuilder.io/version: v0.6.2
|
|
||||||
creationTimestamp: null
|
|
||||||
name: ingressrouteudps.traefik.io
|
|
||||||
spec:
|
|
||||||
group: traefik.io
|
|
||||||
names:
|
|
||||||
kind: IngressRouteUDP
|
|
||||||
listKind: IngressRouteUDPList
|
|
||||||
plural: ingressrouteudps
|
|
||||||
singular: ingressrouteudp
|
|
||||||
scope: Namespaced
|
|
||||||
versions:
|
|
||||||
- name: v1alpha1
|
|
||||||
schema:
|
|
||||||
openAPIV3Schema:
|
|
||||||
description: IngressRouteUDP is a CRD implementation of a Traefik UDP Router.
|
|
||||||
properties:
|
|
||||||
apiVersion:
|
|
||||||
description: 'APIVersion defines the versioned schema of this representation
|
|
||||||
of an object. Servers should convert recognized schemas to the latest
|
|
||||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
|
||||||
type: string
|
|
||||||
kind:
|
|
||||||
description: 'Kind is a string value representing the REST resource this
|
|
||||||
object represents. Servers may infer this from the endpoint the client
|
|
||||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
|
||||||
type: string
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
spec:
|
|
||||||
description: IngressRouteUDPSpec defines the desired state of a IngressRouteUDP.
|
|
||||||
properties:
|
|
||||||
entryPoints:
|
|
||||||
description: 'EntryPoints defines the list of entry point names to
|
|
||||||
bind to. Entry points have to be configured in the static configuration.
|
|
||||||
More info: https://doc.traefik.io/traefik/v2.10/routing/entrypoints/
|
|
||||||
Default: all.'
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
routes:
|
|
||||||
description: Routes defines the list of routes.
|
|
||||||
items:
|
|
||||||
description: RouteUDP holds the UDP route configuration.
|
|
||||||
properties:
|
|
||||||
services:
|
|
||||||
description: Services defines the list of UDP services.
|
|
||||||
items:
|
|
||||||
description: ServiceUDP defines an upstream UDP service to
|
|
||||||
proxy traffic to.
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
description: Name defines the name of the referenced Kubernetes
|
|
||||||
Service.
|
|
||||||
type: string
|
|
||||||
namespace:
|
|
||||||
description: Namespace defines the namespace of the referenced
|
|
||||||
Kubernetes Service.
|
|
||||||
type: string
|
|
||||||
nativeLB:
|
|
||||||
description: NativeLB controls, when creating the load-balancer,
|
|
||||||
whether the LB's children are directly the pods IPs
|
|
||||||
or if the only child is the Kubernetes Service clusterIP.
|
|
||||||
The Kubernetes Service itself does load-balance to the
|
|
||||||
pods. By default, NativeLB is false.
|
|
||||||
type: boolean
|
|
||||||
port:
|
|
||||||
anyOf:
|
|
||||||
- type: integer
|
|
||||||
- type: string
|
|
||||||
description: Port defines the port of a Kubernetes Service.
|
|
||||||
This can be a reference to a named port.
|
|
||||||
x-kubernetes-int-or-string: true
|
|
||||||
weight:
|
|
||||||
description: Weight defines the weight used when balancing
|
|
||||||
requests between multiple Kubernetes Service.
|
|
||||||
type: integer
|
|
||||||
required:
|
|
||||||
- name
|
|
||||||
- port
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
required:
|
|
||||||
- routes
|
|
||||||
type: object
|
|
||||||
required:
|
|
||||||
- metadata
|
|
||||||
- spec
|
|
||||||
type: object
|
|
||||||
served: true
|
|
||||||
storage: true
|
|
||||||
status:
|
|
||||||
acceptedNames:
|
|
||||||
kind: ""
|
|
||||||
plural: ""
|
|
||||||
conditions: []
|
|
||||||
storedVersions: []
|
|
||||||
@ -1,924 +0,0 @@
|
|||||||
|
|
||||||
---
|
|
||||||
apiVersion: apiextensions.k8s.io/v1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
controller-gen.kubebuilder.io/version: v0.6.2
|
|
||||||
creationTimestamp: null
|
|
||||||
name: middlewares.traefik.io
|
|
||||||
spec:
|
|
||||||
group: traefik.io
|
|
||||||
names:
|
|
||||||
kind: Middleware
|
|
||||||
listKind: MiddlewareList
|
|
||||||
plural: middlewares
|
|
||||||
singular: middleware
|
|
||||||
scope: Namespaced
|
|
||||||
versions:
|
|
||||||
- name: v1alpha1
|
|
||||||
schema:
|
|
||||||
openAPIV3Schema:
|
|
||||||
description: 'Middleware is the CRD implementation of a Traefik Middleware.
|
|
||||||
More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/overview/'
|
|
||||||
properties:
|
|
||||||
apiVersion:
|
|
||||||
description: 'APIVersion defines the versioned schema of this representation
|
|
||||||
of an object. Servers should convert recognized schemas to the latest
|
|
||||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
|
||||||
type: string
|
|
||||||
kind:
|
|
||||||
description: 'Kind is a string value representing the REST resource this
|
|
||||||
object represents. Servers may infer this from the endpoint the client
|
|
||||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
|
||||||
type: string
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
spec:
|
|
||||||
description: MiddlewareSpec defines the desired state of a Middleware.
|
|
||||||
properties:
|
|
||||||
addPrefix:
|
|
||||||
description: 'AddPrefix holds the add prefix middleware configuration.
|
|
||||||
This middleware updates the path of a request before forwarding
|
|
||||||
it. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/addprefix/'
|
|
||||||
properties:
|
|
||||||
prefix:
|
|
||||||
description: Prefix is the string to add before the current path
|
|
||||||
in the requested URL. It should include a leading slash (/).
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
basicAuth:
|
|
||||||
description: 'BasicAuth holds the basic auth middleware configuration.
|
|
||||||
This middleware restricts access to your services to known users.
|
|
||||||
More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/basicauth/'
|
|
||||||
properties:
|
|
||||||
headerField:
|
|
||||||
description: 'HeaderField defines a header field to store the
|
|
||||||
authenticated user. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/basicauth/#headerfield'
|
|
||||||
type: string
|
|
||||||
realm:
|
|
||||||
description: 'Realm allows the protected resources on a server
|
|
||||||
to be partitioned into a set of protection spaces, each with
|
|
||||||
its own authentication scheme. Default: traefik.'
|
|
||||||
type: string
|
|
||||||
removeHeader:
|
|
||||||
description: 'RemoveHeader sets the removeHeader option to true
|
|
||||||
to remove the authorization header before forwarding the request
|
|
||||||
to your service. Default: false.'
|
|
||||||
type: boolean
|
|
||||||
secret:
|
|
||||||
description: Secret is the name of the referenced Kubernetes Secret
|
|
||||||
containing user credentials.
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
buffering:
|
|
||||||
description: 'Buffering holds the buffering middleware configuration.
|
|
||||||
This middleware retries or limits the size of requests that can
|
|
||||||
be forwarded to backends. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/buffering/#maxrequestbodybytes'
|
|
||||||
properties:
|
|
||||||
maxRequestBodyBytes:
|
|
||||||
description: 'MaxRequestBodyBytes defines the maximum allowed
|
|
||||||
body size for the request (in bytes). If the request exceeds
|
|
||||||
the allowed size, it is not forwarded to the service, and the
|
|
||||||
client gets a 413 (Request Entity Too Large) response. Default:
|
|
||||||
0 (no maximum).'
|
|
||||||
format: int64
|
|
||||||
type: integer
|
|
||||||
maxResponseBodyBytes:
|
|
||||||
description: 'MaxResponseBodyBytes defines the maximum allowed
|
|
||||||
response size from the service (in bytes). If the response exceeds
|
|
||||||
the allowed size, it is not forwarded to the client. The client
|
|
||||||
gets a 500 (Internal Server Error) response instead. Default:
|
|
||||||
0 (no maximum).'
|
|
||||||
format: int64
|
|
||||||
type: integer
|
|
||||||
memRequestBodyBytes:
|
|
||||||
description: 'MemRequestBodyBytes defines the threshold (in bytes)
|
|
||||||
from which the request will be buffered on disk instead of in
|
|
||||||
memory. Default: 1048576 (1Mi).'
|
|
||||||
format: int64
|
|
||||||
type: integer
|
|
||||||
memResponseBodyBytes:
|
|
||||||
description: 'MemResponseBodyBytes defines the threshold (in bytes)
|
|
||||||
from which the response will be buffered on disk instead of
|
|
||||||
in memory. Default: 1048576 (1Mi).'
|
|
||||||
format: int64
|
|
||||||
type: integer
|
|
||||||
retryExpression:
|
|
||||||
description: 'RetryExpression defines the retry conditions. It
|
|
||||||
is a logical combination of functions with operators AND (&&)
|
|
||||||
and OR (||). More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/buffering/#retryexpression'
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
chain:
|
|
||||||
description: 'Chain holds the configuration of the chain middleware.
|
|
||||||
This middleware enables to define reusable combinations of other
|
|
||||||
pieces of middleware. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/chain/'
|
|
||||||
properties:
|
|
||||||
middlewares:
|
|
||||||
description: Middlewares is the list of MiddlewareRef which composes
|
|
||||||
the chain.
|
|
||||||
items:
|
|
||||||
description: MiddlewareRef is a reference to a Middleware resource.
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
description: Name defines the name of the referenced Middleware
|
|
||||||
resource.
|
|
||||||
type: string
|
|
||||||
namespace:
|
|
||||||
description: Namespace defines the namespace of the referenced
|
|
||||||
Middleware resource.
|
|
||||||
type: string
|
|
||||||
required:
|
|
||||||
- name
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
type: object
|
|
||||||
circuitBreaker:
|
|
||||||
description: CircuitBreaker holds the circuit breaker configuration.
|
|
||||||
properties:
|
|
||||||
checkPeriod:
|
|
||||||
anyOf:
|
|
||||||
- type: integer
|
|
||||||
- type: string
|
|
||||||
description: CheckPeriod is the interval between successive checks
|
|
||||||
of the circuit breaker condition (when in standby state).
|
|
||||||
x-kubernetes-int-or-string: true
|
|
||||||
expression:
|
|
||||||
description: Expression is the condition that triggers the tripped
|
|
||||||
state.
|
|
||||||
type: string
|
|
||||||
fallbackDuration:
|
|
||||||
anyOf:
|
|
||||||
- type: integer
|
|
||||||
- type: string
|
|
||||||
description: FallbackDuration is the duration for which the circuit
|
|
||||||
breaker will wait before trying to recover (from a tripped state).
|
|
||||||
x-kubernetes-int-or-string: true
|
|
||||||
recoveryDuration:
|
|
||||||
anyOf:
|
|
||||||
- type: integer
|
|
||||||
- type: string
|
|
||||||
description: RecoveryDuration is the duration for which the circuit
|
|
||||||
breaker will try to recover (as soon as it is in recovering
|
|
||||||
state).
|
|
||||||
x-kubernetes-int-or-string: true
|
|
||||||
type: object
|
|
||||||
compress:
|
|
||||||
description: 'Compress holds the compress middleware configuration.
|
|
||||||
This middleware compresses responses before sending them to the
|
|
||||||
client, using gzip compression. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/compress/'
|
|
||||||
properties:
|
|
||||||
excludedContentTypes:
|
|
||||||
description: ExcludedContentTypes defines the list of content
|
|
||||||
types to compare the Content-Type header of the incoming requests
|
|
||||||
and responses before compressing.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
minResponseBodyBytes:
|
|
||||||
description: 'MinResponseBodyBytes defines the minimum amount
|
|
||||||
of bytes a response body must have to be compressed. Default:
|
|
||||||
1024.'
|
|
||||||
type: integer
|
|
||||||
type: object
|
|
||||||
contentType:
|
|
||||||
description: ContentType holds the content-type middleware configuration.
|
|
||||||
This middleware exists to enable the correct behavior until at least
|
|
||||||
the default one can be changed in a future version.
|
|
||||||
properties:
|
|
||||||
autoDetect:
|
|
||||||
description: AutoDetect specifies whether to let the `Content-Type`
|
|
||||||
header, if it has not been set by the backend, be automatically
|
|
||||||
set to a value derived from the contents of the response. As
|
|
||||||
a proxy, the default behavior should be to leave the header
|
|
||||||
alone, regardless of what the backend did with it. However,
|
|
||||||
the historic default was to always auto-detect and set the header
|
|
||||||
if it was nil, and it is going to be kept that way in order
|
|
||||||
to support users currently relying on it.
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
digestAuth:
|
|
||||||
description: 'DigestAuth holds the digest auth middleware configuration.
|
|
||||||
This middleware restricts access to your services to known users.
|
|
||||||
More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/digestauth/'
|
|
||||||
properties:
|
|
||||||
headerField:
|
|
||||||
description: 'HeaderField defines a header field to store the
|
|
||||||
authenticated user. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/basicauth/#headerfield'
|
|
||||||
type: string
|
|
||||||
realm:
|
|
||||||
description: 'Realm allows the protected resources on a server
|
|
||||||
to be partitioned into a set of protection spaces, each with
|
|
||||||
its own authentication scheme. Default: traefik.'
|
|
||||||
type: string
|
|
||||||
removeHeader:
|
|
||||||
description: RemoveHeader defines whether to remove the authorization
|
|
||||||
header before forwarding the request to the backend.
|
|
||||||
type: boolean
|
|
||||||
secret:
|
|
||||||
description: Secret is the name of the referenced Kubernetes Secret
|
|
||||||
containing user credentials.
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
errors:
|
|
||||||
description: 'ErrorPage holds the custom error middleware configuration.
|
|
||||||
This middleware returns a custom page in lieu of the default, according
|
|
||||||
to configured ranges of HTTP Status codes. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/errorpages/'
|
|
||||||
properties:
|
|
||||||
query:
|
|
||||||
description: Query defines the URL for the error page (hosted
|
|
||||||
by service). The {status} variable can be used in order to insert
|
|
||||||
the status code in the URL.
|
|
||||||
type: string
|
|
||||||
service:
|
|
||||||
description: 'Service defines the reference to a Kubernetes Service
|
|
||||||
that will serve the error page. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/errorpages/#service'
|
|
||||||
properties:
|
|
||||||
kind:
|
|
||||||
description: Kind defines the kind of the Service.
|
|
||||||
enum:
|
|
||||||
- Service
|
|
||||||
- TraefikService
|
|
||||||
type: string
|
|
||||||
name:
|
|
||||||
description: Name defines the name of the referenced Kubernetes
|
|
||||||
Service or TraefikService. The differentiation between the
|
|
||||||
two is specified in the Kind field.
|
|
||||||
type: string
|
|
||||||
namespace:
|
|
||||||
description: Namespace defines the namespace of the referenced
|
|
||||||
Kubernetes Service or TraefikService.
|
|
||||||
type: string
|
|
||||||
nativeLB:
|
|
||||||
description: NativeLB controls, when creating the load-balancer,
|
|
||||||
whether the LB's children are directly the pods IPs or if
|
|
||||||
the only child is the Kubernetes Service clusterIP. The
|
|
||||||
Kubernetes Service itself does load-balance to the pods.
|
|
||||||
By default, NativeLB is false.
|
|
||||||
type: boolean
|
|
||||||
passHostHeader:
|
|
||||||
description: PassHostHeader defines whether the client Host
|
|
||||||
header is forwarded to the upstream Kubernetes Service.
|
|
||||||
By default, passHostHeader is true.
|
|
||||||
type: boolean
|
|
||||||
port:
|
|
||||||
anyOf:
|
|
||||||
- type: integer
|
|
||||||
- type: string
|
|
||||||
description: Port defines the port of a Kubernetes Service.
|
|
||||||
This can be a reference to a named port.
|
|
||||||
x-kubernetes-int-or-string: true
|
|
||||||
responseForwarding:
|
|
||||||
description: ResponseForwarding defines how Traefik forwards
|
|
||||||
the response from the upstream Kubernetes Service to the
|
|
||||||
client.
|
|
||||||
properties:
|
|
||||||
flushInterval:
|
|
||||||
description: 'FlushInterval defines the interval, in milliseconds,
|
|
||||||
in between flushes to the client while copying the response
|
|
||||||
body. A negative value means to flush immediately after
|
|
||||||
each write to the client. This configuration is ignored
|
|
||||||
when ReverseProxy recognizes a response as a streaming
|
|
||||||
response; for such responses, writes are flushed to
|
|
||||||
the client immediately. Default: 100ms'
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
scheme:
|
|
||||||
description: Scheme defines the scheme to use for the request
|
|
||||||
to the upstream Kubernetes Service. It defaults to https
|
|
||||||
when Kubernetes Service port is 443, http otherwise.
|
|
||||||
type: string
|
|
||||||
serversTransport:
|
|
||||||
description: ServersTransport defines the name of ServersTransport
|
|
||||||
resource to use. It allows to configure the transport between
|
|
||||||
Traefik and your servers. Can only be used on a Kubernetes
|
|
||||||
Service.
|
|
||||||
type: string
|
|
||||||
sticky:
|
|
||||||
description: 'Sticky defines the sticky sessions configuration.
|
|
||||||
More info: https://doc.traefik.io/traefik/v2.10/routing/services/#sticky-sessions'
|
|
||||||
properties:
|
|
||||||
cookie:
|
|
||||||
description: Cookie defines the sticky cookie configuration.
|
|
||||||
properties:
|
|
||||||
httpOnly:
|
|
||||||
description: HTTPOnly defines whether the cookie can
|
|
||||||
be accessed by client-side APIs, such as JavaScript.
|
|
||||||
type: boolean
|
|
||||||
name:
|
|
||||||
description: Name defines the Cookie name.
|
|
||||||
type: string
|
|
||||||
sameSite:
|
|
||||||
description: 'SameSite defines the same site policy.
|
|
||||||
More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite'
|
|
||||||
type: string
|
|
||||||
secure:
|
|
||||||
description: Secure defines whether the cookie can
|
|
||||||
only be transmitted over an encrypted connection
|
|
||||||
(i.e. HTTPS).
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
strategy:
|
|
||||||
description: Strategy defines the load balancing strategy
|
|
||||||
between the servers. RoundRobin is the only supported value
|
|
||||||
at the moment.
|
|
||||||
type: string
|
|
||||||
weight:
|
|
||||||
description: Weight defines the weight and should only be
|
|
||||||
specified when Name references a TraefikService object (and
|
|
||||||
to be precise, one that embeds a Weighted Round Robin).
|
|
||||||
type: integer
|
|
||||||
required:
|
|
||||||
- name
|
|
||||||
type: object
|
|
||||||
status:
|
|
||||||
description: Status defines which status or range of statuses
|
|
||||||
should result in an error page. It can be either a status code
|
|
||||||
as a number (500), as multiple comma-separated numbers (500,502),
|
|
||||||
as ranges by separating two codes with a dash (500-599), or
|
|
||||||
a combination of the two (404,418,500-599).
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
type: object
|
|
||||||
forwardAuth:
|
|
||||||
description: 'ForwardAuth holds the forward auth middleware configuration.
|
|
||||||
This middleware delegates the request authentication to a Service.
|
|
||||||
More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/forwardauth/'
|
|
||||||
properties:
|
|
||||||
address:
|
|
||||||
description: Address defines the authentication server address.
|
|
||||||
type: string
|
|
||||||
authRequestHeaders:
|
|
||||||
description: AuthRequestHeaders defines the list of the headers
|
|
||||||
to copy from the request to the authentication server. If not
|
|
||||||
set or empty then all request headers are passed.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
authResponseHeaders:
|
|
||||||
description: AuthResponseHeaders defines the list of headers to
|
|
||||||
copy from the authentication server response and set on forwarded
|
|
||||||
request, replacing any existing conflicting headers.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
authResponseHeadersRegex:
|
|
||||||
description: 'AuthResponseHeadersRegex defines the regex to match
|
|
||||||
headers to copy from the authentication server response and
|
|
||||||
set on forwarded request, after stripping all headers that match
|
|
||||||
the regex. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/forwardauth/#authresponseheadersregex'
|
|
||||||
type: string
|
|
||||||
tls:
|
|
||||||
description: TLS defines the configuration used to secure the
|
|
||||||
connection to the authentication server.
|
|
||||||
properties:
|
|
||||||
caOptional:
|
|
||||||
type: boolean
|
|
||||||
caSecret:
|
|
||||||
description: CASecret is the name of the referenced Kubernetes
|
|
||||||
Secret containing the CA to validate the server certificate.
|
|
||||||
The CA certificate is extracted from key `tls.ca` or `ca.crt`.
|
|
||||||
type: string
|
|
||||||
certSecret:
|
|
||||||
description: CertSecret is the name of the referenced Kubernetes
|
|
||||||
Secret containing the client certificate. The client certificate
|
|
||||||
is extracted from the keys `tls.crt` and `tls.key`.
|
|
||||||
type: string
|
|
||||||
insecureSkipVerify:
|
|
||||||
description: InsecureSkipVerify defines whether the server
|
|
||||||
certificates should be validated.
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
trustForwardHeader:
|
|
||||||
description: 'TrustForwardHeader defines whether to trust (ie:
|
|
||||||
forward) all X-Forwarded-* headers.'
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
headers:
|
|
||||||
description: 'Headers holds the headers middleware configuration.
|
|
||||||
This middleware manages the requests and responses headers. More
|
|
||||||
info: https://doc.traefik.io/traefik/v2.10/middlewares/http/headers/#customrequestheaders'
|
|
||||||
properties:
|
|
||||||
accessControlAllowCredentials:
|
|
||||||
description: AccessControlAllowCredentials defines whether the
|
|
||||||
request can include user credentials.
|
|
||||||
type: boolean
|
|
||||||
accessControlAllowHeaders:
|
|
||||||
description: AccessControlAllowHeaders defines the Access-Control-Request-Headers
|
|
||||||
values sent in preflight response.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
accessControlAllowMethods:
|
|
||||||
description: AccessControlAllowMethods defines the Access-Control-Request-Method
|
|
||||||
values sent in preflight response.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
accessControlAllowOriginList:
|
|
||||||
description: AccessControlAllowOriginList is a list of allowable
|
|
||||||
origins. Can also be a wildcard origin "*".
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
accessControlAllowOriginListRegex:
|
|
||||||
description: AccessControlAllowOriginListRegex is a list of allowable
|
|
||||||
origins written following the Regular Expression syntax (https://golang.org/pkg/regexp/).
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
accessControlExposeHeaders:
|
|
||||||
description: AccessControlExposeHeaders defines the Access-Control-Expose-Headers
|
|
||||||
values sent in preflight response.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
accessControlMaxAge:
|
|
||||||
description: AccessControlMaxAge defines the time that a preflight
|
|
||||||
request may be cached.
|
|
||||||
format: int64
|
|
||||||
type: integer
|
|
||||||
addVaryHeader:
|
|
||||||
description: AddVaryHeader defines whether the Vary header is
|
|
||||||
automatically added/updated when the AccessControlAllowOriginList
|
|
||||||
is set.
|
|
||||||
type: boolean
|
|
||||||
allowedHosts:
|
|
||||||
description: AllowedHosts defines the fully qualified list of
|
|
||||||
allowed domain names.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
browserXssFilter:
|
|
||||||
description: BrowserXSSFilter defines whether to add the X-XSS-Protection
|
|
||||||
header with the value 1; mode=block.
|
|
||||||
type: boolean
|
|
||||||
contentSecurityPolicy:
|
|
||||||
description: ContentSecurityPolicy defines the Content-Security-Policy
|
|
||||||
header value.
|
|
||||||
type: string
|
|
||||||
contentTypeNosniff:
|
|
||||||
description: ContentTypeNosniff defines whether to add the X-Content-Type-Options
|
|
||||||
header with the nosniff value.
|
|
||||||
type: boolean
|
|
||||||
customBrowserXSSValue:
|
|
||||||
description: CustomBrowserXSSValue defines the X-XSS-Protection
|
|
||||||
header value. This overrides the BrowserXssFilter option.
|
|
||||||
type: string
|
|
||||||
customFrameOptionsValue:
|
|
||||||
description: CustomFrameOptionsValue defines the X-Frame-Options
|
|
||||||
header value. This overrides the FrameDeny option.
|
|
||||||
type: string
|
|
||||||
customRequestHeaders:
|
|
||||||
additionalProperties:
|
|
||||||
type: string
|
|
||||||
description: CustomRequestHeaders defines the header names and
|
|
||||||
values to apply to the request.
|
|
||||||
type: object
|
|
||||||
customResponseHeaders:
|
|
||||||
additionalProperties:
|
|
||||||
type: string
|
|
||||||
description: CustomResponseHeaders defines the header names and
|
|
||||||
values to apply to the response.
|
|
||||||
type: object
|
|
||||||
featurePolicy:
|
|
||||||
description: 'Deprecated: use PermissionsPolicy instead.'
|
|
||||||
type: string
|
|
||||||
forceSTSHeader:
|
|
||||||
description: ForceSTSHeader defines whether to add the STS header
|
|
||||||
even when the connection is HTTP.
|
|
||||||
type: boolean
|
|
||||||
frameDeny:
|
|
||||||
description: FrameDeny defines whether to add the X-Frame-Options
|
|
||||||
header with the DENY value.
|
|
||||||
type: boolean
|
|
||||||
hostsProxyHeaders:
|
|
||||||
description: HostsProxyHeaders defines the header keys that may
|
|
||||||
hold a proxied hostname value for the request.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
isDevelopment:
|
|
||||||
description: IsDevelopment defines whether to mitigate the unwanted
|
|
||||||
effects of the AllowedHosts, SSL, and STS options when developing.
|
|
||||||
Usually testing takes place using HTTP, not HTTPS, and on localhost,
|
|
||||||
not your production domain. If you would like your development
|
|
||||||
environment to mimic production with complete Host blocking,
|
|
||||||
SSL redirects, and STS headers, leave this as false.
|
|
||||||
type: boolean
|
|
||||||
permissionsPolicy:
|
|
||||||
description: PermissionsPolicy defines the Permissions-Policy
|
|
||||||
header value. This allows sites to control browser features.
|
|
||||||
type: string
|
|
||||||
publicKey:
|
|
||||||
description: PublicKey is the public key that implements HPKP
|
|
||||||
to prevent MITM attacks with forged certificates.
|
|
||||||
type: string
|
|
||||||
referrerPolicy:
|
|
||||||
description: ReferrerPolicy defines the Referrer-Policy header
|
|
||||||
value. This allows sites to control whether browsers forward
|
|
||||||
the Referer header to other sites.
|
|
||||||
type: string
|
|
||||||
sslForceHost:
|
|
||||||
description: 'Deprecated: use RedirectRegex instead.'
|
|
||||||
type: boolean
|
|
||||||
sslHost:
|
|
||||||
description: 'Deprecated: use RedirectRegex instead.'
|
|
||||||
type: string
|
|
||||||
sslProxyHeaders:
|
|
||||||
additionalProperties:
|
|
||||||
type: string
|
|
||||||
description: 'SSLProxyHeaders defines the header keys with associated
|
|
||||||
values that would indicate a valid HTTPS request. It can be
|
|
||||||
useful when using other proxies (example: "X-Forwarded-Proto":
|
|
||||||
"https").'
|
|
||||||
type: object
|
|
||||||
sslRedirect:
|
|
||||||
description: 'Deprecated: use EntryPoint redirection or RedirectScheme
|
|
||||||
instead.'
|
|
||||||
type: boolean
|
|
||||||
sslTemporaryRedirect:
|
|
||||||
description: 'Deprecated: use EntryPoint redirection or RedirectScheme
|
|
||||||
instead.'
|
|
||||||
type: boolean
|
|
||||||
stsIncludeSubdomains:
|
|
||||||
description: STSIncludeSubdomains defines whether the includeSubDomains
|
|
||||||
directive is appended to the Strict-Transport-Security header.
|
|
||||||
type: boolean
|
|
||||||
stsPreload:
|
|
||||||
description: STSPreload defines whether the preload flag is appended
|
|
||||||
to the Strict-Transport-Security header.
|
|
||||||
type: boolean
|
|
||||||
stsSeconds:
|
|
||||||
description: STSSeconds defines the max-age of the Strict-Transport-Security
|
|
||||||
header. If set to 0, the header is not set.
|
|
||||||
format: int64
|
|
||||||
type: integer
|
|
||||||
type: object
|
|
||||||
inFlightReq:
|
|
||||||
description: 'InFlightReq holds the in-flight request middleware configuration.
|
|
||||||
This middleware limits the number of requests being processed and
|
|
||||||
served concurrently. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/inflightreq/'
|
|
||||||
properties:
|
|
||||||
amount:
|
|
||||||
description: Amount defines the maximum amount of allowed simultaneous
|
|
||||||
in-flight request. The middleware responds with HTTP 429 Too
|
|
||||||
Many Requests if there are already amount requests in progress
|
|
||||||
(based on the same sourceCriterion strategy).
|
|
||||||
format: int64
|
|
||||||
type: integer
|
|
||||||
sourceCriterion:
|
|
||||||
description: 'SourceCriterion defines what criterion is used to
|
|
||||||
group requests as originating from a common source. If several
|
|
||||||
strategies are defined at the same time, an error will be raised.
|
|
||||||
If none are set, the default is to use the requestHost. More
|
|
||||||
info: https://doc.traefik.io/traefik/v2.10/middlewares/http/inflightreq/#sourcecriterion'
|
|
||||||
properties:
|
|
||||||
ipStrategy:
|
|
||||||
description: 'IPStrategy holds the IP strategy configuration
|
|
||||||
used by Traefik to determine the client IP. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/ipwhitelist/#ipstrategy'
|
|
||||||
properties:
|
|
||||||
depth:
|
|
||||||
description: Depth tells Traefik to use the X-Forwarded-For
|
|
||||||
header and take the IP located at the depth position
|
|
||||||
(starting from the right).
|
|
||||||
type: integer
|
|
||||||
excludedIPs:
|
|
||||||
description: ExcludedIPs configures Traefik to scan the
|
|
||||||
X-Forwarded-For header and select the first IP not in
|
|
||||||
the list.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
type: object
|
|
||||||
requestHeaderName:
|
|
||||||
description: RequestHeaderName defines the name of the header
|
|
||||||
used to group incoming requests.
|
|
||||||
type: string
|
|
||||||
requestHost:
|
|
||||||
description: RequestHost defines whether to consider the request
|
|
||||||
Host as the source.
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
ipWhiteList:
|
|
||||||
description: 'IPWhiteList holds the IP whitelist middleware configuration.
|
|
||||||
This middleware accepts / refuses requests based on the client IP.
|
|
||||||
More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/ipwhitelist/'
|
|
||||||
properties:
|
|
||||||
ipStrategy:
|
|
||||||
description: 'IPStrategy holds the IP strategy configuration used
|
|
||||||
by Traefik to determine the client IP. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/ipwhitelist/#ipstrategy'
|
|
||||||
properties:
|
|
||||||
depth:
|
|
||||||
description: Depth tells Traefik to use the X-Forwarded-For
|
|
||||||
header and take the IP located at the depth position (starting
|
|
||||||
from the right).
|
|
||||||
type: integer
|
|
||||||
excludedIPs:
|
|
||||||
description: ExcludedIPs configures Traefik to scan the X-Forwarded-For
|
|
||||||
header and select the first IP not in the list.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
type: object
|
|
||||||
sourceRange:
|
|
||||||
description: SourceRange defines the set of allowed IPs (or ranges
|
|
||||||
of allowed IPs by using CIDR notation).
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
type: object
|
|
||||||
passTLSClientCert:
|
|
||||||
description: 'PassTLSClientCert holds the pass TLS client cert middleware
|
|
||||||
configuration. This middleware adds the selected data from the passed
|
|
||||||
client TLS certificate to a header. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/passtlsclientcert/'
|
|
||||||
properties:
|
|
||||||
info:
|
|
||||||
description: Info selects the specific client certificate details
|
|
||||||
you want to add to the X-Forwarded-Tls-Client-Cert-Info header.
|
|
||||||
properties:
|
|
||||||
issuer:
|
|
||||||
description: Issuer defines the client certificate issuer
|
|
||||||
details to add to the X-Forwarded-Tls-Client-Cert-Info header.
|
|
||||||
properties:
|
|
||||||
commonName:
|
|
||||||
description: CommonName defines whether to add the organizationalUnit
|
|
||||||
information into the issuer.
|
|
||||||
type: boolean
|
|
||||||
country:
|
|
||||||
description: Country defines whether to add the country
|
|
||||||
information into the issuer.
|
|
||||||
type: boolean
|
|
||||||
domainComponent:
|
|
||||||
description: DomainComponent defines whether to add the
|
|
||||||
domainComponent information into the issuer.
|
|
||||||
type: boolean
|
|
||||||
locality:
|
|
||||||
description: Locality defines whether to add the locality
|
|
||||||
information into the issuer.
|
|
||||||
type: boolean
|
|
||||||
organization:
|
|
||||||
description: Organization defines whether to add the organization
|
|
||||||
information into the issuer.
|
|
||||||
type: boolean
|
|
||||||
province:
|
|
||||||
description: Province defines whether to add the province
|
|
||||||
information into the issuer.
|
|
||||||
type: boolean
|
|
||||||
serialNumber:
|
|
||||||
description: SerialNumber defines whether to add the serialNumber
|
|
||||||
information into the issuer.
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
notAfter:
|
|
||||||
description: NotAfter defines whether to add the Not After
|
|
||||||
information from the Validity part.
|
|
||||||
type: boolean
|
|
||||||
notBefore:
|
|
||||||
description: NotBefore defines whether to add the Not Before
|
|
||||||
information from the Validity part.
|
|
||||||
type: boolean
|
|
||||||
sans:
|
|
||||||
description: Sans defines whether to add the Subject Alternative
|
|
||||||
Name information from the Subject Alternative Name part.
|
|
||||||
type: boolean
|
|
||||||
serialNumber:
|
|
||||||
description: SerialNumber defines whether to add the client
|
|
||||||
serialNumber information.
|
|
||||||
type: boolean
|
|
||||||
subject:
|
|
||||||
description: Subject defines the client certificate subject
|
|
||||||
details to add to the X-Forwarded-Tls-Client-Cert-Info header.
|
|
||||||
properties:
|
|
||||||
commonName:
|
|
||||||
description: CommonName defines whether to add the organizationalUnit
|
|
||||||
information into the subject.
|
|
||||||
type: boolean
|
|
||||||
country:
|
|
||||||
description: Country defines whether to add the country
|
|
||||||
information into the subject.
|
|
||||||
type: boolean
|
|
||||||
domainComponent:
|
|
||||||
description: DomainComponent defines whether to add the
|
|
||||||
domainComponent information into the subject.
|
|
||||||
type: boolean
|
|
||||||
locality:
|
|
||||||
description: Locality defines whether to add the locality
|
|
||||||
information into the subject.
|
|
||||||
type: boolean
|
|
||||||
organization:
|
|
||||||
description: Organization defines whether to add the organization
|
|
||||||
information into the subject.
|
|
||||||
type: boolean
|
|
||||||
organizationalUnit:
|
|
||||||
description: OrganizationalUnit defines whether to add
|
|
||||||
the organizationalUnit information into the subject.
|
|
||||||
type: boolean
|
|
||||||
province:
|
|
||||||
description: Province defines whether to add the province
|
|
||||||
information into the subject.
|
|
||||||
type: boolean
|
|
||||||
serialNumber:
|
|
||||||
description: SerialNumber defines whether to add the serialNumber
|
|
||||||
information into the subject.
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
pem:
|
|
||||||
description: PEM sets the X-Forwarded-Tls-Client-Cert header with
|
|
||||||
the certificate.
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
plugin:
|
|
||||||
additionalProperties:
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
description: 'Plugin defines the middleware plugin configuration.
|
|
||||||
More info: https://doc.traefik.io/traefik/plugins/'
|
|
||||||
type: object
|
|
||||||
rateLimit:
|
|
||||||
description: 'RateLimit holds the rate limit configuration. This middleware
|
|
||||||
ensures that services will receive a fair amount of requests, and
|
|
||||||
allows one to define what fair is. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/ratelimit/'
|
|
||||||
properties:
|
|
||||||
average:
|
|
||||||
description: Average is the maximum rate, by default in requests/s,
|
|
||||||
allowed for the given source. It defaults to 0, which means
|
|
||||||
no rate limiting. The rate is actually defined by dividing Average
|
|
||||||
by Period. So for a rate below 1req/s, one needs to define a
|
|
||||||
Period larger than a second.
|
|
||||||
format: int64
|
|
||||||
type: integer
|
|
||||||
burst:
|
|
||||||
description: Burst is the maximum number of requests allowed to
|
|
||||||
arrive in the same arbitrarily small period of time. It defaults
|
|
||||||
to 1.
|
|
||||||
format: int64
|
|
||||||
type: integer
|
|
||||||
period:
|
|
||||||
anyOf:
|
|
||||||
- type: integer
|
|
||||||
- type: string
|
|
||||||
description: 'Period, in combination with Average, defines the
|
|
||||||
actual maximum rate, such as: r = Average / Period. It defaults
|
|
||||||
to a second.'
|
|
||||||
x-kubernetes-int-or-string: true
|
|
||||||
sourceCriterion:
|
|
||||||
description: SourceCriterion defines what criterion is used to
|
|
||||||
group requests as originating from a common source. If several
|
|
||||||
strategies are defined at the same time, an error will be raised.
|
|
||||||
If none are set, the default is to use the request's remote
|
|
||||||
address field (as an ipStrategy).
|
|
||||||
properties:
|
|
||||||
ipStrategy:
|
|
||||||
description: 'IPStrategy holds the IP strategy configuration
|
|
||||||
used by Traefik to determine the client IP. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/ipwhitelist/#ipstrategy'
|
|
||||||
properties:
|
|
||||||
depth:
|
|
||||||
description: Depth tells Traefik to use the X-Forwarded-For
|
|
||||||
header and take the IP located at the depth position
|
|
||||||
(starting from the right).
|
|
||||||
type: integer
|
|
||||||
excludedIPs:
|
|
||||||
description: ExcludedIPs configures Traefik to scan the
|
|
||||||
X-Forwarded-For header and select the first IP not in
|
|
||||||
the list.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
type: object
|
|
||||||
requestHeaderName:
|
|
||||||
description: RequestHeaderName defines the name of the header
|
|
||||||
used to group incoming requests.
|
|
||||||
type: string
|
|
||||||
requestHost:
|
|
||||||
description: RequestHost defines whether to consider the request
|
|
||||||
Host as the source.
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
redirectRegex:
|
|
||||||
description: 'RedirectRegex holds the redirect regex middleware configuration.
|
|
||||||
This middleware redirects a request using regex matching and replacement.
|
|
||||||
More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/redirectregex/#regex'
|
|
||||||
properties:
|
|
||||||
permanent:
|
|
||||||
description: Permanent defines whether the redirection is permanent
|
|
||||||
(301).
|
|
||||||
type: boolean
|
|
||||||
regex:
|
|
||||||
description: Regex defines the regex used to match and capture
|
|
||||||
elements from the request URL.
|
|
||||||
type: string
|
|
||||||
replacement:
|
|
||||||
description: Replacement defines how to modify the URL to have
|
|
||||||
the new target URL.
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
redirectScheme:
|
|
||||||
description: 'RedirectScheme holds the redirect scheme middleware
|
|
||||||
configuration. This middleware redirects requests from a scheme/port
|
|
||||||
to another. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/redirectscheme/'
|
|
||||||
properties:
|
|
||||||
permanent:
|
|
||||||
description: Permanent defines whether the redirection is permanent
|
|
||||||
(301).
|
|
||||||
type: boolean
|
|
||||||
port:
|
|
||||||
description: Port defines the port of the new URL.
|
|
||||||
type: string
|
|
||||||
scheme:
|
|
||||||
description: Scheme defines the scheme of the new URL.
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
replacePath:
|
|
||||||
description: 'ReplacePath holds the replace path middleware configuration.
|
|
||||||
This middleware replaces the path of the request URL and store the
|
|
||||||
original path in an X-Replaced-Path header. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/replacepath/'
|
|
||||||
properties:
|
|
||||||
path:
|
|
||||||
description: Path defines the path to use as replacement in the
|
|
||||||
request URL.
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
replacePathRegex:
|
|
||||||
description: 'ReplacePathRegex holds the replace path regex middleware
|
|
||||||
configuration. This middleware replaces the path of a URL using
|
|
||||||
regex matching and replacement. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/replacepathregex/'
|
|
||||||
properties:
|
|
||||||
regex:
|
|
||||||
description: Regex defines the regular expression used to match
|
|
||||||
and capture the path from the request URL.
|
|
||||||
type: string
|
|
||||||
replacement:
|
|
||||||
description: Replacement defines the replacement path format,
|
|
||||||
which can include captured variables.
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
retry:
|
|
||||||
description: 'Retry holds the retry middleware configuration. This
|
|
||||||
middleware reissues requests a given number of times to a backend
|
|
||||||
server if that server does not reply. As soon as the server answers,
|
|
||||||
the middleware stops retrying, regardless of the response status.
|
|
||||||
More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/retry/'
|
|
||||||
properties:
|
|
||||||
attempts:
|
|
||||||
description: Attempts defines how many times the request should
|
|
||||||
be retried.
|
|
||||||
type: integer
|
|
||||||
initialInterval:
|
|
||||||
anyOf:
|
|
||||||
- type: integer
|
|
||||||
- type: string
|
|
||||||
description: InitialInterval defines the first wait time in the
|
|
||||||
exponential backoff series. The maximum interval is calculated
|
|
||||||
as twice the initialInterval. If unspecified, requests will
|
|
||||||
be retried immediately. The value of initialInterval should
|
|
||||||
be provided in seconds or as a valid duration format, see https://pkg.go.dev/time#ParseDuration.
|
|
||||||
x-kubernetes-int-or-string: true
|
|
||||||
type: object
|
|
||||||
stripPrefix:
|
|
||||||
description: 'StripPrefix holds the strip prefix middleware configuration.
|
|
||||||
This middleware removes the specified prefixes from the URL path.
|
|
||||||
More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/stripprefix/'
|
|
||||||
properties:
|
|
||||||
forceSlash:
|
|
||||||
description: 'ForceSlash ensures that the resulting stripped path
|
|
||||||
is not the empty string, by replacing it with / when necessary.
|
|
||||||
Default: true.'
|
|
||||||
type: boolean
|
|
||||||
prefixes:
|
|
||||||
description: Prefixes defines the prefixes to strip from the request
|
|
||||||
URL.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
type: object
|
|
||||||
stripPrefixRegex:
|
|
||||||
description: 'StripPrefixRegex holds the strip prefix regex middleware
|
|
||||||
configuration. This middleware removes the matching prefixes from
|
|
||||||
the URL path. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/stripprefixregex/'
|
|
||||||
properties:
|
|
||||||
regex:
|
|
||||||
description: Regex defines the regular expression to match the
|
|
||||||
path prefix from the request URL.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
required:
|
|
||||||
- metadata
|
|
||||||
- spec
|
|
||||||
type: object
|
|
||||||
served: true
|
|
||||||
storage: true
|
|
||||||
status:
|
|
||||||
acceptedNames:
|
|
||||||
kind: ""
|
|
||||||
plural: ""
|
|
||||||
conditions: []
|
|
||||||
storedVersions: []
|
|
||||||
@ -1,72 +0,0 @@
|
|||||||
|
|
||||||
---
|
|
||||||
apiVersion: apiextensions.k8s.io/v1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
controller-gen.kubebuilder.io/version: v0.6.2
|
|
||||||
creationTimestamp: null
|
|
||||||
name: middlewaretcps.traefik.io
|
|
||||||
spec:
|
|
||||||
group: traefik.io
|
|
||||||
names:
|
|
||||||
kind: MiddlewareTCP
|
|
||||||
listKind: MiddlewareTCPList
|
|
||||||
plural: middlewaretcps
|
|
||||||
singular: middlewaretcp
|
|
||||||
scope: Namespaced
|
|
||||||
versions:
|
|
||||||
- name: v1alpha1
|
|
||||||
schema:
|
|
||||||
openAPIV3Schema:
|
|
||||||
description: 'MiddlewareTCP is the CRD implementation of a Traefik TCP middleware.
|
|
||||||
More info: https://doc.traefik.io/traefik/v2.10/middlewares/overview/'
|
|
||||||
properties:
|
|
||||||
apiVersion:
|
|
||||||
description: 'APIVersion defines the versioned schema of this representation
|
|
||||||
of an object. Servers should convert recognized schemas to the latest
|
|
||||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
|
||||||
type: string
|
|
||||||
kind:
|
|
||||||
description: 'Kind is a string value representing the REST resource this
|
|
||||||
object represents. Servers may infer this from the endpoint the client
|
|
||||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
|
||||||
type: string
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
spec:
|
|
||||||
description: MiddlewareTCPSpec defines the desired state of a MiddlewareTCP.
|
|
||||||
properties:
|
|
||||||
inFlightConn:
|
|
||||||
description: InFlightConn defines the InFlightConn middleware configuration.
|
|
||||||
properties:
|
|
||||||
amount:
|
|
||||||
description: Amount defines the maximum amount of allowed simultaneous
|
|
||||||
connections. The middleware closes the connection if there are
|
|
||||||
already amount connections opened.
|
|
||||||
format: int64
|
|
||||||
type: integer
|
|
||||||
type: object
|
|
||||||
ipWhiteList:
|
|
||||||
description: IPWhiteList defines the IPWhiteList middleware configuration.
|
|
||||||
properties:
|
|
||||||
sourceRange:
|
|
||||||
description: SourceRange defines the allowed IPs (or ranges of
|
|
||||||
allowed IPs by using CIDR notation).
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
required:
|
|
||||||
- metadata
|
|
||||||
- spec
|
|
||||||
type: object
|
|
||||||
served: true
|
|
||||||
storage: true
|
|
||||||
status:
|
|
||||||
acceptedNames:
|
|
||||||
kind: ""
|
|
||||||
plural: ""
|
|
||||||
conditions: []
|
|
||||||
storedVersions: []
|
|
||||||
@ -1,128 +0,0 @@
|
|||||||
|
|
||||||
---
|
|
||||||
apiVersion: apiextensions.k8s.io/v1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
controller-gen.kubebuilder.io/version: v0.6.2
|
|
||||||
creationTimestamp: null
|
|
||||||
name: serverstransports.traefik.io
|
|
||||||
spec:
|
|
||||||
group: traefik.io
|
|
||||||
names:
|
|
||||||
kind: ServersTransport
|
|
||||||
listKind: ServersTransportList
|
|
||||||
plural: serverstransports
|
|
||||||
singular: serverstransport
|
|
||||||
scope: Namespaced
|
|
||||||
versions:
|
|
||||||
- name: v1alpha1
|
|
||||||
schema:
|
|
||||||
openAPIV3Schema:
|
|
||||||
description: 'ServersTransport is the CRD implementation of a ServersTransport.
|
|
||||||
If no serversTransport is specified, the default@internal will be used.
|
|
||||||
The default@internal serversTransport is created from the static configuration.
|
|
||||||
More info: https://doc.traefik.io/traefik/v2.10/routing/services/#serverstransport_1'
|
|
||||||
properties:
|
|
||||||
apiVersion:
|
|
||||||
description: 'APIVersion defines the versioned schema of this representation
|
|
||||||
of an object. Servers should convert recognized schemas to the latest
|
|
||||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
|
||||||
type: string
|
|
||||||
kind:
|
|
||||||
description: 'Kind is a string value representing the REST resource this
|
|
||||||
object represents. Servers may infer this from the endpoint the client
|
|
||||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
|
||||||
type: string
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
spec:
|
|
||||||
description: ServersTransportSpec defines the desired state of a ServersTransport.
|
|
||||||
properties:
|
|
||||||
certificatesSecrets:
|
|
||||||
description: CertificatesSecrets defines a list of secret storing
|
|
||||||
client certificates for mTLS.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
disableHTTP2:
|
|
||||||
description: DisableHTTP2 disables HTTP/2 for connections with backend
|
|
||||||
servers.
|
|
||||||
type: boolean
|
|
||||||
forwardingTimeouts:
|
|
||||||
description: ForwardingTimeouts defines the timeouts for requests
|
|
||||||
forwarded to the backend servers.
|
|
||||||
properties:
|
|
||||||
dialTimeout:
|
|
||||||
anyOf:
|
|
||||||
- type: integer
|
|
||||||
- type: string
|
|
||||||
description: DialTimeout is the amount of time to wait until a
|
|
||||||
connection to a backend server can be established.
|
|
||||||
x-kubernetes-int-or-string: true
|
|
||||||
idleConnTimeout:
|
|
||||||
anyOf:
|
|
||||||
- type: integer
|
|
||||||
- type: string
|
|
||||||
description: IdleConnTimeout is the maximum period for which an
|
|
||||||
idle HTTP keep-alive connection will remain open before closing
|
|
||||||
itself.
|
|
||||||
x-kubernetes-int-or-string: true
|
|
||||||
pingTimeout:
|
|
||||||
anyOf:
|
|
||||||
- type: integer
|
|
||||||
- type: string
|
|
||||||
description: PingTimeout is the timeout after which the HTTP/2
|
|
||||||
connection will be closed if a response to ping is not received.
|
|
||||||
x-kubernetes-int-or-string: true
|
|
||||||
readIdleTimeout:
|
|
||||||
anyOf:
|
|
||||||
- type: integer
|
|
||||||
- type: string
|
|
||||||
description: ReadIdleTimeout is the timeout after which a health
|
|
||||||
check using ping frame will be carried out if no frame is received
|
|
||||||
on the HTTP/2 connection.
|
|
||||||
x-kubernetes-int-or-string: true
|
|
||||||
responseHeaderTimeout:
|
|
||||||
anyOf:
|
|
||||||
- type: integer
|
|
||||||
- type: string
|
|
||||||
description: ResponseHeaderTimeout is the amount of time to wait
|
|
||||||
for a server's response headers after fully writing the request
|
|
||||||
(including its body, if any).
|
|
||||||
x-kubernetes-int-or-string: true
|
|
||||||
type: object
|
|
||||||
insecureSkipVerify:
|
|
||||||
description: InsecureSkipVerify disables SSL certificate verification.
|
|
||||||
type: boolean
|
|
||||||
maxIdleConnsPerHost:
|
|
||||||
description: MaxIdleConnsPerHost controls the maximum idle (keep-alive)
|
|
||||||
to keep per-host.
|
|
||||||
type: integer
|
|
||||||
peerCertURI:
|
|
||||||
description: PeerCertURI defines the peer cert URI used to match against
|
|
||||||
SAN URI during the peer certificate verification.
|
|
||||||
type: string
|
|
||||||
rootCAsSecrets:
|
|
||||||
description: RootCAsSecrets defines a list of CA secret used to validate
|
|
||||||
self-signed certificate.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
serverName:
|
|
||||||
description: ServerName defines the server name used to contact the
|
|
||||||
server.
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
required:
|
|
||||||
- metadata
|
|
||||||
- spec
|
|
||||||
type: object
|
|
||||||
served: true
|
|
||||||
storage: true
|
|
||||||
status:
|
|
||||||
acceptedNames:
|
|
||||||
kind: ""
|
|
||||||
plural: ""
|
|
||||||
conditions: []
|
|
||||||
storedVersions: []
|
|
||||||
@ -1,113 +0,0 @@
|
|||||||
|
|
||||||
---
|
|
||||||
apiVersion: apiextensions.k8s.io/v1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
controller-gen.kubebuilder.io/version: v0.6.2
|
|
||||||
creationTimestamp: null
|
|
||||||
name: tlsoptions.traefik.io
|
|
||||||
spec:
|
|
||||||
group: traefik.io
|
|
||||||
names:
|
|
||||||
kind: TLSOption
|
|
||||||
listKind: TLSOptionList
|
|
||||||
plural: tlsoptions
|
|
||||||
singular: tlsoption
|
|
||||||
scope: Namespaced
|
|
||||||
versions:
|
|
||||||
- name: v1alpha1
|
|
||||||
schema:
|
|
||||||
openAPIV3Schema:
|
|
||||||
description: 'TLSOption is the CRD implementation of a Traefik TLS Option,
|
|
||||||
allowing to configure some parameters of the TLS connection. More info:
|
|
||||||
https://doc.traefik.io/traefik/v2.10/https/tls/#tls-options'
|
|
||||||
properties:
|
|
||||||
apiVersion:
|
|
||||||
description: 'APIVersion defines the versioned schema of this representation
|
|
||||||
of an object. Servers should convert recognized schemas to the latest
|
|
||||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
|
||||||
type: string
|
|
||||||
kind:
|
|
||||||
description: 'Kind is a string value representing the REST resource this
|
|
||||||
object represents. Servers may infer this from the endpoint the client
|
|
||||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
|
||||||
type: string
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
spec:
|
|
||||||
description: TLSOptionSpec defines the desired state of a TLSOption.
|
|
||||||
properties:
|
|
||||||
alpnProtocols:
|
|
||||||
description: 'ALPNProtocols defines the list of supported application
|
|
||||||
level protocols for the TLS handshake, in order of preference. More
|
|
||||||
info: https://doc.traefik.io/traefik/v2.10/https/tls/#alpn-protocols'
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
cipherSuites:
|
|
||||||
description: 'CipherSuites defines the list of supported cipher suites
|
|
||||||
for TLS versions up to TLS 1.2. More info: https://doc.traefik.io/traefik/v2.10/https/tls/#cipher-suites'
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
clientAuth:
|
|
||||||
description: ClientAuth defines the server's policy for TLS Client
|
|
||||||
Authentication.
|
|
||||||
properties:
|
|
||||||
clientAuthType:
|
|
||||||
description: ClientAuthType defines the client authentication
|
|
||||||
type to apply.
|
|
||||||
enum:
|
|
||||||
- NoClientCert
|
|
||||||
- RequestClientCert
|
|
||||||
- RequireAnyClientCert
|
|
||||||
- VerifyClientCertIfGiven
|
|
||||||
- RequireAndVerifyClientCert
|
|
||||||
type: string
|
|
||||||
secretNames:
|
|
||||||
description: SecretNames defines the names of the referenced Kubernetes
|
|
||||||
Secret storing certificate details.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
type: object
|
|
||||||
curvePreferences:
|
|
||||||
description: 'CurvePreferences defines the preferred elliptic curves
|
|
||||||
in a specific order. More info: https://doc.traefik.io/traefik/v2.10/https/tls/#curve-preferences'
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
maxVersion:
|
|
||||||
description: 'MaxVersion defines the maximum TLS version that Traefik
|
|
||||||
will accept. Possible values: VersionTLS10, VersionTLS11, VersionTLS12,
|
|
||||||
VersionTLS13. Default: None.'
|
|
||||||
type: string
|
|
||||||
minVersion:
|
|
||||||
description: 'MinVersion defines the minimum TLS version that Traefik
|
|
||||||
will accept. Possible values: VersionTLS10, VersionTLS11, VersionTLS12,
|
|
||||||
VersionTLS13. Default: VersionTLS10.'
|
|
||||||
type: string
|
|
||||||
preferServerCipherSuites:
|
|
||||||
description: 'PreferServerCipherSuites defines whether the server
|
|
||||||
chooses a cipher suite among his own instead of among the client''s.
|
|
||||||
It is enabled automatically when minVersion or maxVersion is set.
|
|
||||||
Deprecated: https://github.com/golang/go/issues/45430'
|
|
||||||
type: boolean
|
|
||||||
sniStrict:
|
|
||||||
description: SniStrict defines whether Traefik allows connections
|
|
||||||
from clients connections that do not specify a server_name extension.
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
required:
|
|
||||||
- metadata
|
|
||||||
- spec
|
|
||||||
type: object
|
|
||||||
served: true
|
|
||||||
storage: true
|
|
||||||
status:
|
|
||||||
acceptedNames:
|
|
||||||
kind: ""
|
|
||||||
plural: ""
|
|
||||||
conditions: []
|
|
||||||
storedVersions: []
|
|
||||||
@ -1,99 +0,0 @@
|
|||||||
|
|
||||||
---
|
|
||||||
apiVersion: apiextensions.k8s.io/v1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
controller-gen.kubebuilder.io/version: v0.6.2
|
|
||||||
creationTimestamp: null
|
|
||||||
name: tlsstores.traefik.io
|
|
||||||
spec:
|
|
||||||
group: traefik.io
|
|
||||||
names:
|
|
||||||
kind: TLSStore
|
|
||||||
listKind: TLSStoreList
|
|
||||||
plural: tlsstores
|
|
||||||
singular: tlsstore
|
|
||||||
scope: Namespaced
|
|
||||||
versions:
|
|
||||||
- name: v1alpha1
|
|
||||||
schema:
|
|
||||||
openAPIV3Schema:
|
|
||||||
description: 'TLSStore is the CRD implementation of a Traefik TLS Store. For
|
|
||||||
the time being, only the TLSStore named default is supported. This means
|
|
||||||
that you cannot have two stores that are named default in different Kubernetes
|
|
||||||
namespaces. More info: https://doc.traefik.io/traefik/v2.10/https/tls/#certificates-stores'
|
|
||||||
properties:
|
|
||||||
apiVersion:
|
|
||||||
description: 'APIVersion defines the versioned schema of this representation
|
|
||||||
of an object. Servers should convert recognized schemas to the latest
|
|
||||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
|
||||||
type: string
|
|
||||||
kind:
|
|
||||||
description: 'Kind is a string value representing the REST resource this
|
|
||||||
object represents. Servers may infer this from the endpoint the client
|
|
||||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
|
||||||
type: string
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
spec:
|
|
||||||
description: TLSStoreSpec defines the desired state of a TLSStore.
|
|
||||||
properties:
|
|
||||||
certificates:
|
|
||||||
description: Certificates is a list of secret names, each secret holding
|
|
||||||
a key/certificate pair to add to the store.
|
|
||||||
items:
|
|
||||||
description: Certificate holds a secret name for the TLSStore resource.
|
|
||||||
properties:
|
|
||||||
secretName:
|
|
||||||
description: SecretName is the name of the referenced Kubernetes
|
|
||||||
Secret to specify the certificate details.
|
|
||||||
type: string
|
|
||||||
required:
|
|
||||||
- secretName
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
defaultCertificate:
|
|
||||||
description: DefaultCertificate defines the default certificate configuration.
|
|
||||||
properties:
|
|
||||||
secretName:
|
|
||||||
description: SecretName is the name of the referenced Kubernetes
|
|
||||||
Secret to specify the certificate details.
|
|
||||||
type: string
|
|
||||||
required:
|
|
||||||
- secretName
|
|
||||||
type: object
|
|
||||||
defaultGeneratedCert:
|
|
||||||
description: DefaultGeneratedCert defines the default generated certificate
|
|
||||||
configuration.
|
|
||||||
properties:
|
|
||||||
domain:
|
|
||||||
description: Domain is the domain definition for the DefaultCertificate.
|
|
||||||
properties:
|
|
||||||
main:
|
|
||||||
description: Main defines the main domain name.
|
|
||||||
type: string
|
|
||||||
sans:
|
|
||||||
description: SANs defines the subject alternative domain names.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
type: object
|
|
||||||
resolver:
|
|
||||||
description: Resolver is the name of the resolver that will be
|
|
||||||
used to issue the DefaultCertificate.
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
required:
|
|
||||||
- metadata
|
|
||||||
- spec
|
|
||||||
type: object
|
|
||||||
served: true
|
|
||||||
storage: true
|
|
||||||
status:
|
|
||||||
acceptedNames:
|
|
||||||
kind: ""
|
|
||||||
plural: ""
|
|
||||||
conditions: []
|
|
||||||
storedVersions: []
|
|
||||||
@ -1,402 +0,0 @@
|
|||||||
|
|
||||||
---
|
|
||||||
apiVersion: apiextensions.k8s.io/v1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
controller-gen.kubebuilder.io/version: v0.6.2
|
|
||||||
creationTimestamp: null
|
|
||||||
name: traefikservices.traefik.io
|
|
||||||
spec:
|
|
||||||
group: traefik.io
|
|
||||||
names:
|
|
||||||
kind: TraefikService
|
|
||||||
listKind: TraefikServiceList
|
|
||||||
plural: traefikservices
|
|
||||||
singular: traefikservice
|
|
||||||
scope: Namespaced
|
|
||||||
versions:
|
|
||||||
- name: v1alpha1
|
|
||||||
schema:
|
|
||||||
openAPIV3Schema:
|
|
||||||
description: 'TraefikService is the CRD implementation of a Traefik Service.
|
|
||||||
TraefikService object allows to: - Apply weight to Services on load-balancing
|
|
||||||
- Mirror traffic on services More info: https://doc.traefik.io/traefik/v2.10/routing/providers/kubernetes-crd/#kind-traefikservice'
|
|
||||||
properties:
|
|
||||||
apiVersion:
|
|
||||||
description: 'APIVersion defines the versioned schema of this representation
|
|
||||||
of an object. Servers should convert recognized schemas to the latest
|
|
||||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
|
||||||
type: string
|
|
||||||
kind:
|
|
||||||
description: 'Kind is a string value representing the REST resource this
|
|
||||||
object represents. Servers may infer this from the endpoint the client
|
|
||||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
|
||||||
type: string
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
spec:
|
|
||||||
description: TraefikServiceSpec defines the desired state of a TraefikService.
|
|
||||||
properties:
|
|
||||||
mirroring:
|
|
||||||
description: Mirroring defines the Mirroring service configuration.
|
|
||||||
properties:
|
|
||||||
kind:
|
|
||||||
description: Kind defines the kind of the Service.
|
|
||||||
enum:
|
|
||||||
- Service
|
|
||||||
- TraefikService
|
|
||||||
type: string
|
|
||||||
maxBodySize:
|
|
||||||
description: MaxBodySize defines the maximum size allowed for
|
|
||||||
the body of the request. If the body is larger, the request
|
|
||||||
is not mirrored. Default value is -1, which means unlimited
|
|
||||||
size.
|
|
||||||
format: int64
|
|
||||||
type: integer
|
|
||||||
mirrors:
|
|
||||||
description: Mirrors defines the list of mirrors where Traefik
|
|
||||||
will duplicate the traffic.
|
|
||||||
items:
|
|
||||||
description: MirrorService holds the mirror configuration.
|
|
||||||
properties:
|
|
||||||
kind:
|
|
||||||
description: Kind defines the kind of the Service.
|
|
||||||
enum:
|
|
||||||
- Service
|
|
||||||
- TraefikService
|
|
||||||
type: string
|
|
||||||
name:
|
|
||||||
description: Name defines the name of the referenced Kubernetes
|
|
||||||
Service or TraefikService. The differentiation between
|
|
||||||
the two is specified in the Kind field.
|
|
||||||
type: string
|
|
||||||
namespace:
|
|
||||||
description: Namespace defines the namespace of the referenced
|
|
||||||
Kubernetes Service or TraefikService.
|
|
||||||
type: string
|
|
||||||
nativeLB:
|
|
||||||
description: NativeLB controls, when creating the load-balancer,
|
|
||||||
whether the LB's children are directly the pods IPs or
|
|
||||||
if the only child is the Kubernetes Service clusterIP.
|
|
||||||
The Kubernetes Service itself does load-balance to the
|
|
||||||
pods. By default, NativeLB is false.
|
|
||||||
type: boolean
|
|
||||||
passHostHeader:
|
|
||||||
description: PassHostHeader defines whether the client Host
|
|
||||||
header is forwarded to the upstream Kubernetes Service.
|
|
||||||
By default, passHostHeader is true.
|
|
||||||
type: boolean
|
|
||||||
percent:
|
|
||||||
description: 'Percent defines the part of the traffic to
|
|
||||||
mirror. Supported values: 0 to 100.'
|
|
||||||
type: integer
|
|
||||||
port:
|
|
||||||
anyOf:
|
|
||||||
- type: integer
|
|
||||||
- type: string
|
|
||||||
description: Port defines the port of a Kubernetes Service.
|
|
||||||
This can be a reference to a named port.
|
|
||||||
x-kubernetes-int-or-string: true
|
|
||||||
responseForwarding:
|
|
||||||
description: ResponseForwarding defines how Traefik forwards
|
|
||||||
the response from the upstream Kubernetes Service to the
|
|
||||||
client.
|
|
||||||
properties:
|
|
||||||
flushInterval:
|
|
||||||
description: 'FlushInterval defines the interval, in
|
|
||||||
milliseconds, in between flushes to the client while
|
|
||||||
copying the response body. A negative value means
|
|
||||||
to flush immediately after each write to the client.
|
|
||||||
This configuration is ignored when ReverseProxy recognizes
|
|
||||||
a response as a streaming response; for such responses,
|
|
||||||
writes are flushed to the client immediately. Default:
|
|
||||||
100ms'
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
scheme:
|
|
||||||
description: Scheme defines the scheme to use for the request
|
|
||||||
to the upstream Kubernetes Service. It defaults to https
|
|
||||||
when Kubernetes Service port is 443, http otherwise.
|
|
||||||
type: string
|
|
||||||
serversTransport:
|
|
||||||
description: ServersTransport defines the name of ServersTransport
|
|
||||||
resource to use. It allows to configure the transport
|
|
||||||
between Traefik and your servers. Can only be used on
|
|
||||||
a Kubernetes Service.
|
|
||||||
type: string
|
|
||||||
sticky:
|
|
||||||
description: 'Sticky defines the sticky sessions configuration.
|
|
||||||
More info: https://doc.traefik.io/traefik/v2.10/routing/services/#sticky-sessions'
|
|
||||||
properties:
|
|
||||||
cookie:
|
|
||||||
description: Cookie defines the sticky cookie configuration.
|
|
||||||
properties:
|
|
||||||
httpOnly:
|
|
||||||
description: HTTPOnly defines whether the cookie
|
|
||||||
can be accessed by client-side APIs, such as JavaScript.
|
|
||||||
type: boolean
|
|
||||||
name:
|
|
||||||
description: Name defines the Cookie name.
|
|
||||||
type: string
|
|
||||||
sameSite:
|
|
||||||
description: 'SameSite defines the same site policy.
|
|
||||||
More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite'
|
|
||||||
type: string
|
|
||||||
secure:
|
|
||||||
description: Secure defines whether the cookie can
|
|
||||||
only be transmitted over an encrypted connection
|
|
||||||
(i.e. HTTPS).
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
strategy:
|
|
||||||
description: Strategy defines the load balancing strategy
|
|
||||||
between the servers. RoundRobin is the only supported
|
|
||||||
value at the moment.
|
|
||||||
type: string
|
|
||||||
weight:
|
|
||||||
description: Weight defines the weight and should only be
|
|
||||||
specified when Name references a TraefikService object
|
|
||||||
(and to be precise, one that embeds a Weighted Round Robin).
|
|
||||||
type: integer
|
|
||||||
required:
|
|
||||||
- name
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
name:
|
|
||||||
description: Name defines the name of the referenced Kubernetes
|
|
||||||
Service or TraefikService. The differentiation between the two
|
|
||||||
is specified in the Kind field.
|
|
||||||
type: string
|
|
||||||
namespace:
|
|
||||||
description: Namespace defines the namespace of the referenced
|
|
||||||
Kubernetes Service or TraefikService.
|
|
||||||
type: string
|
|
||||||
nativeLB:
|
|
||||||
description: NativeLB controls, when creating the load-balancer,
|
|
||||||
whether the LB's children are directly the pods IPs or if the
|
|
||||||
only child is the Kubernetes Service clusterIP. The Kubernetes
|
|
||||||
Service itself does load-balance to the pods. By default, NativeLB
|
|
||||||
is false.
|
|
||||||
type: boolean
|
|
||||||
passHostHeader:
|
|
||||||
description: PassHostHeader defines whether the client Host header
|
|
||||||
is forwarded to the upstream Kubernetes Service. By default,
|
|
||||||
passHostHeader is true.
|
|
||||||
type: boolean
|
|
||||||
port:
|
|
||||||
anyOf:
|
|
||||||
- type: integer
|
|
||||||
- type: string
|
|
||||||
description: Port defines the port of a Kubernetes Service. This
|
|
||||||
can be a reference to a named port.
|
|
||||||
x-kubernetes-int-or-string: true
|
|
||||||
responseForwarding:
|
|
||||||
description: ResponseForwarding defines how Traefik forwards the
|
|
||||||
response from the upstream Kubernetes Service to the client.
|
|
||||||
properties:
|
|
||||||
flushInterval:
|
|
||||||
description: 'FlushInterval defines the interval, in milliseconds,
|
|
||||||
in between flushes to the client while copying the response
|
|
||||||
body. A negative value means to flush immediately after
|
|
||||||
each write to the client. This configuration is ignored
|
|
||||||
when ReverseProxy recognizes a response as a streaming response;
|
|
||||||
for such responses, writes are flushed to the client immediately.
|
|
||||||
Default: 100ms'
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
scheme:
|
|
||||||
description: Scheme defines the scheme to use for the request
|
|
||||||
to the upstream Kubernetes Service. It defaults to https when
|
|
||||||
Kubernetes Service port is 443, http otherwise.
|
|
||||||
type: string
|
|
||||||
serversTransport:
|
|
||||||
description: ServersTransport defines the name of ServersTransport
|
|
||||||
resource to use. It allows to configure the transport between
|
|
||||||
Traefik and your servers. Can only be used on a Kubernetes Service.
|
|
||||||
type: string
|
|
||||||
sticky:
|
|
||||||
description: 'Sticky defines the sticky sessions configuration.
|
|
||||||
More info: https://doc.traefik.io/traefik/v2.10/routing/services/#sticky-sessions'
|
|
||||||
properties:
|
|
||||||
cookie:
|
|
||||||
description: Cookie defines the sticky cookie configuration.
|
|
||||||
properties:
|
|
||||||
httpOnly:
|
|
||||||
description: HTTPOnly defines whether the cookie can be
|
|
||||||
accessed by client-side APIs, such as JavaScript.
|
|
||||||
type: boolean
|
|
||||||
name:
|
|
||||||
description: Name defines the Cookie name.
|
|
||||||
type: string
|
|
||||||
sameSite:
|
|
||||||
description: 'SameSite defines the same site policy. More
|
|
||||||
info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite'
|
|
||||||
type: string
|
|
||||||
secure:
|
|
||||||
description: Secure defines whether the cookie can only
|
|
||||||
be transmitted over an encrypted connection (i.e. HTTPS).
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
strategy:
|
|
||||||
description: Strategy defines the load balancing strategy between
|
|
||||||
the servers. RoundRobin is the only supported value at the moment.
|
|
||||||
type: string
|
|
||||||
weight:
|
|
||||||
description: Weight defines the weight and should only be specified
|
|
||||||
when Name references a TraefikService object (and to be precise,
|
|
||||||
one that embeds a Weighted Round Robin).
|
|
||||||
type: integer
|
|
||||||
required:
|
|
||||||
- name
|
|
||||||
type: object
|
|
||||||
weighted:
|
|
||||||
description: Weighted defines the Weighted Round Robin configuration.
|
|
||||||
properties:
|
|
||||||
services:
|
|
||||||
description: Services defines the list of Kubernetes Service and/or
|
|
||||||
TraefikService to load-balance, with weight.
|
|
||||||
items:
|
|
||||||
description: Service defines an upstream HTTP service to proxy
|
|
||||||
traffic to.
|
|
||||||
properties:
|
|
||||||
kind:
|
|
||||||
description: Kind defines the kind of the Service.
|
|
||||||
enum:
|
|
||||||
- Service
|
|
||||||
- TraefikService
|
|
||||||
type: string
|
|
||||||
name:
|
|
||||||
description: Name defines the name of the referenced Kubernetes
|
|
||||||
Service or TraefikService. The differentiation between
|
|
||||||
the two is specified in the Kind field.
|
|
||||||
type: string
|
|
||||||
namespace:
|
|
||||||
description: Namespace defines the namespace of the referenced
|
|
||||||
Kubernetes Service or TraefikService.
|
|
||||||
type: string
|
|
||||||
nativeLB:
|
|
||||||
description: NativeLB controls, when creating the load-balancer,
|
|
||||||
whether the LB's children are directly the pods IPs or
|
|
||||||
if the only child is the Kubernetes Service clusterIP.
|
|
||||||
The Kubernetes Service itself does load-balance to the
|
|
||||||
pods. By default, NativeLB is false.
|
|
||||||
type: boolean
|
|
||||||
passHostHeader:
|
|
||||||
description: PassHostHeader defines whether the client Host
|
|
||||||
header is forwarded to the upstream Kubernetes Service.
|
|
||||||
By default, passHostHeader is true.
|
|
||||||
type: boolean
|
|
||||||
port:
|
|
||||||
anyOf:
|
|
||||||
- type: integer
|
|
||||||
- type: string
|
|
||||||
description: Port defines the port of a Kubernetes Service.
|
|
||||||
This can be a reference to a named port.
|
|
||||||
x-kubernetes-int-or-string: true
|
|
||||||
responseForwarding:
|
|
||||||
description: ResponseForwarding defines how Traefik forwards
|
|
||||||
the response from the upstream Kubernetes Service to the
|
|
||||||
client.
|
|
||||||
properties:
|
|
||||||
flushInterval:
|
|
||||||
description: 'FlushInterval defines the interval, in
|
|
||||||
milliseconds, in between flushes to the client while
|
|
||||||
copying the response body. A negative value means
|
|
||||||
to flush immediately after each write to the client.
|
|
||||||
This configuration is ignored when ReverseProxy recognizes
|
|
||||||
a response as a streaming response; for such responses,
|
|
||||||
writes are flushed to the client immediately. Default:
|
|
||||||
100ms'
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
scheme:
|
|
||||||
description: Scheme defines the scheme to use for the request
|
|
||||||
to the upstream Kubernetes Service. It defaults to https
|
|
||||||
when Kubernetes Service port is 443, http otherwise.
|
|
||||||
type: string
|
|
||||||
serversTransport:
|
|
||||||
description: ServersTransport defines the name of ServersTransport
|
|
||||||
resource to use. It allows to configure the transport
|
|
||||||
between Traefik and your servers. Can only be used on
|
|
||||||
a Kubernetes Service.
|
|
||||||
type: string
|
|
||||||
sticky:
|
|
||||||
description: 'Sticky defines the sticky sessions configuration.
|
|
||||||
More info: https://doc.traefik.io/traefik/v2.10/routing/services/#sticky-sessions'
|
|
||||||
properties:
|
|
||||||
cookie:
|
|
||||||
description: Cookie defines the sticky cookie configuration.
|
|
||||||
properties:
|
|
||||||
httpOnly:
|
|
||||||
description: HTTPOnly defines whether the cookie
|
|
||||||
can be accessed by client-side APIs, such as JavaScript.
|
|
||||||
type: boolean
|
|
||||||
name:
|
|
||||||
description: Name defines the Cookie name.
|
|
||||||
type: string
|
|
||||||
sameSite:
|
|
||||||
description: 'SameSite defines the same site policy.
|
|
||||||
More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite'
|
|
||||||
type: string
|
|
||||||
secure:
|
|
||||||
description: Secure defines whether the cookie can
|
|
||||||
only be transmitted over an encrypted connection
|
|
||||||
(i.e. HTTPS).
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
strategy:
|
|
||||||
description: Strategy defines the load balancing strategy
|
|
||||||
between the servers. RoundRobin is the only supported
|
|
||||||
value at the moment.
|
|
||||||
type: string
|
|
||||||
weight:
|
|
||||||
description: Weight defines the weight and should only be
|
|
||||||
specified when Name references a TraefikService object
|
|
||||||
(and to be precise, one that embeds a Weighted Round Robin).
|
|
||||||
type: integer
|
|
||||||
required:
|
|
||||||
- name
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
sticky:
|
|
||||||
description: 'Sticky defines whether sticky sessions are enabled.
|
|
||||||
More info: https://doc.traefik.io/traefik/v2.10/routing/providers/kubernetes-crd/#stickiness-and-load-balancing'
|
|
||||||
properties:
|
|
||||||
cookie:
|
|
||||||
description: Cookie defines the sticky cookie configuration.
|
|
||||||
properties:
|
|
||||||
httpOnly:
|
|
||||||
description: HTTPOnly defines whether the cookie can be
|
|
||||||
accessed by client-side APIs, such as JavaScript.
|
|
||||||
type: boolean
|
|
||||||
name:
|
|
||||||
description: Name defines the Cookie name.
|
|
||||||
type: string
|
|
||||||
sameSite:
|
|
||||||
description: 'SameSite defines the same site policy. More
|
|
||||||
info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite'
|
|
||||||
type: string
|
|
||||||
secure:
|
|
||||||
description: Secure defines whether the cookie can only
|
|
||||||
be transmitted over an encrypted connection (i.e. HTTPS).
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
required:
|
|
||||||
- metadata
|
|
||||||
- spec
|
|
||||||
type: object
|
|
||||||
served: true
|
|
||||||
storage: true
|
|
||||||
status:
|
|
||||||
acceptedNames:
|
|
||||||
kind: ""
|
|
||||||
plural: ""
|
|
||||||
conditions: []
|
|
||||||
storedVersions: []
|
|
||||||
@ -6,7 +6,8 @@ within the common library.
|
|||||||
{{- $root := .root -}}
|
{{- $root := .root -}}
|
||||||
{{- $name := .name -}}
|
{{- $name := .name -}}
|
||||||
{{- $hosts := .hosts -}}
|
{{- $hosts := .hosts -}}
|
||||||
{{- $certificateIssuer := .certificateIssuer }}
|
{{- $certificateIssuer := .certificateIssuer -}}
|
||||||
|
{{- $certificateSecretTemplate := .secretTemplate }}
|
||||||
---
|
---
|
||||||
apiVersion: {{ include "tc.v1.common.capabilities.cert-manager.certificate.apiVersion" $ }}
|
apiVersion: {{ include "tc.v1.common.capabilities.cert-manager.certificate.apiVersion" $ }}
|
||||||
kind: Certificate
|
kind: Certificate
|
||||||
@ -27,6 +28,18 @@ spec:
|
|||||||
name: {{ tpl $certificateIssuer $root | quote }}
|
name: {{ tpl $certificateIssuer $root | quote }}
|
||||||
kind: ClusterIssuer
|
kind: ClusterIssuer
|
||||||
group: cert-manager.io
|
group: cert-manager.io
|
||||||
|
{{- if $certificateSecretTemplate }}
|
||||||
|
secretTemplate:
|
||||||
|
{{- $labels := (mustMerge ($certificateSecretTemplate.labels | default dict) (include "tc.v1.common.lib.metadata.allLabels" $root | fromYaml)) -}}
|
||||||
|
{{- with (include "tc.v1.common.lib.metadata.render" (dict "rootCtx" $root "labels" $labels) | trim) }}
|
||||||
|
labels:
|
||||||
|
{{- . | nindent 6 }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- $annotations := (mustMerge ($certificateSecretTemplate.annotations | default dict) (include "tc.v1.common.lib.metadata.allAnnotations" $root | fromYaml)) -}}
|
||||||
|
{{- with (include "tc.v1.common.lib.metadata.render" (dict "rootCtx" $root "annotations" $annotations) | trim) }}
|
||||||
|
annotations:
|
||||||
|
{{- . | nindent 6 }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|||||||
@ -10,7 +10,7 @@
|
|||||||
{{- $cnpgClusterLabels := $values.labels -}}
|
{{- $cnpgClusterLabels := $values.labels -}}
|
||||||
{{- $cnpgClusterAnnotations := $values.annotations -}}
|
{{- $cnpgClusterAnnotations := $values.annotations -}}
|
||||||
{{- $hibernation := "off" -}}
|
{{- $hibernation := "off" -}}
|
||||||
{{- if or $values.hibernate $.Values.global.stopAll -}}
|
{{- if or $values.hibernate (include "tc.v1.common.lib.util.stopAll" $) -}}
|
||||||
{{- $hibernation = "on" -}}
|
{{- $hibernation = "on" -}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
---
|
---
|
||||||
|
|||||||
@ -12,7 +12,7 @@
|
|||||||
{{- $cnpgClusterLabels := $values.labels -}}
|
{{- $cnpgClusterLabels := $values.labels -}}
|
||||||
{{- $cnpgClusterAnnotations := $values.annotations -}}
|
{{- $cnpgClusterAnnotations := $values.annotations -}}
|
||||||
{{- $instances := $values.pooler.instances | default 2 -}}
|
{{- $instances := $values.pooler.instances | default 2 -}}
|
||||||
{{- if or $values.hibernate $.Values.global.stopAll -}}
|
{{- if or $values.hibernate (include "tc.v1.common.lib.util.stopAll" $) -}}
|
||||||
{{- $instances = 0 -}}
|
{{- $instances = 0 -}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
---
|
---
|
||||||
|
|||||||
@ -46,6 +46,13 @@ within the common library.
|
|||||||
|
|
||||||
{{- $fixedMiddlewares := "" -}}
|
{{- $fixedMiddlewares := "" -}}
|
||||||
{{- if $values.enableFixedMiddlewares -}}
|
{{- if $values.enableFixedMiddlewares -}}
|
||||||
|
|
||||||
|
{{/* If cors is enabled, replace the default fixedMiddleware with the opencors chain */}}
|
||||||
|
{{- if $values.allowCors -}}
|
||||||
|
{{- $corsMiddlewares := list "tc-opencors-chain" }}
|
||||||
|
{{- $_ := set $values "fixedMiddlewares" $corsMiddlewares -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{- range $index, $fixedMiddleware := $values.fixedMiddlewares -}}
|
{{- range $index, $fixedMiddleware := $values.fixedMiddlewares -}}
|
||||||
{{- if $index -}}
|
{{- if $index -}}
|
||||||
{{- $fixedMiddlewares = ( printf "%v, %v-%v@%v" $fixedMiddlewares $mddwrNamespace $fixedMiddleware "kubernetescrd" ) -}}
|
{{- $fixedMiddlewares = ( printf "%v, %v-%v@%v" $fixedMiddlewares $mddwrNamespace $fixedMiddleware "kubernetescrd" ) -}}
|
||||||
@ -117,6 +124,8 @@ spec:
|
|||||||
{{- $_ := set $cert "id" $tlsValues.scaleCert }}
|
{{- $_ := set $cert "id" $tlsValues.scaleCert }}
|
||||||
{{- $_ := set $cert "nameOverride" $tlsName }}
|
{{- $_ := set $cert "nameOverride" $tlsName }}
|
||||||
secretName: {{ printf "%s-tls-%v" (include "tc.v1.common.lib.chart.names.fullname" $) $index }}
|
secretName: {{ printf "%s-tls-%v" (include "tc.v1.common.lib.chart.names.fullname" $) $index }}
|
||||||
|
{{- else if .clusterCertificate }}
|
||||||
|
secretName: clusterissuer-templated-{{ tpl .clusterCertificate $ }}
|
||||||
{{- else if .secretName }}
|
{{- else if .secretName }}
|
||||||
secretName: {{ tpl .secretName $ | quote }}
|
secretName: {{ tpl .secretName $ | quote }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|||||||
@ -33,9 +33,13 @@
|
|||||||
{{- define "tc.v1.common.lib.chart.names.validation" -}}
|
{{- define "tc.v1.common.lib.chart.names.validation" -}}
|
||||||
|
|
||||||
{{- $name := .name -}}
|
{{- $name := .name -}}
|
||||||
|
{{- $length := .length -}}
|
||||||
|
{{- if not $length -}}
|
||||||
|
{{- $length = 63 -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{- if not (and (mustRegexMatch "^[a-z0-9](-?[a-z0-9]-?)+[a-z0-9]$" $name) (le (len $name) 63)) -}}
|
{{- if not (and (mustRegexMatch "^[a-z0-9]((-?[a-z0-9]-?)*[a-z0-9])?$" $name) (le (len $name) $length)) -}}
|
||||||
{{- fail (printf "Name [%s] is not valid. Must start and end with an alphanumeric lowercase character. It can contain '-'. And must be at most 63 characters." $name) -}}
|
{{- fail (printf "Name [%s] is not valid. Must start and end with an alphanumeric lowercase character. It can contain '-'. And must be at most %v characters." $name $length) -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|||||||
@ -15,11 +15,15 @@ This template generates a random password and ensures it persists across updates
|
|||||||
{{- $dbPass = (index $dbprevious.data "redis-password") | b64dec -}}
|
{{- $dbPass = (index $dbprevious.data "redis-password") | b64dec -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- $redisUser := .Values.redis.redisUsername -}}
|
||||||
|
{{- if not $redisUser -}}{{/* If you try to print a nil value it will print as <nil> */}}
|
||||||
|
{{- $redisUser = "" -}}
|
||||||
|
{{- end -}}
|
||||||
{{/* Prepare data */}}
|
{{/* Prepare data */}}
|
||||||
{{- $dbHost := printf "%v-%v" .Release.Name "redis" -}}
|
{{- $dbHost := printf "%v-%v" .Release.Name "redis" -}}
|
||||||
{{- $portHost := printf "%v:6379" $dbHost -}}
|
{{- $portHost := printf "%v:6379" $dbHost -}}
|
||||||
{{- $url := printf "redis://%v:%v@%v/%v" .Values.redis.redisUsername $dbPass $portHost $dbIndex -}}
|
{{- $url := printf "redis://%v:%v@%v/%v" $redisUser $dbPass $portHost $dbIndex -}}
|
||||||
{{- $hostPass := printf "%v:%v@%v" .Values.redis.redisUsername $dbPass $dbHost -}}
|
{{- $hostPass := printf "%v:%v@%v" $redisUser $dbPass $dbHost -}}
|
||||||
|
|
||||||
{{/* Append some values to redis.creds, so apps using the dep, can use them */}}
|
{{/* Append some values to redis.creds, so apps using the dep, can use them */}}
|
||||||
{{- $_ := set .Values.redis.creds "redisPassword" ($dbPass | quote) -}}
|
{{- $_ := set .Values.redis.creds "redisPassword" ($dbPass | quote) -}}
|
||||||
|
|||||||
@ -21,7 +21,8 @@ objectData:
|
|||||||
"email" (tpl .email $rootCtx) "auth" $auth) -}}
|
"email" (tpl .email $rootCtx) "auth" $auth) -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- $_ := set $registrySecret "auths" (dict "registry" $registry) -}}
|
{{- $registryKey := tpl $objectData.data.registry $rootCtx -}}
|
||||||
|
{{- $_ := set $registrySecret "auths" (dict $registryKey $registry) -}}
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
This should result in something like this:
|
This should result in something like this:
|
||||||
|
|||||||
@ -17,7 +17,7 @@
|
|||||||
{{- $namespace = tpl . $rootCtx -}}
|
{{- $namespace = tpl . $rootCtx -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- if not (and (mustRegexMatch "^[a-z0-9](-?[a-z0-9]-?)+[a-z0-9]$" $namespace) (le (len $namespace) 63)) -}}
|
{{- if not (and (mustRegexMatch "^[a-z0-9]((-?[a-z0-9]-?)*[a-z0-9])?$" $namespace) (le (len $namespace) 63)) -}}
|
||||||
{{- fail (printf "%s - Namespace [%s] is not valid. Must start and end with an alphanumeric lowercase character. It can contain '-'. And must be at most 63 characters." $caller $namespace) -}}
|
{{- fail (printf "%s - Namespace [%s] is not valid. Must start and end with an alphanumeric lowercase character. It can contain '-'. And must be at most 63 characters." $caller $namespace) -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
|||||||
@ -20,14 +20,14 @@ objectData: The object data to be used to render the Pod.
|
|||||||
{{- $selectors = . -}}
|
{{- $selectors = . -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- if and $rootCtx.Values.global.stopAll (eq $objectData.type "DaemonSet") }}
|
{{- if and (include "tc.v1.common.lib.util.stopAll" $rootCtx) (eq $objectData.type "DaemonSet") }}
|
||||||
"non-existing": "true"
|
"non-existing": "true"
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{- range $k, $v := $selectors -}}
|
{{- range $k, $v := $selectors -}}
|
||||||
{{- if not $v -}}
|
{{- if not $v -}}
|
||||||
{{- fail (printf "Expected non-empty value on <nodeSelector> [%s] key." $k) -}}
|
{{- else }}
|
||||||
{{- end }}
|
|
||||||
{{ $k }}: {{ tpl $v $rootCtx }}
|
{{ $k }}: {{ tpl $v $rootCtx }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|||||||
@ -0,0 +1,44 @@
|
|||||||
|
{{/* Returns topologySpreadConstraints */}}
|
||||||
|
{{/* Call this template:
|
||||||
|
{{ include "tc.v1.common.lib.pod.topologySpreadConstraints" (dict "rootCtx" $ "objectData" $objectData) }}
|
||||||
|
rootCtx: The root context of the chart.
|
||||||
|
objectData: The object data to be used to render the Pod.
|
||||||
|
*/}}
|
||||||
|
{{- define "tc.v1.common.lib.pod.topologySpreadConstraints" -}}
|
||||||
|
{{- $rootCtx := .rootCtx -}}
|
||||||
|
{{- $objectData := .objectData -}}
|
||||||
|
|
||||||
|
{{- $constraints := list -}}
|
||||||
|
|
||||||
|
{{/* Initialize from the "global" option */}}
|
||||||
|
{{- with $rootCtx.Values.podOptions.topologySpreadConstraints -}}
|
||||||
|
{{- $constraints = . -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/* Override with pods option */}}
|
||||||
|
{{- with $objectData.podSpec.topologySpreadConstraints -}}
|
||||||
|
{{- $constraints = . -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if and ( or ( eq $objectData.type "Deployment" ) ( eq $objectData.type "StatefulSet" )) $rootCtx.Values.podOptions.defaultSpread -}}
|
||||||
|
- maxSkew: 1
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
topologyKey: "truecharts.org/rack"
|
||||||
|
labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
{{- include "tc.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $rootCtx "objectType" "pod" "objectName" $objectData.name) | indent 6 }}
|
||||||
|
nodeAffinityPolicy: Honor
|
||||||
|
nodeTaintsPolicy: Honor
|
||||||
|
- maxSkew: 1
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
topologyKey: "kubernetes.io/hostname"
|
||||||
|
labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
{{- include "tc.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $rootCtx "objectType" "pod" "objectName" $objectData.name) | indent 6 }}
|
||||||
|
nodeAffinityPolicy: Honor
|
||||||
|
nodeTaintsPolicy: Honor
|
||||||
|
{{- end -}}
|
||||||
|
{{ with $constraints }}
|
||||||
|
{{ . | toYaml | indent 0 }}
|
||||||
|
{{ end }}
|
||||||
|
{{- end -}}
|
||||||
@ -41,6 +41,7 @@
|
|||||||
{{- with (index $selectedIngress.hosts 0) -}}
|
{{- with (index $selectedIngress.hosts 0) -}}
|
||||||
{{- $host = .host -}}
|
{{- $host = .host -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{/* Get the port for the ingress entrypoint */}}
|
{{/* Get the port for the ingress entrypoint */}}
|
||||||
|
|
||||||
{{- $namespace := "tc-system" -}}
|
{{- $namespace := "tc-system" -}}
|
||||||
@ -59,14 +60,41 @@
|
|||||||
|
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- $traefikportalhook := lookup "v1" "ConfigMap" $namespace "portalhook" -}}
|
{{- $traefikportalhook := lookup "v1" "ConfigMap" $namespace "portalhook" | default dict -}}
|
||||||
|
{{/* If there is no portalhook */}}
|
||||||
|
{{- if not $traefikportalhook -}}
|
||||||
|
{{/* Get all configmaps */}}
|
||||||
|
{{- $hooks := lookup "v1" "ConfigMap" $namespace "" -}}
|
||||||
|
|
||||||
|
{{- $portalHooks := list -}}
|
||||||
|
{{- range $hook := ($hooks.items | default list) -}}
|
||||||
|
{{- $hookData := (get $hook "data") -}}
|
||||||
|
{{- $hookMetaData := (get $hook "metadata") -}}
|
||||||
|
{{- if and $hookData $hookMetaData -}}
|
||||||
|
{{/* Filter portalhook-* */}}
|
||||||
|
{{- if $hookMetaData.name -}}
|
||||||
|
{{- if hasPrefix "portalhook-" $hookMetaData.name -}}
|
||||||
|
{{- $portalHooks = mustAppend $portalHooks $hook -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/* use the first available portalhook */}}
|
||||||
|
{{- if $portalHooks -}}
|
||||||
|
{{- $traefikportalhook = index $portalHooks 0 -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{- $entrypoint := "websecure" -}}
|
{{- $entrypoint := "websecure" -}}
|
||||||
{{- if $selectedIngress.entrypoint -}}
|
{{- if $selectedIngress.entrypoint -}}
|
||||||
{{- $entrypoint = $selectedIngress.entrypoint -}}
|
{{- $entrypoint = $selectedIngress.entrypoint -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- if $traefikportalhook -}}
|
{{- if $traefikportalhook -}}
|
||||||
{{- if (index $traefikportalhook.data $entrypoint) -}}
|
{{- if (get $traefikportalhook.data $entrypoint) -}}
|
||||||
{{- $port = (index $traefikportalhook.data $entrypoint) -}}
|
{{- $port = (get $traefikportalhook.data $entrypoint) -}}
|
||||||
|
{{- else if $traefikportalhook.data.websecure -}}
|
||||||
|
{{- $port = $traefikportalhook.data.websecure -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|||||||
@ -0,0 +1,23 @@
|
|||||||
|
{{/* Return the name of the primary Cert object */}}
|
||||||
|
{{- define "tc.v1.common.lib.util.cert.primary" -}}
|
||||||
|
{{- $Certs := $.Values.cert -}}
|
||||||
|
|
||||||
|
{{- $enabledCerts := dict -}}
|
||||||
|
{{- range $name, $cert := $Certs -}}
|
||||||
|
{{- if $cert.enabled -}}
|
||||||
|
{{- $_ := set $enabledCerts $name . -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- $result := "" -}}
|
||||||
|
{{- range $name, $cert := $enabledCerts -}}
|
||||||
|
{{- if and (hasKey $cert "primary") $cert.primary -}}
|
||||||
|
{{- $result = $name -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if not $result -}}
|
||||||
|
{{- $result = keys $Certs | first -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- $result -}}
|
||||||
|
{{- end -}}
|
||||||
16
cloudflared/charts/common/templates/lib/util/_stopAll.tpl
Normal file
16
cloudflared/charts/common/templates/lib/util/_stopAll.tpl
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{{- define "tc.v1.common.lib.util.stopAll" -}}
|
||||||
|
{{- $rootCtx := . -}}
|
||||||
|
|
||||||
|
{{- $stop := "" -}}
|
||||||
|
{{- if $rootCtx.Values.global.stopAll -}}
|
||||||
|
{{- $stop = true -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- with $rootCtx.Values.global.ixChartContext -}}
|
||||||
|
{{- if .isStopped -}}
|
||||||
|
{{- $stop = true -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- $stop -}}
|
||||||
|
{{- end -}}
|
||||||
@ -23,6 +23,18 @@
|
|||||||
{{- $operatorList = mustAppend $operatorList "traefik" -}}
|
{{- $operatorList = mustAppend $operatorList "traefik" -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- $clusterCertificate := false -}}
|
||||||
|
{{- if $.Values.clusterCertificates -}}
|
||||||
|
{{- range $opName := $.Values.clusterCertificates.certificates -}}
|
||||||
|
{{- if .enabled -}}
|
||||||
|
{{- $clusterCertificate = true -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if $clusterCertificate -}}
|
||||||
|
{{- $operatorList = mustAppend $operatorList "kubernetes-reflector" -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{- $metrics := false -}}
|
{{- $metrics := false -}}
|
||||||
{{- range $opName := $.Values.metrics -}}
|
{{- range $opName := $.Values.metrics -}}
|
||||||
{{- if .enabled -}}
|
{{- if .enabled -}}
|
||||||
|
|||||||
@ -15,7 +15,7 @@ objectData:
|
|||||||
{{- $objectData := .objectData -}}
|
{{- $objectData := .objectData -}}
|
||||||
{{- $rootCtx := .rootCtx -}}
|
{{- $rootCtx := .rootCtx -}}
|
||||||
{{- $suspend := $objectData.suspend | default false -}}
|
{{- $suspend := $objectData.suspend | default false -}}
|
||||||
{{- if $rootCtx.Values.global.stopAll -}}
|
{{- if (include "tc.v1.common.lib.util.stopAll" $rootCtx) -}}
|
||||||
{{- $suspend = true -}}
|
{{- $suspend = true -}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
timeZone: {{ (tpl ($objectData.timezone | default $rootCtx.Values.TZ) $rootCtx) | quote }}
|
timeZone: {{ (tpl ($objectData.timezone | default $rootCtx.Values.TZ) $rootCtx) | quote }}
|
||||||
|
|||||||
@ -15,7 +15,7 @@ objectData:
|
|||||||
{{- if hasKey $objectData "replicas" -}}
|
{{- if hasKey $objectData "replicas" -}}
|
||||||
{{- $replicas = $objectData.replicas -}}
|
{{- $replicas = $objectData.replicas -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- if $rootCtx.Values.global.stopAll -}}
|
{{- if (include "tc.v1.common.lib.util.stopAll" $rootCtx) -}}
|
||||||
{{- $replicas = 0 -}}
|
{{- $replicas = 0 -}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
replicas: {{ $replicas }}
|
replicas: {{ $replicas }}
|
||||||
|
|||||||
@ -17,7 +17,7 @@ objectData:
|
|||||||
{{- if hasKey $objectData "parallelism" -}}
|
{{- if hasKey $objectData "parallelism" -}}
|
||||||
{{- $parallelism = $objectData.parallelism -}}
|
{{- $parallelism = $objectData.parallelism -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- if $rootCtx.Values.global.stopAll -}}
|
{{- if (include "tc.v1.common.lib.util.stopAll" $rootCtx) -}}
|
||||||
{{- $parallelism = 0 -}}
|
{{- $parallelism = 0 -}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
backoffLimit: {{ $objectData.backoffLimit | default 5 }}
|
backoffLimit: {{ $objectData.backoffLimit | default 5 }}
|
||||||
|
|||||||
@ -29,6 +29,10 @@ priorityClassName: {{ . }}
|
|||||||
nodeSelector:
|
nodeSelector:
|
||||||
{{- . | nindent 2 }}
|
{{- . | nindent 2 }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
{{- with (include "tc.v1.common.lib.pod.topologySpreadConstraints" (dict "rootCtx" $rootCtx "objectData" $objectData) | trim) }}
|
||||||
|
topologySpreadConstraints:
|
||||||
|
{{- . | nindent 2 }}
|
||||||
|
{{- end -}}
|
||||||
{{- with (include "tc.v1.common.lib.pod.hostAliases" (dict "rootCtx" $rootCtx "objectData" $objectData) | trim) }}
|
{{- with (include "tc.v1.common.lib.pod.hostAliases" (dict "rootCtx" $rootCtx "objectData" $objectData) | trim) }}
|
||||||
hostAliases:
|
hostAliases:
|
||||||
{{- . | nindent 2 }}
|
{{- . | nindent 2 }}
|
||||||
|
|||||||
@ -15,7 +15,7 @@ objectData:
|
|||||||
{{- if hasKey $objectData "replicas" -}}
|
{{- if hasKey $objectData "replicas" -}}
|
||||||
{{- $replicas = $objectData.replicas -}}
|
{{- $replicas = $objectData.replicas -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- if $rootCtx.Values.global.stopAll -}}
|
{{- if (include "tc.v1.common.lib.util.stopAll" $rootCtx) -}}
|
||||||
{{- $replicas = 0 -}}
|
{{- $replicas = 0 -}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
replicas: {{ $replicas }}
|
replicas: {{ $replicas }}
|
||||||
|
|||||||
@ -6,4 +6,6 @@
|
|||||||
|
|
||||||
{{- include "tc.v1.common.values.serviceList" . -}}
|
{{- include "tc.v1.common.values.serviceList" . -}}
|
||||||
|
|
||||||
|
{{- include "tc.v1.common.values.ingressList" . -}}
|
||||||
|
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|||||||
@ -17,7 +17,11 @@
|
|||||||
{{- $certName = printf "%v-%v" $certName $certValues.nameOverride -}}
|
{{- $certName = printf "%v-%v" $certName $certValues.nameOverride -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- include "tc.v1.common.class.certificate" (dict "root" $ "name" $certName "certificateIssuer" $cert.certificateIssuer "hosts" $cert.hosts ) -}}
|
{{- if $certValues.secretTemplate -}}
|
||||||
|
{{- $certName = printf "%v-%v" "clusterissuer-templated" $name -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- include "tc.v1.common.class.certificate" (dict "root" $ "name" $certName "certificateIssuer" $cert.certificateIssuer "hosts" $cert.hosts "secretTemplate" $cert.secretTemplate ) -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|||||||
@ -41,8 +41,8 @@
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{/* Perform validations */}}
|
{{/* Perform validations */}} {{/* Configmaps have a max name length of 253 */}}
|
||||||
{{- include "tc.v1.common.lib.chart.names.validation" (dict "name" $objectName) -}}
|
{{- include "tc.v1.common.lib.chart.names.validation" (dict "name" $objectName "length" 253) -}}
|
||||||
{{- include "tc.v1.common.lib.configmap.validation" (dict "objectData" $objectData) -}}
|
{{- include "tc.v1.common.lib.configmap.validation" (dict "objectData" $objectData) -}}
|
||||||
{{- include "tc.v1.common.lib.metadata.validation" (dict "objectData" $objectData "caller" "ConfigMap") -}}
|
{{- include "tc.v1.common.lib.metadata.validation" (dict "objectData" $objectData "caller" "ConfigMap") -}}
|
||||||
|
|
||||||
|
|||||||
@ -15,8 +15,8 @@
|
|||||||
|
|
||||||
{{- $objectName := (printf "%s-%s" $fullname $name) -}}
|
{{- $objectName := (printf "%s-%s" $fullname $name) -}}
|
||||||
|
|
||||||
{{/* Perform validations */}}
|
{{/* Perform validations */}} {{/* Secrets have a max name length of 253 */}}
|
||||||
{{- include "tc.v1.common.lib.chart.names.validation" (dict "name" $objectName) -}}
|
{{- include "tc.v1.common.lib.chart.names.validation" (dict "name" $objectName "length" 253) -}}
|
||||||
{{- include "tc.v1.common.lib.imagePullSecret.validation" (dict "objectData" $objectData) -}}
|
{{- include "tc.v1.common.lib.imagePullSecret.validation" (dict "objectData" $objectData) -}}
|
||||||
{{- include "tc.v1.common.lib.metadata.validation" (dict "objectData" $objectData "caller" "Image Pull Secret") -}}
|
{{- include "tc.v1.common.lib.metadata.validation" (dict "objectData" $objectData "caller" "Image Pull Secret") -}}
|
||||||
{{- $data := include "tc.v1.common.lib.imagePullSecret.createData" (dict "rootCtx" $ "objectData" $objectData) -}}
|
{{- $data := include "tc.v1.common.lib.imagePullSecret.createData" (dict "rootCtx" $ "objectData" $objectData) -}}
|
||||||
|
|||||||
@ -151,8 +151,8 @@
|
|||||||
{{- $objectName := ( printf "tcportal-%s" $name ) -}}
|
{{- $objectName := ( printf "tcportal-%s" $name ) -}}
|
||||||
{{- $configMap := dict "enabled" true "name" $objectName "shortName" $objectName "data" $portalData -}}
|
{{- $configMap := dict "enabled" true "name" $objectName "shortName" $objectName "data" $portalData -}}
|
||||||
|
|
||||||
{{/* Perform validations */}}
|
{{/* Perform validations */}} {{/* Configmaps have a max name length of 253 */}}
|
||||||
{{- include "tc.v1.common.lib.chart.names.validation" (dict "name" $objectName) -}}
|
{{- include "tc.v1.common.lib.chart.names.validation" (dict "name" $objectName "length" 253) -}}
|
||||||
{{- include "tc.v1.common.lib.configmap.validation" (dict "objectData" $configMap) -}}
|
{{- include "tc.v1.common.lib.configmap.validation" (dict "objectData" $configMap) -}}
|
||||||
{{- include "tc.v1.common.lib.metadata.validation" (dict "objectData" $configMap "caller" "ConfigMap") -}}
|
{{- include "tc.v1.common.lib.metadata.validation" (dict "objectData" $configMap "caller" "ConfigMap") -}}
|
||||||
|
|
||||||
|
|||||||
@ -14,8 +14,8 @@
|
|||||||
{{- $objectData := (mustDeepCopy $certificate) -}}
|
{{- $objectData := (mustDeepCopy $certificate) -}}
|
||||||
|
|
||||||
{{- $objectName := (printf "%s-%s" $fullname $name) -}}
|
{{- $objectName := (printf "%s-%s" $fullname $name) -}}
|
||||||
{{/* Perform validations */}}
|
{{/* Perform validations */}} {{/* Secrets have a max name length of 253 */}}
|
||||||
{{- include "tc.v1.common.lib.chart.names.validation" (dict "name" $objectName) -}}
|
{{- include "tc.v1.common.lib.chart.names.validation" (dict "name" $objectName "length" 253) -}}
|
||||||
{{- include "tc.v1.common.lib.scaleCertificate.validation" (dict "objectData" $objectData) -}}
|
{{- include "tc.v1.common.lib.scaleCertificate.validation" (dict "objectData" $objectData) -}}
|
||||||
{{- include "tc.v1.common.lib.metadata.validation" (dict "objectData" $objectData "caller" "Certificate") -}}
|
{{- include "tc.v1.common.lib.metadata.validation" (dict "objectData" $objectData "caller" "Certificate") -}}
|
||||||
|
|
||||||
|
|||||||
@ -40,8 +40,8 @@
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{/* Perform validations */}}
|
{{/* Perform validations */}} {{/* Secrets have a max name length of 253 */}}
|
||||||
{{- include "tc.v1.common.lib.chart.names.validation" (dict "name" $objectName) -}}
|
{{- include "tc.v1.common.lib.chart.names.validation" (dict "name" $objectName "length" 253) -}}
|
||||||
{{- include "tc.v1.common.lib.secret.validation" (dict "objectData" $objectData) -}}
|
{{- include "tc.v1.common.lib.secret.validation" (dict "objectData" $objectData) -}}
|
||||||
{{- include "tc.v1.common.lib.metadata.validation" (dict "objectData" $objectData "caller" "Secret") -}}
|
{{- include "tc.v1.common.lib.metadata.validation" (dict "objectData" $objectData "caller" "Secret") -}}
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,17 @@
|
|||||||
|
{{- define "tc.v1.common.values.ingressList" -}}
|
||||||
|
{{- $rootCtx := . -}}
|
||||||
|
|
||||||
|
{{- range $idx, $ingressValues := $rootCtx.Values.ingressList -}}
|
||||||
|
{{- $name := (printf "ingress-list-%s" (toString $idx)) -}}
|
||||||
|
|
||||||
|
{{- with $ingressValues.name -}}
|
||||||
|
{{- $name = . -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if not (hasKey $rootCtx.Values "ingress") -}}
|
||||||
|
{{- $_ := set $rootCtx.Values "ingress" dict -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- $_ := set $rootCtx.Values.ingress $name $ingressValues -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
@ -138,7 +138,11 @@ podOptions:
|
|||||||
- name: ndots
|
- name: ndots
|
||||||
value: "1"
|
value: "1"
|
||||||
hostAliases: []
|
hostAliases: []
|
||||||
nodeSelector: {}
|
nodeSelector:
|
||||||
|
kubernetes.io/arch: "amd64"
|
||||||
|
# -- Used to enforce a good spread for Deployments and StatefulSets by default
|
||||||
|
defaultSpread: true
|
||||||
|
topologySpreadConstraints: []
|
||||||
tolerations: []
|
tolerations: []
|
||||||
schedulerName: ""
|
schedulerName: ""
|
||||||
priorityClassName: ""
|
priorityClassName: ""
|
||||||
@ -266,27 +270,37 @@ scaleGPU: []
|
|||||||
# NOTES.txt
|
# NOTES.txt
|
||||||
notes:
|
notes:
|
||||||
header: |
|
header: |
|
||||||
# Welcome to using <{{ .Chart.Name }}>.
|
# Thank you for installing [{{ .Chart.Name }}] by TrueCharts.
|
||||||
Thank you for installing thank you for choosing TrueCharts
|
|
||||||
# custom: "{{ toYaml $.Values }}"
|
# custom: "{{ toYaml $.Values }}"
|
||||||
custom: |
|
custom: |
|
||||||
## Using <{{ .Chart.Name }}>
|
{{- if .Values.iXPortals }}
|
||||||
{{- if .Values.iXPortals -}}
|
|
||||||
## Connecting externally
|
## Connecting externally
|
||||||
You can use this Chart by opening one of the following links in your browser:
|
You can use this Chart by opening one of the following links in your browser:
|
||||||
{{- range .Values.iXPortals -}}
|
|
||||||
|
{{- range .Values.iXPortals }}
|
||||||
|
- {{ toYaml . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
## [{{ .Chart.Name }}] Sources
|
||||||
|
|
||||||
|
{{- range .Chart.Sources }}
|
||||||
- {{ . }}
|
- {{ . }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
|
||||||
|
{{- $link := .Chart.Annotations.docs -}}
|
||||||
|
{{- if not $link -}}
|
||||||
|
{{- $link = .Chart.Home -}}
|
||||||
|
{{- end }}
|
||||||
|
[See more for [{{ $.Chart.Name }}] at [{{ $link }}]
|
||||||
footer: |
|
footer: |
|
||||||
## Documentation
|
## Documentation
|
||||||
Please check out the TrueCharts documentation on:
|
Please check out the TrueCharts documentation on:
|
||||||
https://truecharts.com
|
https://truecharts.org
|
||||||
|
|
||||||
OpenSource can only exist with your help, please consider supporting TrueCharts:
|
OpenSource can only exist with your help, please consider supporting TrueCharts:
|
||||||
https://truecharts.org/sponsor
|
https://truecharts.org/sponsor
|
||||||
|
|
||||||
|
|
||||||
# -- iXsystems prototype values.yaml based portals
|
# -- iXsystems prototype values.yaml based portals
|
||||||
iXPortals: []
|
iXPortals: []
|
||||||
|
|
||||||
@ -315,7 +329,7 @@ APPURL: ""
|
|||||||
|
|
||||||
gluetunImage:
|
gluetunImage:
|
||||||
repository: tccr.io/truecharts/gluetun
|
repository: tccr.io/truecharts/gluetun
|
||||||
tag: v3.35.0@sha256:d86c128a3b480b6de94c81928e1007390fc0722eb4be8cd087c5c292fbec7a5b
|
tag: v3.36.0@sha256:0cd36b27fcfc21b9ab738a594a8e477e94e42fd7c2a52539615bb2c8cac2d75e
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
netshootImage:
|
netshootImage:
|
||||||
@ -325,22 +339,22 @@ netshootImage:
|
|||||||
|
|
||||||
tailscaleImage:
|
tailscaleImage:
|
||||||
repository: tccr.io/truecharts/tailscale
|
repository: tccr.io/truecharts/tailscale
|
||||||
tag: v1.48.1@sha256:53e5c5f8fca62664ad4404ebfb0fb6280404ad3a12c75d28afdbcdc5393b42a5
|
tag: v1.52.0@sha256:806efacf7c05d3fd2c8ac3ca9606f58469022f56e62f20a3e9ad136174d0e27f
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
codeserverImage:
|
codeserverImage:
|
||||||
repository: tccr.io/truecharts/code-server
|
repository: tccr.io/truecharts/code-server
|
||||||
tag: v4.16.1@sha256:fc3a0b190c3f6eac23ba65fc678fef2c2b37d40a0b6182183de642ca25668816
|
tag: v4.18.0@sha256:e59861c2753490910c08bc3db5ea09234c9a80a3fcbac810621084c7178ce4b0
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
alpineImage:
|
alpineImage:
|
||||||
repository: tccr.io/truecharts/alpine
|
repository: tccr.io/truecharts/alpine
|
||||||
tag: v3.18.3@sha256:5391a9572fcfda2ec5a9df99e08d4772f13635041eccfa61e57d49935486d9db
|
tag: v3.18.4@sha256:17cd77e25d3fa829d168caec4db7bb5b52ceeb935d8ca0d1180de6f615553dc4
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
scratchImage:
|
scratchImage:
|
||||||
repository: tccr.io/truecharts/scratch
|
repository: tccr.io/truecharts/scratch
|
||||||
tag: latest@sha256:f4d99ffcd318372f92ecf9433a42348c1150f190c77253f5b73d835389b3da60
|
tag: latest@sha256:7f821eeb99d04ac248c47f79cfbcc2482651fea48aff9ec5d2ba0ba34f1f5531
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
kubectlImage:
|
kubectlImage:
|
||||||
@ -450,6 +464,9 @@ ingress:
|
|||||||
# Requires Kubernetes >=1.19
|
# Requires Kubernetes >=1.19
|
||||||
ingressClassName: # "nginx"
|
ingressClassName: # "nginx"
|
||||||
|
|
||||||
|
# Enable or disable CORS Requests to the ingress
|
||||||
|
allowCors: false
|
||||||
|
|
||||||
## Configure the hosts for the ingress
|
## Configure the hosts for the ingress
|
||||||
hosts:
|
hosts:
|
||||||
- # -- Host address. Helm template can be passed.
|
- # -- Host address. Helm template can be passed.
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
image:
|
image:
|
||||||
repository: quay.io/truecharts/cloudflared
|
repository: quay.io/truecharts/cloudflared
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
tag: v2023.10.0
|
tag: 2023.10.0@sha256:c18744ae1767c17c5562cc731c24e64a5a2f93f35c3dd6629b90dedaff6dff8f
|
||||||
|
|
||||||
workload:
|
workload:
|
||||||
main:
|
main:
|
||||||
|
|||||||
@ -1,8 +1,7 @@
|
|||||||
image:
|
image:
|
||||||
repository: tccr.io/truecharts/cloudflared
|
repository: cloudflare/cloudflared
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
tag: v2023.8.2@sha256:fda01764ea6d58703cf1dbe74617cffd000d3bc8df9e49fb84ba53785b4e9cf4
|
tag: 2023.10.0@sha256:c18744ae1767c17c5562cc731c24e64a5a2f93f35c3dd6629b90dedaff6dff8f
|
||||||
|
|
||||||
workload:
|
workload:
|
||||||
main:
|
main:
|
||||||
podSpec:
|
podSpec:
|
||||||
@ -21,14 +20,12 @@ workload:
|
|||||||
- run
|
- run
|
||||||
env:
|
env:
|
||||||
TUNNEL_TOKEN: ""
|
TUNNEL_TOKEN: ""
|
||||||
|
|
||||||
service:
|
service:
|
||||||
main:
|
main:
|
||||||
enabled: false
|
enabled: false
|
||||||
ports:
|
ports:
|
||||||
main:
|
main:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
portal:
|
portal:
|
||||||
open:
|
open:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user