382 lines
20 KiB
YAML
382 lines
20 KiB
YAML
|
|
||
|
---
|
||
|
apiVersion: apiextensions.k8s.io/v1
|
||
|
kind: CustomResourceDefinition
|
||
|
metadata:
|
||
|
annotations:
|
||
|
controller-gen.kubebuilder.io/version: v0.6.2
|
||
|
creationTimestamp: null
|
||
|
name: traefikservices.traefik.containo.us
|
||
|
spec:
|
||
|
group: traefik.containo.us
|
||
|
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.9/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
|
||
|
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.9/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
|
||
|
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.9/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
|
||
|
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.9/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.9/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: []
|