Remove deprecated code
This commit is contained in:
parent
a3bcf0f39e
commit
8b47c5adf7
102 changed files with 87 additions and 16995 deletions
2
.github/workflows/documentation.yml
vendored
2
.github/workflows/documentation.yml
vendored
|
@ -47,6 +47,6 @@ jobs:
|
||||||
run: $HOME/bin/seo -path=./site -product=traefik
|
run: $HOME/bin/seo -path=./site -product=traefik
|
||||||
|
|
||||||
- name: Publish documentation
|
- name: Publish documentation
|
||||||
run: $HOME/bin/mixtus --dst-doc-path="./traefik" --dst-owner=traefik --dst-repo-name=doc --git-user-email="30906710+traefiker@users.noreply.github.com" --git-user-name=traefiker --src-doc-path="./site" --src-owner=containous --src-repo-name=traefik
|
run: $HOME/bin/mixtus --dst-doc-path="./traefik" --dst-owner=traefik --dst-repo-name=doc --git-user-email="30906710+traefiker@users.noreply.github.com" --git-user-name=traefiker --src-doc-path="./site" --src-owner=traefik --src-repo-name=traefik
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GH_TOKEN_REPO }}
|
GITHUB_TOKEN: ${{ secrets.GH_TOKEN_REPO }}
|
||||||
|
|
|
@ -4,15 +4,10 @@ This page is maintained and updated periodically to reflect our roadmap and any
|
||||||
|
|
||||||
| Feature | Deprecated | End of Support | Removal |
|
| Feature | Deprecated | End of Support | Removal |
|
||||||
|-----------------------------------------------------------------------------------------------------|------------|----------------|---------|
|
|-----------------------------------------------------------------------------------------------------|------------|----------------|---------|
|
||||||
| [Kubernetes CRDs API Group `traefik.containo.us`](#kubernetes-crds-api-group-traefikcontainous) | 2.10 | N/A | 3.0 |
|
|
||||||
| [Kubernetes CRDs API Version `traefik.io/v1alpha1`](#kubernetes-crds-api-version-traefikiov1alpha1) | N/A | N/A | 3.0 |
|
| [Kubernetes CRDs API Version `traefik.io/v1alpha1`](#kubernetes-crds-api-version-traefikiov1alpha1) | N/A | N/A | 3.0 |
|
||||||
|
|
||||||
## Impact
|
## Impact
|
||||||
|
|
||||||
### Kubernetes CRDs API Group `traefik.containo.us`
|
|
||||||
|
|
||||||
In v2.10, the Kubernetes CRDs API Group `traefik.containo.us` is deprecated, and its support will end starting with Traefik v3. Please use the API Group `traefik.io` instead.
|
|
||||||
|
|
||||||
### Kubernetes CRDs API Version `traefik.io/v1alpha1`
|
### Kubernetes CRDs API Version `traefik.io/v1alpha1`
|
||||||
|
|
||||||
The newly introduced Kubernetes CRD API Version `traefik.io/v1alpha1` will subsequently be removed in Traefik v3. The following version will be `traefik.io/v1`.
|
The newly introduced Kubernetes CRD API Version `traefik.io/v1alpha1` will subsequently be removed in Traefik v3. The following version will be `traefik.io/v1`.
|
||||||
|
|
|
@ -82,3 +82,8 @@ In v3, the Marathon provider has been removed.
|
||||||
## InfluxDB v1
|
## InfluxDB v1
|
||||||
|
|
||||||
In v3, the InfluxDB v1 metrics provider has been removed because InfluxDB v1.x maintenance [ended in 2021](https://www.influxdata.com/blog/influxdb-oss-and-enterprise-roadmap-update-from-influxdays-emea/).
|
In v3, the InfluxDB v1 metrics provider has been removed because InfluxDB v1.x maintenance [ended in 2021](https://www.influxdata.com/blog/influxdb-oss-and-enterprise-roadmap-update-from-influxdays-emea/).
|
||||||
|
|
||||||
|
### Kubernetes CRDs API Group `traefik.containo.us`
|
||||||
|
|
||||||
|
In v3 the Kubernetes CRDs API Group `traefik.containo.us` has been removed.
|
||||||
|
Please use the API Group `traefik.io` instead.
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -33,7 +33,6 @@ rules:
|
||||||
- update
|
- update
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- traefik.io
|
- traefik.io
|
||||||
- traefik.containo.us
|
|
||||||
resources:
|
resources:
|
||||||
- middlewares
|
- middlewares
|
||||||
- middlewaretcps
|
- middlewaretcps
|
||||||
|
|
|
@ -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.containo.us
|
|
||||||
spec:
|
|
||||||
group: traefik.containo.us
|
|
||||||
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/v3.0/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/v3.0/routing/routers/#rule'
|
|
||||||
type: string
|
|
||||||
middlewares:
|
|
||||||
description: 'Middlewares defines the list of references to
|
|
||||||
Middleware resources. More info: https://doc.traefik.io/traefik/v3.0/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/v3.0/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/v3.0/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/v3.0/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/v3.0/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/v3.0/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/v3.0/https/tls/#tls-options'
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
description: 'Name defines the name of the referenced TLSOption.
|
|
||||||
More info: https://doc.traefik.io/traefik/v3.0/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/v3.0/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/v3.0/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/v3.0/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,219 +0,0 @@
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: apiextensions.k8s.io/v1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
controller-gen.kubebuilder.io/version: v0.6.2
|
|
||||||
creationTimestamp: null
|
|
||||||
name: ingressroutetcps.traefik.containo.us
|
|
||||||
spec:
|
|
||||||
group: traefik.containo.us
|
|
||||||
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/v3.0/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/v3.0/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/v3.0/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/v3.0/routing/services/#proxy-protocol'
|
|
||||||
properties:
|
|
||||||
version:
|
|
||||||
description: Version defines the PROXY Protocol version
|
|
||||||
to use.
|
|
||||||
type: integer
|
|
||||||
type: object
|
|
||||||
serversTransport:
|
|
||||||
description: ServersTransport defines the name of ServersTransportTCP
|
|
||||||
resource to use. It allows to configure the transport
|
|
||||||
between Traefik and your servers. Can only be used on
|
|
||||||
a Kubernetes Service.
|
|
||||||
type: string
|
|
||||||
tls:
|
|
||||||
description: TLS determines whether to use TLS when dialing
|
|
||||||
with the backend.
|
|
||||||
type: boolean
|
|
||||||
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/v3.0/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/v3.0/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/v3.0/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/v3.0/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.containo.us
|
|
||||||
spec:
|
|
||||||
group: traefik.containo.us
|
|
||||||
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/v3.0/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,902 +0,0 @@
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: apiextensions.k8s.io/v1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
controller-gen.kubebuilder.io/version: v0.6.2
|
|
||||||
creationTimestamp: null
|
|
||||||
name: middlewares.traefik.containo.us
|
|
||||||
spec:
|
|
||||||
group: traefik.containo.us
|
|
||||||
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/v3.0/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/v3.0/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/v3.0/middlewares/http/basicauth/'
|
|
||||||
properties:
|
|
||||||
headerField:
|
|
||||||
description: 'HeaderField defines a header field to store the
|
|
||||||
authenticated user. More info: https://doc.traefik.io/traefik/v3.0/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/v3.0/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/v3.0/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/v3.0/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/v3.0/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. `application/grpc` is always
|
|
||||||
excluded.
|
|
||||||
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 sets the `Content-Type` header value to the media
|
|
||||||
type detected from the response content, when it is not set by the
|
|
||||||
backend.
|
|
||||||
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/v3.0/middlewares/http/digestauth/'
|
|
||||||
properties:
|
|
||||||
headerField:
|
|
||||||
description: 'HeaderField defines a header field to store the
|
|
||||||
authenticated user. More info: https://doc.traefik.io/traefik/v3.0/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/v3.0/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/v3.0/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/v3.0/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/v3.0/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/v3.0/middlewares/http/forwardauth/#authresponseheadersregex'
|
|
||||||
type: string
|
|
||||||
tls:
|
|
||||||
description: TLS defines the configuration used to secure the
|
|
||||||
connection to the authentication server.
|
|
||||||
properties:
|
|
||||||
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
|
|
||||||
grpcWeb:
|
|
||||||
description: GrpcWeb holds the gRPC web middleware configuration.
|
|
||||||
This middleware converts a gRPC web request to an HTTP/2 gRPC request.
|
|
||||||
properties:
|
|
||||||
allowOrigins:
|
|
||||||
description: AllowOrigins is a list of allowable origins. Can
|
|
||||||
also be a wildcard origin "*".
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
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/v3.0/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
|
|
||||||
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
|
|
||||||
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
|
|
||||||
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/v3.0/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/v3.0/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/v3.0/middlewares/http/ipallowlist/#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
|
|
||||||
ipAllowList:
|
|
||||||
description: 'IPAllowList holds the IP allowlist middleware configuration.
|
|
||||||
This middleware accepts / refuses requests based on the client IP.
|
|
||||||
More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/'
|
|
||||||
properties:
|
|
||||||
ipStrategy:
|
|
||||||
description: 'IPStrategy holds the IP strategy configuration used
|
|
||||||
by Traefik to determine the client IP. More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/ipallowlist/#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/v3.0/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/v3.0/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/v3.0/middlewares/http/ipallowlist/#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/v3.0/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/v3.0/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/v3.0/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/v3.0/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/v3.0/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/v3.0/middlewares/http/stripprefix/'
|
|
||||||
properties:
|
|
||||||
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/v3.0/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.containo.us
|
|
||||||
spec:
|
|
||||||
group: traefik.containo.us
|
|
||||||
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/v3.0/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
|
|
||||||
ipAllowList:
|
|
||||||
description: IPAllowList defines the IPAllowList 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,141 +0,0 @@
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: apiextensions.k8s.io/v1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
controller-gen.kubebuilder.io/version: v0.6.2
|
|
||||||
creationTimestamp: null
|
|
||||||
name: serverstransports.traefik.containo.us
|
|
||||||
spec:
|
|
||||||
group: traefik.containo.us
|
|
||||||
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/v3.0/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
|
|
||||||
spiffe:
|
|
||||||
description: Spiffe defines the SPIFFE configuration.
|
|
||||||
properties:
|
|
||||||
ids:
|
|
||||||
description: IDs defines the allowed SPIFFE IDs (takes precedence
|
|
||||||
over the SPIFFE TrustDomain).
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
trustDomain:
|
|
||||||
description: TrustDomain defines the allowed SPIFFE trust domain.
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
required:
|
|
||||||
- metadata
|
|
||||||
- spec
|
|
||||||
type: object
|
|
||||||
served: true
|
|
||||||
storage: true
|
|
||||||
status:
|
|
||||||
acceptedNames:
|
|
||||||
kind: ""
|
|
||||||
plural: ""
|
|
||||||
conditions: []
|
|
||||||
storedVersions: []
|
|
|
@ -1,122 +0,0 @@
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: apiextensions.k8s.io/v1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
controller-gen.kubebuilder.io/version: v0.6.2
|
|
||||||
creationTimestamp: null
|
|
||||||
name: serverstransporttcps.traefik.containo.us
|
|
||||||
spec:
|
|
||||||
group: traefik.containo.us
|
|
||||||
names:
|
|
||||||
kind: ServersTransportTCP
|
|
||||||
listKind: ServersTransportTCPList
|
|
||||||
plural: serverstransporttcps
|
|
||||||
singular: serverstransporttcp
|
|
||||||
scope: Namespaced
|
|
||||||
versions:
|
|
||||||
- name: v1alpha1
|
|
||||||
schema:
|
|
||||||
openAPIV3Schema:
|
|
||||||
description: 'ServersTransportTCP is the CRD implementation of a TCPServersTransport.
|
|
||||||
If no tcpServersTransport is specified, a default one named default@internal
|
|
||||||
will be used. The default@internal tcpServersTransport can be configured
|
|
||||||
in the static configuration. More info: https://doc.traefik.io/traefik/v3.0/routing/services/#serverstransport_3'
|
|
||||||
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: ServersTransportTCPSpec defines the desired state of a ServersTransportTCP.
|
|
||||||
properties:
|
|
||||||
dialKeepAlive:
|
|
||||||
anyOf:
|
|
||||||
- type: integer
|
|
||||||
- type: string
|
|
||||||
description: DialKeepAlive is the interval between keep-alive probes
|
|
||||||
for an active network connection. If zero, keep-alive probes are
|
|
||||||
sent with a default value (currently 15 seconds), if supported by
|
|
||||||
the protocol and operating system. Network protocols or operating
|
|
||||||
systems that do not support keep-alives ignore this field. If negative,
|
|
||||||
keep-alive probes are disabled.
|
|
||||||
x-kubernetes-int-or-string: true
|
|
||||||
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
|
|
||||||
terminationDelay:
|
|
||||||
anyOf:
|
|
||||||
- type: integer
|
|
||||||
- type: string
|
|
||||||
description: TerminationDelay defines the delay to wait before fully
|
|
||||||
terminating the connection, after one connected peer has closed
|
|
||||||
its writing capability.
|
|
||||||
x-kubernetes-int-or-string: true
|
|
||||||
tls:
|
|
||||||
description: TLS defines the TLS configuration
|
|
||||||
properties:
|
|
||||||
certificatesSecrets:
|
|
||||||
description: CertificatesSecrets defines a list of secret storing
|
|
||||||
client certificates for mTLS.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
insecureSkipVerify:
|
|
||||||
description: InsecureSkipVerify disables TLS certificate verification.
|
|
||||||
type: boolean
|
|
||||||
peerCertURI:
|
|
||||||
description: MaxIdleConnsPerHost controls the maximum idle (keep-alive)
|
|
||||||
to keep per-host. 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 certificates.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
serverName:
|
|
||||||
description: ServerName defines the server name used to contact
|
|
||||||
the server.
|
|
||||||
type: string
|
|
||||||
spiffe:
|
|
||||||
description: Spiffe defines the SPIFFE configuration.
|
|
||||||
properties:
|
|
||||||
ids:
|
|
||||||
description: IDs defines the allowed SPIFFE IDs (takes precedence
|
|
||||||
over the SPIFFE TrustDomain).
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
trustDomain:
|
|
||||||
description: TrustDomain defines the allowed SPIFFE trust
|
|
||||||
domain.
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
required:
|
|
||||||
- metadata
|
|
||||||
- spec
|
|
||||||
type: object
|
|
||||||
served: true
|
|
||||||
storage: true
|
|
||||||
status:
|
|
||||||
acceptedNames:
|
|
||||||
kind: ""
|
|
||||||
plural: ""
|
|
||||||
conditions: []
|
|
||||||
storedVersions: []
|
|
|
@ -1,107 +0,0 @@
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: apiextensions.k8s.io/v1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
controller-gen.kubebuilder.io/version: v0.6.2
|
|
||||||
creationTimestamp: null
|
|
||||||
name: tlsoptions.traefik.containo.us
|
|
||||||
spec:
|
|
||||||
group: traefik.containo.us
|
|
||||||
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/v3.0/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/v3.0/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/v3.0/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/v3.0/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
|
|
||||||
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.containo.us
|
|
||||||
spec:
|
|
||||||
group: traefik.containo.us
|
|
||||||
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/v3.0/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.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/v3.0/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/v3.0/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/v3.0/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/v3.0/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/v3.0/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: []
|
|
|
@ -189,9 +189,6 @@ WriteTimeout is the maximum duration before timing out writes of the response. I
|
||||||
`--entrypoints.<name>.udp.timeout`:
|
`--entrypoints.<name>.udp.timeout`:
|
||||||
Timeout defines how long to wait on an idle session before releasing the related resources. (Default: ```3```)
|
Timeout defines how long to wait on an idle session before releasing the related resources. (Default: ```3```)
|
||||||
|
|
||||||
`--experimental.hub`:
|
|
||||||
Enable the Traefik Hub provider. (Default: ```false```)
|
|
||||||
|
|
||||||
`--experimental.kubernetesgateway`:
|
`--experimental.kubernetesgateway`:
|
||||||
Allow the Kubernetes gateway api provider usage. (Default: ```false```)
|
Allow the Kubernetes gateway api provider usage. (Default: ```false```)
|
||||||
|
|
||||||
|
|
|
@ -189,9 +189,6 @@ WriteTimeout is the maximum duration before timing out writes of the response. I
|
||||||
`TRAEFIK_ENTRYPOINTS_<NAME>_UDP_TIMEOUT`:
|
`TRAEFIK_ENTRYPOINTS_<NAME>_UDP_TIMEOUT`:
|
||||||
Timeout defines how long to wait on an idle session before releasing the related resources. (Default: ```3```)
|
Timeout defines how long to wait on an idle session before releasing the related resources. (Default: ```3```)
|
||||||
|
|
||||||
`TRAEFIK_EXPERIMENTAL_HUB`:
|
|
||||||
Enable the Traefik Hub provider. (Default: ```false```)
|
|
||||||
|
|
||||||
`TRAEFIK_EXPERIMENTAL_KUBERNETESGATEWAY`:
|
`TRAEFIK_EXPERIMENTAL_KUBERNETESGATEWAY`:
|
||||||
Allow the Kubernetes gateway api provider usage. (Default: ```false```)
|
Allow the Kubernetes gateway api provider usage. (Default: ```false```)
|
||||||
|
|
||||||
|
|
|
@ -261,7 +261,7 @@ Kubernetes cluster before creating `HTTPRoute` objects.
|
||||||
| [15] | `name` | The name of the referent service. |
|
| [15] | `name` | The name of the referent service. |
|
||||||
| [16] | `weight` | The proportion of traffic forwarded to a targetRef, computed as weight/(sum of all weights in targetRefs). |
|
| [16] | `weight` | The proportion of traffic forwarded to a targetRef, computed as weight/(sum of all weights in targetRefs). |
|
||||||
| [17] | `port` | The port of the referent service. |
|
| [17] | `port` | The port of the referent service. |
|
||||||
| [18] | `group` | Group is the group of the referent. Only `traefik.io`, `traefik.containo.us` and `gateway.networking.k8s.io` values are supported. |
|
| [18] | `group` | Group is the group of the referent. Only `traefik.io` and `gateway.networking.k8s.io` values are supported. |
|
||||||
| [19] | `kind` | Kind is kind of the referent. Only `TraefikService` and `Service` values are supported. |
|
| [19] | `kind` | Kind is kind of the referent. Only `TraefikService` and `Service` values are supported. |
|
||||||
|
|
||||||
### Kind: `TCPRoute`
|
### Kind: `TCPRoute`
|
||||||
|
@ -294,19 +294,19 @@ Kubernetes cluster before creating `TCPRoute` objects.
|
||||||
kind: TraefikService # [11]
|
kind: TraefikService # [11]
|
||||||
```
|
```
|
||||||
|
|
||||||
| Ref | Attribute | Description |
|
| Ref | Attribute | Description |
|
||||||
|------|---------------|------------------------------------------------------------------------------------------------------------------------------------|
|
|------|---------------|-----------------------------------------------------------------------------------------------------------------|
|
||||||
| [1] | `parentRefs` | References the resources (usually Gateways) that a Route wants to be attached to. |
|
| [1] | `parentRefs` | References the resources (usually Gateways) that a Route wants to be attached to. |
|
||||||
| [2] | `name` | Name of the referent. |
|
| [2] | `name` | Name of the referent. |
|
||||||
| [3] | `namespace` | Namespace of the referent. When unspecified (or empty string), this refers to the local namespace of the Route. |
|
| [3] | `namespace` | Namespace of the referent. When unspecified (or empty string), this refers to the local namespace of the Route. |
|
||||||
| [4] | `sectionName` | Name of a section within the target resource (the Listener name). |
|
| [4] | `sectionName` | Name of a section within the target resource (the Listener name). |
|
||||||
| [5] | `rules` | Rules are a list of TCP matchers and actions. |
|
| [5] | `rules` | Rules are a list of TCP matchers and actions. |
|
||||||
| [6] | `backendRefs` | Defines the backend(s) where matching requests should be sent. |
|
| [6] | `backendRefs` | Defines the backend(s) where matching requests should be sent. |
|
||||||
| [7] | `name` | The name of the referent service. |
|
| [7] | `name` | The name of the referent service. |
|
||||||
| [8] | `weight` | The proportion of traffic forwarded to a targetRef, computed as weight/(sum of all weights in targetRefs). |
|
| [8] | `weight` | The proportion of traffic forwarded to a targetRef, computed as weight/(sum of all weights in targetRefs). |
|
||||||
| [9] | `port` | The port of the referent service. |
|
| [9] | `port` | The port of the referent service. |
|
||||||
| [10] | `group` | Group is the group of the referent. Only `traefik.io`, `traefik.containo.us` and `gateway.networking.k8s.io` values are supported. |
|
| [10] | `group` | Group is the group of the referent. Only `traefik.io` and `gateway.networking.k8s.io` values are supported. |
|
||||||
| [11] | `kind` | Kind is kind of the referent. Only `TraefikService` and `Service` values are supported. |
|
| [11] | `kind` | Kind is kind of the referent. Only `TraefikService` and `Service` values are supported. |
|
||||||
|
|
||||||
### Kind: `TLSRoute`
|
### Kind: `TLSRoute`
|
||||||
|
|
||||||
|
@ -340,17 +340,17 @@ Kubernetes cluster before creating `TLSRoute` objects.
|
||||||
kind: TraefikService # [12]
|
kind: TraefikService # [12]
|
||||||
```
|
```
|
||||||
|
|
||||||
| Ref | Attribute | Description |
|
| Ref | Attribute | Description |
|
||||||
|------|---------------|------------------------------------------------------------------------------------------------------------------------------------|
|
|------|---------------|---------------------------------------------------------------------------------------------------------------------|
|
||||||
| [1] | `parentRefs` | References the resources (usually Gateways) that a Route wants to be attached to. |
|
| [1] | `parentRefs` | References the resources (usually Gateways) that a Route wants to be attached to. |
|
||||||
| [2] | `name` | Name of the referent. |
|
| [2] | `name` | Name of the referent. |
|
||||||
| [3] | `namespace` | Namespace of the referent. When unspecified (or empty string), this refers to the local namespace of the Route. |
|
| [3] | `namespace` | Namespace of the referent. When unspecified (or empty string), this refers to the local namespace of the Route. |
|
||||||
| [4] | `sectionName` | Name of a section within the target resource (the Listener name). |
|
| [4] | `sectionName` | Name of a section within the target resource (the Listener name). |
|
||||||
| [5] | `hostnames` | Defines a set of SNI names that should match against the SNI attribute of TLS ClientHello message in TLS handshake. |
|
| [5] | `hostnames` | Defines a set of SNI names that should match against the SNI attribute of TLS ClientHello message in TLS handshake. |
|
||||||
| [6] | `rules` | Rules are a list of TCP matchers and actions. |
|
| [6] | `rules` | Rules are a list of TCP matchers and actions. |
|
||||||
| [7] | `backendRefs` | Defines the backend(s) where matching requests should be sent. |
|
| [7] | `backendRefs` | Defines the backend(s) where matching requests should be sent. |
|
||||||
| [8] | `name` | The name of the referent service. |
|
| [8] | `name` | The name of the referent service. |
|
||||||
| [9] | `weight` | The proportion of traffic forwarded to a targetRef, computed as weight/(sum of all weights in targetRefs). |
|
| [9] | `weight` | The proportion of traffic forwarded to a targetRef, computed as weight/(sum of all weights in targetRefs). |
|
||||||
| [10] | `port` | The port of the referent service. |
|
| [10] | `port` | The port of the referent service. |
|
||||||
| [11] | `group` | Group is the group of the referent. Only `traefik.io`, `traefik.containo.us` and `gateway.networking.k8s.io` values are supported. |
|
| [11] | `group` | Group is the group of the referent. Only `traefik.io` and `gateway.networking.k8s.io` values are supported. |
|
||||||
| [12] | `kind` | Kind is kind of the referent. Only `TraefikService` and `Service` values are supported. |
|
| [12] | `kind` | Kind is kind of the referent. Only `TraefikService` and `Service` values are supported. |
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,93 +0,0 @@
|
||||||
# This IngressRoute is expected to be ignored, because it already declared in API GroupVersion "traefik.io/v1alpha1".
|
|
||||||
---
|
|
||||||
apiVersion: traefik.containo.us/v1alpha1
|
|
||||||
kind: IngressRoute
|
|
||||||
metadata:
|
|
||||||
name: test.route
|
|
||||||
namespace: default
|
|
||||||
labels:
|
|
||||||
app: traefik
|
|
||||||
|
|
||||||
spec:
|
|
||||||
entryPoints:
|
|
||||||
- web
|
|
||||||
|
|
||||||
routes:
|
|
||||||
- match: Host(`collision`)
|
|
||||||
kind: Rule
|
|
||||||
priority: 12
|
|
||||||
services:
|
|
||||||
- name: whoami
|
|
||||||
port: 80
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: traefik.containo.us/v1alpha1
|
|
||||||
kind: IngressRoute
|
|
||||||
metadata:
|
|
||||||
name: test.route.containous
|
|
||||||
namespace: default
|
|
||||||
labels:
|
|
||||||
app: traefik
|
|
||||||
|
|
||||||
spec:
|
|
||||||
entryPoints:
|
|
||||||
- web
|
|
||||||
|
|
||||||
routes:
|
|
||||||
- match: Host(`bar.com`) && PathPrefix(`/foo`)
|
|
||||||
kind: Rule
|
|
||||||
priority: 12
|
|
||||||
middlewares:
|
|
||||||
- name: stripprefix-containous
|
|
||||||
services:
|
|
||||||
- name: whoami
|
|
||||||
port: 80
|
|
||||||
|
|
||||||
tls:
|
|
||||||
options:
|
|
||||||
name: mytlsoption-containous
|
|
||||||
store:
|
|
||||||
name: mytlsstore-containous
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: traefik.containo.us/v1alpha1
|
|
||||||
kind: Middleware
|
|
||||||
metadata:
|
|
||||||
name: stripprefix-containous
|
|
||||||
namespace: default
|
|
||||||
labels:
|
|
||||||
app: traefik
|
|
||||||
|
|
||||||
spec:
|
|
||||||
stripPrefix:
|
|
||||||
prefixes:
|
|
||||||
- /tobestripped
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: traefik.containo.us/v1alpha1
|
|
||||||
kind: TLSOption
|
|
||||||
metadata:
|
|
||||||
name: mytlsoption-containous
|
|
||||||
namespace: default
|
|
||||||
labels:
|
|
||||||
app: traefik
|
|
||||||
|
|
||||||
spec:
|
|
||||||
minVersion: VersionTLS12
|
|
||||||
sniStrict: true
|
|
||||||
cipherSuites:
|
|
||||||
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
|
|
||||||
- TLS_RSA_WITH_AES_256_GCM_SHA384
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: traefik.containo.us/v1alpha1
|
|
||||||
kind: TLSStore
|
|
||||||
metadata:
|
|
||||||
name: mytlsstore-containous
|
|
||||||
namespace: default
|
|
||||||
labels:
|
|
||||||
app: traefik
|
|
||||||
|
|
||||||
spec:
|
|
||||||
defaultCertificate:
|
|
||||||
secretName: tls-cert
|
|
|
@ -1,22 +0,0 @@
|
||||||
apiVersion: traefik.containo.us/v1alpha1
|
|
||||||
kind: IngressRouteTCP
|
|
||||||
metadata:
|
|
||||||
name: test3.route-containous
|
|
||||||
namespace: default
|
|
||||||
|
|
||||||
spec:
|
|
||||||
entryPoints:
|
|
||||||
- footcp
|
|
||||||
routes:
|
|
||||||
- match: HostSNI(`*`)
|
|
||||||
services:
|
|
||||||
- name: whoamitcp
|
|
||||||
namespace: default
|
|
||||||
port: 8080
|
|
||||||
- name: externalname-svc
|
|
||||||
port: 9090
|
|
||||||
tls:
|
|
||||||
options:
|
|
||||||
name: mytlsoption-containous
|
|
||||||
store:
|
|
||||||
name: mytlsstore-containous
|
|
|
@ -1,16 +0,0 @@
|
||||||
apiVersion: traefik.containo.us/v1alpha1
|
|
||||||
kind: IngressRouteUDP
|
|
||||||
metadata:
|
|
||||||
name: test3.route-containous
|
|
||||||
namespace: default
|
|
||||||
|
|
||||||
spec:
|
|
||||||
entryPoints:
|
|
||||||
- fooudp
|
|
||||||
routes:
|
|
||||||
- services:
|
|
||||||
- name: whoamiudp
|
|
||||||
namespace: default
|
|
||||||
port: 8090
|
|
||||||
- name: externalname-svc
|
|
||||||
port: 9090
|
|
|
@ -26,37 +26,6 @@
|
||||||
"using": [
|
"using": [
|
||||||
"web"
|
"web"
|
||||||
]
|
]
|
||||||
},
|
|
||||||
"default-test-route-containous-1bc3efa892379bb93c6e@kubernetescrd": {
|
|
||||||
"entryPoints": [
|
|
||||||
"web"
|
|
||||||
],
|
|
||||||
"middlewares": [
|
|
||||||
"default-stripprefix-containous@kubernetescrd"
|
|
||||||
],
|
|
||||||
"service": "default-test-route-containous-1bc3efa892379bb93c6e",
|
|
||||||
"rule": "Host(`bar.com`) \u0026\u0026 PathPrefix(`/foo`)",
|
|
||||||
"priority": 12,
|
|
||||||
"tls": {
|
|
||||||
"options": "default-mytlsoption-containous"
|
|
||||||
},
|
|
||||||
"status": "enabled",
|
|
||||||
"using": [
|
|
||||||
"web"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"middlewares": {
|
|
||||||
"default-stripprefix-containous@kubernetescrd": {
|
|
||||||
"stripPrefix": {
|
|
||||||
"prefixes": [
|
|
||||||
"/tobestripped"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"status": "enabled",
|
|
||||||
"usedBy": [
|
|
||||||
"default-test-route-containous-1bc3efa892379bb93c6e@kubernetescrd"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"services": {
|
"services": {
|
||||||
|
@ -76,7 +45,7 @@
|
||||||
"url": "http://10.42.0.3:80"
|
"url": "http://10.42.0.3:80"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"url": "http://10.42.0.7:80"
|
"url": "http://10.42.0.6:80"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"passHostHeader": true,
|
"passHostHeader": true,
|
||||||
|
@ -90,31 +59,7 @@
|
||||||
],
|
],
|
||||||
"serverStatus": {
|
"serverStatus": {
|
||||||
"http://10.42.0.3:80": "UP",
|
"http://10.42.0.3:80": "UP",
|
||||||
"http://10.42.0.7:80": "UP"
|
"http://10.42.0.6:80": "UP"
|
||||||
}
|
|
||||||
},
|
|
||||||
"default-test-route-containous-1bc3efa892379bb93c6e@kubernetescrd": {
|
|
||||||
"loadBalancer": {
|
|
||||||
"servers": [
|
|
||||||
{
|
|
||||||
"url": "http://10.42.0.3:80"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "http://10.42.0.7:80"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"passHostHeader": true,
|
|
||||||
"responseForwarding": {
|
|
||||||
"flushInterval": "100ms"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"status": "enabled",
|
|
||||||
"usedBy": [
|
|
||||||
"default-test-route-containous-1bc3efa892379bb93c6e@kubernetescrd"
|
|
||||||
],
|
|
||||||
"serverStatus": {
|
|
||||||
"http://10.42.0.3:80": "UP",
|
|
||||||
"http://10.42.0.7:80": "UP"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"noop@internal": {
|
"noop@internal": {
|
||||||
|
|
197
integration/testdata/rawdata-crd.json
vendored
197
integration/testdata/rawdata-crd.json
vendored
|
@ -27,24 +27,6 @@
|
||||||
"web"
|
"web"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"default-test-route-containous-1bc3efa892379bb93c6e@kubernetescrd": {
|
|
||||||
"entryPoints": [
|
|
||||||
"web"
|
|
||||||
],
|
|
||||||
"middlewares": [
|
|
||||||
"default-stripprefix-containous@kubernetescrd"
|
|
||||||
],
|
|
||||||
"service": "default-test-route-containous-1bc3efa892379bb93c6e",
|
|
||||||
"rule": "Host(`bar.com`) \u0026\u0026 PathPrefix(`/foo`)",
|
|
||||||
"priority": 12,
|
|
||||||
"tls": {
|
|
||||||
"options": "default-mytlsoption-containous"
|
|
||||||
},
|
|
||||||
"status": "enabled",
|
|
||||||
"using": [
|
|
||||||
"web"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"default-test2-route-23c7f4c450289ee29016@kubernetescrd": {
|
"default-test2-route-23c7f4c450289ee29016@kubernetescrd": {
|
||||||
"entryPoints": [
|
"entryPoints": [
|
||||||
"web"
|
"web"
|
||||||
|
@ -112,17 +94,6 @@
|
||||||
"default-test2-route-23c7f4c450289ee29016@kubernetescrd"
|
"default-test2-route-23c7f4c450289ee29016@kubernetescrd"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"default-stripprefix-containous@kubernetescrd": {
|
|
||||||
"stripPrefix": {
|
|
||||||
"prefixes": [
|
|
||||||
"/tobestripped"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"status": "enabled",
|
|
||||||
"usedBy": [
|
|
||||||
"default-test-route-containous-1bc3efa892379bb93c6e@kubernetescrd"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"default-stripprefix2@kubernetescrd": {
|
"default-stripprefix2@kubernetescrd": {
|
||||||
"stripPrefix": {
|
"stripPrefix": {
|
||||||
"prefixes": [
|
"prefixes": [
|
||||||
|
@ -165,10 +136,10 @@
|
||||||
"loadBalancer": {
|
"loadBalancer": {
|
||||||
"servers": [
|
"servers": [
|
||||||
{
|
{
|
||||||
"url": "http://10.42.0.4:80"
|
"url": "http://10.42.0.3:80"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"url": "http://10.42.0.6:80"
|
"url": "http://10.42.0.7:80"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"passHostHeader": true,
|
"passHostHeader": true,
|
||||||
|
@ -181,42 +152,18 @@
|
||||||
"default-test-route-6b204d94623b3df4370c@kubernetescrd"
|
"default-test-route-6b204d94623b3df4370c@kubernetescrd"
|
||||||
],
|
],
|
||||||
"serverStatus": {
|
"serverStatus": {
|
||||||
"http://10.42.0.4:80": "UP",
|
"http://10.42.0.3:80": "UP",
|
||||||
"http://10.42.0.6:80": "UP"
|
"http://10.42.0.7:80": "UP"
|
||||||
}
|
|
||||||
},
|
|
||||||
"default-test-route-containous-1bc3efa892379bb93c6e@kubernetescrd": {
|
|
||||||
"loadBalancer": {
|
|
||||||
"servers": [
|
|
||||||
{
|
|
||||||
"url": "http://10.42.0.4:80"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "http://10.42.0.6:80"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"passHostHeader": true,
|
|
||||||
"responseForwarding": {
|
|
||||||
"flushInterval": "100ms"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"status": "enabled",
|
|
||||||
"usedBy": [
|
|
||||||
"default-test-route-containous-1bc3efa892379bb93c6e@kubernetescrd"
|
|
||||||
],
|
|
||||||
"serverStatus": {
|
|
||||||
"http://10.42.0.4:80": "UP",
|
|
||||||
"http://10.42.0.6:80": "UP"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"default-test2-route-23c7f4c450289ee29016@kubernetescrd": {
|
"default-test2-route-23c7f4c450289ee29016@kubernetescrd": {
|
||||||
"loadBalancer": {
|
"loadBalancer": {
|
||||||
"servers": [
|
"servers": [
|
||||||
{
|
{
|
||||||
"url": "http://10.42.0.4:80"
|
"url": "http://10.42.0.3:80"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"url": "http://10.42.0.6:80"
|
"url": "http://10.42.0.7:80"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"passHostHeader": true,
|
"passHostHeader": true,
|
||||||
|
@ -229,18 +176,18 @@
|
||||||
"default-test2-route-23c7f4c450289ee29016@kubernetescrd"
|
"default-test2-route-23c7f4c450289ee29016@kubernetescrd"
|
||||||
],
|
],
|
||||||
"serverStatus": {
|
"serverStatus": {
|
||||||
"http://10.42.0.4:80": "UP",
|
"http://10.42.0.3:80": "UP",
|
||||||
"http://10.42.0.6:80": "UP"
|
"http://10.42.0.7:80": "UP"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"default-testst-route-60ad45fcb5fc1f5f3629@kubernetescrd": {
|
"default-testst-route-60ad45fcb5fc1f5f3629@kubernetescrd": {
|
||||||
"loadBalancer": {
|
"loadBalancer": {
|
||||||
"servers": [
|
"servers": [
|
||||||
{
|
{
|
||||||
"url": "http://10.42.0.4:80"
|
"url": "http://10.42.0.3:80"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"url": "http://10.42.0.6:80"
|
"url": "http://10.42.0.7:80"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"passHostHeader": true,
|
"passHostHeader": true,
|
||||||
|
@ -254,18 +201,18 @@
|
||||||
"default-testst-route-60ad45fcb5fc1f5f3629@kubernetescrd"
|
"default-testst-route-60ad45fcb5fc1f5f3629@kubernetescrd"
|
||||||
],
|
],
|
||||||
"serverStatus": {
|
"serverStatus": {
|
||||||
"http://10.42.0.4:80": "UP",
|
"http://10.42.0.3:80": "UP",
|
||||||
"http://10.42.0.6:80": "UP"
|
"http://10.42.0.7:80": "UP"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"default-whoami-80@kubernetescrd": {
|
"default-whoami-80@kubernetescrd": {
|
||||||
"loadBalancer": {
|
"loadBalancer": {
|
||||||
"servers": [
|
"servers": [
|
||||||
{
|
{
|
||||||
"url": "http://10.42.0.4:80"
|
"url": "http://10.42.0.3:80"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"url": "http://10.42.0.6:80"
|
"url": "http://10.42.0.7:80"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"passHostHeader": true,
|
"passHostHeader": true,
|
||||||
|
@ -275,8 +222,8 @@
|
||||||
},
|
},
|
||||||
"status": "enabled",
|
"status": "enabled",
|
||||||
"serverStatus": {
|
"serverStatus": {
|
||||||
"http://10.42.0.4:80": "UP",
|
"http://10.42.0.3:80": "UP",
|
||||||
"http://10.42.0.6:80": "UP"
|
"http://10.42.0.7:80": "UP"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"default-wrr1@kubernetescrd": {
|
"default-wrr1@kubernetescrd": {
|
||||||
|
@ -328,22 +275,6 @@
|
||||||
"using": [
|
"using": [
|
||||||
"footcp"
|
"footcp"
|
||||||
]
|
]
|
||||||
},
|
|
||||||
"default-test3.route-containous-673acf455cb2dab0b43a@kubernetescrd": {
|
|
||||||
"entryPoints": [
|
|
||||||
"footcp"
|
|
||||||
],
|
|
||||||
"service": "default-test3.route-containous-673acf455cb2dab0b43a",
|
|
||||||
"rule": "HostSNI(`*`)",
|
|
||||||
"priority": -1,
|
|
||||||
"tls": {
|
|
||||||
"passthrough": false,
|
|
||||||
"options": "default-mytlsoption-containous"
|
|
||||||
},
|
|
||||||
"status": "enabled",
|
|
||||||
"using": [
|
|
||||||
"footcp"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tcpServices": {
|
"tcpServices": {
|
||||||
|
@ -364,7 +295,7 @@
|
||||||
"address": "10.42.0.2:8080"
|
"address": "10.42.0.2:8080"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"address": "10.42.0.3:8080"
|
"address": "10.42.0.4:8080"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -387,47 +318,6 @@
|
||||||
"usedBy": [
|
"usedBy": [
|
||||||
"default-test3.route-673acf455cb2dab0b43a@kubernetescrd"
|
"default-test3.route-673acf455cb2dab0b43a@kubernetescrd"
|
||||||
]
|
]
|
||||||
},
|
|
||||||
"default-test3.route-containous-673acf455cb2dab0b43a-externalname-svc-9090@kubernetescrd": {
|
|
||||||
"loadBalancer": {
|
|
||||||
"servers": [
|
|
||||||
{
|
|
||||||
"address": "domain.com:9090"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"status": "enabled"
|
|
||||||
},
|
|
||||||
"default-test3.route-containous-673acf455cb2dab0b43a-whoamitcp-8080@kubernetescrd": {
|
|
||||||
"loadBalancer": {
|
|
||||||
"servers": [
|
|
||||||
{
|
|
||||||
"address": "10.42.0.2:8080"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"address": "10.42.0.3:8080"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"status": "enabled"
|
|
||||||
},
|
|
||||||
"default-test3.route-containous-673acf455cb2dab0b43a@kubernetescrd": {
|
|
||||||
"weighted": {
|
|
||||||
"services": [
|
|
||||||
{
|
|
||||||
"name": "default-test3.route-containous-673acf455cb2dab0b43a-whoamitcp-8080",
|
|
||||||
"weight": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "default-test3.route-containous-673acf455cb2dab0b43a-externalname-svc-9090",
|
|
||||||
"weight": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"status": "enabled",
|
|
||||||
"usedBy": [
|
|
||||||
"default-test3.route-containous-673acf455cb2dab0b43a@kubernetescrd"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"udpRouters": {
|
"udpRouters": {
|
||||||
|
@ -440,16 +330,6 @@
|
||||||
"using": [
|
"using": [
|
||||||
"fooudp"
|
"fooudp"
|
||||||
]
|
]
|
||||||
},
|
|
||||||
"default-test3.route-containous-0@kubernetescrd": {
|
|
||||||
"entryPoints": [
|
|
||||||
"fooudp"
|
|
||||||
],
|
|
||||||
"service": "default-test3.route-containous-0",
|
|
||||||
"status": "enabled",
|
|
||||||
"using": [
|
|
||||||
"fooudp"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"udpServices": {
|
"udpServices": {
|
||||||
|
@ -470,7 +350,7 @@
|
||||||
"address": "10.42.0.5:8090"
|
"address": "10.42.0.5:8090"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"address": "10.42.0.7:8090"
|
"address": "10.42.0.6:8090"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -493,47 +373,6 @@
|
||||||
"usedBy": [
|
"usedBy": [
|
||||||
"default-test3.route-0@kubernetescrd"
|
"default-test3.route-0@kubernetescrd"
|
||||||
]
|
]
|
||||||
},
|
|
||||||
"default-test3.route-containous-0-externalname-svc-9090@kubernetescrd": {
|
|
||||||
"loadBalancer": {
|
|
||||||
"servers": [
|
|
||||||
{
|
|
||||||
"address": "domain.com:9090"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"status": "enabled"
|
|
||||||
},
|
|
||||||
"default-test3.route-containous-0-whoamiudp-8090@kubernetescrd": {
|
|
||||||
"loadBalancer": {
|
|
||||||
"servers": [
|
|
||||||
{
|
|
||||||
"address": "10.42.0.5:8090"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"address": "10.42.0.7:8090"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"status": "enabled"
|
|
||||||
},
|
|
||||||
"default-test3.route-containous-0@kubernetescrd": {
|
|
||||||
"weighted": {
|
|
||||||
"services": [
|
|
||||||
{
|
|
||||||
"name": "default-test3.route-containous-0-whoamiudp-8090",
|
|
||||||
"weight": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "default-test3.route-containous-0-externalname-svc-9090",
|
|
||||||
"weight": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"status": "enabled",
|
|
||||||
"usedBy": [
|
|
||||||
"default-test3.route-containous-0@kubernetescrd"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
10
integration/testdata/rawdata-gateway.json
vendored
10
integration/testdata/rawdata-gateway.json
vendored
|
@ -124,10 +124,10 @@
|
||||||
"loadBalancer": {
|
"loadBalancer": {
|
||||||
"servers": [
|
"servers": [
|
||||||
{
|
{
|
||||||
"url": "http://10.42.0.6:80"
|
"url": "http://10.42.0.3:80"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"url": "http://10.42.0.7:80"
|
"url": "http://10.42.0.4:80"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"passHostHeader": true,
|
"passHostHeader": true,
|
||||||
|
@ -137,8 +137,8 @@
|
||||||
},
|
},
|
||||||
"status": "enabled",
|
"status": "enabled",
|
||||||
"serverStatus": {
|
"serverStatus": {
|
||||||
"http://10.42.0.6:80": "UP",
|
"http://10.42.0.3:80": "UP",
|
||||||
"http://10.42.0.7:80": "UP"
|
"http://10.42.0.4:80": "UP"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"noop@internal": {
|
"noop@internal": {
|
||||||
|
@ -239,7 +239,7 @@
|
||||||
"address": "10.42.0.2:8080"
|
"address": "10.42.0.2:8080"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"address": "10.42.0.4:8080"
|
"address": "10.42.0.6:8080"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -8,6 +8,4 @@ type Experimental struct {
|
||||||
LocalPlugins map[string]plugins.LocalDescriptor `description:"Local plugins configuration." json:"localPlugins,omitempty" toml:"localPlugins,omitempty" yaml:"localPlugins,omitempty" export:"true"`
|
LocalPlugins map[string]plugins.LocalDescriptor `description:"Local plugins configuration." json:"localPlugins,omitempty" toml:"localPlugins,omitempty" yaml:"localPlugins,omitempty" export:"true"`
|
||||||
|
|
||||||
KubernetesGateway bool `description:"Allow the Kubernetes gateway api provider usage." json:"kubernetesGateway,omitempty" toml:"kubernetesGateway,omitempty" yaml:"kubernetesGateway,omitempty" export:"true"`
|
KubernetesGateway bool `description:"Allow the Kubernetes gateway api provider usage." json:"kubernetesGateway,omitempty" toml:"kubernetesGateway,omitempty" yaml:"kubernetesGateway,omitempty" export:"true"`
|
||||||
// Deprecated.
|
|
||||||
Hub bool `description:"Enable the Traefik Hub provider." json:"hub,omitempty" toml:"hub,omitempty" yaml:"hub,omitempty" export:"true"`
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,10 +9,6 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func (c *Configuration) initHubProvider() error {
|
func (c *Configuration) initHubProvider() error {
|
||||||
if c.Experimental != nil && c.Experimental.Hub {
|
|
||||||
log.Warn().Msg("Experimental flag for Traefik Hub is deprecated, because Traefik Hub is now GA.")
|
|
||||||
}
|
|
||||||
|
|
||||||
if _, ok := c.EntryPoints[hub.TunnelEntrypoint]; !ok {
|
if _, ok := c.EntryPoints[hub.TunnelEntrypoint]; !ok {
|
||||||
var ep EntryPoint
|
var ep EntryPoint
|
||||||
ep.SetDefaults()
|
ep.SetDefaults()
|
||||||
|
|
|
@ -1,369 +0,0 @@
|
||||||
package crd
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
"github.com/rs/zerolog/log"
|
|
||||||
"github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned/scheme"
|
|
||||||
"github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/informers/externalversions"
|
|
||||||
"github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikio/v1alpha1"
|
|
||||||
"github.com/traefik/traefik/v3/pkg/provider/kubernetes/k8s"
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (c *clientWrapper) appendContainousIngressRoutes(result []*v1alpha1.IngressRoute) []*v1alpha1.IngressRoute {
|
|
||||||
listed := map[string]struct{}{}
|
|
||||||
for _, obj := range result {
|
|
||||||
listed[objectKey(obj.ObjectMeta)] = struct{}{}
|
|
||||||
}
|
|
||||||
|
|
||||||
for ns, factory := range c.factoriesCrd {
|
|
||||||
ings, err := factory.TraefikContainous().V1alpha1().IngressRoutes().Lister().List(labels.Everything())
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Str("namespace", ns).Msg("Failed to list ingress routes")
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, ing := range ings {
|
|
||||||
key := objectKey(ing.ObjectMeta)
|
|
||||||
if _, ok := listed[key]; ok {
|
|
||||||
log.Debug().Msgf("Ignoring traefik.containo.us/v1alpha1 ingress route (%s) already listed within traefik.io/v1alpha1 API GroupVersion", key)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
toVersion, err := scheme.Scheme.ConvertToVersion(ing, GroupVersioner)
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Str("namespace", ns).Msg("Failed to convert ingress route in namespace")
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
result = append(result, toVersion.(*v1alpha1.IngressRoute))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *clientWrapper) appendContainousIngressRouteTCPs(result []*v1alpha1.IngressRouteTCP) []*v1alpha1.IngressRouteTCP {
|
|
||||||
listed := map[string]struct{}{}
|
|
||||||
for _, obj := range result {
|
|
||||||
listed[objectKey(obj.ObjectMeta)] = struct{}{}
|
|
||||||
}
|
|
||||||
|
|
||||||
for ns, factory := range c.factoriesCrd {
|
|
||||||
ings, err := factory.TraefikContainous().V1alpha1().IngressRouteTCPs().Lister().List(labels.Everything())
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Str("namespace", ns).Msg("Failed to list tcp ingress routes")
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, ing := range ings {
|
|
||||||
key := objectKey(ing.ObjectMeta)
|
|
||||||
if _, ok := listed[key]; ok {
|
|
||||||
log.Debug().Msgf("Ignoring traefik.containo.us/v1alpha1 tcp ingress route (%s) already listed within traefik.io/v1alpha1 API GroupVersion", key)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
toVersion, err := scheme.Scheme.ConvertToVersion(ing, GroupVersioner)
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Str("namespace", ns).Msg("Failed to convert tcp ingress route")
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
result = append(result, toVersion.(*v1alpha1.IngressRouteTCP))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *clientWrapper) appendContainousIngressRouteUDPs(result []*v1alpha1.IngressRouteUDP) []*v1alpha1.IngressRouteUDP {
|
|
||||||
listed := map[string]struct{}{}
|
|
||||||
for _, obj := range result {
|
|
||||||
listed[objectKey(obj.ObjectMeta)] = struct{}{}
|
|
||||||
}
|
|
||||||
|
|
||||||
for ns, factory := range c.factoriesCrd {
|
|
||||||
ings, err := factory.TraefikContainous().V1alpha1().IngressRouteUDPs().Lister().List(labels.Everything())
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Str("namespace", ns).Msg("Failed to list udp ingress routes")
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, ing := range ings {
|
|
||||||
key := objectKey(ing.ObjectMeta)
|
|
||||||
if _, ok := listed[key]; ok {
|
|
||||||
log.Debug().Msgf("Ignoring traefik.containo.us/v1alpha1 udp ingress route (%s) already listed within traefik.io/v1alpha1 API GroupVersion", key)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
toVersion, err := scheme.Scheme.ConvertToVersion(ing, GroupVersioner)
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Str("namespace", ns).Msg("Failed to convert udp ingress route")
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
result = append(result, toVersion.(*v1alpha1.IngressRouteUDP))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *clientWrapper) appendContainousMiddlewares(result []*v1alpha1.Middleware) []*v1alpha1.Middleware {
|
|
||||||
listed := map[string]struct{}{}
|
|
||||||
for _, obj := range result {
|
|
||||||
listed[objectKey(obj.ObjectMeta)] = struct{}{}
|
|
||||||
}
|
|
||||||
|
|
||||||
for ns, factory := range c.factoriesCrd {
|
|
||||||
middlewares, err := factory.TraefikContainous().V1alpha1().Middlewares().Lister().List(labels.Everything())
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Str("namespace", ns).Msg("Failed to list middlewares")
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, middleware := range middlewares {
|
|
||||||
key := objectKey(middleware.ObjectMeta)
|
|
||||||
if _, ok := listed[key]; ok {
|
|
||||||
log.Debug().Msgf("Ignoring traefik.containo.us/v1alpha1 middleware (%s) already listed within traefik.io/v1alpha1 API GroupVersion", key)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
toVersion, err := scheme.Scheme.ConvertToVersion(middleware, GroupVersioner)
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Str("namespace", ns).Msg("Failed to convert middleware")
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
result = append(result, toVersion.(*v1alpha1.Middleware))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *clientWrapper) appendContainousMiddlewareTCPs(result []*v1alpha1.MiddlewareTCP) []*v1alpha1.MiddlewareTCP {
|
|
||||||
listed := map[string]struct{}{}
|
|
||||||
for _, obj := range result {
|
|
||||||
listed[objectKey(obj.ObjectMeta)] = struct{}{}
|
|
||||||
}
|
|
||||||
|
|
||||||
for ns, factory := range c.factoriesCrd {
|
|
||||||
middlewares, err := factory.TraefikContainous().V1alpha1().MiddlewareTCPs().Lister().List(labels.Everything())
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Str("namespace", ns).Msg("Failed to list tcp middlewares")
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, middleware := range middlewares {
|
|
||||||
key := objectKey(middleware.ObjectMeta)
|
|
||||||
if _, ok := listed[key]; ok {
|
|
||||||
log.Debug().Msgf("Ignoring traefik.containo.us/v1alpha1 middleware (%s) already listed within traefik.io/v1alpha1 API GroupVersion", key)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
toVersion, err := scheme.Scheme.ConvertToVersion(middleware, GroupVersioner)
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Str("namespace", ns).Msg("Failed to convert tcp middleware")
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
result = append(result, toVersion.(*v1alpha1.MiddlewareTCP))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *clientWrapper) appendContainousTraefikServices(result []*v1alpha1.TraefikService) []*v1alpha1.TraefikService {
|
|
||||||
listed := map[string]struct{}{}
|
|
||||||
for _, obj := range result {
|
|
||||||
listed[objectKey(obj.ObjectMeta)] = struct{}{}
|
|
||||||
}
|
|
||||||
|
|
||||||
for ns, factory := range c.factoriesCrd {
|
|
||||||
traefikServices, err := factory.TraefikContainous().V1alpha1().TraefikServices().Lister().List(labels.Everything())
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Str("namespace", ns).Msg("Failed to list Traefik services")
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, traefikService := range traefikServices {
|
|
||||||
key := objectKey(traefikService.ObjectMeta)
|
|
||||||
if _, ok := listed[key]; ok {
|
|
||||||
log.Debug().Msgf("Ignoring traefik.containo.us/v1alpha1 Traefik service (%s) already listed within traefik.io/v1alpha1 API GroupVersion", key)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
toVersion, err := scheme.Scheme.ConvertToVersion(traefikService, GroupVersioner)
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Str("namespace", ns).Msg("Failed to convert Traefik service")
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
result = append(result, toVersion.(*v1alpha1.TraefikService))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *clientWrapper) appendContainousServersTransport(result []*v1alpha1.ServersTransport) []*v1alpha1.ServersTransport {
|
|
||||||
listed := map[string]struct{}{}
|
|
||||||
for _, obj := range result {
|
|
||||||
listed[objectKey(obj.ObjectMeta)] = struct{}{}
|
|
||||||
}
|
|
||||||
|
|
||||||
for ns, factory := range c.factoriesCrd {
|
|
||||||
serversTransports, err := factory.TraefikContainous().V1alpha1().ServersTransports().Lister().List(labels.Everything())
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Str("namespace", ns).Msg("Failed to list servers transports")
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, serversTransport := range serversTransports {
|
|
||||||
key := objectKey(serversTransport.ObjectMeta)
|
|
||||||
if _, ok := listed[key]; ok {
|
|
||||||
log.Debug().Msgf("Ignoring traefik.containo.us/v1alpha1 servers transport (%s) already listed within traefik.io/v1alpha1 API GroupVersion", key)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
toVersion, err := scheme.Scheme.ConvertToVersion(serversTransport, GroupVersioner)
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Str("namespace", ns).Msg("Failed to convert servers transport")
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
result = append(result, toVersion.(*v1alpha1.ServersTransport))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *clientWrapper) appendContainousServersTransportTCP(result []*v1alpha1.ServersTransportTCP) []*v1alpha1.ServersTransportTCP {
|
|
||||||
listed := map[string]struct{}{}
|
|
||||||
for _, obj := range result {
|
|
||||||
listed[objectKey(obj.ObjectMeta)] = struct{}{}
|
|
||||||
}
|
|
||||||
|
|
||||||
for ns, factory := range c.factoriesCrd {
|
|
||||||
serversTransports, err := factory.TraefikContainous().V1alpha1().ServersTransportTCPs().Lister().List(labels.Everything())
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Str("namespace", ns).Msg("Failed to list servers transports TCP")
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, serversTransport := range serversTransports {
|
|
||||||
key := objectKey(serversTransport.ObjectMeta)
|
|
||||||
if _, ok := listed[key]; ok {
|
|
||||||
log.Debug().Msgf("Ignoring traefik.containo.us/v1alpha1 servers transport TCP (%s) already listed within traefik.io/v1alpha1 API GroupVersion", key)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
toVersion, err := scheme.Scheme.ConvertToVersion(serversTransport, GroupVersioner)
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Str("namespace", ns).Msg("Failed to convert servers transport TCP")
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
result = append(result, toVersion.(*v1alpha1.ServersTransportTCP))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *clientWrapper) appendContainousTLSOptions(result []*v1alpha1.TLSOption) []*v1alpha1.TLSOption {
|
|
||||||
listed := map[string]struct{}{}
|
|
||||||
for _, obj := range result {
|
|
||||||
listed[objectKey(obj.ObjectMeta)] = struct{}{}
|
|
||||||
}
|
|
||||||
|
|
||||||
for ns, factory := range c.factoriesCrd {
|
|
||||||
options, err := factory.TraefikContainous().V1alpha1().TLSOptions().Lister().List(labels.Everything())
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Str("namespace", ns).Msg("Failed to list tls options")
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, option := range options {
|
|
||||||
key := objectKey(option.ObjectMeta)
|
|
||||||
if _, ok := listed[key]; ok {
|
|
||||||
log.Debug().Msgf("Ignoring traefik.containo.us/v1alpha1 tls option (%s) already listed within traefik.io/v1alpha1 API GroupVersion", key)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
toVersion, err := scheme.Scheme.ConvertToVersion(option, GroupVersioner)
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Str("namespace", ns).Msg("Failed to convert tls option")
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
result = append(result, toVersion.(*v1alpha1.TLSOption))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *clientWrapper) appendContainousTLSStores(result []*v1alpha1.TLSStore) []*v1alpha1.TLSStore {
|
|
||||||
listed := map[string]struct{}{}
|
|
||||||
for _, obj := range result {
|
|
||||||
listed[objectKey(obj.ObjectMeta)] = struct{}{}
|
|
||||||
}
|
|
||||||
|
|
||||||
for ns, factory := range c.factoriesCrd {
|
|
||||||
stores, err := factory.TraefikContainous().V1alpha1().TLSStores().Lister().List(labels.Everything())
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Str("namespace", ns).Msg("Failed to list tls stores")
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, store := range stores {
|
|
||||||
key := objectKey(store.ObjectMeta)
|
|
||||||
if _, ok := listed[key]; ok {
|
|
||||||
log.Debug().Msgf("Ignoring traefik.containo.us/v1alpha1 tls store (%s) already listed within traefik.io/v1alpha1 API GroupVersion", key)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
toVersion, err := scheme.Scheme.ConvertToVersion(store, GroupVersioner)
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Str("namespace", ns).Msg("Failed to convert tls store")
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
result = append(result, toVersion.(*v1alpha1.TLSStore))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *clientWrapper) getContainousTraefikService(ns, name string) (*v1alpha1.TraefikService, bool, error) {
|
|
||||||
if !c.isWatchedNamespace(ns) {
|
|
||||||
return nil, false, fmt.Errorf("failed to get service %s/%s: namespace is not within watched namespaces", ns, name)
|
|
||||||
}
|
|
||||||
|
|
||||||
service, err := c.factoriesCrd[c.lookupNamespace(ns)].TraefikContainous().V1alpha1().TraefikServices().Lister().TraefikServices(ns).Get(name)
|
|
||||||
exist, err := translateNotFoundError(err)
|
|
||||||
|
|
||||||
if !exist {
|
|
||||||
return nil, false, err
|
|
||||||
}
|
|
||||||
|
|
||||||
toVersion, err := scheme.Scheme.ConvertToVersion(service, GroupVersioner)
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Str("namespace", ns).Msg("Failed to convert Traefik service")
|
|
||||||
}
|
|
||||||
|
|
||||||
return toVersion.(*v1alpha1.TraefikService), exist, err
|
|
||||||
}
|
|
||||||
|
|
||||||
func addContainousInformers(factoryCrd externalversions.SharedInformerFactory, eventHandler *k8s.ResourceEventHandler) {
|
|
||||||
factoryCrd.TraefikContainous().V1alpha1().IngressRoutes().Informer().AddEventHandler(eventHandler)
|
|
||||||
factoryCrd.TraefikContainous().V1alpha1().Middlewares().Informer().AddEventHandler(eventHandler)
|
|
||||||
factoryCrd.TraefikContainous().V1alpha1().MiddlewareTCPs().Informer().AddEventHandler(eventHandler)
|
|
||||||
factoryCrd.TraefikContainous().V1alpha1().IngressRouteTCPs().Informer().AddEventHandler(eventHandler)
|
|
||||||
factoryCrd.TraefikContainous().V1alpha1().IngressRouteUDPs().Informer().AddEventHandler(eventHandler)
|
|
||||||
factoryCrd.TraefikContainous().V1alpha1().TLSOptions().Informer().AddEventHandler(eventHandler)
|
|
||||||
factoryCrd.TraefikContainous().V1alpha1().ServersTransports().Informer().AddEventHandler(eventHandler)
|
|
||||||
factoryCrd.TraefikContainous().V1alpha1().TLSStores().Informer().AddEventHandler(eventHandler)
|
|
||||||
factoryCrd.TraefikContainous().V1alpha1().TraefikServices().Informer().AddEventHandler(eventHandler)
|
|
||||||
}
|
|
||||||
|
|
||||||
func objectKey(meta metav1.ObjectMeta) string {
|
|
||||||
return fmt.Sprintf("%s/%s", meta.Namespace, meta.Name)
|
|
||||||
}
|
|
|
@ -175,8 +175,6 @@ func (c *clientWrapper) WatchAll(namespaces []string, stopCh <-chan struct{}) (<
|
||||||
factoryCrd.Traefik().V1alpha1().TLSStores().Informer().AddEventHandler(eventHandler)
|
factoryCrd.Traefik().V1alpha1().TLSStores().Informer().AddEventHandler(eventHandler)
|
||||||
factoryCrd.Traefik().V1alpha1().TraefikServices().Informer().AddEventHandler(eventHandler)
|
factoryCrd.Traefik().V1alpha1().TraefikServices().Informer().AddEventHandler(eventHandler)
|
||||||
|
|
||||||
addContainousInformers(factoryCrd, eventHandler)
|
|
||||||
|
|
||||||
factoryKube := informers.NewSharedInformerFactoryWithOptions(c.csKube, resyncPeriod, informers.WithNamespace(ns))
|
factoryKube := informers.NewSharedInformerFactoryWithOptions(c.csKube, resyncPeriod, informers.WithNamespace(ns))
|
||||||
factoryKube.Core().V1().Services().Informer().AddEventHandler(eventHandler)
|
factoryKube.Core().V1().Services().Informer().AddEventHandler(eventHandler)
|
||||||
factoryKube.Core().V1().Endpoints().Informer().AddEventHandler(eventHandler)
|
factoryKube.Core().V1().Endpoints().Informer().AddEventHandler(eventHandler)
|
||||||
|
@ -229,7 +227,7 @@ func (c *clientWrapper) GetIngressRoutes() []*v1alpha1.IngressRoute {
|
||||||
result = append(result, ings...)
|
result = append(result, ings...)
|
||||||
}
|
}
|
||||||
|
|
||||||
return c.appendContainousIngressRoutes(result)
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *clientWrapper) GetIngressRouteTCPs() []*v1alpha1.IngressRouteTCP {
|
func (c *clientWrapper) GetIngressRouteTCPs() []*v1alpha1.IngressRouteTCP {
|
||||||
|
@ -243,7 +241,7 @@ func (c *clientWrapper) GetIngressRouteTCPs() []*v1alpha1.IngressRouteTCP {
|
||||||
result = append(result, ings...)
|
result = append(result, ings...)
|
||||||
}
|
}
|
||||||
|
|
||||||
return c.appendContainousIngressRouteTCPs(result)
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *clientWrapper) GetIngressRouteUDPs() []*v1alpha1.IngressRouteUDP {
|
func (c *clientWrapper) GetIngressRouteUDPs() []*v1alpha1.IngressRouteUDP {
|
||||||
|
@ -257,7 +255,7 @@ func (c *clientWrapper) GetIngressRouteUDPs() []*v1alpha1.IngressRouteUDP {
|
||||||
result = append(result, ings...)
|
result = append(result, ings...)
|
||||||
}
|
}
|
||||||
|
|
||||||
return c.appendContainousIngressRouteUDPs(result)
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *clientWrapper) GetMiddlewares() []*v1alpha1.Middleware {
|
func (c *clientWrapper) GetMiddlewares() []*v1alpha1.Middleware {
|
||||||
|
@ -271,7 +269,7 @@ func (c *clientWrapper) GetMiddlewares() []*v1alpha1.Middleware {
|
||||||
result = append(result, middlewares...)
|
result = append(result, middlewares...)
|
||||||
}
|
}
|
||||||
|
|
||||||
return c.appendContainousMiddlewares(result)
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *clientWrapper) GetMiddlewareTCPs() []*v1alpha1.MiddlewareTCP {
|
func (c *clientWrapper) GetMiddlewareTCPs() []*v1alpha1.MiddlewareTCP {
|
||||||
|
@ -285,7 +283,7 @@ func (c *clientWrapper) GetMiddlewareTCPs() []*v1alpha1.MiddlewareTCP {
|
||||||
result = append(result, middlewares...)
|
result = append(result, middlewares...)
|
||||||
}
|
}
|
||||||
|
|
||||||
return c.appendContainousMiddlewareTCPs(result)
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTraefikService returns the named service from the given namespace.
|
// GetTraefikService returns the named service from the given namespace.
|
||||||
|
@ -297,10 +295,6 @@ func (c *clientWrapper) GetTraefikService(namespace, name string) (*v1alpha1.Tra
|
||||||
service, err := c.factoriesCrd[c.lookupNamespace(namespace)].Traefik().V1alpha1().TraefikServices().Lister().TraefikServices(namespace).Get(name)
|
service, err := c.factoriesCrd[c.lookupNamespace(namespace)].Traefik().V1alpha1().TraefikServices().Lister().TraefikServices(namespace).Get(name)
|
||||||
exist, err := translateNotFoundError(err)
|
exist, err := translateNotFoundError(err)
|
||||||
|
|
||||||
if !exist {
|
|
||||||
return c.getContainousTraefikService(namespace, name)
|
|
||||||
}
|
|
||||||
|
|
||||||
return service, exist, err
|
return service, exist, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -315,7 +309,7 @@ func (c *clientWrapper) GetTraefikServices() []*v1alpha1.TraefikService {
|
||||||
result = append(result, traefikServices...)
|
result = append(result, traefikServices...)
|
||||||
}
|
}
|
||||||
|
|
||||||
return c.appendContainousTraefikServices(result)
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetServersTransports returns all ServersTransport.
|
// GetServersTransports returns all ServersTransport.
|
||||||
|
@ -330,7 +324,7 @@ func (c *clientWrapper) GetServersTransports() []*v1alpha1.ServersTransport {
|
||||||
result = append(result, serversTransports...)
|
result = append(result, serversTransports...)
|
||||||
}
|
}
|
||||||
|
|
||||||
return c.appendContainousServersTransport(result)
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetServersTransportTCPs returns all ServersTransportTCP.
|
// GetServersTransportTCPs returns all ServersTransportTCP.
|
||||||
|
@ -345,7 +339,7 @@ func (c *clientWrapper) GetServersTransportTCPs() []*v1alpha1.ServersTransportTC
|
||||||
result = append(result, serversTransports...)
|
result = append(result, serversTransports...)
|
||||||
}
|
}
|
||||||
|
|
||||||
return c.appendContainousServersTransportTCP(result)
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTLSOptions returns all TLS options.
|
// GetTLSOptions returns all TLS options.
|
||||||
|
@ -360,7 +354,7 @@ func (c *clientWrapper) GetTLSOptions() []*v1alpha1.TLSOption {
|
||||||
result = append(result, options...)
|
result = append(result, options...)
|
||||||
}
|
}
|
||||||
|
|
||||||
return c.appendContainousTLSOptions(result)
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTLSStores returns all TLS stores.
|
// GetTLSStores returns all TLS stores.
|
||||||
|
@ -375,7 +369,7 @@ func (c *clientWrapper) GetTLSStores() []*v1alpha1.TLSStore {
|
||||||
result = append(result, stores...)
|
result = append(result, stores...)
|
||||||
}
|
}
|
||||||
|
|
||||||
return c.appendContainousTLSStores(result)
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetService returns the named service from the given namespace.
|
// GetService returns the named service from the given namespace.
|
||||||
|
|
|
@ -29,7 +29,6 @@ package versioned
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
traefikcontainousv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned/typed/traefikcontainous/v1alpha1"
|
|
||||||
traefikv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned/typed/traefikio/v1alpha1"
|
traefikv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned/typed/traefikio/v1alpha1"
|
||||||
discovery "k8s.io/client-go/discovery"
|
discovery "k8s.io/client-go/discovery"
|
||||||
rest "k8s.io/client-go/rest"
|
rest "k8s.io/client-go/rest"
|
||||||
|
@ -38,7 +37,6 @@ import (
|
||||||
|
|
||||||
type Interface interface {
|
type Interface interface {
|
||||||
Discovery() discovery.DiscoveryInterface
|
Discovery() discovery.DiscoveryInterface
|
||||||
TraefikContainousV1alpha1() traefikcontainousv1alpha1.TraefikContainousV1alpha1Interface
|
|
||||||
TraefikV1alpha1() traefikv1alpha1.TraefikV1alpha1Interface
|
TraefikV1alpha1() traefikv1alpha1.TraefikV1alpha1Interface
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,13 +44,7 @@ type Interface interface {
|
||||||
// version included in a Clientset.
|
// version included in a Clientset.
|
||||||
type Clientset struct {
|
type Clientset struct {
|
||||||
*discovery.DiscoveryClient
|
*discovery.DiscoveryClient
|
||||||
traefikContainousV1alpha1 *traefikcontainousv1alpha1.TraefikContainousV1alpha1Client
|
traefikV1alpha1 *traefikv1alpha1.TraefikV1alpha1Client
|
||||||
traefikV1alpha1 *traefikv1alpha1.TraefikV1alpha1Client
|
|
||||||
}
|
|
||||||
|
|
||||||
// TraefikContainousV1alpha1 retrieves the TraefikContainousV1alpha1Client
|
|
||||||
func (c *Clientset) TraefikContainousV1alpha1() traefikcontainousv1alpha1.TraefikContainousV1alpha1Interface {
|
|
||||||
return c.traefikContainousV1alpha1
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TraefikV1alpha1 retrieves the TraefikV1alpha1Client
|
// TraefikV1alpha1 retrieves the TraefikV1alpha1Client
|
||||||
|
@ -81,10 +73,6 @@ func NewForConfig(c *rest.Config) (*Clientset, error) {
|
||||||
}
|
}
|
||||||
var cs Clientset
|
var cs Clientset
|
||||||
var err error
|
var err error
|
||||||
cs.traefikContainousV1alpha1, err = traefikcontainousv1alpha1.NewForConfig(&configShallowCopy)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
cs.traefikV1alpha1, err = traefikv1alpha1.NewForConfig(&configShallowCopy)
|
cs.traefikV1alpha1, err = traefikv1alpha1.NewForConfig(&configShallowCopy)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -101,7 +89,6 @@ func NewForConfig(c *rest.Config) (*Clientset, error) {
|
||||||
// panics if there is an error in the config.
|
// panics if there is an error in the config.
|
||||||
func NewForConfigOrDie(c *rest.Config) *Clientset {
|
func NewForConfigOrDie(c *rest.Config) *Clientset {
|
||||||
var cs Clientset
|
var cs Clientset
|
||||||
cs.traefikContainousV1alpha1 = traefikcontainousv1alpha1.NewForConfigOrDie(c)
|
|
||||||
cs.traefikV1alpha1 = traefikv1alpha1.NewForConfigOrDie(c)
|
cs.traefikV1alpha1 = traefikv1alpha1.NewForConfigOrDie(c)
|
||||||
|
|
||||||
cs.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c)
|
cs.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c)
|
||||||
|
@ -111,7 +98,6 @@ func NewForConfigOrDie(c *rest.Config) *Clientset {
|
||||||
// New creates a new Clientset for the given RESTClient.
|
// New creates a new Clientset for the given RESTClient.
|
||||||
func New(c rest.Interface) *Clientset {
|
func New(c rest.Interface) *Clientset {
|
||||||
var cs Clientset
|
var cs Clientset
|
||||||
cs.traefikContainousV1alpha1 = traefikcontainousv1alpha1.New(c)
|
|
||||||
cs.traefikV1alpha1 = traefikv1alpha1.New(c)
|
cs.traefikV1alpha1 = traefikv1alpha1.New(c)
|
||||||
|
|
||||||
cs.DiscoveryClient = discovery.NewDiscoveryClient(c)
|
cs.DiscoveryClient = discovery.NewDiscoveryClient(c)
|
||||||
|
|
|
@ -28,8 +28,6 @@ package fake
|
||||||
|
|
||||||
import (
|
import (
|
||||||
clientset "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned"
|
clientset "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned"
|
||||||
traefikcontainousv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned/typed/traefikcontainous/v1alpha1"
|
|
||||||
faketraefikcontainousv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned/typed/traefikcontainous/v1alpha1/fake"
|
|
||||||
traefikv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned/typed/traefikio/v1alpha1"
|
traefikv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned/typed/traefikio/v1alpha1"
|
||||||
faketraefikv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned/typed/traefikio/v1alpha1/fake"
|
faketraefikv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned/typed/traefikio/v1alpha1/fake"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
@ -86,11 +84,6 @@ func (c *Clientset) Tracker() testing.ObjectTracker {
|
||||||
|
|
||||||
var _ clientset.Interface = &Clientset{}
|
var _ clientset.Interface = &Clientset{}
|
||||||
|
|
||||||
// TraefikContainousV1alpha1 retrieves the TraefikContainousV1alpha1Client
|
|
||||||
func (c *Clientset) TraefikContainousV1alpha1() traefikcontainousv1alpha1.TraefikContainousV1alpha1Interface {
|
|
||||||
return &faketraefikcontainousv1alpha1.FakeTraefikContainousV1alpha1{Fake: &c.Fake}
|
|
||||||
}
|
|
||||||
|
|
||||||
// TraefikV1alpha1 retrieves the TraefikV1alpha1Client
|
// TraefikV1alpha1 retrieves the TraefikV1alpha1Client
|
||||||
func (c *Clientset) TraefikV1alpha1() traefikv1alpha1.TraefikV1alpha1Interface {
|
func (c *Clientset) TraefikV1alpha1() traefikv1alpha1.TraefikV1alpha1Interface {
|
||||||
return &faketraefikv1alpha1.FakeTraefikV1alpha1{Fake: &c.Fake}
|
return &faketraefikv1alpha1.FakeTraefikV1alpha1{Fake: &c.Fake}
|
||||||
|
|
|
@ -27,7 +27,6 @@ THE SOFTWARE.
|
||||||
package fake
|
package fake
|
||||||
|
|
||||||
import (
|
import (
|
||||||
traefikcontainousv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
traefikv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikio/v1alpha1"
|
traefikv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikio/v1alpha1"
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||||
|
@ -40,7 +39,6 @@ var scheme = runtime.NewScheme()
|
||||||
var codecs = serializer.NewCodecFactory(scheme)
|
var codecs = serializer.NewCodecFactory(scheme)
|
||||||
|
|
||||||
var localSchemeBuilder = runtime.SchemeBuilder{
|
var localSchemeBuilder = runtime.SchemeBuilder{
|
||||||
traefikcontainousv1alpha1.AddToScheme,
|
|
||||||
traefikv1alpha1.AddToScheme,
|
traefikv1alpha1.AddToScheme,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,6 @@ THE SOFTWARE.
|
||||||
package scheme
|
package scheme
|
||||||
|
|
||||||
import (
|
import (
|
||||||
traefikcontainousv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
traefikv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikio/v1alpha1"
|
traefikv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikio/v1alpha1"
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||||
|
@ -40,7 +39,6 @@ var Scheme = runtime.NewScheme()
|
||||||
var Codecs = serializer.NewCodecFactory(Scheme)
|
var Codecs = serializer.NewCodecFactory(Scheme)
|
||||||
var ParameterCodec = runtime.NewParameterCodec(Scheme)
|
var ParameterCodec = runtime.NewParameterCodec(Scheme)
|
||||||
var localSchemeBuilder = runtime.SchemeBuilder{
|
var localSchemeBuilder = runtime.SchemeBuilder{
|
||||||
traefikcontainousv1alpha1.AddToScheme,
|
|
||||||
traefikv1alpha1.AddToScheme,
|
traefikv1alpha1.AddToScheme,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,28 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
// This package has the automatically generated typed clients.
|
|
||||||
package v1alpha1
|
|
|
@ -1,28 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
// Package fake has the automatically generated clients.
|
|
||||||
package fake
|
|
|
@ -1,138 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package fake
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
labels "k8s.io/apimachinery/pkg/labels"
|
|
||||||
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
testing "k8s.io/client-go/testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
// FakeIngressRoutes implements IngressRouteInterface
|
|
||||||
type FakeIngressRoutes struct {
|
|
||||||
Fake *FakeTraefikContainousV1alpha1
|
|
||||||
ns string
|
|
||||||
}
|
|
||||||
|
|
||||||
var ingressroutesResource = schema.GroupVersionResource{Group: "traefik.containo.us", Version: "v1alpha1", Resource: "ingressroutes"}
|
|
||||||
|
|
||||||
var ingressroutesKind = schema.GroupVersionKind{Group: "traefik.containo.us", Version: "v1alpha1", Kind: "IngressRoute"}
|
|
||||||
|
|
||||||
// Get takes name of the ingressRoute, and returns the corresponding ingressRoute object, and an error if there is any.
|
|
||||||
func (c *FakeIngressRoutes) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.IngressRoute, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewGetAction(ingressroutesResource, c.ns, name), &v1alpha1.IngressRoute{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.IngressRoute), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// List takes label and field selectors, and returns the list of IngressRoutes that match those selectors.
|
|
||||||
func (c *FakeIngressRoutes) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.IngressRouteList, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewListAction(ingressroutesResource, ingressroutesKind, c.ns, opts), &v1alpha1.IngressRouteList{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
label, _, _ := testing.ExtractFromListOptions(opts)
|
|
||||||
if label == nil {
|
|
||||||
label = labels.Everything()
|
|
||||||
}
|
|
||||||
list := &v1alpha1.IngressRouteList{ListMeta: obj.(*v1alpha1.IngressRouteList).ListMeta}
|
|
||||||
for _, item := range obj.(*v1alpha1.IngressRouteList).Items {
|
|
||||||
if label.Matches(labels.Set(item.Labels)) {
|
|
||||||
list.Items = append(list.Items, item)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return list, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Watch returns a watch.Interface that watches the requested ingressRoutes.
|
|
||||||
func (c *FakeIngressRoutes) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
|
|
||||||
return c.Fake.
|
|
||||||
InvokesWatch(testing.NewWatchAction(ingressroutesResource, c.ns, opts))
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create takes the representation of a ingressRoute and creates it. Returns the server's representation of the ingressRoute, and an error, if there is any.
|
|
||||||
func (c *FakeIngressRoutes) Create(ctx context.Context, ingressRoute *v1alpha1.IngressRoute, opts v1.CreateOptions) (result *v1alpha1.IngressRoute, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewCreateAction(ingressroutesResource, c.ns, ingressRoute), &v1alpha1.IngressRoute{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.IngressRoute), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update takes the representation of a ingressRoute and updates it. Returns the server's representation of the ingressRoute, and an error, if there is any.
|
|
||||||
func (c *FakeIngressRoutes) Update(ctx context.Context, ingressRoute *v1alpha1.IngressRoute, opts v1.UpdateOptions) (result *v1alpha1.IngressRoute, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewUpdateAction(ingressroutesResource, c.ns, ingressRoute), &v1alpha1.IngressRoute{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.IngressRoute), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete takes name of the ingressRoute and deletes it. Returns an error if one occurs.
|
|
||||||
func (c *FakeIngressRoutes) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
|
||||||
_, err := c.Fake.
|
|
||||||
Invokes(testing.NewDeleteAction(ingressroutesResource, c.ns, name), &v1alpha1.IngressRoute{})
|
|
||||||
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCollection deletes a collection of objects.
|
|
||||||
func (c *FakeIngressRoutes) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
|
|
||||||
action := testing.NewDeleteCollectionAction(ingressroutesResource, c.ns, listOpts)
|
|
||||||
|
|
||||||
_, err := c.Fake.Invokes(action, &v1alpha1.IngressRouteList{})
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Patch applies the patch and returns the patched ingressRoute.
|
|
||||||
func (c *FakeIngressRoutes) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.IngressRoute, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewPatchSubresourceAction(ingressroutesResource, c.ns, name, pt, data, subresources...), &v1alpha1.IngressRoute{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.IngressRoute), err
|
|
||||||
}
|
|
|
@ -1,138 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package fake
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
labels "k8s.io/apimachinery/pkg/labels"
|
|
||||||
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
testing "k8s.io/client-go/testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
// FakeIngressRouteTCPs implements IngressRouteTCPInterface
|
|
||||||
type FakeIngressRouteTCPs struct {
|
|
||||||
Fake *FakeTraefikContainousV1alpha1
|
|
||||||
ns string
|
|
||||||
}
|
|
||||||
|
|
||||||
var ingressroutetcpsResource = schema.GroupVersionResource{Group: "traefik.containo.us", Version: "v1alpha1", Resource: "ingressroutetcps"}
|
|
||||||
|
|
||||||
var ingressroutetcpsKind = schema.GroupVersionKind{Group: "traefik.containo.us", Version: "v1alpha1", Kind: "IngressRouteTCP"}
|
|
||||||
|
|
||||||
// Get takes name of the ingressRouteTCP, and returns the corresponding ingressRouteTCP object, and an error if there is any.
|
|
||||||
func (c *FakeIngressRouteTCPs) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.IngressRouteTCP, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewGetAction(ingressroutetcpsResource, c.ns, name), &v1alpha1.IngressRouteTCP{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.IngressRouteTCP), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// List takes label and field selectors, and returns the list of IngressRouteTCPs that match those selectors.
|
|
||||||
func (c *FakeIngressRouteTCPs) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.IngressRouteTCPList, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewListAction(ingressroutetcpsResource, ingressroutetcpsKind, c.ns, opts), &v1alpha1.IngressRouteTCPList{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
label, _, _ := testing.ExtractFromListOptions(opts)
|
|
||||||
if label == nil {
|
|
||||||
label = labels.Everything()
|
|
||||||
}
|
|
||||||
list := &v1alpha1.IngressRouteTCPList{ListMeta: obj.(*v1alpha1.IngressRouteTCPList).ListMeta}
|
|
||||||
for _, item := range obj.(*v1alpha1.IngressRouteTCPList).Items {
|
|
||||||
if label.Matches(labels.Set(item.Labels)) {
|
|
||||||
list.Items = append(list.Items, item)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return list, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Watch returns a watch.Interface that watches the requested ingressRouteTCPs.
|
|
||||||
func (c *FakeIngressRouteTCPs) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
|
|
||||||
return c.Fake.
|
|
||||||
InvokesWatch(testing.NewWatchAction(ingressroutetcpsResource, c.ns, opts))
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create takes the representation of a ingressRouteTCP and creates it. Returns the server's representation of the ingressRouteTCP, and an error, if there is any.
|
|
||||||
func (c *FakeIngressRouteTCPs) Create(ctx context.Context, ingressRouteTCP *v1alpha1.IngressRouteTCP, opts v1.CreateOptions) (result *v1alpha1.IngressRouteTCP, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewCreateAction(ingressroutetcpsResource, c.ns, ingressRouteTCP), &v1alpha1.IngressRouteTCP{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.IngressRouteTCP), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update takes the representation of a ingressRouteTCP and updates it. Returns the server's representation of the ingressRouteTCP, and an error, if there is any.
|
|
||||||
func (c *FakeIngressRouteTCPs) Update(ctx context.Context, ingressRouteTCP *v1alpha1.IngressRouteTCP, opts v1.UpdateOptions) (result *v1alpha1.IngressRouteTCP, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewUpdateAction(ingressroutetcpsResource, c.ns, ingressRouteTCP), &v1alpha1.IngressRouteTCP{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.IngressRouteTCP), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete takes name of the ingressRouteTCP and deletes it. Returns an error if one occurs.
|
|
||||||
func (c *FakeIngressRouteTCPs) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
|
||||||
_, err := c.Fake.
|
|
||||||
Invokes(testing.NewDeleteAction(ingressroutetcpsResource, c.ns, name), &v1alpha1.IngressRouteTCP{})
|
|
||||||
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCollection deletes a collection of objects.
|
|
||||||
func (c *FakeIngressRouteTCPs) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
|
|
||||||
action := testing.NewDeleteCollectionAction(ingressroutetcpsResource, c.ns, listOpts)
|
|
||||||
|
|
||||||
_, err := c.Fake.Invokes(action, &v1alpha1.IngressRouteTCPList{})
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Patch applies the patch and returns the patched ingressRouteTCP.
|
|
||||||
func (c *FakeIngressRouteTCPs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.IngressRouteTCP, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewPatchSubresourceAction(ingressroutetcpsResource, c.ns, name, pt, data, subresources...), &v1alpha1.IngressRouteTCP{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.IngressRouteTCP), err
|
|
||||||
}
|
|
|
@ -1,138 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package fake
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
labels "k8s.io/apimachinery/pkg/labels"
|
|
||||||
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
testing "k8s.io/client-go/testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
// FakeIngressRouteUDPs implements IngressRouteUDPInterface
|
|
||||||
type FakeIngressRouteUDPs struct {
|
|
||||||
Fake *FakeTraefikContainousV1alpha1
|
|
||||||
ns string
|
|
||||||
}
|
|
||||||
|
|
||||||
var ingressrouteudpsResource = schema.GroupVersionResource{Group: "traefik.containo.us", Version: "v1alpha1", Resource: "ingressrouteudps"}
|
|
||||||
|
|
||||||
var ingressrouteudpsKind = schema.GroupVersionKind{Group: "traefik.containo.us", Version: "v1alpha1", Kind: "IngressRouteUDP"}
|
|
||||||
|
|
||||||
// Get takes name of the ingressRouteUDP, and returns the corresponding ingressRouteUDP object, and an error if there is any.
|
|
||||||
func (c *FakeIngressRouteUDPs) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.IngressRouteUDP, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewGetAction(ingressrouteudpsResource, c.ns, name), &v1alpha1.IngressRouteUDP{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.IngressRouteUDP), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// List takes label and field selectors, and returns the list of IngressRouteUDPs that match those selectors.
|
|
||||||
func (c *FakeIngressRouteUDPs) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.IngressRouteUDPList, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewListAction(ingressrouteudpsResource, ingressrouteudpsKind, c.ns, opts), &v1alpha1.IngressRouteUDPList{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
label, _, _ := testing.ExtractFromListOptions(opts)
|
|
||||||
if label == nil {
|
|
||||||
label = labels.Everything()
|
|
||||||
}
|
|
||||||
list := &v1alpha1.IngressRouteUDPList{ListMeta: obj.(*v1alpha1.IngressRouteUDPList).ListMeta}
|
|
||||||
for _, item := range obj.(*v1alpha1.IngressRouteUDPList).Items {
|
|
||||||
if label.Matches(labels.Set(item.Labels)) {
|
|
||||||
list.Items = append(list.Items, item)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return list, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Watch returns a watch.Interface that watches the requested ingressRouteUDPs.
|
|
||||||
func (c *FakeIngressRouteUDPs) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
|
|
||||||
return c.Fake.
|
|
||||||
InvokesWatch(testing.NewWatchAction(ingressrouteudpsResource, c.ns, opts))
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create takes the representation of a ingressRouteUDP and creates it. Returns the server's representation of the ingressRouteUDP, and an error, if there is any.
|
|
||||||
func (c *FakeIngressRouteUDPs) Create(ctx context.Context, ingressRouteUDP *v1alpha1.IngressRouteUDP, opts v1.CreateOptions) (result *v1alpha1.IngressRouteUDP, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewCreateAction(ingressrouteudpsResource, c.ns, ingressRouteUDP), &v1alpha1.IngressRouteUDP{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.IngressRouteUDP), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update takes the representation of a ingressRouteUDP and updates it. Returns the server's representation of the ingressRouteUDP, and an error, if there is any.
|
|
||||||
func (c *FakeIngressRouteUDPs) Update(ctx context.Context, ingressRouteUDP *v1alpha1.IngressRouteUDP, opts v1.UpdateOptions) (result *v1alpha1.IngressRouteUDP, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewUpdateAction(ingressrouteudpsResource, c.ns, ingressRouteUDP), &v1alpha1.IngressRouteUDP{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.IngressRouteUDP), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete takes name of the ingressRouteUDP and deletes it. Returns an error if one occurs.
|
|
||||||
func (c *FakeIngressRouteUDPs) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
|
||||||
_, err := c.Fake.
|
|
||||||
Invokes(testing.NewDeleteAction(ingressrouteudpsResource, c.ns, name), &v1alpha1.IngressRouteUDP{})
|
|
||||||
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCollection deletes a collection of objects.
|
|
||||||
func (c *FakeIngressRouteUDPs) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
|
|
||||||
action := testing.NewDeleteCollectionAction(ingressrouteudpsResource, c.ns, listOpts)
|
|
||||||
|
|
||||||
_, err := c.Fake.Invokes(action, &v1alpha1.IngressRouteUDPList{})
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Patch applies the patch and returns the patched ingressRouteUDP.
|
|
||||||
func (c *FakeIngressRouteUDPs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.IngressRouteUDP, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewPatchSubresourceAction(ingressrouteudpsResource, c.ns, name, pt, data, subresources...), &v1alpha1.IngressRouteUDP{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.IngressRouteUDP), err
|
|
||||||
}
|
|
|
@ -1,138 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package fake
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
labels "k8s.io/apimachinery/pkg/labels"
|
|
||||||
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
testing "k8s.io/client-go/testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
// FakeMiddlewares implements MiddlewareInterface
|
|
||||||
type FakeMiddlewares struct {
|
|
||||||
Fake *FakeTraefikContainousV1alpha1
|
|
||||||
ns string
|
|
||||||
}
|
|
||||||
|
|
||||||
var middlewaresResource = schema.GroupVersionResource{Group: "traefik.containo.us", Version: "v1alpha1", Resource: "middlewares"}
|
|
||||||
|
|
||||||
var middlewaresKind = schema.GroupVersionKind{Group: "traefik.containo.us", Version: "v1alpha1", Kind: "Middleware"}
|
|
||||||
|
|
||||||
// Get takes name of the middleware, and returns the corresponding middleware object, and an error if there is any.
|
|
||||||
func (c *FakeMiddlewares) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.Middleware, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewGetAction(middlewaresResource, c.ns, name), &v1alpha1.Middleware{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.Middleware), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// List takes label and field selectors, and returns the list of Middlewares that match those selectors.
|
|
||||||
func (c *FakeMiddlewares) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.MiddlewareList, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewListAction(middlewaresResource, middlewaresKind, c.ns, opts), &v1alpha1.MiddlewareList{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
label, _, _ := testing.ExtractFromListOptions(opts)
|
|
||||||
if label == nil {
|
|
||||||
label = labels.Everything()
|
|
||||||
}
|
|
||||||
list := &v1alpha1.MiddlewareList{ListMeta: obj.(*v1alpha1.MiddlewareList).ListMeta}
|
|
||||||
for _, item := range obj.(*v1alpha1.MiddlewareList).Items {
|
|
||||||
if label.Matches(labels.Set(item.Labels)) {
|
|
||||||
list.Items = append(list.Items, item)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return list, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Watch returns a watch.Interface that watches the requested middlewares.
|
|
||||||
func (c *FakeMiddlewares) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
|
|
||||||
return c.Fake.
|
|
||||||
InvokesWatch(testing.NewWatchAction(middlewaresResource, c.ns, opts))
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create takes the representation of a middleware and creates it. Returns the server's representation of the middleware, and an error, if there is any.
|
|
||||||
func (c *FakeMiddlewares) Create(ctx context.Context, middleware *v1alpha1.Middleware, opts v1.CreateOptions) (result *v1alpha1.Middleware, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewCreateAction(middlewaresResource, c.ns, middleware), &v1alpha1.Middleware{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.Middleware), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update takes the representation of a middleware and updates it. Returns the server's representation of the middleware, and an error, if there is any.
|
|
||||||
func (c *FakeMiddlewares) Update(ctx context.Context, middleware *v1alpha1.Middleware, opts v1.UpdateOptions) (result *v1alpha1.Middleware, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewUpdateAction(middlewaresResource, c.ns, middleware), &v1alpha1.Middleware{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.Middleware), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete takes name of the middleware and deletes it. Returns an error if one occurs.
|
|
||||||
func (c *FakeMiddlewares) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
|
||||||
_, err := c.Fake.
|
|
||||||
Invokes(testing.NewDeleteAction(middlewaresResource, c.ns, name), &v1alpha1.Middleware{})
|
|
||||||
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCollection deletes a collection of objects.
|
|
||||||
func (c *FakeMiddlewares) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
|
|
||||||
action := testing.NewDeleteCollectionAction(middlewaresResource, c.ns, listOpts)
|
|
||||||
|
|
||||||
_, err := c.Fake.Invokes(action, &v1alpha1.MiddlewareList{})
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Patch applies the patch and returns the patched middleware.
|
|
||||||
func (c *FakeMiddlewares) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.Middleware, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewPatchSubresourceAction(middlewaresResource, c.ns, name, pt, data, subresources...), &v1alpha1.Middleware{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.Middleware), err
|
|
||||||
}
|
|
|
@ -1,138 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package fake
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
labels "k8s.io/apimachinery/pkg/labels"
|
|
||||||
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
testing "k8s.io/client-go/testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
// FakeMiddlewareTCPs implements MiddlewareTCPInterface
|
|
||||||
type FakeMiddlewareTCPs struct {
|
|
||||||
Fake *FakeTraefikContainousV1alpha1
|
|
||||||
ns string
|
|
||||||
}
|
|
||||||
|
|
||||||
var middlewaretcpsResource = schema.GroupVersionResource{Group: "traefik.containo.us", Version: "v1alpha1", Resource: "middlewaretcps"}
|
|
||||||
|
|
||||||
var middlewaretcpsKind = schema.GroupVersionKind{Group: "traefik.containo.us", Version: "v1alpha1", Kind: "MiddlewareTCP"}
|
|
||||||
|
|
||||||
// Get takes name of the middlewareTCP, and returns the corresponding middlewareTCP object, and an error if there is any.
|
|
||||||
func (c *FakeMiddlewareTCPs) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.MiddlewareTCP, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewGetAction(middlewaretcpsResource, c.ns, name), &v1alpha1.MiddlewareTCP{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.MiddlewareTCP), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// List takes label and field selectors, and returns the list of MiddlewareTCPs that match those selectors.
|
|
||||||
func (c *FakeMiddlewareTCPs) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.MiddlewareTCPList, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewListAction(middlewaretcpsResource, middlewaretcpsKind, c.ns, opts), &v1alpha1.MiddlewareTCPList{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
label, _, _ := testing.ExtractFromListOptions(opts)
|
|
||||||
if label == nil {
|
|
||||||
label = labels.Everything()
|
|
||||||
}
|
|
||||||
list := &v1alpha1.MiddlewareTCPList{ListMeta: obj.(*v1alpha1.MiddlewareTCPList).ListMeta}
|
|
||||||
for _, item := range obj.(*v1alpha1.MiddlewareTCPList).Items {
|
|
||||||
if label.Matches(labels.Set(item.Labels)) {
|
|
||||||
list.Items = append(list.Items, item)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return list, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Watch returns a watch.Interface that watches the requested middlewareTCPs.
|
|
||||||
func (c *FakeMiddlewareTCPs) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
|
|
||||||
return c.Fake.
|
|
||||||
InvokesWatch(testing.NewWatchAction(middlewaretcpsResource, c.ns, opts))
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create takes the representation of a middlewareTCP and creates it. Returns the server's representation of the middlewareTCP, and an error, if there is any.
|
|
||||||
func (c *FakeMiddlewareTCPs) Create(ctx context.Context, middlewareTCP *v1alpha1.MiddlewareTCP, opts v1.CreateOptions) (result *v1alpha1.MiddlewareTCP, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewCreateAction(middlewaretcpsResource, c.ns, middlewareTCP), &v1alpha1.MiddlewareTCP{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.MiddlewareTCP), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update takes the representation of a middlewareTCP and updates it. Returns the server's representation of the middlewareTCP, and an error, if there is any.
|
|
||||||
func (c *FakeMiddlewareTCPs) Update(ctx context.Context, middlewareTCP *v1alpha1.MiddlewareTCP, opts v1.UpdateOptions) (result *v1alpha1.MiddlewareTCP, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewUpdateAction(middlewaretcpsResource, c.ns, middlewareTCP), &v1alpha1.MiddlewareTCP{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.MiddlewareTCP), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete takes name of the middlewareTCP and deletes it. Returns an error if one occurs.
|
|
||||||
func (c *FakeMiddlewareTCPs) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
|
||||||
_, err := c.Fake.
|
|
||||||
Invokes(testing.NewDeleteAction(middlewaretcpsResource, c.ns, name), &v1alpha1.MiddlewareTCP{})
|
|
||||||
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCollection deletes a collection of objects.
|
|
||||||
func (c *FakeMiddlewareTCPs) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
|
|
||||||
action := testing.NewDeleteCollectionAction(middlewaretcpsResource, c.ns, listOpts)
|
|
||||||
|
|
||||||
_, err := c.Fake.Invokes(action, &v1alpha1.MiddlewareTCPList{})
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Patch applies the patch and returns the patched middlewareTCP.
|
|
||||||
func (c *FakeMiddlewareTCPs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.MiddlewareTCP, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewPatchSubresourceAction(middlewaretcpsResource, c.ns, name, pt, data, subresources...), &v1alpha1.MiddlewareTCP{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.MiddlewareTCP), err
|
|
||||||
}
|
|
|
@ -1,138 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package fake
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
labels "k8s.io/apimachinery/pkg/labels"
|
|
||||||
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
testing "k8s.io/client-go/testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
// FakeServersTransports implements ServersTransportInterface
|
|
||||||
type FakeServersTransports struct {
|
|
||||||
Fake *FakeTraefikContainousV1alpha1
|
|
||||||
ns string
|
|
||||||
}
|
|
||||||
|
|
||||||
var serverstransportsResource = schema.GroupVersionResource{Group: "traefik.containo.us", Version: "v1alpha1", Resource: "serverstransports"}
|
|
||||||
|
|
||||||
var serverstransportsKind = schema.GroupVersionKind{Group: "traefik.containo.us", Version: "v1alpha1", Kind: "ServersTransport"}
|
|
||||||
|
|
||||||
// Get takes name of the serversTransport, and returns the corresponding serversTransport object, and an error if there is any.
|
|
||||||
func (c *FakeServersTransports) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.ServersTransport, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewGetAction(serverstransportsResource, c.ns, name), &v1alpha1.ServersTransport{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.ServersTransport), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// List takes label and field selectors, and returns the list of ServersTransports that match those selectors.
|
|
||||||
func (c *FakeServersTransports) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.ServersTransportList, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewListAction(serverstransportsResource, serverstransportsKind, c.ns, opts), &v1alpha1.ServersTransportList{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
label, _, _ := testing.ExtractFromListOptions(opts)
|
|
||||||
if label == nil {
|
|
||||||
label = labels.Everything()
|
|
||||||
}
|
|
||||||
list := &v1alpha1.ServersTransportList{ListMeta: obj.(*v1alpha1.ServersTransportList).ListMeta}
|
|
||||||
for _, item := range obj.(*v1alpha1.ServersTransportList).Items {
|
|
||||||
if label.Matches(labels.Set(item.Labels)) {
|
|
||||||
list.Items = append(list.Items, item)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return list, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Watch returns a watch.Interface that watches the requested serversTransports.
|
|
||||||
func (c *FakeServersTransports) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
|
|
||||||
return c.Fake.
|
|
||||||
InvokesWatch(testing.NewWatchAction(serverstransportsResource, c.ns, opts))
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create takes the representation of a serversTransport and creates it. Returns the server's representation of the serversTransport, and an error, if there is any.
|
|
||||||
func (c *FakeServersTransports) Create(ctx context.Context, serversTransport *v1alpha1.ServersTransport, opts v1.CreateOptions) (result *v1alpha1.ServersTransport, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewCreateAction(serverstransportsResource, c.ns, serversTransport), &v1alpha1.ServersTransport{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.ServersTransport), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update takes the representation of a serversTransport and updates it. Returns the server's representation of the serversTransport, and an error, if there is any.
|
|
||||||
func (c *FakeServersTransports) Update(ctx context.Context, serversTransport *v1alpha1.ServersTransport, opts v1.UpdateOptions) (result *v1alpha1.ServersTransport, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewUpdateAction(serverstransportsResource, c.ns, serversTransport), &v1alpha1.ServersTransport{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.ServersTransport), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete takes name of the serversTransport and deletes it. Returns an error if one occurs.
|
|
||||||
func (c *FakeServersTransports) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
|
||||||
_, err := c.Fake.
|
|
||||||
Invokes(testing.NewDeleteAction(serverstransportsResource, c.ns, name), &v1alpha1.ServersTransport{})
|
|
||||||
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCollection deletes a collection of objects.
|
|
||||||
func (c *FakeServersTransports) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
|
|
||||||
action := testing.NewDeleteCollectionAction(serverstransportsResource, c.ns, listOpts)
|
|
||||||
|
|
||||||
_, err := c.Fake.Invokes(action, &v1alpha1.ServersTransportList{})
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Patch applies the patch and returns the patched serversTransport.
|
|
||||||
func (c *FakeServersTransports) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ServersTransport, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewPatchSubresourceAction(serverstransportsResource, c.ns, name, pt, data, subresources...), &v1alpha1.ServersTransport{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.ServersTransport), err
|
|
||||||
}
|
|
|
@ -1,138 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package fake
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
labels "k8s.io/apimachinery/pkg/labels"
|
|
||||||
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
testing "k8s.io/client-go/testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
// FakeServersTransportTCPs implements ServersTransportTCPInterface
|
|
||||||
type FakeServersTransportTCPs struct {
|
|
||||||
Fake *FakeTraefikContainousV1alpha1
|
|
||||||
ns string
|
|
||||||
}
|
|
||||||
|
|
||||||
var serverstransporttcpsResource = schema.GroupVersionResource{Group: "traefik.containo.us", Version: "v1alpha1", Resource: "serverstransporttcps"}
|
|
||||||
|
|
||||||
var serverstransporttcpsKind = schema.GroupVersionKind{Group: "traefik.containo.us", Version: "v1alpha1", Kind: "ServersTransportTCP"}
|
|
||||||
|
|
||||||
// Get takes name of the serversTransportTCP, and returns the corresponding serversTransportTCP object, and an error if there is any.
|
|
||||||
func (c *FakeServersTransportTCPs) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.ServersTransportTCP, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewGetAction(serverstransporttcpsResource, c.ns, name), &v1alpha1.ServersTransportTCP{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.ServersTransportTCP), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// List takes label and field selectors, and returns the list of ServersTransportTCPs that match those selectors.
|
|
||||||
func (c *FakeServersTransportTCPs) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.ServersTransportTCPList, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewListAction(serverstransporttcpsResource, serverstransporttcpsKind, c.ns, opts), &v1alpha1.ServersTransportTCPList{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
label, _, _ := testing.ExtractFromListOptions(opts)
|
|
||||||
if label == nil {
|
|
||||||
label = labels.Everything()
|
|
||||||
}
|
|
||||||
list := &v1alpha1.ServersTransportTCPList{ListMeta: obj.(*v1alpha1.ServersTransportTCPList).ListMeta}
|
|
||||||
for _, item := range obj.(*v1alpha1.ServersTransportTCPList).Items {
|
|
||||||
if label.Matches(labels.Set(item.Labels)) {
|
|
||||||
list.Items = append(list.Items, item)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return list, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Watch returns a watch.Interface that watches the requested serversTransportTCPs.
|
|
||||||
func (c *FakeServersTransportTCPs) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
|
|
||||||
return c.Fake.
|
|
||||||
InvokesWatch(testing.NewWatchAction(serverstransporttcpsResource, c.ns, opts))
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create takes the representation of a serversTransportTCP and creates it. Returns the server's representation of the serversTransportTCP, and an error, if there is any.
|
|
||||||
func (c *FakeServersTransportTCPs) Create(ctx context.Context, serversTransportTCP *v1alpha1.ServersTransportTCP, opts v1.CreateOptions) (result *v1alpha1.ServersTransportTCP, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewCreateAction(serverstransporttcpsResource, c.ns, serversTransportTCP), &v1alpha1.ServersTransportTCP{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.ServersTransportTCP), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update takes the representation of a serversTransportTCP and updates it. Returns the server's representation of the serversTransportTCP, and an error, if there is any.
|
|
||||||
func (c *FakeServersTransportTCPs) Update(ctx context.Context, serversTransportTCP *v1alpha1.ServersTransportTCP, opts v1.UpdateOptions) (result *v1alpha1.ServersTransportTCP, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewUpdateAction(serverstransporttcpsResource, c.ns, serversTransportTCP), &v1alpha1.ServersTransportTCP{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.ServersTransportTCP), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete takes name of the serversTransportTCP and deletes it. Returns an error if one occurs.
|
|
||||||
func (c *FakeServersTransportTCPs) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
|
||||||
_, err := c.Fake.
|
|
||||||
Invokes(testing.NewDeleteAction(serverstransporttcpsResource, c.ns, name), &v1alpha1.ServersTransportTCP{})
|
|
||||||
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCollection deletes a collection of objects.
|
|
||||||
func (c *FakeServersTransportTCPs) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
|
|
||||||
action := testing.NewDeleteCollectionAction(serverstransporttcpsResource, c.ns, listOpts)
|
|
||||||
|
|
||||||
_, err := c.Fake.Invokes(action, &v1alpha1.ServersTransportTCPList{})
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Patch applies the patch and returns the patched serversTransportTCP.
|
|
||||||
func (c *FakeServersTransportTCPs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ServersTransportTCP, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewPatchSubresourceAction(serverstransporttcpsResource, c.ns, name, pt, data, subresources...), &v1alpha1.ServersTransportTCP{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.ServersTransportTCP), err
|
|
||||||
}
|
|
|
@ -1,138 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package fake
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
labels "k8s.io/apimachinery/pkg/labels"
|
|
||||||
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
testing "k8s.io/client-go/testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
// FakeTLSOptions implements TLSOptionInterface
|
|
||||||
type FakeTLSOptions struct {
|
|
||||||
Fake *FakeTraefikContainousV1alpha1
|
|
||||||
ns string
|
|
||||||
}
|
|
||||||
|
|
||||||
var tlsoptionsResource = schema.GroupVersionResource{Group: "traefik.containo.us", Version: "v1alpha1", Resource: "tlsoptions"}
|
|
||||||
|
|
||||||
var tlsoptionsKind = schema.GroupVersionKind{Group: "traefik.containo.us", Version: "v1alpha1", Kind: "TLSOption"}
|
|
||||||
|
|
||||||
// Get takes name of the tLSOption, and returns the corresponding tLSOption object, and an error if there is any.
|
|
||||||
func (c *FakeTLSOptions) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.TLSOption, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewGetAction(tlsoptionsResource, c.ns, name), &v1alpha1.TLSOption{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.TLSOption), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// List takes label and field selectors, and returns the list of TLSOptions that match those selectors.
|
|
||||||
func (c *FakeTLSOptions) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.TLSOptionList, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewListAction(tlsoptionsResource, tlsoptionsKind, c.ns, opts), &v1alpha1.TLSOptionList{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
label, _, _ := testing.ExtractFromListOptions(opts)
|
|
||||||
if label == nil {
|
|
||||||
label = labels.Everything()
|
|
||||||
}
|
|
||||||
list := &v1alpha1.TLSOptionList{ListMeta: obj.(*v1alpha1.TLSOptionList).ListMeta}
|
|
||||||
for _, item := range obj.(*v1alpha1.TLSOptionList).Items {
|
|
||||||
if label.Matches(labels.Set(item.Labels)) {
|
|
||||||
list.Items = append(list.Items, item)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return list, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Watch returns a watch.Interface that watches the requested tLSOptions.
|
|
||||||
func (c *FakeTLSOptions) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
|
|
||||||
return c.Fake.
|
|
||||||
InvokesWatch(testing.NewWatchAction(tlsoptionsResource, c.ns, opts))
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create takes the representation of a tLSOption and creates it. Returns the server's representation of the tLSOption, and an error, if there is any.
|
|
||||||
func (c *FakeTLSOptions) Create(ctx context.Context, tLSOption *v1alpha1.TLSOption, opts v1.CreateOptions) (result *v1alpha1.TLSOption, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewCreateAction(tlsoptionsResource, c.ns, tLSOption), &v1alpha1.TLSOption{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.TLSOption), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update takes the representation of a tLSOption and updates it. Returns the server's representation of the tLSOption, and an error, if there is any.
|
|
||||||
func (c *FakeTLSOptions) Update(ctx context.Context, tLSOption *v1alpha1.TLSOption, opts v1.UpdateOptions) (result *v1alpha1.TLSOption, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewUpdateAction(tlsoptionsResource, c.ns, tLSOption), &v1alpha1.TLSOption{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.TLSOption), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete takes name of the tLSOption and deletes it. Returns an error if one occurs.
|
|
||||||
func (c *FakeTLSOptions) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
|
||||||
_, err := c.Fake.
|
|
||||||
Invokes(testing.NewDeleteAction(tlsoptionsResource, c.ns, name), &v1alpha1.TLSOption{})
|
|
||||||
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCollection deletes a collection of objects.
|
|
||||||
func (c *FakeTLSOptions) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
|
|
||||||
action := testing.NewDeleteCollectionAction(tlsoptionsResource, c.ns, listOpts)
|
|
||||||
|
|
||||||
_, err := c.Fake.Invokes(action, &v1alpha1.TLSOptionList{})
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Patch applies the patch and returns the patched tLSOption.
|
|
||||||
func (c *FakeTLSOptions) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.TLSOption, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewPatchSubresourceAction(tlsoptionsResource, c.ns, name, pt, data, subresources...), &v1alpha1.TLSOption{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.TLSOption), err
|
|
||||||
}
|
|
|
@ -1,138 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package fake
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
labels "k8s.io/apimachinery/pkg/labels"
|
|
||||||
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
testing "k8s.io/client-go/testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
// FakeTLSStores implements TLSStoreInterface
|
|
||||||
type FakeTLSStores struct {
|
|
||||||
Fake *FakeTraefikContainousV1alpha1
|
|
||||||
ns string
|
|
||||||
}
|
|
||||||
|
|
||||||
var tlsstoresResource = schema.GroupVersionResource{Group: "traefik.containo.us", Version: "v1alpha1", Resource: "tlsstores"}
|
|
||||||
|
|
||||||
var tlsstoresKind = schema.GroupVersionKind{Group: "traefik.containo.us", Version: "v1alpha1", Kind: "TLSStore"}
|
|
||||||
|
|
||||||
// Get takes name of the tLSStore, and returns the corresponding tLSStore object, and an error if there is any.
|
|
||||||
func (c *FakeTLSStores) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.TLSStore, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewGetAction(tlsstoresResource, c.ns, name), &v1alpha1.TLSStore{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.TLSStore), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// List takes label and field selectors, and returns the list of TLSStores that match those selectors.
|
|
||||||
func (c *FakeTLSStores) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.TLSStoreList, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewListAction(tlsstoresResource, tlsstoresKind, c.ns, opts), &v1alpha1.TLSStoreList{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
label, _, _ := testing.ExtractFromListOptions(opts)
|
|
||||||
if label == nil {
|
|
||||||
label = labels.Everything()
|
|
||||||
}
|
|
||||||
list := &v1alpha1.TLSStoreList{ListMeta: obj.(*v1alpha1.TLSStoreList).ListMeta}
|
|
||||||
for _, item := range obj.(*v1alpha1.TLSStoreList).Items {
|
|
||||||
if label.Matches(labels.Set(item.Labels)) {
|
|
||||||
list.Items = append(list.Items, item)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return list, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Watch returns a watch.Interface that watches the requested tLSStores.
|
|
||||||
func (c *FakeTLSStores) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
|
|
||||||
return c.Fake.
|
|
||||||
InvokesWatch(testing.NewWatchAction(tlsstoresResource, c.ns, opts))
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create takes the representation of a tLSStore and creates it. Returns the server's representation of the tLSStore, and an error, if there is any.
|
|
||||||
func (c *FakeTLSStores) Create(ctx context.Context, tLSStore *v1alpha1.TLSStore, opts v1.CreateOptions) (result *v1alpha1.TLSStore, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewCreateAction(tlsstoresResource, c.ns, tLSStore), &v1alpha1.TLSStore{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.TLSStore), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update takes the representation of a tLSStore and updates it. Returns the server's representation of the tLSStore, and an error, if there is any.
|
|
||||||
func (c *FakeTLSStores) Update(ctx context.Context, tLSStore *v1alpha1.TLSStore, opts v1.UpdateOptions) (result *v1alpha1.TLSStore, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewUpdateAction(tlsstoresResource, c.ns, tLSStore), &v1alpha1.TLSStore{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.TLSStore), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete takes name of the tLSStore and deletes it. Returns an error if one occurs.
|
|
||||||
func (c *FakeTLSStores) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
|
||||||
_, err := c.Fake.
|
|
||||||
Invokes(testing.NewDeleteAction(tlsstoresResource, c.ns, name), &v1alpha1.TLSStore{})
|
|
||||||
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCollection deletes a collection of objects.
|
|
||||||
func (c *FakeTLSStores) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
|
|
||||||
action := testing.NewDeleteCollectionAction(tlsstoresResource, c.ns, listOpts)
|
|
||||||
|
|
||||||
_, err := c.Fake.Invokes(action, &v1alpha1.TLSStoreList{})
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Patch applies the patch and returns the patched tLSStore.
|
|
||||||
func (c *FakeTLSStores) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.TLSStore, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewPatchSubresourceAction(tlsstoresResource, c.ns, name, pt, data, subresources...), &v1alpha1.TLSStore{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.TLSStore), err
|
|
||||||
}
|
|
|
@ -1,84 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package fake
|
|
||||||
|
|
||||||
import (
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned/typed/traefikcontainous/v1alpha1"
|
|
||||||
rest "k8s.io/client-go/rest"
|
|
||||||
testing "k8s.io/client-go/testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
type FakeTraefikContainousV1alpha1 struct {
|
|
||||||
*testing.Fake
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *FakeTraefikContainousV1alpha1) IngressRoutes(namespace string) v1alpha1.IngressRouteInterface {
|
|
||||||
return &FakeIngressRoutes{c, namespace}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *FakeTraefikContainousV1alpha1) IngressRouteTCPs(namespace string) v1alpha1.IngressRouteTCPInterface {
|
|
||||||
return &FakeIngressRouteTCPs{c, namespace}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *FakeTraefikContainousV1alpha1) IngressRouteUDPs(namespace string) v1alpha1.IngressRouteUDPInterface {
|
|
||||||
return &FakeIngressRouteUDPs{c, namespace}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *FakeTraefikContainousV1alpha1) Middlewares(namespace string) v1alpha1.MiddlewareInterface {
|
|
||||||
return &FakeMiddlewares{c, namespace}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *FakeTraefikContainousV1alpha1) MiddlewareTCPs(namespace string) v1alpha1.MiddlewareTCPInterface {
|
|
||||||
return &FakeMiddlewareTCPs{c, namespace}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *FakeTraefikContainousV1alpha1) ServersTransports(namespace string) v1alpha1.ServersTransportInterface {
|
|
||||||
return &FakeServersTransports{c, namespace}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *FakeTraefikContainousV1alpha1) ServersTransportTCPs(namespace string) v1alpha1.ServersTransportTCPInterface {
|
|
||||||
return &FakeServersTransportTCPs{c, namespace}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *FakeTraefikContainousV1alpha1) TLSOptions(namespace string) v1alpha1.TLSOptionInterface {
|
|
||||||
return &FakeTLSOptions{c, namespace}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *FakeTraefikContainousV1alpha1) TLSStores(namespace string) v1alpha1.TLSStoreInterface {
|
|
||||||
return &FakeTLSStores{c, namespace}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *FakeTraefikContainousV1alpha1) TraefikServices(namespace string) v1alpha1.TraefikServiceInterface {
|
|
||||||
return &FakeTraefikServices{c, namespace}
|
|
||||||
}
|
|
||||||
|
|
||||||
// RESTClient returns a RESTClient that is used to communicate
|
|
||||||
// with API server by this client implementation.
|
|
||||||
func (c *FakeTraefikContainousV1alpha1) RESTClient() rest.Interface {
|
|
||||||
var ret *rest.RESTClient
|
|
||||||
return ret
|
|
||||||
}
|
|
|
@ -1,138 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package fake
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
labels "k8s.io/apimachinery/pkg/labels"
|
|
||||||
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
testing "k8s.io/client-go/testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
// FakeTraefikServices implements TraefikServiceInterface
|
|
||||||
type FakeTraefikServices struct {
|
|
||||||
Fake *FakeTraefikContainousV1alpha1
|
|
||||||
ns string
|
|
||||||
}
|
|
||||||
|
|
||||||
var traefikservicesResource = schema.GroupVersionResource{Group: "traefik.containo.us", Version: "v1alpha1", Resource: "traefikservices"}
|
|
||||||
|
|
||||||
var traefikservicesKind = schema.GroupVersionKind{Group: "traefik.containo.us", Version: "v1alpha1", Kind: "TraefikService"}
|
|
||||||
|
|
||||||
// Get takes name of the traefikService, and returns the corresponding traefikService object, and an error if there is any.
|
|
||||||
func (c *FakeTraefikServices) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.TraefikService, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewGetAction(traefikservicesResource, c.ns, name), &v1alpha1.TraefikService{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.TraefikService), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// List takes label and field selectors, and returns the list of TraefikServices that match those selectors.
|
|
||||||
func (c *FakeTraefikServices) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.TraefikServiceList, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewListAction(traefikservicesResource, traefikservicesKind, c.ns, opts), &v1alpha1.TraefikServiceList{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
label, _, _ := testing.ExtractFromListOptions(opts)
|
|
||||||
if label == nil {
|
|
||||||
label = labels.Everything()
|
|
||||||
}
|
|
||||||
list := &v1alpha1.TraefikServiceList{ListMeta: obj.(*v1alpha1.TraefikServiceList).ListMeta}
|
|
||||||
for _, item := range obj.(*v1alpha1.TraefikServiceList).Items {
|
|
||||||
if label.Matches(labels.Set(item.Labels)) {
|
|
||||||
list.Items = append(list.Items, item)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return list, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Watch returns a watch.Interface that watches the requested traefikServices.
|
|
||||||
func (c *FakeTraefikServices) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
|
|
||||||
return c.Fake.
|
|
||||||
InvokesWatch(testing.NewWatchAction(traefikservicesResource, c.ns, opts))
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create takes the representation of a traefikService and creates it. Returns the server's representation of the traefikService, and an error, if there is any.
|
|
||||||
func (c *FakeTraefikServices) Create(ctx context.Context, traefikService *v1alpha1.TraefikService, opts v1.CreateOptions) (result *v1alpha1.TraefikService, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewCreateAction(traefikservicesResource, c.ns, traefikService), &v1alpha1.TraefikService{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.TraefikService), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update takes the representation of a traefikService and updates it. Returns the server's representation of the traefikService, and an error, if there is any.
|
|
||||||
func (c *FakeTraefikServices) Update(ctx context.Context, traefikService *v1alpha1.TraefikService, opts v1.UpdateOptions) (result *v1alpha1.TraefikService, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewUpdateAction(traefikservicesResource, c.ns, traefikService), &v1alpha1.TraefikService{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.TraefikService), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete takes name of the traefikService and deletes it. Returns an error if one occurs.
|
|
||||||
func (c *FakeTraefikServices) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
|
||||||
_, err := c.Fake.
|
|
||||||
Invokes(testing.NewDeleteAction(traefikservicesResource, c.ns, name), &v1alpha1.TraefikService{})
|
|
||||||
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCollection deletes a collection of objects.
|
|
||||||
func (c *FakeTraefikServices) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
|
|
||||||
action := testing.NewDeleteCollectionAction(traefikservicesResource, c.ns, listOpts)
|
|
||||||
|
|
||||||
_, err := c.Fake.Invokes(action, &v1alpha1.TraefikServiceList{})
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Patch applies the patch and returns the patched traefikService.
|
|
||||||
func (c *FakeTraefikServices) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.TraefikService, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewPatchSubresourceAction(traefikservicesResource, c.ns, name, pt, data, subresources...), &v1alpha1.TraefikService{})
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.TraefikService), err
|
|
||||||
}
|
|
|
@ -1,47 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
type IngressRouteExpansion interface{}
|
|
||||||
|
|
||||||
type IngressRouteTCPExpansion interface{}
|
|
||||||
|
|
||||||
type IngressRouteUDPExpansion interface{}
|
|
||||||
|
|
||||||
type MiddlewareExpansion interface{}
|
|
||||||
|
|
||||||
type MiddlewareTCPExpansion interface{}
|
|
||||||
|
|
||||||
type ServersTransportExpansion interface{}
|
|
||||||
|
|
||||||
type ServersTransportTCPExpansion interface{}
|
|
||||||
|
|
||||||
type TLSOptionExpansion interface{}
|
|
||||||
|
|
||||||
type TLSStoreExpansion interface{}
|
|
||||||
|
|
||||||
type TraefikServiceExpansion interface{}
|
|
|
@ -1,186 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
scheme "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned/scheme"
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
rest "k8s.io/client-go/rest"
|
|
||||||
)
|
|
||||||
|
|
||||||
// IngressRoutesGetter has a method to return a IngressRouteInterface.
|
|
||||||
// A group's client should implement this interface.
|
|
||||||
type IngressRoutesGetter interface {
|
|
||||||
IngressRoutes(namespace string) IngressRouteInterface
|
|
||||||
}
|
|
||||||
|
|
||||||
// IngressRouteInterface has methods to work with IngressRoute resources.
|
|
||||||
type IngressRouteInterface interface {
|
|
||||||
Create(ctx context.Context, ingressRoute *v1alpha1.IngressRoute, opts v1.CreateOptions) (*v1alpha1.IngressRoute, error)
|
|
||||||
Update(ctx context.Context, ingressRoute *v1alpha1.IngressRoute, opts v1.UpdateOptions) (*v1alpha1.IngressRoute, error)
|
|
||||||
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
|
|
||||||
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
|
|
||||||
Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.IngressRoute, error)
|
|
||||||
List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.IngressRouteList, error)
|
|
||||||
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
|
|
||||||
Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.IngressRoute, err error)
|
|
||||||
IngressRouteExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// ingressRoutes implements IngressRouteInterface
|
|
||||||
type ingressRoutes struct {
|
|
||||||
client rest.Interface
|
|
||||||
ns string
|
|
||||||
}
|
|
||||||
|
|
||||||
// newIngressRoutes returns a IngressRoutes
|
|
||||||
func newIngressRoutes(c *TraefikContainousV1alpha1Client, namespace string) *ingressRoutes {
|
|
||||||
return &ingressRoutes{
|
|
||||||
client: c.RESTClient(),
|
|
||||||
ns: namespace,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get takes name of the ingressRoute, and returns the corresponding ingressRoute object, and an error if there is any.
|
|
||||||
func (c *ingressRoutes) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.IngressRoute, err error) {
|
|
||||||
result = &v1alpha1.IngressRoute{}
|
|
||||||
err = c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("ingressroutes").
|
|
||||||
Name(name).
|
|
||||||
VersionedParams(&options, scheme.ParameterCodec).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// List takes label and field selectors, and returns the list of IngressRoutes that match those selectors.
|
|
||||||
func (c *ingressRoutes) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.IngressRouteList, err error) {
|
|
||||||
var timeout time.Duration
|
|
||||||
if opts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
result = &v1alpha1.IngressRouteList{}
|
|
||||||
err = c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("ingressroutes").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Watch returns a watch.Interface that watches the requested ingressRoutes.
|
|
||||||
func (c *ingressRoutes) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
|
|
||||||
var timeout time.Duration
|
|
||||||
if opts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
opts.Watch = true
|
|
||||||
return c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("ingressroutes").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Watch(ctx)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create takes the representation of a ingressRoute and creates it. Returns the server's representation of the ingressRoute, and an error, if there is any.
|
|
||||||
func (c *ingressRoutes) Create(ctx context.Context, ingressRoute *v1alpha1.IngressRoute, opts v1.CreateOptions) (result *v1alpha1.IngressRoute, err error) {
|
|
||||||
result = &v1alpha1.IngressRoute{}
|
|
||||||
err = c.client.Post().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("ingressroutes").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(ingressRoute).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update takes the representation of a ingressRoute and updates it. Returns the server's representation of the ingressRoute, and an error, if there is any.
|
|
||||||
func (c *ingressRoutes) Update(ctx context.Context, ingressRoute *v1alpha1.IngressRoute, opts v1.UpdateOptions) (result *v1alpha1.IngressRoute, err error) {
|
|
||||||
result = &v1alpha1.IngressRoute{}
|
|
||||||
err = c.client.Put().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("ingressroutes").
|
|
||||||
Name(ingressRoute.Name).
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(ingressRoute).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete takes name of the ingressRoute and deletes it. Returns an error if one occurs.
|
|
||||||
func (c *ingressRoutes) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
|
||||||
return c.client.Delete().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("ingressroutes").
|
|
||||||
Name(name).
|
|
||||||
Body(&opts).
|
|
||||||
Do(ctx).
|
|
||||||
Error()
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCollection deletes a collection of objects.
|
|
||||||
func (c *ingressRoutes) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
|
|
||||||
var timeout time.Duration
|
|
||||||
if listOpts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
return c.client.Delete().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("ingressroutes").
|
|
||||||
VersionedParams(&listOpts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Body(&opts).
|
|
||||||
Do(ctx).
|
|
||||||
Error()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Patch applies the patch and returns the patched ingressRoute.
|
|
||||||
func (c *ingressRoutes) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.IngressRoute, err error) {
|
|
||||||
result = &v1alpha1.IngressRoute{}
|
|
||||||
err = c.client.Patch(pt).
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("ingressroutes").
|
|
||||||
Name(name).
|
|
||||||
SubResource(subresources...).
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(data).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
|
@ -1,186 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
scheme "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned/scheme"
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
rest "k8s.io/client-go/rest"
|
|
||||||
)
|
|
||||||
|
|
||||||
// IngressRouteTCPsGetter has a method to return a IngressRouteTCPInterface.
|
|
||||||
// A group's client should implement this interface.
|
|
||||||
type IngressRouteTCPsGetter interface {
|
|
||||||
IngressRouteTCPs(namespace string) IngressRouteTCPInterface
|
|
||||||
}
|
|
||||||
|
|
||||||
// IngressRouteTCPInterface has methods to work with IngressRouteTCP resources.
|
|
||||||
type IngressRouteTCPInterface interface {
|
|
||||||
Create(ctx context.Context, ingressRouteTCP *v1alpha1.IngressRouteTCP, opts v1.CreateOptions) (*v1alpha1.IngressRouteTCP, error)
|
|
||||||
Update(ctx context.Context, ingressRouteTCP *v1alpha1.IngressRouteTCP, opts v1.UpdateOptions) (*v1alpha1.IngressRouteTCP, error)
|
|
||||||
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
|
|
||||||
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
|
|
||||||
Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.IngressRouteTCP, error)
|
|
||||||
List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.IngressRouteTCPList, error)
|
|
||||||
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
|
|
||||||
Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.IngressRouteTCP, err error)
|
|
||||||
IngressRouteTCPExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// ingressRouteTCPs implements IngressRouteTCPInterface
|
|
||||||
type ingressRouteTCPs struct {
|
|
||||||
client rest.Interface
|
|
||||||
ns string
|
|
||||||
}
|
|
||||||
|
|
||||||
// newIngressRouteTCPs returns a IngressRouteTCPs
|
|
||||||
func newIngressRouteTCPs(c *TraefikContainousV1alpha1Client, namespace string) *ingressRouteTCPs {
|
|
||||||
return &ingressRouteTCPs{
|
|
||||||
client: c.RESTClient(),
|
|
||||||
ns: namespace,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get takes name of the ingressRouteTCP, and returns the corresponding ingressRouteTCP object, and an error if there is any.
|
|
||||||
func (c *ingressRouteTCPs) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.IngressRouteTCP, err error) {
|
|
||||||
result = &v1alpha1.IngressRouteTCP{}
|
|
||||||
err = c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("ingressroutetcps").
|
|
||||||
Name(name).
|
|
||||||
VersionedParams(&options, scheme.ParameterCodec).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// List takes label and field selectors, and returns the list of IngressRouteTCPs that match those selectors.
|
|
||||||
func (c *ingressRouteTCPs) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.IngressRouteTCPList, err error) {
|
|
||||||
var timeout time.Duration
|
|
||||||
if opts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
result = &v1alpha1.IngressRouteTCPList{}
|
|
||||||
err = c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("ingressroutetcps").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Watch returns a watch.Interface that watches the requested ingressRouteTCPs.
|
|
||||||
func (c *ingressRouteTCPs) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
|
|
||||||
var timeout time.Duration
|
|
||||||
if opts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
opts.Watch = true
|
|
||||||
return c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("ingressroutetcps").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Watch(ctx)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create takes the representation of a ingressRouteTCP and creates it. Returns the server's representation of the ingressRouteTCP, and an error, if there is any.
|
|
||||||
func (c *ingressRouteTCPs) Create(ctx context.Context, ingressRouteTCP *v1alpha1.IngressRouteTCP, opts v1.CreateOptions) (result *v1alpha1.IngressRouteTCP, err error) {
|
|
||||||
result = &v1alpha1.IngressRouteTCP{}
|
|
||||||
err = c.client.Post().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("ingressroutetcps").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(ingressRouteTCP).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update takes the representation of a ingressRouteTCP and updates it. Returns the server's representation of the ingressRouteTCP, and an error, if there is any.
|
|
||||||
func (c *ingressRouteTCPs) Update(ctx context.Context, ingressRouteTCP *v1alpha1.IngressRouteTCP, opts v1.UpdateOptions) (result *v1alpha1.IngressRouteTCP, err error) {
|
|
||||||
result = &v1alpha1.IngressRouteTCP{}
|
|
||||||
err = c.client.Put().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("ingressroutetcps").
|
|
||||||
Name(ingressRouteTCP.Name).
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(ingressRouteTCP).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete takes name of the ingressRouteTCP and deletes it. Returns an error if one occurs.
|
|
||||||
func (c *ingressRouteTCPs) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
|
||||||
return c.client.Delete().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("ingressroutetcps").
|
|
||||||
Name(name).
|
|
||||||
Body(&opts).
|
|
||||||
Do(ctx).
|
|
||||||
Error()
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCollection deletes a collection of objects.
|
|
||||||
func (c *ingressRouteTCPs) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
|
|
||||||
var timeout time.Duration
|
|
||||||
if listOpts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
return c.client.Delete().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("ingressroutetcps").
|
|
||||||
VersionedParams(&listOpts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Body(&opts).
|
|
||||||
Do(ctx).
|
|
||||||
Error()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Patch applies the patch and returns the patched ingressRouteTCP.
|
|
||||||
func (c *ingressRouteTCPs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.IngressRouteTCP, err error) {
|
|
||||||
result = &v1alpha1.IngressRouteTCP{}
|
|
||||||
err = c.client.Patch(pt).
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("ingressroutetcps").
|
|
||||||
Name(name).
|
|
||||||
SubResource(subresources...).
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(data).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
|
@ -1,186 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
scheme "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned/scheme"
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
rest "k8s.io/client-go/rest"
|
|
||||||
)
|
|
||||||
|
|
||||||
// IngressRouteUDPsGetter has a method to return a IngressRouteUDPInterface.
|
|
||||||
// A group's client should implement this interface.
|
|
||||||
type IngressRouteUDPsGetter interface {
|
|
||||||
IngressRouteUDPs(namespace string) IngressRouteUDPInterface
|
|
||||||
}
|
|
||||||
|
|
||||||
// IngressRouteUDPInterface has methods to work with IngressRouteUDP resources.
|
|
||||||
type IngressRouteUDPInterface interface {
|
|
||||||
Create(ctx context.Context, ingressRouteUDP *v1alpha1.IngressRouteUDP, opts v1.CreateOptions) (*v1alpha1.IngressRouteUDP, error)
|
|
||||||
Update(ctx context.Context, ingressRouteUDP *v1alpha1.IngressRouteUDP, opts v1.UpdateOptions) (*v1alpha1.IngressRouteUDP, error)
|
|
||||||
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
|
|
||||||
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
|
|
||||||
Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.IngressRouteUDP, error)
|
|
||||||
List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.IngressRouteUDPList, error)
|
|
||||||
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
|
|
||||||
Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.IngressRouteUDP, err error)
|
|
||||||
IngressRouteUDPExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// ingressRouteUDPs implements IngressRouteUDPInterface
|
|
||||||
type ingressRouteUDPs struct {
|
|
||||||
client rest.Interface
|
|
||||||
ns string
|
|
||||||
}
|
|
||||||
|
|
||||||
// newIngressRouteUDPs returns a IngressRouteUDPs
|
|
||||||
func newIngressRouteUDPs(c *TraefikContainousV1alpha1Client, namespace string) *ingressRouteUDPs {
|
|
||||||
return &ingressRouteUDPs{
|
|
||||||
client: c.RESTClient(),
|
|
||||||
ns: namespace,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get takes name of the ingressRouteUDP, and returns the corresponding ingressRouteUDP object, and an error if there is any.
|
|
||||||
func (c *ingressRouteUDPs) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.IngressRouteUDP, err error) {
|
|
||||||
result = &v1alpha1.IngressRouteUDP{}
|
|
||||||
err = c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("ingressrouteudps").
|
|
||||||
Name(name).
|
|
||||||
VersionedParams(&options, scheme.ParameterCodec).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// List takes label and field selectors, and returns the list of IngressRouteUDPs that match those selectors.
|
|
||||||
func (c *ingressRouteUDPs) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.IngressRouteUDPList, err error) {
|
|
||||||
var timeout time.Duration
|
|
||||||
if opts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
result = &v1alpha1.IngressRouteUDPList{}
|
|
||||||
err = c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("ingressrouteudps").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Watch returns a watch.Interface that watches the requested ingressRouteUDPs.
|
|
||||||
func (c *ingressRouteUDPs) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
|
|
||||||
var timeout time.Duration
|
|
||||||
if opts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
opts.Watch = true
|
|
||||||
return c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("ingressrouteudps").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Watch(ctx)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create takes the representation of a ingressRouteUDP and creates it. Returns the server's representation of the ingressRouteUDP, and an error, if there is any.
|
|
||||||
func (c *ingressRouteUDPs) Create(ctx context.Context, ingressRouteUDP *v1alpha1.IngressRouteUDP, opts v1.CreateOptions) (result *v1alpha1.IngressRouteUDP, err error) {
|
|
||||||
result = &v1alpha1.IngressRouteUDP{}
|
|
||||||
err = c.client.Post().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("ingressrouteudps").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(ingressRouteUDP).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update takes the representation of a ingressRouteUDP and updates it. Returns the server's representation of the ingressRouteUDP, and an error, if there is any.
|
|
||||||
func (c *ingressRouteUDPs) Update(ctx context.Context, ingressRouteUDP *v1alpha1.IngressRouteUDP, opts v1.UpdateOptions) (result *v1alpha1.IngressRouteUDP, err error) {
|
|
||||||
result = &v1alpha1.IngressRouteUDP{}
|
|
||||||
err = c.client.Put().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("ingressrouteudps").
|
|
||||||
Name(ingressRouteUDP.Name).
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(ingressRouteUDP).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete takes name of the ingressRouteUDP and deletes it. Returns an error if one occurs.
|
|
||||||
func (c *ingressRouteUDPs) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
|
||||||
return c.client.Delete().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("ingressrouteudps").
|
|
||||||
Name(name).
|
|
||||||
Body(&opts).
|
|
||||||
Do(ctx).
|
|
||||||
Error()
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCollection deletes a collection of objects.
|
|
||||||
func (c *ingressRouteUDPs) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
|
|
||||||
var timeout time.Duration
|
|
||||||
if listOpts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
return c.client.Delete().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("ingressrouteudps").
|
|
||||||
VersionedParams(&listOpts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Body(&opts).
|
|
||||||
Do(ctx).
|
|
||||||
Error()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Patch applies the patch and returns the patched ingressRouteUDP.
|
|
||||||
func (c *ingressRouteUDPs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.IngressRouteUDP, err error) {
|
|
||||||
result = &v1alpha1.IngressRouteUDP{}
|
|
||||||
err = c.client.Patch(pt).
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("ingressrouteudps").
|
|
||||||
Name(name).
|
|
||||||
SubResource(subresources...).
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(data).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
|
@ -1,186 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
scheme "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned/scheme"
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
rest "k8s.io/client-go/rest"
|
|
||||||
)
|
|
||||||
|
|
||||||
// MiddlewaresGetter has a method to return a MiddlewareInterface.
|
|
||||||
// A group's client should implement this interface.
|
|
||||||
type MiddlewaresGetter interface {
|
|
||||||
Middlewares(namespace string) MiddlewareInterface
|
|
||||||
}
|
|
||||||
|
|
||||||
// MiddlewareInterface has methods to work with Middleware resources.
|
|
||||||
type MiddlewareInterface interface {
|
|
||||||
Create(ctx context.Context, middleware *v1alpha1.Middleware, opts v1.CreateOptions) (*v1alpha1.Middleware, error)
|
|
||||||
Update(ctx context.Context, middleware *v1alpha1.Middleware, opts v1.UpdateOptions) (*v1alpha1.Middleware, error)
|
|
||||||
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
|
|
||||||
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
|
|
||||||
Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.Middleware, error)
|
|
||||||
List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.MiddlewareList, error)
|
|
||||||
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
|
|
||||||
Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.Middleware, err error)
|
|
||||||
MiddlewareExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// middlewares implements MiddlewareInterface
|
|
||||||
type middlewares struct {
|
|
||||||
client rest.Interface
|
|
||||||
ns string
|
|
||||||
}
|
|
||||||
|
|
||||||
// newMiddlewares returns a Middlewares
|
|
||||||
func newMiddlewares(c *TraefikContainousV1alpha1Client, namespace string) *middlewares {
|
|
||||||
return &middlewares{
|
|
||||||
client: c.RESTClient(),
|
|
||||||
ns: namespace,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get takes name of the middleware, and returns the corresponding middleware object, and an error if there is any.
|
|
||||||
func (c *middlewares) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.Middleware, err error) {
|
|
||||||
result = &v1alpha1.Middleware{}
|
|
||||||
err = c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("middlewares").
|
|
||||||
Name(name).
|
|
||||||
VersionedParams(&options, scheme.ParameterCodec).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// List takes label and field selectors, and returns the list of Middlewares that match those selectors.
|
|
||||||
func (c *middlewares) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.MiddlewareList, err error) {
|
|
||||||
var timeout time.Duration
|
|
||||||
if opts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
result = &v1alpha1.MiddlewareList{}
|
|
||||||
err = c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("middlewares").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Watch returns a watch.Interface that watches the requested middlewares.
|
|
||||||
func (c *middlewares) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
|
|
||||||
var timeout time.Duration
|
|
||||||
if opts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
opts.Watch = true
|
|
||||||
return c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("middlewares").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Watch(ctx)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create takes the representation of a middleware and creates it. Returns the server's representation of the middleware, and an error, if there is any.
|
|
||||||
func (c *middlewares) Create(ctx context.Context, middleware *v1alpha1.Middleware, opts v1.CreateOptions) (result *v1alpha1.Middleware, err error) {
|
|
||||||
result = &v1alpha1.Middleware{}
|
|
||||||
err = c.client.Post().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("middlewares").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(middleware).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update takes the representation of a middleware and updates it. Returns the server's representation of the middleware, and an error, if there is any.
|
|
||||||
func (c *middlewares) Update(ctx context.Context, middleware *v1alpha1.Middleware, opts v1.UpdateOptions) (result *v1alpha1.Middleware, err error) {
|
|
||||||
result = &v1alpha1.Middleware{}
|
|
||||||
err = c.client.Put().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("middlewares").
|
|
||||||
Name(middleware.Name).
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(middleware).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete takes name of the middleware and deletes it. Returns an error if one occurs.
|
|
||||||
func (c *middlewares) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
|
||||||
return c.client.Delete().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("middlewares").
|
|
||||||
Name(name).
|
|
||||||
Body(&opts).
|
|
||||||
Do(ctx).
|
|
||||||
Error()
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCollection deletes a collection of objects.
|
|
||||||
func (c *middlewares) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
|
|
||||||
var timeout time.Duration
|
|
||||||
if listOpts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
return c.client.Delete().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("middlewares").
|
|
||||||
VersionedParams(&listOpts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Body(&opts).
|
|
||||||
Do(ctx).
|
|
||||||
Error()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Patch applies the patch and returns the patched middleware.
|
|
||||||
func (c *middlewares) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.Middleware, err error) {
|
|
||||||
result = &v1alpha1.Middleware{}
|
|
||||||
err = c.client.Patch(pt).
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("middlewares").
|
|
||||||
Name(name).
|
|
||||||
SubResource(subresources...).
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(data).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
|
@ -1,186 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
scheme "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned/scheme"
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
rest "k8s.io/client-go/rest"
|
|
||||||
)
|
|
||||||
|
|
||||||
// MiddlewareTCPsGetter has a method to return a MiddlewareTCPInterface.
|
|
||||||
// A group's client should implement this interface.
|
|
||||||
type MiddlewareTCPsGetter interface {
|
|
||||||
MiddlewareTCPs(namespace string) MiddlewareTCPInterface
|
|
||||||
}
|
|
||||||
|
|
||||||
// MiddlewareTCPInterface has methods to work with MiddlewareTCP resources.
|
|
||||||
type MiddlewareTCPInterface interface {
|
|
||||||
Create(ctx context.Context, middlewareTCP *v1alpha1.MiddlewareTCP, opts v1.CreateOptions) (*v1alpha1.MiddlewareTCP, error)
|
|
||||||
Update(ctx context.Context, middlewareTCP *v1alpha1.MiddlewareTCP, opts v1.UpdateOptions) (*v1alpha1.MiddlewareTCP, error)
|
|
||||||
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
|
|
||||||
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
|
|
||||||
Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.MiddlewareTCP, error)
|
|
||||||
List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.MiddlewareTCPList, error)
|
|
||||||
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
|
|
||||||
Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.MiddlewareTCP, err error)
|
|
||||||
MiddlewareTCPExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// middlewareTCPs implements MiddlewareTCPInterface
|
|
||||||
type middlewareTCPs struct {
|
|
||||||
client rest.Interface
|
|
||||||
ns string
|
|
||||||
}
|
|
||||||
|
|
||||||
// newMiddlewareTCPs returns a MiddlewareTCPs
|
|
||||||
func newMiddlewareTCPs(c *TraefikContainousV1alpha1Client, namespace string) *middlewareTCPs {
|
|
||||||
return &middlewareTCPs{
|
|
||||||
client: c.RESTClient(),
|
|
||||||
ns: namespace,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get takes name of the middlewareTCP, and returns the corresponding middlewareTCP object, and an error if there is any.
|
|
||||||
func (c *middlewareTCPs) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.MiddlewareTCP, err error) {
|
|
||||||
result = &v1alpha1.MiddlewareTCP{}
|
|
||||||
err = c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("middlewaretcps").
|
|
||||||
Name(name).
|
|
||||||
VersionedParams(&options, scheme.ParameterCodec).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// List takes label and field selectors, and returns the list of MiddlewareTCPs that match those selectors.
|
|
||||||
func (c *middlewareTCPs) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.MiddlewareTCPList, err error) {
|
|
||||||
var timeout time.Duration
|
|
||||||
if opts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
result = &v1alpha1.MiddlewareTCPList{}
|
|
||||||
err = c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("middlewaretcps").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Watch returns a watch.Interface that watches the requested middlewareTCPs.
|
|
||||||
func (c *middlewareTCPs) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
|
|
||||||
var timeout time.Duration
|
|
||||||
if opts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
opts.Watch = true
|
|
||||||
return c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("middlewaretcps").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Watch(ctx)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create takes the representation of a middlewareTCP and creates it. Returns the server's representation of the middlewareTCP, and an error, if there is any.
|
|
||||||
func (c *middlewareTCPs) Create(ctx context.Context, middlewareTCP *v1alpha1.MiddlewareTCP, opts v1.CreateOptions) (result *v1alpha1.MiddlewareTCP, err error) {
|
|
||||||
result = &v1alpha1.MiddlewareTCP{}
|
|
||||||
err = c.client.Post().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("middlewaretcps").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(middlewareTCP).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update takes the representation of a middlewareTCP and updates it. Returns the server's representation of the middlewareTCP, and an error, if there is any.
|
|
||||||
func (c *middlewareTCPs) Update(ctx context.Context, middlewareTCP *v1alpha1.MiddlewareTCP, opts v1.UpdateOptions) (result *v1alpha1.MiddlewareTCP, err error) {
|
|
||||||
result = &v1alpha1.MiddlewareTCP{}
|
|
||||||
err = c.client.Put().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("middlewaretcps").
|
|
||||||
Name(middlewareTCP.Name).
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(middlewareTCP).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete takes name of the middlewareTCP and deletes it. Returns an error if one occurs.
|
|
||||||
func (c *middlewareTCPs) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
|
||||||
return c.client.Delete().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("middlewaretcps").
|
|
||||||
Name(name).
|
|
||||||
Body(&opts).
|
|
||||||
Do(ctx).
|
|
||||||
Error()
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCollection deletes a collection of objects.
|
|
||||||
func (c *middlewareTCPs) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
|
|
||||||
var timeout time.Duration
|
|
||||||
if listOpts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
return c.client.Delete().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("middlewaretcps").
|
|
||||||
VersionedParams(&listOpts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Body(&opts).
|
|
||||||
Do(ctx).
|
|
||||||
Error()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Patch applies the patch and returns the patched middlewareTCP.
|
|
||||||
func (c *middlewareTCPs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.MiddlewareTCP, err error) {
|
|
||||||
result = &v1alpha1.MiddlewareTCP{}
|
|
||||||
err = c.client.Patch(pt).
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("middlewaretcps").
|
|
||||||
Name(name).
|
|
||||||
SubResource(subresources...).
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(data).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
|
@ -1,186 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
scheme "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned/scheme"
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
rest "k8s.io/client-go/rest"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ServersTransportsGetter has a method to return a ServersTransportInterface.
|
|
||||||
// A group's client should implement this interface.
|
|
||||||
type ServersTransportsGetter interface {
|
|
||||||
ServersTransports(namespace string) ServersTransportInterface
|
|
||||||
}
|
|
||||||
|
|
||||||
// ServersTransportInterface has methods to work with ServersTransport resources.
|
|
||||||
type ServersTransportInterface interface {
|
|
||||||
Create(ctx context.Context, serversTransport *v1alpha1.ServersTransport, opts v1.CreateOptions) (*v1alpha1.ServersTransport, error)
|
|
||||||
Update(ctx context.Context, serversTransport *v1alpha1.ServersTransport, opts v1.UpdateOptions) (*v1alpha1.ServersTransport, error)
|
|
||||||
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
|
|
||||||
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
|
|
||||||
Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.ServersTransport, error)
|
|
||||||
List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.ServersTransportList, error)
|
|
||||||
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
|
|
||||||
Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ServersTransport, err error)
|
|
||||||
ServersTransportExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// serversTransports implements ServersTransportInterface
|
|
||||||
type serversTransports struct {
|
|
||||||
client rest.Interface
|
|
||||||
ns string
|
|
||||||
}
|
|
||||||
|
|
||||||
// newServersTransports returns a ServersTransports
|
|
||||||
func newServersTransports(c *TraefikContainousV1alpha1Client, namespace string) *serversTransports {
|
|
||||||
return &serversTransports{
|
|
||||||
client: c.RESTClient(),
|
|
||||||
ns: namespace,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get takes name of the serversTransport, and returns the corresponding serversTransport object, and an error if there is any.
|
|
||||||
func (c *serversTransports) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.ServersTransport, err error) {
|
|
||||||
result = &v1alpha1.ServersTransport{}
|
|
||||||
err = c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("serverstransports").
|
|
||||||
Name(name).
|
|
||||||
VersionedParams(&options, scheme.ParameterCodec).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// List takes label and field selectors, and returns the list of ServersTransports that match those selectors.
|
|
||||||
func (c *serversTransports) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.ServersTransportList, err error) {
|
|
||||||
var timeout time.Duration
|
|
||||||
if opts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
result = &v1alpha1.ServersTransportList{}
|
|
||||||
err = c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("serverstransports").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Watch returns a watch.Interface that watches the requested serversTransports.
|
|
||||||
func (c *serversTransports) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
|
|
||||||
var timeout time.Duration
|
|
||||||
if opts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
opts.Watch = true
|
|
||||||
return c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("serverstransports").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Watch(ctx)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create takes the representation of a serversTransport and creates it. Returns the server's representation of the serversTransport, and an error, if there is any.
|
|
||||||
func (c *serversTransports) Create(ctx context.Context, serversTransport *v1alpha1.ServersTransport, opts v1.CreateOptions) (result *v1alpha1.ServersTransport, err error) {
|
|
||||||
result = &v1alpha1.ServersTransport{}
|
|
||||||
err = c.client.Post().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("serverstransports").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(serversTransport).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update takes the representation of a serversTransport and updates it. Returns the server's representation of the serversTransport, and an error, if there is any.
|
|
||||||
func (c *serversTransports) Update(ctx context.Context, serversTransport *v1alpha1.ServersTransport, opts v1.UpdateOptions) (result *v1alpha1.ServersTransport, err error) {
|
|
||||||
result = &v1alpha1.ServersTransport{}
|
|
||||||
err = c.client.Put().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("serverstransports").
|
|
||||||
Name(serversTransport.Name).
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(serversTransport).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete takes name of the serversTransport and deletes it. Returns an error if one occurs.
|
|
||||||
func (c *serversTransports) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
|
||||||
return c.client.Delete().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("serverstransports").
|
|
||||||
Name(name).
|
|
||||||
Body(&opts).
|
|
||||||
Do(ctx).
|
|
||||||
Error()
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCollection deletes a collection of objects.
|
|
||||||
func (c *serversTransports) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
|
|
||||||
var timeout time.Duration
|
|
||||||
if listOpts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
return c.client.Delete().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("serverstransports").
|
|
||||||
VersionedParams(&listOpts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Body(&opts).
|
|
||||||
Do(ctx).
|
|
||||||
Error()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Patch applies the patch and returns the patched serversTransport.
|
|
||||||
func (c *serversTransports) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ServersTransport, err error) {
|
|
||||||
result = &v1alpha1.ServersTransport{}
|
|
||||||
err = c.client.Patch(pt).
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("serverstransports").
|
|
||||||
Name(name).
|
|
||||||
SubResource(subresources...).
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(data).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
|
@ -1,186 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
scheme "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned/scheme"
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
rest "k8s.io/client-go/rest"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ServersTransportTCPsGetter has a method to return a ServersTransportTCPInterface.
|
|
||||||
// A group's client should implement this interface.
|
|
||||||
type ServersTransportTCPsGetter interface {
|
|
||||||
ServersTransportTCPs(namespace string) ServersTransportTCPInterface
|
|
||||||
}
|
|
||||||
|
|
||||||
// ServersTransportTCPInterface has methods to work with ServersTransportTCP resources.
|
|
||||||
type ServersTransportTCPInterface interface {
|
|
||||||
Create(ctx context.Context, serversTransportTCP *v1alpha1.ServersTransportTCP, opts v1.CreateOptions) (*v1alpha1.ServersTransportTCP, error)
|
|
||||||
Update(ctx context.Context, serversTransportTCP *v1alpha1.ServersTransportTCP, opts v1.UpdateOptions) (*v1alpha1.ServersTransportTCP, error)
|
|
||||||
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
|
|
||||||
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
|
|
||||||
Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.ServersTransportTCP, error)
|
|
||||||
List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.ServersTransportTCPList, error)
|
|
||||||
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
|
|
||||||
Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ServersTransportTCP, err error)
|
|
||||||
ServersTransportTCPExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// serversTransportTCPs implements ServersTransportTCPInterface
|
|
||||||
type serversTransportTCPs struct {
|
|
||||||
client rest.Interface
|
|
||||||
ns string
|
|
||||||
}
|
|
||||||
|
|
||||||
// newServersTransportTCPs returns a ServersTransportTCPs
|
|
||||||
func newServersTransportTCPs(c *TraefikContainousV1alpha1Client, namespace string) *serversTransportTCPs {
|
|
||||||
return &serversTransportTCPs{
|
|
||||||
client: c.RESTClient(),
|
|
||||||
ns: namespace,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get takes name of the serversTransportTCP, and returns the corresponding serversTransportTCP object, and an error if there is any.
|
|
||||||
func (c *serversTransportTCPs) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.ServersTransportTCP, err error) {
|
|
||||||
result = &v1alpha1.ServersTransportTCP{}
|
|
||||||
err = c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("serverstransporttcps").
|
|
||||||
Name(name).
|
|
||||||
VersionedParams(&options, scheme.ParameterCodec).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// List takes label and field selectors, and returns the list of ServersTransportTCPs that match those selectors.
|
|
||||||
func (c *serversTransportTCPs) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.ServersTransportTCPList, err error) {
|
|
||||||
var timeout time.Duration
|
|
||||||
if opts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
result = &v1alpha1.ServersTransportTCPList{}
|
|
||||||
err = c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("serverstransporttcps").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Watch returns a watch.Interface that watches the requested serversTransportTCPs.
|
|
||||||
func (c *serversTransportTCPs) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
|
|
||||||
var timeout time.Duration
|
|
||||||
if opts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
opts.Watch = true
|
|
||||||
return c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("serverstransporttcps").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Watch(ctx)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create takes the representation of a serversTransportTCP and creates it. Returns the server's representation of the serversTransportTCP, and an error, if there is any.
|
|
||||||
func (c *serversTransportTCPs) Create(ctx context.Context, serversTransportTCP *v1alpha1.ServersTransportTCP, opts v1.CreateOptions) (result *v1alpha1.ServersTransportTCP, err error) {
|
|
||||||
result = &v1alpha1.ServersTransportTCP{}
|
|
||||||
err = c.client.Post().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("serverstransporttcps").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(serversTransportTCP).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update takes the representation of a serversTransportTCP and updates it. Returns the server's representation of the serversTransportTCP, and an error, if there is any.
|
|
||||||
func (c *serversTransportTCPs) Update(ctx context.Context, serversTransportTCP *v1alpha1.ServersTransportTCP, opts v1.UpdateOptions) (result *v1alpha1.ServersTransportTCP, err error) {
|
|
||||||
result = &v1alpha1.ServersTransportTCP{}
|
|
||||||
err = c.client.Put().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("serverstransporttcps").
|
|
||||||
Name(serversTransportTCP.Name).
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(serversTransportTCP).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete takes name of the serversTransportTCP and deletes it. Returns an error if one occurs.
|
|
||||||
func (c *serversTransportTCPs) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
|
||||||
return c.client.Delete().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("serverstransporttcps").
|
|
||||||
Name(name).
|
|
||||||
Body(&opts).
|
|
||||||
Do(ctx).
|
|
||||||
Error()
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCollection deletes a collection of objects.
|
|
||||||
func (c *serversTransportTCPs) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
|
|
||||||
var timeout time.Duration
|
|
||||||
if listOpts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
return c.client.Delete().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("serverstransporttcps").
|
|
||||||
VersionedParams(&listOpts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Body(&opts).
|
|
||||||
Do(ctx).
|
|
||||||
Error()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Patch applies the patch and returns the patched serversTransportTCP.
|
|
||||||
func (c *serversTransportTCPs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ServersTransportTCP, err error) {
|
|
||||||
result = &v1alpha1.ServersTransportTCP{}
|
|
||||||
err = c.client.Patch(pt).
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("serverstransporttcps").
|
|
||||||
Name(name).
|
|
||||||
SubResource(subresources...).
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(data).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
|
@ -1,186 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
scheme "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned/scheme"
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
rest "k8s.io/client-go/rest"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TLSOptionsGetter has a method to return a TLSOptionInterface.
|
|
||||||
// A group's client should implement this interface.
|
|
||||||
type TLSOptionsGetter interface {
|
|
||||||
TLSOptions(namespace string) TLSOptionInterface
|
|
||||||
}
|
|
||||||
|
|
||||||
// TLSOptionInterface has methods to work with TLSOption resources.
|
|
||||||
type TLSOptionInterface interface {
|
|
||||||
Create(ctx context.Context, tLSOption *v1alpha1.TLSOption, opts v1.CreateOptions) (*v1alpha1.TLSOption, error)
|
|
||||||
Update(ctx context.Context, tLSOption *v1alpha1.TLSOption, opts v1.UpdateOptions) (*v1alpha1.TLSOption, error)
|
|
||||||
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
|
|
||||||
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
|
|
||||||
Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.TLSOption, error)
|
|
||||||
List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.TLSOptionList, error)
|
|
||||||
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
|
|
||||||
Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.TLSOption, err error)
|
|
||||||
TLSOptionExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// tLSOptions implements TLSOptionInterface
|
|
||||||
type tLSOptions struct {
|
|
||||||
client rest.Interface
|
|
||||||
ns string
|
|
||||||
}
|
|
||||||
|
|
||||||
// newTLSOptions returns a TLSOptions
|
|
||||||
func newTLSOptions(c *TraefikContainousV1alpha1Client, namespace string) *tLSOptions {
|
|
||||||
return &tLSOptions{
|
|
||||||
client: c.RESTClient(),
|
|
||||||
ns: namespace,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get takes name of the tLSOption, and returns the corresponding tLSOption object, and an error if there is any.
|
|
||||||
func (c *tLSOptions) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.TLSOption, err error) {
|
|
||||||
result = &v1alpha1.TLSOption{}
|
|
||||||
err = c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("tlsoptions").
|
|
||||||
Name(name).
|
|
||||||
VersionedParams(&options, scheme.ParameterCodec).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// List takes label and field selectors, and returns the list of TLSOptions that match those selectors.
|
|
||||||
func (c *tLSOptions) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.TLSOptionList, err error) {
|
|
||||||
var timeout time.Duration
|
|
||||||
if opts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
result = &v1alpha1.TLSOptionList{}
|
|
||||||
err = c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("tlsoptions").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Watch returns a watch.Interface that watches the requested tLSOptions.
|
|
||||||
func (c *tLSOptions) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
|
|
||||||
var timeout time.Duration
|
|
||||||
if opts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
opts.Watch = true
|
|
||||||
return c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("tlsoptions").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Watch(ctx)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create takes the representation of a tLSOption and creates it. Returns the server's representation of the tLSOption, and an error, if there is any.
|
|
||||||
func (c *tLSOptions) Create(ctx context.Context, tLSOption *v1alpha1.TLSOption, opts v1.CreateOptions) (result *v1alpha1.TLSOption, err error) {
|
|
||||||
result = &v1alpha1.TLSOption{}
|
|
||||||
err = c.client.Post().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("tlsoptions").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(tLSOption).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update takes the representation of a tLSOption and updates it. Returns the server's representation of the tLSOption, and an error, if there is any.
|
|
||||||
func (c *tLSOptions) Update(ctx context.Context, tLSOption *v1alpha1.TLSOption, opts v1.UpdateOptions) (result *v1alpha1.TLSOption, err error) {
|
|
||||||
result = &v1alpha1.TLSOption{}
|
|
||||||
err = c.client.Put().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("tlsoptions").
|
|
||||||
Name(tLSOption.Name).
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(tLSOption).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete takes name of the tLSOption and deletes it. Returns an error if one occurs.
|
|
||||||
func (c *tLSOptions) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
|
||||||
return c.client.Delete().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("tlsoptions").
|
|
||||||
Name(name).
|
|
||||||
Body(&opts).
|
|
||||||
Do(ctx).
|
|
||||||
Error()
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCollection deletes a collection of objects.
|
|
||||||
func (c *tLSOptions) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
|
|
||||||
var timeout time.Duration
|
|
||||||
if listOpts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
return c.client.Delete().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("tlsoptions").
|
|
||||||
VersionedParams(&listOpts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Body(&opts).
|
|
||||||
Do(ctx).
|
|
||||||
Error()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Patch applies the patch and returns the patched tLSOption.
|
|
||||||
func (c *tLSOptions) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.TLSOption, err error) {
|
|
||||||
result = &v1alpha1.TLSOption{}
|
|
||||||
err = c.client.Patch(pt).
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("tlsoptions").
|
|
||||||
Name(name).
|
|
||||||
SubResource(subresources...).
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(data).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
|
@ -1,186 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
scheme "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned/scheme"
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
rest "k8s.io/client-go/rest"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TLSStoresGetter has a method to return a TLSStoreInterface.
|
|
||||||
// A group's client should implement this interface.
|
|
||||||
type TLSStoresGetter interface {
|
|
||||||
TLSStores(namespace string) TLSStoreInterface
|
|
||||||
}
|
|
||||||
|
|
||||||
// TLSStoreInterface has methods to work with TLSStore resources.
|
|
||||||
type TLSStoreInterface interface {
|
|
||||||
Create(ctx context.Context, tLSStore *v1alpha1.TLSStore, opts v1.CreateOptions) (*v1alpha1.TLSStore, error)
|
|
||||||
Update(ctx context.Context, tLSStore *v1alpha1.TLSStore, opts v1.UpdateOptions) (*v1alpha1.TLSStore, error)
|
|
||||||
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
|
|
||||||
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
|
|
||||||
Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.TLSStore, error)
|
|
||||||
List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.TLSStoreList, error)
|
|
||||||
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
|
|
||||||
Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.TLSStore, err error)
|
|
||||||
TLSStoreExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// tLSStores implements TLSStoreInterface
|
|
||||||
type tLSStores struct {
|
|
||||||
client rest.Interface
|
|
||||||
ns string
|
|
||||||
}
|
|
||||||
|
|
||||||
// newTLSStores returns a TLSStores
|
|
||||||
func newTLSStores(c *TraefikContainousV1alpha1Client, namespace string) *tLSStores {
|
|
||||||
return &tLSStores{
|
|
||||||
client: c.RESTClient(),
|
|
||||||
ns: namespace,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get takes name of the tLSStore, and returns the corresponding tLSStore object, and an error if there is any.
|
|
||||||
func (c *tLSStores) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.TLSStore, err error) {
|
|
||||||
result = &v1alpha1.TLSStore{}
|
|
||||||
err = c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("tlsstores").
|
|
||||||
Name(name).
|
|
||||||
VersionedParams(&options, scheme.ParameterCodec).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// List takes label and field selectors, and returns the list of TLSStores that match those selectors.
|
|
||||||
func (c *tLSStores) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.TLSStoreList, err error) {
|
|
||||||
var timeout time.Duration
|
|
||||||
if opts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
result = &v1alpha1.TLSStoreList{}
|
|
||||||
err = c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("tlsstores").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Watch returns a watch.Interface that watches the requested tLSStores.
|
|
||||||
func (c *tLSStores) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
|
|
||||||
var timeout time.Duration
|
|
||||||
if opts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
opts.Watch = true
|
|
||||||
return c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("tlsstores").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Watch(ctx)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create takes the representation of a tLSStore and creates it. Returns the server's representation of the tLSStore, and an error, if there is any.
|
|
||||||
func (c *tLSStores) Create(ctx context.Context, tLSStore *v1alpha1.TLSStore, opts v1.CreateOptions) (result *v1alpha1.TLSStore, err error) {
|
|
||||||
result = &v1alpha1.TLSStore{}
|
|
||||||
err = c.client.Post().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("tlsstores").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(tLSStore).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update takes the representation of a tLSStore and updates it. Returns the server's representation of the tLSStore, and an error, if there is any.
|
|
||||||
func (c *tLSStores) Update(ctx context.Context, tLSStore *v1alpha1.TLSStore, opts v1.UpdateOptions) (result *v1alpha1.TLSStore, err error) {
|
|
||||||
result = &v1alpha1.TLSStore{}
|
|
||||||
err = c.client.Put().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("tlsstores").
|
|
||||||
Name(tLSStore.Name).
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(tLSStore).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete takes name of the tLSStore and deletes it. Returns an error if one occurs.
|
|
||||||
func (c *tLSStores) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
|
||||||
return c.client.Delete().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("tlsstores").
|
|
||||||
Name(name).
|
|
||||||
Body(&opts).
|
|
||||||
Do(ctx).
|
|
||||||
Error()
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCollection deletes a collection of objects.
|
|
||||||
func (c *tLSStores) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
|
|
||||||
var timeout time.Duration
|
|
||||||
if listOpts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
return c.client.Delete().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("tlsstores").
|
|
||||||
VersionedParams(&listOpts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Body(&opts).
|
|
||||||
Do(ctx).
|
|
||||||
Error()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Patch applies the patch and returns the patched tLSStore.
|
|
||||||
func (c *tLSStores) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.TLSStore, err error) {
|
|
||||||
result = &v1alpha1.TLSStore{}
|
|
||||||
err = c.client.Patch(pt).
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("tlsstores").
|
|
||||||
Name(name).
|
|
||||||
SubResource(subresources...).
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(data).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
|
@ -1,142 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned/scheme"
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
rest "k8s.io/client-go/rest"
|
|
||||||
)
|
|
||||||
|
|
||||||
type TraefikContainousV1alpha1Interface interface {
|
|
||||||
RESTClient() rest.Interface
|
|
||||||
IngressRoutesGetter
|
|
||||||
IngressRouteTCPsGetter
|
|
||||||
IngressRouteUDPsGetter
|
|
||||||
MiddlewaresGetter
|
|
||||||
MiddlewareTCPsGetter
|
|
||||||
ServersTransportsGetter
|
|
||||||
ServersTransportTCPsGetter
|
|
||||||
TLSOptionsGetter
|
|
||||||
TLSStoresGetter
|
|
||||||
TraefikServicesGetter
|
|
||||||
}
|
|
||||||
|
|
||||||
// TraefikContainousV1alpha1Client is used to interact with features provided by the traefik.containo.us group.
|
|
||||||
type TraefikContainousV1alpha1Client struct {
|
|
||||||
restClient rest.Interface
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *TraefikContainousV1alpha1Client) IngressRoutes(namespace string) IngressRouteInterface {
|
|
||||||
return newIngressRoutes(c, namespace)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *TraefikContainousV1alpha1Client) IngressRouteTCPs(namespace string) IngressRouteTCPInterface {
|
|
||||||
return newIngressRouteTCPs(c, namespace)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *TraefikContainousV1alpha1Client) IngressRouteUDPs(namespace string) IngressRouteUDPInterface {
|
|
||||||
return newIngressRouteUDPs(c, namespace)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *TraefikContainousV1alpha1Client) Middlewares(namespace string) MiddlewareInterface {
|
|
||||||
return newMiddlewares(c, namespace)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *TraefikContainousV1alpha1Client) MiddlewareTCPs(namespace string) MiddlewareTCPInterface {
|
|
||||||
return newMiddlewareTCPs(c, namespace)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *TraefikContainousV1alpha1Client) ServersTransports(namespace string) ServersTransportInterface {
|
|
||||||
return newServersTransports(c, namespace)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *TraefikContainousV1alpha1Client) ServersTransportTCPs(namespace string) ServersTransportTCPInterface {
|
|
||||||
return newServersTransportTCPs(c, namespace)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *TraefikContainousV1alpha1Client) TLSOptions(namespace string) TLSOptionInterface {
|
|
||||||
return newTLSOptions(c, namespace)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *TraefikContainousV1alpha1Client) TLSStores(namespace string) TLSStoreInterface {
|
|
||||||
return newTLSStores(c, namespace)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *TraefikContainousV1alpha1Client) TraefikServices(namespace string) TraefikServiceInterface {
|
|
||||||
return newTraefikServices(c, namespace)
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewForConfig creates a new TraefikContainousV1alpha1Client for the given config.
|
|
||||||
func NewForConfig(c *rest.Config) (*TraefikContainousV1alpha1Client, error) {
|
|
||||||
config := *c
|
|
||||||
if err := setConfigDefaults(&config); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
client, err := rest.RESTClientFor(&config)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return &TraefikContainousV1alpha1Client{client}, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewForConfigOrDie creates a new TraefikContainousV1alpha1Client for the given config and
|
|
||||||
// panics if there is an error in the config.
|
|
||||||
func NewForConfigOrDie(c *rest.Config) *TraefikContainousV1alpha1Client {
|
|
||||||
client, err := NewForConfig(c)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
return client
|
|
||||||
}
|
|
||||||
|
|
||||||
// New creates a new TraefikContainousV1alpha1Client for the given RESTClient.
|
|
||||||
func New(c rest.Interface) *TraefikContainousV1alpha1Client {
|
|
||||||
return &TraefikContainousV1alpha1Client{c}
|
|
||||||
}
|
|
||||||
|
|
||||||
func setConfigDefaults(config *rest.Config) error {
|
|
||||||
gv := v1alpha1.SchemeGroupVersion
|
|
||||||
config.GroupVersion = &gv
|
|
||||||
config.APIPath = "/apis"
|
|
||||||
config.NegotiatedSerializer = scheme.Codecs.WithoutConversion()
|
|
||||||
|
|
||||||
if config.UserAgent == "" {
|
|
||||||
config.UserAgent = rest.DefaultKubernetesUserAgent()
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// RESTClient returns a RESTClient that is used to communicate
|
|
||||||
// with API server by this client implementation.
|
|
||||||
func (c *TraefikContainousV1alpha1Client) RESTClient() rest.Interface {
|
|
||||||
if c == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return c.restClient
|
|
||||||
}
|
|
|
@ -1,186 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
scheme "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned/scheme"
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
rest "k8s.io/client-go/rest"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TraefikServicesGetter has a method to return a TraefikServiceInterface.
|
|
||||||
// A group's client should implement this interface.
|
|
||||||
type TraefikServicesGetter interface {
|
|
||||||
TraefikServices(namespace string) TraefikServiceInterface
|
|
||||||
}
|
|
||||||
|
|
||||||
// TraefikServiceInterface has methods to work with TraefikService resources.
|
|
||||||
type TraefikServiceInterface interface {
|
|
||||||
Create(ctx context.Context, traefikService *v1alpha1.TraefikService, opts v1.CreateOptions) (*v1alpha1.TraefikService, error)
|
|
||||||
Update(ctx context.Context, traefikService *v1alpha1.TraefikService, opts v1.UpdateOptions) (*v1alpha1.TraefikService, error)
|
|
||||||
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
|
|
||||||
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
|
|
||||||
Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.TraefikService, error)
|
|
||||||
List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.TraefikServiceList, error)
|
|
||||||
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
|
|
||||||
Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.TraefikService, err error)
|
|
||||||
TraefikServiceExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// traefikServices implements TraefikServiceInterface
|
|
||||||
type traefikServices struct {
|
|
||||||
client rest.Interface
|
|
||||||
ns string
|
|
||||||
}
|
|
||||||
|
|
||||||
// newTraefikServices returns a TraefikServices
|
|
||||||
func newTraefikServices(c *TraefikContainousV1alpha1Client, namespace string) *traefikServices {
|
|
||||||
return &traefikServices{
|
|
||||||
client: c.RESTClient(),
|
|
||||||
ns: namespace,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get takes name of the traefikService, and returns the corresponding traefikService object, and an error if there is any.
|
|
||||||
func (c *traefikServices) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.TraefikService, err error) {
|
|
||||||
result = &v1alpha1.TraefikService{}
|
|
||||||
err = c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("traefikservices").
|
|
||||||
Name(name).
|
|
||||||
VersionedParams(&options, scheme.ParameterCodec).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// List takes label and field selectors, and returns the list of TraefikServices that match those selectors.
|
|
||||||
func (c *traefikServices) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.TraefikServiceList, err error) {
|
|
||||||
var timeout time.Duration
|
|
||||||
if opts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
result = &v1alpha1.TraefikServiceList{}
|
|
||||||
err = c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("traefikservices").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Watch returns a watch.Interface that watches the requested traefikServices.
|
|
||||||
func (c *traefikServices) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
|
|
||||||
var timeout time.Duration
|
|
||||||
if opts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
opts.Watch = true
|
|
||||||
return c.client.Get().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("traefikservices").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Watch(ctx)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create takes the representation of a traefikService and creates it. Returns the server's representation of the traefikService, and an error, if there is any.
|
|
||||||
func (c *traefikServices) Create(ctx context.Context, traefikService *v1alpha1.TraefikService, opts v1.CreateOptions) (result *v1alpha1.TraefikService, err error) {
|
|
||||||
result = &v1alpha1.TraefikService{}
|
|
||||||
err = c.client.Post().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("traefikservices").
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(traefikService).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update takes the representation of a traefikService and updates it. Returns the server's representation of the traefikService, and an error, if there is any.
|
|
||||||
func (c *traefikServices) Update(ctx context.Context, traefikService *v1alpha1.TraefikService, opts v1.UpdateOptions) (result *v1alpha1.TraefikService, err error) {
|
|
||||||
result = &v1alpha1.TraefikService{}
|
|
||||||
err = c.client.Put().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("traefikservices").
|
|
||||||
Name(traefikService.Name).
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(traefikService).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete takes name of the traefikService and deletes it. Returns an error if one occurs.
|
|
||||||
func (c *traefikServices) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
|
||||||
return c.client.Delete().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("traefikservices").
|
|
||||||
Name(name).
|
|
||||||
Body(&opts).
|
|
||||||
Do(ctx).
|
|
||||||
Error()
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCollection deletes a collection of objects.
|
|
||||||
func (c *traefikServices) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
|
|
||||||
var timeout time.Duration
|
|
||||||
if listOpts.TimeoutSeconds != nil {
|
|
||||||
timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second
|
|
||||||
}
|
|
||||||
return c.client.Delete().
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("traefikservices").
|
|
||||||
VersionedParams(&listOpts, scheme.ParameterCodec).
|
|
||||||
Timeout(timeout).
|
|
||||||
Body(&opts).
|
|
||||||
Do(ctx).
|
|
||||||
Error()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Patch applies the patch and returns the patched traefikService.
|
|
||||||
func (c *traefikServices) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.TraefikService, err error) {
|
|
||||||
result = &v1alpha1.TraefikService{}
|
|
||||||
err = c.client.Patch(pt).
|
|
||||||
Namespace(c.ns).
|
|
||||||
Resource("traefikservices").
|
|
||||||
Name(name).
|
|
||||||
SubResource(subresources...).
|
|
||||||
VersionedParams(&opts, scheme.ParameterCodec).
|
|
||||||
Body(data).
|
|
||||||
Do(ctx).
|
|
||||||
Into(result)
|
|
||||||
return
|
|
||||||
}
|
|
|
@ -33,7 +33,6 @@ import (
|
||||||
|
|
||||||
versioned "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned"
|
versioned "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned"
|
||||||
internalinterfaces "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/informers/externalversions/internalinterfaces"
|
internalinterfaces "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/informers/externalversions/internalinterfaces"
|
||||||
traefikcontainous "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/informers/externalversions/traefikcontainous"
|
|
||||||
traefikio "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/informers/externalversions/traefikio"
|
traefikio "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/informers/externalversions/traefikio"
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||||
|
@ -181,14 +180,9 @@ type SharedInformerFactory interface {
|
||||||
ForResource(resource schema.GroupVersionResource) (GenericInformer, error)
|
ForResource(resource schema.GroupVersionResource) (GenericInformer, error)
|
||||||
WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool
|
WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool
|
||||||
|
|
||||||
TraefikContainous() traefikcontainous.Interface
|
|
||||||
Traefik() traefikio.Interface
|
Traefik() traefikio.Interface
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *sharedInformerFactory) TraefikContainous() traefikcontainous.Interface {
|
|
||||||
return traefikcontainous.New(f, f.namespace, f.tweakListOptions)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *sharedInformerFactory) Traefik() traefikio.Interface {
|
func (f *sharedInformerFactory) Traefik() traefikio.Interface {
|
||||||
return traefikio.New(f, f.namespace, f.tweakListOptions)
|
return traefikio.New(f, f.namespace, f.tweakListOptions)
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,8 +29,7 @@ package externalversions
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikio/v1alpha1"
|
||||||
traefikiov1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikio/v1alpha1"
|
|
||||||
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
cache "k8s.io/client-go/tools/cache"
|
cache "k8s.io/client-go/tools/cache"
|
||||||
)
|
)
|
||||||
|
@ -61,48 +60,26 @@ func (f *genericInformer) Lister() cache.GenericLister {
|
||||||
// TODO extend this to unknown resources with a client pool
|
// TODO extend this to unknown resources with a client pool
|
||||||
func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) {
|
func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) {
|
||||||
switch resource {
|
switch resource {
|
||||||
// Group=traefik.containo.us, Version=v1alpha1
|
// Group=traefik.io, Version=v1alpha1
|
||||||
case v1alpha1.SchemeGroupVersion.WithResource("ingressroutes"):
|
case v1alpha1.SchemeGroupVersion.WithResource("ingressroutes"):
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.TraefikContainous().V1alpha1().IngressRoutes().Informer()}, nil
|
|
||||||
case v1alpha1.SchemeGroupVersion.WithResource("ingressroutetcps"):
|
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.TraefikContainous().V1alpha1().IngressRouteTCPs().Informer()}, nil
|
|
||||||
case v1alpha1.SchemeGroupVersion.WithResource("ingressrouteudps"):
|
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.TraefikContainous().V1alpha1().IngressRouteUDPs().Informer()}, nil
|
|
||||||
case v1alpha1.SchemeGroupVersion.WithResource("middlewares"):
|
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.TraefikContainous().V1alpha1().Middlewares().Informer()}, nil
|
|
||||||
case v1alpha1.SchemeGroupVersion.WithResource("middlewaretcps"):
|
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.TraefikContainous().V1alpha1().MiddlewareTCPs().Informer()}, nil
|
|
||||||
case v1alpha1.SchemeGroupVersion.WithResource("serverstransports"):
|
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.TraefikContainous().V1alpha1().ServersTransports().Informer()}, nil
|
|
||||||
case v1alpha1.SchemeGroupVersion.WithResource("serverstransporttcps"):
|
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.TraefikContainous().V1alpha1().ServersTransportTCPs().Informer()}, nil
|
|
||||||
case v1alpha1.SchemeGroupVersion.WithResource("tlsoptions"):
|
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.TraefikContainous().V1alpha1().TLSOptions().Informer()}, nil
|
|
||||||
case v1alpha1.SchemeGroupVersion.WithResource("tlsstores"):
|
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.TraefikContainous().V1alpha1().TLSStores().Informer()}, nil
|
|
||||||
case v1alpha1.SchemeGroupVersion.WithResource("traefikservices"):
|
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.TraefikContainous().V1alpha1().TraefikServices().Informer()}, nil
|
|
||||||
|
|
||||||
// Group=traefik.io, Version=v1alpha1
|
|
||||||
case traefikiov1alpha1.SchemeGroupVersion.WithResource("ingressroutes"):
|
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.Traefik().V1alpha1().IngressRoutes().Informer()}, nil
|
return &genericInformer{resource: resource.GroupResource(), informer: f.Traefik().V1alpha1().IngressRoutes().Informer()}, nil
|
||||||
case traefikiov1alpha1.SchemeGroupVersion.WithResource("ingressroutetcps"):
|
case v1alpha1.SchemeGroupVersion.WithResource("ingressroutetcps"):
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.Traefik().V1alpha1().IngressRouteTCPs().Informer()}, nil
|
return &genericInformer{resource: resource.GroupResource(), informer: f.Traefik().V1alpha1().IngressRouteTCPs().Informer()}, nil
|
||||||
case traefikiov1alpha1.SchemeGroupVersion.WithResource("ingressrouteudps"):
|
case v1alpha1.SchemeGroupVersion.WithResource("ingressrouteudps"):
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.Traefik().V1alpha1().IngressRouteUDPs().Informer()}, nil
|
return &genericInformer{resource: resource.GroupResource(), informer: f.Traefik().V1alpha1().IngressRouteUDPs().Informer()}, nil
|
||||||
case traefikiov1alpha1.SchemeGroupVersion.WithResource("middlewares"):
|
case v1alpha1.SchemeGroupVersion.WithResource("middlewares"):
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.Traefik().V1alpha1().Middlewares().Informer()}, nil
|
return &genericInformer{resource: resource.GroupResource(), informer: f.Traefik().V1alpha1().Middlewares().Informer()}, nil
|
||||||
case traefikiov1alpha1.SchemeGroupVersion.WithResource("middlewaretcps"):
|
case v1alpha1.SchemeGroupVersion.WithResource("middlewaretcps"):
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.Traefik().V1alpha1().MiddlewareTCPs().Informer()}, nil
|
return &genericInformer{resource: resource.GroupResource(), informer: f.Traefik().V1alpha1().MiddlewareTCPs().Informer()}, nil
|
||||||
case traefikiov1alpha1.SchemeGroupVersion.WithResource("serverstransports"):
|
case v1alpha1.SchemeGroupVersion.WithResource("serverstransports"):
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.Traefik().V1alpha1().ServersTransports().Informer()}, nil
|
return &genericInformer{resource: resource.GroupResource(), informer: f.Traefik().V1alpha1().ServersTransports().Informer()}, nil
|
||||||
case traefikiov1alpha1.SchemeGroupVersion.WithResource("serverstransporttcps"):
|
case v1alpha1.SchemeGroupVersion.WithResource("serverstransporttcps"):
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.Traefik().V1alpha1().ServersTransportTCPs().Informer()}, nil
|
return &genericInformer{resource: resource.GroupResource(), informer: f.Traefik().V1alpha1().ServersTransportTCPs().Informer()}, nil
|
||||||
case traefikiov1alpha1.SchemeGroupVersion.WithResource("tlsoptions"):
|
case v1alpha1.SchemeGroupVersion.WithResource("tlsoptions"):
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.Traefik().V1alpha1().TLSOptions().Informer()}, nil
|
return &genericInformer{resource: resource.GroupResource(), informer: f.Traefik().V1alpha1().TLSOptions().Informer()}, nil
|
||||||
case traefikiov1alpha1.SchemeGroupVersion.WithResource("tlsstores"):
|
case v1alpha1.SchemeGroupVersion.WithResource("tlsstores"):
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.Traefik().V1alpha1().TLSStores().Informer()}, nil
|
return &genericInformer{resource: resource.GroupResource(), informer: f.Traefik().V1alpha1().TLSStores().Informer()}, nil
|
||||||
case traefikiov1alpha1.SchemeGroupVersion.WithResource("traefikservices"):
|
case v1alpha1.SchemeGroupVersion.WithResource("traefikservices"):
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.Traefik().V1alpha1().TraefikServices().Informer()}, nil
|
return &genericInformer{resource: resource.GroupResource(), informer: f.Traefik().V1alpha1().TraefikServices().Informer()}, nil
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,54 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by informer-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package traefikcontainous
|
|
||||||
|
|
||||||
import (
|
|
||||||
internalinterfaces "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/informers/externalversions/internalinterfaces"
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/informers/externalversions/traefikcontainous/v1alpha1"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Interface provides access to each of this group's versions.
|
|
||||||
type Interface interface {
|
|
||||||
// V1alpha1 provides access to shared informers for resources in V1alpha1.
|
|
||||||
V1alpha1() v1alpha1.Interface
|
|
||||||
}
|
|
||||||
|
|
||||||
type group struct {
|
|
||||||
factory internalinterfaces.SharedInformerFactory
|
|
||||||
namespace string
|
|
||||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
|
||||||
}
|
|
||||||
|
|
||||||
// New returns a new Interface.
|
|
||||||
func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {
|
|
||||||
return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}
|
|
||||||
}
|
|
||||||
|
|
||||||
// V1alpha1 returns a new v1alpha1.Interface.
|
|
||||||
func (g *group) V1alpha1() v1alpha1.Interface {
|
|
||||||
return v1alpha1.New(g.factory, g.namespace, g.tweakListOptions)
|
|
||||||
}
|
|
|
@ -1,98 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by informer-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
time "time"
|
|
||||||
|
|
||||||
versioned "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned"
|
|
||||||
internalinterfaces "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/informers/externalversions/internalinterfaces"
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/listers/traefikcontainous/v1alpha1"
|
|
||||||
traefikcontainousv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
cache "k8s.io/client-go/tools/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
// IngressRouteInformer provides access to a shared informer and lister for
|
|
||||||
// IngressRoutes.
|
|
||||||
type IngressRouteInformer interface {
|
|
||||||
Informer() cache.SharedIndexInformer
|
|
||||||
Lister() v1alpha1.IngressRouteLister
|
|
||||||
}
|
|
||||||
|
|
||||||
type ingressRouteInformer struct {
|
|
||||||
factory internalinterfaces.SharedInformerFactory
|
|
||||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
|
||||||
namespace string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewIngressRouteInformer constructs a new informer for IngressRoute type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewIngressRouteInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredIngressRouteInformer(client, namespace, resyncPeriod, indexers, nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewFilteredIngressRouteInformer constructs a new informer for IngressRoute type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewFilteredIngressRouteInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
|
||||||
return cache.NewSharedIndexInformer(
|
|
||||||
&cache.ListWatch{
|
|
||||||
ListFunc: func(options v1.ListOptions) (runtime.Object, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.TraefikContainousV1alpha1().IngressRoutes(namespace).List(context.TODO(), options)
|
|
||||||
},
|
|
||||||
WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.TraefikContainousV1alpha1().IngressRoutes(namespace).Watch(context.TODO(), options)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
&traefikcontainousv1alpha1.IngressRoute{},
|
|
||||||
resyncPeriod,
|
|
||||||
indexers,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *ingressRouteInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredIngressRouteInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *ingressRouteInformer) Informer() cache.SharedIndexInformer {
|
|
||||||
return f.factory.InformerFor(&traefikcontainousv1alpha1.IngressRoute{}, f.defaultInformer)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *ingressRouteInformer) Lister() v1alpha1.IngressRouteLister {
|
|
||||||
return v1alpha1.NewIngressRouteLister(f.Informer().GetIndexer())
|
|
||||||
}
|
|
|
@ -1,98 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by informer-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
time "time"
|
|
||||||
|
|
||||||
versioned "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned"
|
|
||||||
internalinterfaces "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/informers/externalversions/internalinterfaces"
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/listers/traefikcontainous/v1alpha1"
|
|
||||||
traefikcontainousv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
cache "k8s.io/client-go/tools/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
// IngressRouteTCPInformer provides access to a shared informer and lister for
|
|
||||||
// IngressRouteTCPs.
|
|
||||||
type IngressRouteTCPInformer interface {
|
|
||||||
Informer() cache.SharedIndexInformer
|
|
||||||
Lister() v1alpha1.IngressRouteTCPLister
|
|
||||||
}
|
|
||||||
|
|
||||||
type ingressRouteTCPInformer struct {
|
|
||||||
factory internalinterfaces.SharedInformerFactory
|
|
||||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
|
||||||
namespace string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewIngressRouteTCPInformer constructs a new informer for IngressRouteTCP type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewIngressRouteTCPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredIngressRouteTCPInformer(client, namespace, resyncPeriod, indexers, nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewFilteredIngressRouteTCPInformer constructs a new informer for IngressRouteTCP type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewFilteredIngressRouteTCPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
|
||||||
return cache.NewSharedIndexInformer(
|
|
||||||
&cache.ListWatch{
|
|
||||||
ListFunc: func(options v1.ListOptions) (runtime.Object, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.TraefikContainousV1alpha1().IngressRouteTCPs(namespace).List(context.TODO(), options)
|
|
||||||
},
|
|
||||||
WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.TraefikContainousV1alpha1().IngressRouteTCPs(namespace).Watch(context.TODO(), options)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
&traefikcontainousv1alpha1.IngressRouteTCP{},
|
|
||||||
resyncPeriod,
|
|
||||||
indexers,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *ingressRouteTCPInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredIngressRouteTCPInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *ingressRouteTCPInformer) Informer() cache.SharedIndexInformer {
|
|
||||||
return f.factory.InformerFor(&traefikcontainousv1alpha1.IngressRouteTCP{}, f.defaultInformer)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *ingressRouteTCPInformer) Lister() v1alpha1.IngressRouteTCPLister {
|
|
||||||
return v1alpha1.NewIngressRouteTCPLister(f.Informer().GetIndexer())
|
|
||||||
}
|
|
|
@ -1,98 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by informer-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
time "time"
|
|
||||||
|
|
||||||
versioned "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned"
|
|
||||||
internalinterfaces "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/informers/externalversions/internalinterfaces"
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/listers/traefikcontainous/v1alpha1"
|
|
||||||
traefikcontainousv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
cache "k8s.io/client-go/tools/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
// IngressRouteUDPInformer provides access to a shared informer and lister for
|
|
||||||
// IngressRouteUDPs.
|
|
||||||
type IngressRouteUDPInformer interface {
|
|
||||||
Informer() cache.SharedIndexInformer
|
|
||||||
Lister() v1alpha1.IngressRouteUDPLister
|
|
||||||
}
|
|
||||||
|
|
||||||
type ingressRouteUDPInformer struct {
|
|
||||||
factory internalinterfaces.SharedInformerFactory
|
|
||||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
|
||||||
namespace string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewIngressRouteUDPInformer constructs a new informer for IngressRouteUDP type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewIngressRouteUDPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredIngressRouteUDPInformer(client, namespace, resyncPeriod, indexers, nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewFilteredIngressRouteUDPInformer constructs a new informer for IngressRouteUDP type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewFilteredIngressRouteUDPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
|
||||||
return cache.NewSharedIndexInformer(
|
|
||||||
&cache.ListWatch{
|
|
||||||
ListFunc: func(options v1.ListOptions) (runtime.Object, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.TraefikContainousV1alpha1().IngressRouteUDPs(namespace).List(context.TODO(), options)
|
|
||||||
},
|
|
||||||
WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.TraefikContainousV1alpha1().IngressRouteUDPs(namespace).Watch(context.TODO(), options)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
&traefikcontainousv1alpha1.IngressRouteUDP{},
|
|
||||||
resyncPeriod,
|
|
||||||
indexers,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *ingressRouteUDPInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredIngressRouteUDPInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *ingressRouteUDPInformer) Informer() cache.SharedIndexInformer {
|
|
||||||
return f.factory.InformerFor(&traefikcontainousv1alpha1.IngressRouteUDP{}, f.defaultInformer)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *ingressRouteUDPInformer) Lister() v1alpha1.IngressRouteUDPLister {
|
|
||||||
return v1alpha1.NewIngressRouteUDPLister(f.Informer().GetIndexer())
|
|
||||||
}
|
|
|
@ -1,116 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by informer-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
internalinterfaces "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/informers/externalversions/internalinterfaces"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Interface provides access to all the informers in this group version.
|
|
||||||
type Interface interface {
|
|
||||||
// IngressRoutes returns a IngressRouteInformer.
|
|
||||||
IngressRoutes() IngressRouteInformer
|
|
||||||
// IngressRouteTCPs returns a IngressRouteTCPInformer.
|
|
||||||
IngressRouteTCPs() IngressRouteTCPInformer
|
|
||||||
// IngressRouteUDPs returns a IngressRouteUDPInformer.
|
|
||||||
IngressRouteUDPs() IngressRouteUDPInformer
|
|
||||||
// Middlewares returns a MiddlewareInformer.
|
|
||||||
Middlewares() MiddlewareInformer
|
|
||||||
// MiddlewareTCPs returns a MiddlewareTCPInformer.
|
|
||||||
MiddlewareTCPs() MiddlewareTCPInformer
|
|
||||||
// ServersTransports returns a ServersTransportInformer.
|
|
||||||
ServersTransports() ServersTransportInformer
|
|
||||||
// ServersTransportTCPs returns a ServersTransportTCPInformer.
|
|
||||||
ServersTransportTCPs() ServersTransportTCPInformer
|
|
||||||
// TLSOptions returns a TLSOptionInformer.
|
|
||||||
TLSOptions() TLSOptionInformer
|
|
||||||
// TLSStores returns a TLSStoreInformer.
|
|
||||||
TLSStores() TLSStoreInformer
|
|
||||||
// TraefikServices returns a TraefikServiceInformer.
|
|
||||||
TraefikServices() TraefikServiceInformer
|
|
||||||
}
|
|
||||||
|
|
||||||
type version struct {
|
|
||||||
factory internalinterfaces.SharedInformerFactory
|
|
||||||
namespace string
|
|
||||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
|
||||||
}
|
|
||||||
|
|
||||||
// New returns a new Interface.
|
|
||||||
func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {
|
|
||||||
return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}
|
|
||||||
}
|
|
||||||
|
|
||||||
// IngressRoutes returns a IngressRouteInformer.
|
|
||||||
func (v *version) IngressRoutes() IngressRouteInformer {
|
|
||||||
return &ingressRouteInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
|
||||||
}
|
|
||||||
|
|
||||||
// IngressRouteTCPs returns a IngressRouteTCPInformer.
|
|
||||||
func (v *version) IngressRouteTCPs() IngressRouteTCPInformer {
|
|
||||||
return &ingressRouteTCPInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
|
||||||
}
|
|
||||||
|
|
||||||
// IngressRouteUDPs returns a IngressRouteUDPInformer.
|
|
||||||
func (v *version) IngressRouteUDPs() IngressRouteUDPInformer {
|
|
||||||
return &ingressRouteUDPInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Middlewares returns a MiddlewareInformer.
|
|
||||||
func (v *version) Middlewares() MiddlewareInformer {
|
|
||||||
return &middlewareInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
|
||||||
}
|
|
||||||
|
|
||||||
// MiddlewareTCPs returns a MiddlewareTCPInformer.
|
|
||||||
func (v *version) MiddlewareTCPs() MiddlewareTCPInformer {
|
|
||||||
return &middlewareTCPInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ServersTransports returns a ServersTransportInformer.
|
|
||||||
func (v *version) ServersTransports() ServersTransportInformer {
|
|
||||||
return &serversTransportInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ServersTransportTCPs returns a ServersTransportTCPInformer.
|
|
||||||
func (v *version) ServersTransportTCPs() ServersTransportTCPInformer {
|
|
||||||
return &serversTransportTCPInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
|
||||||
}
|
|
||||||
|
|
||||||
// TLSOptions returns a TLSOptionInformer.
|
|
||||||
func (v *version) TLSOptions() TLSOptionInformer {
|
|
||||||
return &tLSOptionInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
|
||||||
}
|
|
||||||
|
|
||||||
// TLSStores returns a TLSStoreInformer.
|
|
||||||
func (v *version) TLSStores() TLSStoreInformer {
|
|
||||||
return &tLSStoreInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
|
||||||
}
|
|
||||||
|
|
||||||
// TraefikServices returns a TraefikServiceInformer.
|
|
||||||
func (v *version) TraefikServices() TraefikServiceInformer {
|
|
||||||
return &traefikServiceInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
|
||||||
}
|
|
|
@ -1,98 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by informer-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
time "time"
|
|
||||||
|
|
||||||
versioned "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned"
|
|
||||||
internalinterfaces "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/informers/externalversions/internalinterfaces"
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/listers/traefikcontainous/v1alpha1"
|
|
||||||
traefikcontainousv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
cache "k8s.io/client-go/tools/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
// MiddlewareInformer provides access to a shared informer and lister for
|
|
||||||
// Middlewares.
|
|
||||||
type MiddlewareInformer interface {
|
|
||||||
Informer() cache.SharedIndexInformer
|
|
||||||
Lister() v1alpha1.MiddlewareLister
|
|
||||||
}
|
|
||||||
|
|
||||||
type middlewareInformer struct {
|
|
||||||
factory internalinterfaces.SharedInformerFactory
|
|
||||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
|
||||||
namespace string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewMiddlewareInformer constructs a new informer for Middleware type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewMiddlewareInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredMiddlewareInformer(client, namespace, resyncPeriod, indexers, nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewFilteredMiddlewareInformer constructs a new informer for Middleware type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewFilteredMiddlewareInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
|
||||||
return cache.NewSharedIndexInformer(
|
|
||||||
&cache.ListWatch{
|
|
||||||
ListFunc: func(options v1.ListOptions) (runtime.Object, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.TraefikContainousV1alpha1().Middlewares(namespace).List(context.TODO(), options)
|
|
||||||
},
|
|
||||||
WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.TraefikContainousV1alpha1().Middlewares(namespace).Watch(context.TODO(), options)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
&traefikcontainousv1alpha1.Middleware{},
|
|
||||||
resyncPeriod,
|
|
||||||
indexers,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *middlewareInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredMiddlewareInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *middlewareInformer) Informer() cache.SharedIndexInformer {
|
|
||||||
return f.factory.InformerFor(&traefikcontainousv1alpha1.Middleware{}, f.defaultInformer)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *middlewareInformer) Lister() v1alpha1.MiddlewareLister {
|
|
||||||
return v1alpha1.NewMiddlewareLister(f.Informer().GetIndexer())
|
|
||||||
}
|
|
|
@ -1,98 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by informer-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
time "time"
|
|
||||||
|
|
||||||
versioned "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned"
|
|
||||||
internalinterfaces "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/informers/externalversions/internalinterfaces"
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/listers/traefikcontainous/v1alpha1"
|
|
||||||
traefikcontainousv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
cache "k8s.io/client-go/tools/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
// MiddlewareTCPInformer provides access to a shared informer and lister for
|
|
||||||
// MiddlewareTCPs.
|
|
||||||
type MiddlewareTCPInformer interface {
|
|
||||||
Informer() cache.SharedIndexInformer
|
|
||||||
Lister() v1alpha1.MiddlewareTCPLister
|
|
||||||
}
|
|
||||||
|
|
||||||
type middlewareTCPInformer struct {
|
|
||||||
factory internalinterfaces.SharedInformerFactory
|
|
||||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
|
||||||
namespace string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewMiddlewareTCPInformer constructs a new informer for MiddlewareTCP type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewMiddlewareTCPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredMiddlewareTCPInformer(client, namespace, resyncPeriod, indexers, nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewFilteredMiddlewareTCPInformer constructs a new informer for MiddlewareTCP type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewFilteredMiddlewareTCPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
|
||||||
return cache.NewSharedIndexInformer(
|
|
||||||
&cache.ListWatch{
|
|
||||||
ListFunc: func(options v1.ListOptions) (runtime.Object, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.TraefikContainousV1alpha1().MiddlewareTCPs(namespace).List(context.TODO(), options)
|
|
||||||
},
|
|
||||||
WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.TraefikContainousV1alpha1().MiddlewareTCPs(namespace).Watch(context.TODO(), options)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
&traefikcontainousv1alpha1.MiddlewareTCP{},
|
|
||||||
resyncPeriod,
|
|
||||||
indexers,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *middlewareTCPInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredMiddlewareTCPInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *middlewareTCPInformer) Informer() cache.SharedIndexInformer {
|
|
||||||
return f.factory.InformerFor(&traefikcontainousv1alpha1.MiddlewareTCP{}, f.defaultInformer)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *middlewareTCPInformer) Lister() v1alpha1.MiddlewareTCPLister {
|
|
||||||
return v1alpha1.NewMiddlewareTCPLister(f.Informer().GetIndexer())
|
|
||||||
}
|
|
|
@ -1,98 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by informer-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
time "time"
|
|
||||||
|
|
||||||
versioned "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned"
|
|
||||||
internalinterfaces "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/informers/externalversions/internalinterfaces"
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/listers/traefikcontainous/v1alpha1"
|
|
||||||
traefikcontainousv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
cache "k8s.io/client-go/tools/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ServersTransportInformer provides access to a shared informer and lister for
|
|
||||||
// ServersTransports.
|
|
||||||
type ServersTransportInformer interface {
|
|
||||||
Informer() cache.SharedIndexInformer
|
|
||||||
Lister() v1alpha1.ServersTransportLister
|
|
||||||
}
|
|
||||||
|
|
||||||
type serversTransportInformer struct {
|
|
||||||
factory internalinterfaces.SharedInformerFactory
|
|
||||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
|
||||||
namespace string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewServersTransportInformer constructs a new informer for ServersTransport type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewServersTransportInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredServersTransportInformer(client, namespace, resyncPeriod, indexers, nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewFilteredServersTransportInformer constructs a new informer for ServersTransport type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewFilteredServersTransportInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
|
||||||
return cache.NewSharedIndexInformer(
|
|
||||||
&cache.ListWatch{
|
|
||||||
ListFunc: func(options v1.ListOptions) (runtime.Object, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.TraefikContainousV1alpha1().ServersTransports(namespace).List(context.TODO(), options)
|
|
||||||
},
|
|
||||||
WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.TraefikContainousV1alpha1().ServersTransports(namespace).Watch(context.TODO(), options)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
&traefikcontainousv1alpha1.ServersTransport{},
|
|
||||||
resyncPeriod,
|
|
||||||
indexers,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *serversTransportInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredServersTransportInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *serversTransportInformer) Informer() cache.SharedIndexInformer {
|
|
||||||
return f.factory.InformerFor(&traefikcontainousv1alpha1.ServersTransport{}, f.defaultInformer)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *serversTransportInformer) Lister() v1alpha1.ServersTransportLister {
|
|
||||||
return v1alpha1.NewServersTransportLister(f.Informer().GetIndexer())
|
|
||||||
}
|
|
|
@ -1,98 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by informer-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
time "time"
|
|
||||||
|
|
||||||
versioned "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned"
|
|
||||||
internalinterfaces "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/informers/externalversions/internalinterfaces"
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/listers/traefikcontainous/v1alpha1"
|
|
||||||
traefikcontainousv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
cache "k8s.io/client-go/tools/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ServersTransportTCPInformer provides access to a shared informer and lister for
|
|
||||||
// ServersTransportTCPs.
|
|
||||||
type ServersTransportTCPInformer interface {
|
|
||||||
Informer() cache.SharedIndexInformer
|
|
||||||
Lister() v1alpha1.ServersTransportTCPLister
|
|
||||||
}
|
|
||||||
|
|
||||||
type serversTransportTCPInformer struct {
|
|
||||||
factory internalinterfaces.SharedInformerFactory
|
|
||||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
|
||||||
namespace string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewServersTransportTCPInformer constructs a new informer for ServersTransportTCP type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewServersTransportTCPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredServersTransportTCPInformer(client, namespace, resyncPeriod, indexers, nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewFilteredServersTransportTCPInformer constructs a new informer for ServersTransportTCP type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewFilteredServersTransportTCPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
|
||||||
return cache.NewSharedIndexInformer(
|
|
||||||
&cache.ListWatch{
|
|
||||||
ListFunc: func(options v1.ListOptions) (runtime.Object, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.TraefikContainousV1alpha1().ServersTransportTCPs(namespace).List(context.TODO(), options)
|
|
||||||
},
|
|
||||||
WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.TraefikContainousV1alpha1().ServersTransportTCPs(namespace).Watch(context.TODO(), options)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
&traefikcontainousv1alpha1.ServersTransportTCP{},
|
|
||||||
resyncPeriod,
|
|
||||||
indexers,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *serversTransportTCPInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredServersTransportTCPInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *serversTransportTCPInformer) Informer() cache.SharedIndexInformer {
|
|
||||||
return f.factory.InformerFor(&traefikcontainousv1alpha1.ServersTransportTCP{}, f.defaultInformer)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *serversTransportTCPInformer) Lister() v1alpha1.ServersTransportTCPLister {
|
|
||||||
return v1alpha1.NewServersTransportTCPLister(f.Informer().GetIndexer())
|
|
||||||
}
|
|
|
@ -1,98 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by informer-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
time "time"
|
|
||||||
|
|
||||||
versioned "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned"
|
|
||||||
internalinterfaces "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/informers/externalversions/internalinterfaces"
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/listers/traefikcontainous/v1alpha1"
|
|
||||||
traefikcontainousv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
cache "k8s.io/client-go/tools/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TLSOptionInformer provides access to a shared informer and lister for
|
|
||||||
// TLSOptions.
|
|
||||||
type TLSOptionInformer interface {
|
|
||||||
Informer() cache.SharedIndexInformer
|
|
||||||
Lister() v1alpha1.TLSOptionLister
|
|
||||||
}
|
|
||||||
|
|
||||||
type tLSOptionInformer struct {
|
|
||||||
factory internalinterfaces.SharedInformerFactory
|
|
||||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
|
||||||
namespace string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewTLSOptionInformer constructs a new informer for TLSOption type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewTLSOptionInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredTLSOptionInformer(client, namespace, resyncPeriod, indexers, nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewFilteredTLSOptionInformer constructs a new informer for TLSOption type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewFilteredTLSOptionInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
|
||||||
return cache.NewSharedIndexInformer(
|
|
||||||
&cache.ListWatch{
|
|
||||||
ListFunc: func(options v1.ListOptions) (runtime.Object, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.TraefikContainousV1alpha1().TLSOptions(namespace).List(context.TODO(), options)
|
|
||||||
},
|
|
||||||
WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.TraefikContainousV1alpha1().TLSOptions(namespace).Watch(context.TODO(), options)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
&traefikcontainousv1alpha1.TLSOption{},
|
|
||||||
resyncPeriod,
|
|
||||||
indexers,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *tLSOptionInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredTLSOptionInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *tLSOptionInformer) Informer() cache.SharedIndexInformer {
|
|
||||||
return f.factory.InformerFor(&traefikcontainousv1alpha1.TLSOption{}, f.defaultInformer)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *tLSOptionInformer) Lister() v1alpha1.TLSOptionLister {
|
|
||||||
return v1alpha1.NewTLSOptionLister(f.Informer().GetIndexer())
|
|
||||||
}
|
|
|
@ -1,98 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by informer-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
time "time"
|
|
||||||
|
|
||||||
versioned "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned"
|
|
||||||
internalinterfaces "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/informers/externalversions/internalinterfaces"
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/listers/traefikcontainous/v1alpha1"
|
|
||||||
traefikcontainousv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
cache "k8s.io/client-go/tools/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TLSStoreInformer provides access to a shared informer and lister for
|
|
||||||
// TLSStores.
|
|
||||||
type TLSStoreInformer interface {
|
|
||||||
Informer() cache.SharedIndexInformer
|
|
||||||
Lister() v1alpha1.TLSStoreLister
|
|
||||||
}
|
|
||||||
|
|
||||||
type tLSStoreInformer struct {
|
|
||||||
factory internalinterfaces.SharedInformerFactory
|
|
||||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
|
||||||
namespace string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewTLSStoreInformer constructs a new informer for TLSStore type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewTLSStoreInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredTLSStoreInformer(client, namespace, resyncPeriod, indexers, nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewFilteredTLSStoreInformer constructs a new informer for TLSStore type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewFilteredTLSStoreInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
|
||||||
return cache.NewSharedIndexInformer(
|
|
||||||
&cache.ListWatch{
|
|
||||||
ListFunc: func(options v1.ListOptions) (runtime.Object, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.TraefikContainousV1alpha1().TLSStores(namespace).List(context.TODO(), options)
|
|
||||||
},
|
|
||||||
WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.TraefikContainousV1alpha1().TLSStores(namespace).Watch(context.TODO(), options)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
&traefikcontainousv1alpha1.TLSStore{},
|
|
||||||
resyncPeriod,
|
|
||||||
indexers,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *tLSStoreInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredTLSStoreInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *tLSStoreInformer) Informer() cache.SharedIndexInformer {
|
|
||||||
return f.factory.InformerFor(&traefikcontainousv1alpha1.TLSStore{}, f.defaultInformer)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *tLSStoreInformer) Lister() v1alpha1.TLSStoreLister {
|
|
||||||
return v1alpha1.NewTLSStoreLister(f.Informer().GetIndexer())
|
|
||||||
}
|
|
|
@ -1,98 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by informer-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
time "time"
|
|
||||||
|
|
||||||
versioned "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned"
|
|
||||||
internalinterfaces "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/informers/externalversions/internalinterfaces"
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/listers/traefikcontainous/v1alpha1"
|
|
||||||
traefikcontainousv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
cache "k8s.io/client-go/tools/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TraefikServiceInformer provides access to a shared informer and lister for
|
|
||||||
// TraefikServices.
|
|
||||||
type TraefikServiceInformer interface {
|
|
||||||
Informer() cache.SharedIndexInformer
|
|
||||||
Lister() v1alpha1.TraefikServiceLister
|
|
||||||
}
|
|
||||||
|
|
||||||
type traefikServiceInformer struct {
|
|
||||||
factory internalinterfaces.SharedInformerFactory
|
|
||||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
|
||||||
namespace string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewTraefikServiceInformer constructs a new informer for TraefikService type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewTraefikServiceInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredTraefikServiceInformer(client, namespace, resyncPeriod, indexers, nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewFilteredTraefikServiceInformer constructs a new informer for TraefikService type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewFilteredTraefikServiceInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
|
||||||
return cache.NewSharedIndexInformer(
|
|
||||||
&cache.ListWatch{
|
|
||||||
ListFunc: func(options v1.ListOptions) (runtime.Object, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.TraefikContainousV1alpha1().TraefikServices(namespace).List(context.TODO(), options)
|
|
||||||
},
|
|
||||||
WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.TraefikContainousV1alpha1().TraefikServices(namespace).Watch(context.TODO(), options)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
&traefikcontainousv1alpha1.TraefikService{},
|
|
||||||
resyncPeriod,
|
|
||||||
indexers,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *traefikServiceInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredTraefikServiceInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *traefikServiceInformer) Informer() cache.SharedIndexInformer {
|
|
||||||
return f.factory.InformerFor(&traefikcontainousv1alpha1.TraefikService{}, f.defaultInformer)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *traefikServiceInformer) Lister() v1alpha1.TraefikServiceLister {
|
|
||||||
return v1alpha1.NewTraefikServiceLister(f.Informer().GetIndexer())
|
|
||||||
}
|
|
|
@ -1,107 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by lister-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
// IngressRouteListerExpansion allows custom methods to be added to
|
|
||||||
// IngressRouteLister.
|
|
||||||
type IngressRouteListerExpansion interface{}
|
|
||||||
|
|
||||||
// IngressRouteNamespaceListerExpansion allows custom methods to be added to
|
|
||||||
// IngressRouteNamespaceLister.
|
|
||||||
type IngressRouteNamespaceListerExpansion interface{}
|
|
||||||
|
|
||||||
// IngressRouteTCPListerExpansion allows custom methods to be added to
|
|
||||||
// IngressRouteTCPLister.
|
|
||||||
type IngressRouteTCPListerExpansion interface{}
|
|
||||||
|
|
||||||
// IngressRouteTCPNamespaceListerExpansion allows custom methods to be added to
|
|
||||||
// IngressRouteTCPNamespaceLister.
|
|
||||||
type IngressRouteTCPNamespaceListerExpansion interface{}
|
|
||||||
|
|
||||||
// IngressRouteUDPListerExpansion allows custom methods to be added to
|
|
||||||
// IngressRouteUDPLister.
|
|
||||||
type IngressRouteUDPListerExpansion interface{}
|
|
||||||
|
|
||||||
// IngressRouteUDPNamespaceListerExpansion allows custom methods to be added to
|
|
||||||
// IngressRouteUDPNamespaceLister.
|
|
||||||
type IngressRouteUDPNamespaceListerExpansion interface{}
|
|
||||||
|
|
||||||
// MiddlewareListerExpansion allows custom methods to be added to
|
|
||||||
// MiddlewareLister.
|
|
||||||
type MiddlewareListerExpansion interface{}
|
|
||||||
|
|
||||||
// MiddlewareNamespaceListerExpansion allows custom methods to be added to
|
|
||||||
// MiddlewareNamespaceLister.
|
|
||||||
type MiddlewareNamespaceListerExpansion interface{}
|
|
||||||
|
|
||||||
// MiddlewareTCPListerExpansion allows custom methods to be added to
|
|
||||||
// MiddlewareTCPLister.
|
|
||||||
type MiddlewareTCPListerExpansion interface{}
|
|
||||||
|
|
||||||
// MiddlewareTCPNamespaceListerExpansion allows custom methods to be added to
|
|
||||||
// MiddlewareTCPNamespaceLister.
|
|
||||||
type MiddlewareTCPNamespaceListerExpansion interface{}
|
|
||||||
|
|
||||||
// ServersTransportListerExpansion allows custom methods to be added to
|
|
||||||
// ServersTransportLister.
|
|
||||||
type ServersTransportListerExpansion interface{}
|
|
||||||
|
|
||||||
// ServersTransportNamespaceListerExpansion allows custom methods to be added to
|
|
||||||
// ServersTransportNamespaceLister.
|
|
||||||
type ServersTransportNamespaceListerExpansion interface{}
|
|
||||||
|
|
||||||
// ServersTransportTCPListerExpansion allows custom methods to be added to
|
|
||||||
// ServersTransportTCPLister.
|
|
||||||
type ServersTransportTCPListerExpansion interface{}
|
|
||||||
|
|
||||||
// ServersTransportTCPNamespaceListerExpansion allows custom methods to be added to
|
|
||||||
// ServersTransportTCPNamespaceLister.
|
|
||||||
type ServersTransportTCPNamespaceListerExpansion interface{}
|
|
||||||
|
|
||||||
// TLSOptionListerExpansion allows custom methods to be added to
|
|
||||||
// TLSOptionLister.
|
|
||||||
type TLSOptionListerExpansion interface{}
|
|
||||||
|
|
||||||
// TLSOptionNamespaceListerExpansion allows custom methods to be added to
|
|
||||||
// TLSOptionNamespaceLister.
|
|
||||||
type TLSOptionNamespaceListerExpansion interface{}
|
|
||||||
|
|
||||||
// TLSStoreListerExpansion allows custom methods to be added to
|
|
||||||
// TLSStoreLister.
|
|
||||||
type TLSStoreListerExpansion interface{}
|
|
||||||
|
|
||||||
// TLSStoreNamespaceListerExpansion allows custom methods to be added to
|
|
||||||
// TLSStoreNamespaceLister.
|
|
||||||
type TLSStoreNamespaceListerExpansion interface{}
|
|
||||||
|
|
||||||
// TraefikServiceListerExpansion allows custom methods to be added to
|
|
||||||
// TraefikServiceLister.
|
|
||||||
type TraefikServiceListerExpansion interface{}
|
|
||||||
|
|
||||||
// TraefikServiceNamespaceListerExpansion allows custom methods to be added to
|
|
||||||
// TraefikServiceNamespaceLister.
|
|
||||||
type TraefikServiceNamespaceListerExpansion interface{}
|
|
|
@ -1,107 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by lister-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
"k8s.io/apimachinery/pkg/api/errors"
|
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
|
||||||
"k8s.io/client-go/tools/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
// IngressRouteLister helps list IngressRoutes.
|
|
||||||
// All objects returned here must be treated as read-only.
|
|
||||||
type IngressRouteLister interface {
|
|
||||||
// List lists all IngressRoutes in the indexer.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
List(selector labels.Selector) (ret []*v1alpha1.IngressRoute, err error)
|
|
||||||
// IngressRoutes returns an object that can list and get IngressRoutes.
|
|
||||||
IngressRoutes(namespace string) IngressRouteNamespaceLister
|
|
||||||
IngressRouteListerExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// ingressRouteLister implements the IngressRouteLister interface.
|
|
||||||
type ingressRouteLister struct {
|
|
||||||
indexer cache.Indexer
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewIngressRouteLister returns a new IngressRouteLister.
|
|
||||||
func NewIngressRouteLister(indexer cache.Indexer) IngressRouteLister {
|
|
||||||
return &ingressRouteLister{indexer: indexer}
|
|
||||||
}
|
|
||||||
|
|
||||||
// List lists all IngressRoutes in the indexer.
|
|
||||||
func (s *ingressRouteLister) List(selector labels.Selector) (ret []*v1alpha1.IngressRoute, err error) {
|
|
||||||
err = cache.ListAll(s.indexer, selector, func(m interface{}) {
|
|
||||||
ret = append(ret, m.(*v1alpha1.IngressRoute))
|
|
||||||
})
|
|
||||||
return ret, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// IngressRoutes returns an object that can list and get IngressRoutes.
|
|
||||||
func (s *ingressRouteLister) IngressRoutes(namespace string) IngressRouteNamespaceLister {
|
|
||||||
return ingressRouteNamespaceLister{indexer: s.indexer, namespace: namespace}
|
|
||||||
}
|
|
||||||
|
|
||||||
// IngressRouteNamespaceLister helps list and get IngressRoutes.
|
|
||||||
// All objects returned here must be treated as read-only.
|
|
||||||
type IngressRouteNamespaceLister interface {
|
|
||||||
// List lists all IngressRoutes in the indexer for a given namespace.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
List(selector labels.Selector) (ret []*v1alpha1.IngressRoute, err error)
|
|
||||||
// Get retrieves the IngressRoute from the indexer for a given namespace and name.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
Get(name string) (*v1alpha1.IngressRoute, error)
|
|
||||||
IngressRouteNamespaceListerExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// ingressRouteNamespaceLister implements the IngressRouteNamespaceLister
|
|
||||||
// interface.
|
|
||||||
type ingressRouteNamespaceLister struct {
|
|
||||||
indexer cache.Indexer
|
|
||||||
namespace string
|
|
||||||
}
|
|
||||||
|
|
||||||
// List lists all IngressRoutes in the indexer for a given namespace.
|
|
||||||
func (s ingressRouteNamespaceLister) List(selector labels.Selector) (ret []*v1alpha1.IngressRoute, err error) {
|
|
||||||
err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) {
|
|
||||||
ret = append(ret, m.(*v1alpha1.IngressRoute))
|
|
||||||
})
|
|
||||||
return ret, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get retrieves the IngressRoute from the indexer for a given namespace and name.
|
|
||||||
func (s ingressRouteNamespaceLister) Get(name string) (*v1alpha1.IngressRoute, error) {
|
|
||||||
obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if !exists {
|
|
||||||
return nil, errors.NewNotFound(v1alpha1.Resource("ingressroute"), name)
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.IngressRoute), nil
|
|
||||||
}
|
|
|
@ -1,107 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by lister-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
"k8s.io/apimachinery/pkg/api/errors"
|
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
|
||||||
"k8s.io/client-go/tools/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
// IngressRouteTCPLister helps list IngressRouteTCPs.
|
|
||||||
// All objects returned here must be treated as read-only.
|
|
||||||
type IngressRouteTCPLister interface {
|
|
||||||
// List lists all IngressRouteTCPs in the indexer.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
List(selector labels.Selector) (ret []*v1alpha1.IngressRouteTCP, err error)
|
|
||||||
// IngressRouteTCPs returns an object that can list and get IngressRouteTCPs.
|
|
||||||
IngressRouteTCPs(namespace string) IngressRouteTCPNamespaceLister
|
|
||||||
IngressRouteTCPListerExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// ingressRouteTCPLister implements the IngressRouteTCPLister interface.
|
|
||||||
type ingressRouteTCPLister struct {
|
|
||||||
indexer cache.Indexer
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewIngressRouteTCPLister returns a new IngressRouteTCPLister.
|
|
||||||
func NewIngressRouteTCPLister(indexer cache.Indexer) IngressRouteTCPLister {
|
|
||||||
return &ingressRouteTCPLister{indexer: indexer}
|
|
||||||
}
|
|
||||||
|
|
||||||
// List lists all IngressRouteTCPs in the indexer.
|
|
||||||
func (s *ingressRouteTCPLister) List(selector labels.Selector) (ret []*v1alpha1.IngressRouteTCP, err error) {
|
|
||||||
err = cache.ListAll(s.indexer, selector, func(m interface{}) {
|
|
||||||
ret = append(ret, m.(*v1alpha1.IngressRouteTCP))
|
|
||||||
})
|
|
||||||
return ret, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// IngressRouteTCPs returns an object that can list and get IngressRouteTCPs.
|
|
||||||
func (s *ingressRouteTCPLister) IngressRouteTCPs(namespace string) IngressRouteTCPNamespaceLister {
|
|
||||||
return ingressRouteTCPNamespaceLister{indexer: s.indexer, namespace: namespace}
|
|
||||||
}
|
|
||||||
|
|
||||||
// IngressRouteTCPNamespaceLister helps list and get IngressRouteTCPs.
|
|
||||||
// All objects returned here must be treated as read-only.
|
|
||||||
type IngressRouteTCPNamespaceLister interface {
|
|
||||||
// List lists all IngressRouteTCPs in the indexer for a given namespace.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
List(selector labels.Selector) (ret []*v1alpha1.IngressRouteTCP, err error)
|
|
||||||
// Get retrieves the IngressRouteTCP from the indexer for a given namespace and name.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
Get(name string) (*v1alpha1.IngressRouteTCP, error)
|
|
||||||
IngressRouteTCPNamespaceListerExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// ingressRouteTCPNamespaceLister implements the IngressRouteTCPNamespaceLister
|
|
||||||
// interface.
|
|
||||||
type ingressRouteTCPNamespaceLister struct {
|
|
||||||
indexer cache.Indexer
|
|
||||||
namespace string
|
|
||||||
}
|
|
||||||
|
|
||||||
// List lists all IngressRouteTCPs in the indexer for a given namespace.
|
|
||||||
func (s ingressRouteTCPNamespaceLister) List(selector labels.Selector) (ret []*v1alpha1.IngressRouteTCP, err error) {
|
|
||||||
err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) {
|
|
||||||
ret = append(ret, m.(*v1alpha1.IngressRouteTCP))
|
|
||||||
})
|
|
||||||
return ret, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get retrieves the IngressRouteTCP from the indexer for a given namespace and name.
|
|
||||||
func (s ingressRouteTCPNamespaceLister) Get(name string) (*v1alpha1.IngressRouteTCP, error) {
|
|
||||||
obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if !exists {
|
|
||||||
return nil, errors.NewNotFound(v1alpha1.Resource("ingressroutetcp"), name)
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.IngressRouteTCP), nil
|
|
||||||
}
|
|
|
@ -1,107 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by lister-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
"k8s.io/apimachinery/pkg/api/errors"
|
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
|
||||||
"k8s.io/client-go/tools/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
// IngressRouteUDPLister helps list IngressRouteUDPs.
|
|
||||||
// All objects returned here must be treated as read-only.
|
|
||||||
type IngressRouteUDPLister interface {
|
|
||||||
// List lists all IngressRouteUDPs in the indexer.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
List(selector labels.Selector) (ret []*v1alpha1.IngressRouteUDP, err error)
|
|
||||||
// IngressRouteUDPs returns an object that can list and get IngressRouteUDPs.
|
|
||||||
IngressRouteUDPs(namespace string) IngressRouteUDPNamespaceLister
|
|
||||||
IngressRouteUDPListerExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// ingressRouteUDPLister implements the IngressRouteUDPLister interface.
|
|
||||||
type ingressRouteUDPLister struct {
|
|
||||||
indexer cache.Indexer
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewIngressRouteUDPLister returns a new IngressRouteUDPLister.
|
|
||||||
func NewIngressRouteUDPLister(indexer cache.Indexer) IngressRouteUDPLister {
|
|
||||||
return &ingressRouteUDPLister{indexer: indexer}
|
|
||||||
}
|
|
||||||
|
|
||||||
// List lists all IngressRouteUDPs in the indexer.
|
|
||||||
func (s *ingressRouteUDPLister) List(selector labels.Selector) (ret []*v1alpha1.IngressRouteUDP, err error) {
|
|
||||||
err = cache.ListAll(s.indexer, selector, func(m interface{}) {
|
|
||||||
ret = append(ret, m.(*v1alpha1.IngressRouteUDP))
|
|
||||||
})
|
|
||||||
return ret, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// IngressRouteUDPs returns an object that can list and get IngressRouteUDPs.
|
|
||||||
func (s *ingressRouteUDPLister) IngressRouteUDPs(namespace string) IngressRouteUDPNamespaceLister {
|
|
||||||
return ingressRouteUDPNamespaceLister{indexer: s.indexer, namespace: namespace}
|
|
||||||
}
|
|
||||||
|
|
||||||
// IngressRouteUDPNamespaceLister helps list and get IngressRouteUDPs.
|
|
||||||
// All objects returned here must be treated as read-only.
|
|
||||||
type IngressRouteUDPNamespaceLister interface {
|
|
||||||
// List lists all IngressRouteUDPs in the indexer for a given namespace.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
List(selector labels.Selector) (ret []*v1alpha1.IngressRouteUDP, err error)
|
|
||||||
// Get retrieves the IngressRouteUDP from the indexer for a given namespace and name.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
Get(name string) (*v1alpha1.IngressRouteUDP, error)
|
|
||||||
IngressRouteUDPNamespaceListerExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// ingressRouteUDPNamespaceLister implements the IngressRouteUDPNamespaceLister
|
|
||||||
// interface.
|
|
||||||
type ingressRouteUDPNamespaceLister struct {
|
|
||||||
indexer cache.Indexer
|
|
||||||
namespace string
|
|
||||||
}
|
|
||||||
|
|
||||||
// List lists all IngressRouteUDPs in the indexer for a given namespace.
|
|
||||||
func (s ingressRouteUDPNamespaceLister) List(selector labels.Selector) (ret []*v1alpha1.IngressRouteUDP, err error) {
|
|
||||||
err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) {
|
|
||||||
ret = append(ret, m.(*v1alpha1.IngressRouteUDP))
|
|
||||||
})
|
|
||||||
return ret, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get retrieves the IngressRouteUDP from the indexer for a given namespace and name.
|
|
||||||
func (s ingressRouteUDPNamespaceLister) Get(name string) (*v1alpha1.IngressRouteUDP, error) {
|
|
||||||
obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if !exists {
|
|
||||||
return nil, errors.NewNotFound(v1alpha1.Resource("ingressrouteudp"), name)
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.IngressRouteUDP), nil
|
|
||||||
}
|
|
|
@ -1,107 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by lister-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
"k8s.io/apimachinery/pkg/api/errors"
|
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
|
||||||
"k8s.io/client-go/tools/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
// MiddlewareLister helps list Middlewares.
|
|
||||||
// All objects returned here must be treated as read-only.
|
|
||||||
type MiddlewareLister interface {
|
|
||||||
// List lists all Middlewares in the indexer.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
List(selector labels.Selector) (ret []*v1alpha1.Middleware, err error)
|
|
||||||
// Middlewares returns an object that can list and get Middlewares.
|
|
||||||
Middlewares(namespace string) MiddlewareNamespaceLister
|
|
||||||
MiddlewareListerExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// middlewareLister implements the MiddlewareLister interface.
|
|
||||||
type middlewareLister struct {
|
|
||||||
indexer cache.Indexer
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewMiddlewareLister returns a new MiddlewareLister.
|
|
||||||
func NewMiddlewareLister(indexer cache.Indexer) MiddlewareLister {
|
|
||||||
return &middlewareLister{indexer: indexer}
|
|
||||||
}
|
|
||||||
|
|
||||||
// List lists all Middlewares in the indexer.
|
|
||||||
func (s *middlewareLister) List(selector labels.Selector) (ret []*v1alpha1.Middleware, err error) {
|
|
||||||
err = cache.ListAll(s.indexer, selector, func(m interface{}) {
|
|
||||||
ret = append(ret, m.(*v1alpha1.Middleware))
|
|
||||||
})
|
|
||||||
return ret, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Middlewares returns an object that can list and get Middlewares.
|
|
||||||
func (s *middlewareLister) Middlewares(namespace string) MiddlewareNamespaceLister {
|
|
||||||
return middlewareNamespaceLister{indexer: s.indexer, namespace: namespace}
|
|
||||||
}
|
|
||||||
|
|
||||||
// MiddlewareNamespaceLister helps list and get Middlewares.
|
|
||||||
// All objects returned here must be treated as read-only.
|
|
||||||
type MiddlewareNamespaceLister interface {
|
|
||||||
// List lists all Middlewares in the indexer for a given namespace.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
List(selector labels.Selector) (ret []*v1alpha1.Middleware, err error)
|
|
||||||
// Get retrieves the Middleware from the indexer for a given namespace and name.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
Get(name string) (*v1alpha1.Middleware, error)
|
|
||||||
MiddlewareNamespaceListerExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// middlewareNamespaceLister implements the MiddlewareNamespaceLister
|
|
||||||
// interface.
|
|
||||||
type middlewareNamespaceLister struct {
|
|
||||||
indexer cache.Indexer
|
|
||||||
namespace string
|
|
||||||
}
|
|
||||||
|
|
||||||
// List lists all Middlewares in the indexer for a given namespace.
|
|
||||||
func (s middlewareNamespaceLister) List(selector labels.Selector) (ret []*v1alpha1.Middleware, err error) {
|
|
||||||
err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) {
|
|
||||||
ret = append(ret, m.(*v1alpha1.Middleware))
|
|
||||||
})
|
|
||||||
return ret, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get retrieves the Middleware from the indexer for a given namespace and name.
|
|
||||||
func (s middlewareNamespaceLister) Get(name string) (*v1alpha1.Middleware, error) {
|
|
||||||
obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if !exists {
|
|
||||||
return nil, errors.NewNotFound(v1alpha1.Resource("middleware"), name)
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.Middleware), nil
|
|
||||||
}
|
|
|
@ -1,107 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by lister-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
"k8s.io/apimachinery/pkg/api/errors"
|
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
|
||||||
"k8s.io/client-go/tools/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
// MiddlewareTCPLister helps list MiddlewareTCPs.
|
|
||||||
// All objects returned here must be treated as read-only.
|
|
||||||
type MiddlewareTCPLister interface {
|
|
||||||
// List lists all MiddlewareTCPs in the indexer.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
List(selector labels.Selector) (ret []*v1alpha1.MiddlewareTCP, err error)
|
|
||||||
// MiddlewareTCPs returns an object that can list and get MiddlewareTCPs.
|
|
||||||
MiddlewareTCPs(namespace string) MiddlewareTCPNamespaceLister
|
|
||||||
MiddlewareTCPListerExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// middlewareTCPLister implements the MiddlewareTCPLister interface.
|
|
||||||
type middlewareTCPLister struct {
|
|
||||||
indexer cache.Indexer
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewMiddlewareTCPLister returns a new MiddlewareTCPLister.
|
|
||||||
func NewMiddlewareTCPLister(indexer cache.Indexer) MiddlewareTCPLister {
|
|
||||||
return &middlewareTCPLister{indexer: indexer}
|
|
||||||
}
|
|
||||||
|
|
||||||
// List lists all MiddlewareTCPs in the indexer.
|
|
||||||
func (s *middlewareTCPLister) List(selector labels.Selector) (ret []*v1alpha1.MiddlewareTCP, err error) {
|
|
||||||
err = cache.ListAll(s.indexer, selector, func(m interface{}) {
|
|
||||||
ret = append(ret, m.(*v1alpha1.MiddlewareTCP))
|
|
||||||
})
|
|
||||||
return ret, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// MiddlewareTCPs returns an object that can list and get MiddlewareTCPs.
|
|
||||||
func (s *middlewareTCPLister) MiddlewareTCPs(namespace string) MiddlewareTCPNamespaceLister {
|
|
||||||
return middlewareTCPNamespaceLister{indexer: s.indexer, namespace: namespace}
|
|
||||||
}
|
|
||||||
|
|
||||||
// MiddlewareTCPNamespaceLister helps list and get MiddlewareTCPs.
|
|
||||||
// All objects returned here must be treated as read-only.
|
|
||||||
type MiddlewareTCPNamespaceLister interface {
|
|
||||||
// List lists all MiddlewareTCPs in the indexer for a given namespace.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
List(selector labels.Selector) (ret []*v1alpha1.MiddlewareTCP, err error)
|
|
||||||
// Get retrieves the MiddlewareTCP from the indexer for a given namespace and name.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
Get(name string) (*v1alpha1.MiddlewareTCP, error)
|
|
||||||
MiddlewareTCPNamespaceListerExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// middlewareTCPNamespaceLister implements the MiddlewareTCPNamespaceLister
|
|
||||||
// interface.
|
|
||||||
type middlewareTCPNamespaceLister struct {
|
|
||||||
indexer cache.Indexer
|
|
||||||
namespace string
|
|
||||||
}
|
|
||||||
|
|
||||||
// List lists all MiddlewareTCPs in the indexer for a given namespace.
|
|
||||||
func (s middlewareTCPNamespaceLister) List(selector labels.Selector) (ret []*v1alpha1.MiddlewareTCP, err error) {
|
|
||||||
err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) {
|
|
||||||
ret = append(ret, m.(*v1alpha1.MiddlewareTCP))
|
|
||||||
})
|
|
||||||
return ret, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get retrieves the MiddlewareTCP from the indexer for a given namespace and name.
|
|
||||||
func (s middlewareTCPNamespaceLister) Get(name string) (*v1alpha1.MiddlewareTCP, error) {
|
|
||||||
obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if !exists {
|
|
||||||
return nil, errors.NewNotFound(v1alpha1.Resource("middlewaretcp"), name)
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.MiddlewareTCP), nil
|
|
||||||
}
|
|
|
@ -1,107 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by lister-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
"k8s.io/apimachinery/pkg/api/errors"
|
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
|
||||||
"k8s.io/client-go/tools/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ServersTransportLister helps list ServersTransports.
|
|
||||||
// All objects returned here must be treated as read-only.
|
|
||||||
type ServersTransportLister interface {
|
|
||||||
// List lists all ServersTransports in the indexer.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
List(selector labels.Selector) (ret []*v1alpha1.ServersTransport, err error)
|
|
||||||
// ServersTransports returns an object that can list and get ServersTransports.
|
|
||||||
ServersTransports(namespace string) ServersTransportNamespaceLister
|
|
||||||
ServersTransportListerExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// serversTransportLister implements the ServersTransportLister interface.
|
|
||||||
type serversTransportLister struct {
|
|
||||||
indexer cache.Indexer
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewServersTransportLister returns a new ServersTransportLister.
|
|
||||||
func NewServersTransportLister(indexer cache.Indexer) ServersTransportLister {
|
|
||||||
return &serversTransportLister{indexer: indexer}
|
|
||||||
}
|
|
||||||
|
|
||||||
// List lists all ServersTransports in the indexer.
|
|
||||||
func (s *serversTransportLister) List(selector labels.Selector) (ret []*v1alpha1.ServersTransport, err error) {
|
|
||||||
err = cache.ListAll(s.indexer, selector, func(m interface{}) {
|
|
||||||
ret = append(ret, m.(*v1alpha1.ServersTransport))
|
|
||||||
})
|
|
||||||
return ret, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// ServersTransports returns an object that can list and get ServersTransports.
|
|
||||||
func (s *serversTransportLister) ServersTransports(namespace string) ServersTransportNamespaceLister {
|
|
||||||
return serversTransportNamespaceLister{indexer: s.indexer, namespace: namespace}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ServersTransportNamespaceLister helps list and get ServersTransports.
|
|
||||||
// All objects returned here must be treated as read-only.
|
|
||||||
type ServersTransportNamespaceLister interface {
|
|
||||||
// List lists all ServersTransports in the indexer for a given namespace.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
List(selector labels.Selector) (ret []*v1alpha1.ServersTransport, err error)
|
|
||||||
// Get retrieves the ServersTransport from the indexer for a given namespace and name.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
Get(name string) (*v1alpha1.ServersTransport, error)
|
|
||||||
ServersTransportNamespaceListerExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// serversTransportNamespaceLister implements the ServersTransportNamespaceLister
|
|
||||||
// interface.
|
|
||||||
type serversTransportNamespaceLister struct {
|
|
||||||
indexer cache.Indexer
|
|
||||||
namespace string
|
|
||||||
}
|
|
||||||
|
|
||||||
// List lists all ServersTransports in the indexer for a given namespace.
|
|
||||||
func (s serversTransportNamespaceLister) List(selector labels.Selector) (ret []*v1alpha1.ServersTransport, err error) {
|
|
||||||
err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) {
|
|
||||||
ret = append(ret, m.(*v1alpha1.ServersTransport))
|
|
||||||
})
|
|
||||||
return ret, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get retrieves the ServersTransport from the indexer for a given namespace and name.
|
|
||||||
func (s serversTransportNamespaceLister) Get(name string) (*v1alpha1.ServersTransport, error) {
|
|
||||||
obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if !exists {
|
|
||||||
return nil, errors.NewNotFound(v1alpha1.Resource("serverstransport"), name)
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.ServersTransport), nil
|
|
||||||
}
|
|
|
@ -1,107 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by lister-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
"k8s.io/apimachinery/pkg/api/errors"
|
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
|
||||||
"k8s.io/client-go/tools/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ServersTransportTCPLister helps list ServersTransportTCPs.
|
|
||||||
// All objects returned here must be treated as read-only.
|
|
||||||
type ServersTransportTCPLister interface {
|
|
||||||
// List lists all ServersTransportTCPs in the indexer.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
List(selector labels.Selector) (ret []*v1alpha1.ServersTransportTCP, err error)
|
|
||||||
// ServersTransportTCPs returns an object that can list and get ServersTransportTCPs.
|
|
||||||
ServersTransportTCPs(namespace string) ServersTransportTCPNamespaceLister
|
|
||||||
ServersTransportTCPListerExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// serversTransportTCPLister implements the ServersTransportTCPLister interface.
|
|
||||||
type serversTransportTCPLister struct {
|
|
||||||
indexer cache.Indexer
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewServersTransportTCPLister returns a new ServersTransportTCPLister.
|
|
||||||
func NewServersTransportTCPLister(indexer cache.Indexer) ServersTransportTCPLister {
|
|
||||||
return &serversTransportTCPLister{indexer: indexer}
|
|
||||||
}
|
|
||||||
|
|
||||||
// List lists all ServersTransportTCPs in the indexer.
|
|
||||||
func (s *serversTransportTCPLister) List(selector labels.Selector) (ret []*v1alpha1.ServersTransportTCP, err error) {
|
|
||||||
err = cache.ListAll(s.indexer, selector, func(m interface{}) {
|
|
||||||
ret = append(ret, m.(*v1alpha1.ServersTransportTCP))
|
|
||||||
})
|
|
||||||
return ret, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// ServersTransportTCPs returns an object that can list and get ServersTransportTCPs.
|
|
||||||
func (s *serversTransportTCPLister) ServersTransportTCPs(namespace string) ServersTransportTCPNamespaceLister {
|
|
||||||
return serversTransportTCPNamespaceLister{indexer: s.indexer, namespace: namespace}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ServersTransportTCPNamespaceLister helps list and get ServersTransportTCPs.
|
|
||||||
// All objects returned here must be treated as read-only.
|
|
||||||
type ServersTransportTCPNamespaceLister interface {
|
|
||||||
// List lists all ServersTransportTCPs in the indexer for a given namespace.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
List(selector labels.Selector) (ret []*v1alpha1.ServersTransportTCP, err error)
|
|
||||||
// Get retrieves the ServersTransportTCP from the indexer for a given namespace and name.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
Get(name string) (*v1alpha1.ServersTransportTCP, error)
|
|
||||||
ServersTransportTCPNamespaceListerExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// serversTransportTCPNamespaceLister implements the ServersTransportTCPNamespaceLister
|
|
||||||
// interface.
|
|
||||||
type serversTransportTCPNamespaceLister struct {
|
|
||||||
indexer cache.Indexer
|
|
||||||
namespace string
|
|
||||||
}
|
|
||||||
|
|
||||||
// List lists all ServersTransportTCPs in the indexer for a given namespace.
|
|
||||||
func (s serversTransportTCPNamespaceLister) List(selector labels.Selector) (ret []*v1alpha1.ServersTransportTCP, err error) {
|
|
||||||
err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) {
|
|
||||||
ret = append(ret, m.(*v1alpha1.ServersTransportTCP))
|
|
||||||
})
|
|
||||||
return ret, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get retrieves the ServersTransportTCP from the indexer for a given namespace and name.
|
|
||||||
func (s serversTransportTCPNamespaceLister) Get(name string) (*v1alpha1.ServersTransportTCP, error) {
|
|
||||||
obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if !exists {
|
|
||||||
return nil, errors.NewNotFound(v1alpha1.Resource("serverstransporttcp"), name)
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.ServersTransportTCP), nil
|
|
||||||
}
|
|
|
@ -1,107 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by lister-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
"k8s.io/apimachinery/pkg/api/errors"
|
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
|
||||||
"k8s.io/client-go/tools/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TLSOptionLister helps list TLSOptions.
|
|
||||||
// All objects returned here must be treated as read-only.
|
|
||||||
type TLSOptionLister interface {
|
|
||||||
// List lists all TLSOptions in the indexer.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
List(selector labels.Selector) (ret []*v1alpha1.TLSOption, err error)
|
|
||||||
// TLSOptions returns an object that can list and get TLSOptions.
|
|
||||||
TLSOptions(namespace string) TLSOptionNamespaceLister
|
|
||||||
TLSOptionListerExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// tLSOptionLister implements the TLSOptionLister interface.
|
|
||||||
type tLSOptionLister struct {
|
|
||||||
indexer cache.Indexer
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewTLSOptionLister returns a new TLSOptionLister.
|
|
||||||
func NewTLSOptionLister(indexer cache.Indexer) TLSOptionLister {
|
|
||||||
return &tLSOptionLister{indexer: indexer}
|
|
||||||
}
|
|
||||||
|
|
||||||
// List lists all TLSOptions in the indexer.
|
|
||||||
func (s *tLSOptionLister) List(selector labels.Selector) (ret []*v1alpha1.TLSOption, err error) {
|
|
||||||
err = cache.ListAll(s.indexer, selector, func(m interface{}) {
|
|
||||||
ret = append(ret, m.(*v1alpha1.TLSOption))
|
|
||||||
})
|
|
||||||
return ret, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// TLSOptions returns an object that can list and get TLSOptions.
|
|
||||||
func (s *tLSOptionLister) TLSOptions(namespace string) TLSOptionNamespaceLister {
|
|
||||||
return tLSOptionNamespaceLister{indexer: s.indexer, namespace: namespace}
|
|
||||||
}
|
|
||||||
|
|
||||||
// TLSOptionNamespaceLister helps list and get TLSOptions.
|
|
||||||
// All objects returned here must be treated as read-only.
|
|
||||||
type TLSOptionNamespaceLister interface {
|
|
||||||
// List lists all TLSOptions in the indexer for a given namespace.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
List(selector labels.Selector) (ret []*v1alpha1.TLSOption, err error)
|
|
||||||
// Get retrieves the TLSOption from the indexer for a given namespace and name.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
Get(name string) (*v1alpha1.TLSOption, error)
|
|
||||||
TLSOptionNamespaceListerExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// tLSOptionNamespaceLister implements the TLSOptionNamespaceLister
|
|
||||||
// interface.
|
|
||||||
type tLSOptionNamespaceLister struct {
|
|
||||||
indexer cache.Indexer
|
|
||||||
namespace string
|
|
||||||
}
|
|
||||||
|
|
||||||
// List lists all TLSOptions in the indexer for a given namespace.
|
|
||||||
func (s tLSOptionNamespaceLister) List(selector labels.Selector) (ret []*v1alpha1.TLSOption, err error) {
|
|
||||||
err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) {
|
|
||||||
ret = append(ret, m.(*v1alpha1.TLSOption))
|
|
||||||
})
|
|
||||||
return ret, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get retrieves the TLSOption from the indexer for a given namespace and name.
|
|
||||||
func (s tLSOptionNamespaceLister) Get(name string) (*v1alpha1.TLSOption, error) {
|
|
||||||
obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if !exists {
|
|
||||||
return nil, errors.NewNotFound(v1alpha1.Resource("tlsoption"), name)
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.TLSOption), nil
|
|
||||||
}
|
|
|
@ -1,107 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by lister-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
"k8s.io/apimachinery/pkg/api/errors"
|
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
|
||||||
"k8s.io/client-go/tools/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TLSStoreLister helps list TLSStores.
|
|
||||||
// All objects returned here must be treated as read-only.
|
|
||||||
type TLSStoreLister interface {
|
|
||||||
// List lists all TLSStores in the indexer.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
List(selector labels.Selector) (ret []*v1alpha1.TLSStore, err error)
|
|
||||||
// TLSStores returns an object that can list and get TLSStores.
|
|
||||||
TLSStores(namespace string) TLSStoreNamespaceLister
|
|
||||||
TLSStoreListerExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// tLSStoreLister implements the TLSStoreLister interface.
|
|
||||||
type tLSStoreLister struct {
|
|
||||||
indexer cache.Indexer
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewTLSStoreLister returns a new TLSStoreLister.
|
|
||||||
func NewTLSStoreLister(indexer cache.Indexer) TLSStoreLister {
|
|
||||||
return &tLSStoreLister{indexer: indexer}
|
|
||||||
}
|
|
||||||
|
|
||||||
// List lists all TLSStores in the indexer.
|
|
||||||
func (s *tLSStoreLister) List(selector labels.Selector) (ret []*v1alpha1.TLSStore, err error) {
|
|
||||||
err = cache.ListAll(s.indexer, selector, func(m interface{}) {
|
|
||||||
ret = append(ret, m.(*v1alpha1.TLSStore))
|
|
||||||
})
|
|
||||||
return ret, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// TLSStores returns an object that can list and get TLSStores.
|
|
||||||
func (s *tLSStoreLister) TLSStores(namespace string) TLSStoreNamespaceLister {
|
|
||||||
return tLSStoreNamespaceLister{indexer: s.indexer, namespace: namespace}
|
|
||||||
}
|
|
||||||
|
|
||||||
// TLSStoreNamespaceLister helps list and get TLSStores.
|
|
||||||
// All objects returned here must be treated as read-only.
|
|
||||||
type TLSStoreNamespaceLister interface {
|
|
||||||
// List lists all TLSStores in the indexer for a given namespace.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
List(selector labels.Selector) (ret []*v1alpha1.TLSStore, err error)
|
|
||||||
// Get retrieves the TLSStore from the indexer for a given namespace and name.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
Get(name string) (*v1alpha1.TLSStore, error)
|
|
||||||
TLSStoreNamespaceListerExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// tLSStoreNamespaceLister implements the TLSStoreNamespaceLister
|
|
||||||
// interface.
|
|
||||||
type tLSStoreNamespaceLister struct {
|
|
||||||
indexer cache.Indexer
|
|
||||||
namespace string
|
|
||||||
}
|
|
||||||
|
|
||||||
// List lists all TLSStores in the indexer for a given namespace.
|
|
||||||
func (s tLSStoreNamespaceLister) List(selector labels.Selector) (ret []*v1alpha1.TLSStore, err error) {
|
|
||||||
err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) {
|
|
||||||
ret = append(ret, m.(*v1alpha1.TLSStore))
|
|
||||||
})
|
|
||||||
return ret, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get retrieves the TLSStore from the indexer for a given namespace and name.
|
|
||||||
func (s tLSStoreNamespaceLister) Get(name string) (*v1alpha1.TLSStore, error) {
|
|
||||||
obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if !exists {
|
|
||||||
return nil, errors.NewNotFound(v1alpha1.Resource("tlsstore"), name)
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.TLSStore), nil
|
|
||||||
}
|
|
|
@ -1,107 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016-2020 Containous SAS; 2020-2023 Traefik Labs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Code generated by lister-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
v1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
"k8s.io/apimachinery/pkg/api/errors"
|
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
|
||||||
"k8s.io/client-go/tools/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TraefikServiceLister helps list TraefikServices.
|
|
||||||
// All objects returned here must be treated as read-only.
|
|
||||||
type TraefikServiceLister interface {
|
|
||||||
// List lists all TraefikServices in the indexer.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
List(selector labels.Selector) (ret []*v1alpha1.TraefikService, err error)
|
|
||||||
// TraefikServices returns an object that can list and get TraefikServices.
|
|
||||||
TraefikServices(namespace string) TraefikServiceNamespaceLister
|
|
||||||
TraefikServiceListerExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// traefikServiceLister implements the TraefikServiceLister interface.
|
|
||||||
type traefikServiceLister struct {
|
|
||||||
indexer cache.Indexer
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewTraefikServiceLister returns a new TraefikServiceLister.
|
|
||||||
func NewTraefikServiceLister(indexer cache.Indexer) TraefikServiceLister {
|
|
||||||
return &traefikServiceLister{indexer: indexer}
|
|
||||||
}
|
|
||||||
|
|
||||||
// List lists all TraefikServices in the indexer.
|
|
||||||
func (s *traefikServiceLister) List(selector labels.Selector) (ret []*v1alpha1.TraefikService, err error) {
|
|
||||||
err = cache.ListAll(s.indexer, selector, func(m interface{}) {
|
|
||||||
ret = append(ret, m.(*v1alpha1.TraefikService))
|
|
||||||
})
|
|
||||||
return ret, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// TraefikServices returns an object that can list and get TraefikServices.
|
|
||||||
func (s *traefikServiceLister) TraefikServices(namespace string) TraefikServiceNamespaceLister {
|
|
||||||
return traefikServiceNamespaceLister{indexer: s.indexer, namespace: namespace}
|
|
||||||
}
|
|
||||||
|
|
||||||
// TraefikServiceNamespaceLister helps list and get TraefikServices.
|
|
||||||
// All objects returned here must be treated as read-only.
|
|
||||||
type TraefikServiceNamespaceLister interface {
|
|
||||||
// List lists all TraefikServices in the indexer for a given namespace.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
List(selector labels.Selector) (ret []*v1alpha1.TraefikService, err error)
|
|
||||||
// Get retrieves the TraefikService from the indexer for a given namespace and name.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
Get(name string) (*v1alpha1.TraefikService, error)
|
|
||||||
TraefikServiceNamespaceListerExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// traefikServiceNamespaceLister implements the TraefikServiceNamespaceLister
|
|
||||||
// interface.
|
|
||||||
type traefikServiceNamespaceLister struct {
|
|
||||||
indexer cache.Indexer
|
|
||||||
namespace string
|
|
||||||
}
|
|
||||||
|
|
||||||
// List lists all TraefikServices in the indexer for a given namespace.
|
|
||||||
func (s traefikServiceNamespaceLister) List(selector labels.Selector) (ret []*v1alpha1.TraefikService, err error) {
|
|
||||||
err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) {
|
|
||||||
ret = append(ret, m.(*v1alpha1.TraefikService))
|
|
||||||
})
|
|
||||||
return ret, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get retrieves the TraefikService from the indexer for a given namespace and name.
|
|
||||||
func (s traefikServiceNamespaceLister) Get(name string) (*v1alpha1.TraefikService, error) {
|
|
||||||
obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if !exists {
|
|
||||||
return nil, errors.NewNotFound(v1alpha1.Resource("traefikservice"), name)
|
|
||||||
}
|
|
||||||
return obj.(*v1alpha1.TraefikService), nil
|
|
||||||
}
|
|
|
@ -104,7 +104,6 @@ func (p *Provider) Provide(configurationChan chan<- dynamic.Message, pool *safe.
|
||||||
logger := log.With().Str(logs.ProviderName, providerName).Logger()
|
logger := log.With().Str(logs.ProviderName, providerName).Logger()
|
||||||
ctxLog := logger.WithContext(context.Background())
|
ctxLog := logger.WithContext(context.Background())
|
||||||
|
|
||||||
logger.Warn().Msg("CRDs API Group \"traefik.containo.us\" is deprecated, and its support will end starting with Traefik v3. Please use the API Group \"traefik.io\" instead.")
|
|
||||||
logger.Warn().Msg("CRDs API Version \"traefik.io/v1alpha1\" will not be supported in Traefik v3 itself. However, an automatic migration path to the next version will be available.")
|
logger.Warn().Msg("CRDs API Version \"traefik.io/v1alpha1\" will not be supported in Traefik v3 itself. However, an automatic migration path to the next version will be available.")
|
||||||
|
|
||||||
k8sClient, err := p.newK8sClient(ctxLog)
|
k8sClient, err := p.newK8sClient(ctxLog)
|
||||||
|
|
|
@ -1,63 +0,0 @@
|
||||||
package crd
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
"github.com/rs/zerolog/log"
|
|
||||||
"github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned/scheme"
|
|
||||||
containousv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
"github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikio/v1alpha1"
|
|
||||||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
|
||||||
"k8s.io/apimachinery/pkg/conversion"
|
|
||||||
k8sruntime "k8s.io/apimachinery/pkg/runtime"
|
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
|
||||||
)
|
|
||||||
|
|
||||||
var GroupVersioner k8sruntime.GroupVersioner
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
GroupVersioner = k8sruntime.NewMultiGroupVersioner(
|
|
||||||
v1alpha1.SchemeGroupVersion,
|
|
||||||
schema.GroupKind{Group: containousv1alpha1.GroupName, Kind: containousv1alpha1.IngressRoute{}.Kind},
|
|
||||||
schema.GroupKind{Group: containousv1alpha1.GroupName, Kind: containousv1alpha1.IngressRouteTCP{}.Kind},
|
|
||||||
schema.GroupKind{Group: containousv1alpha1.GroupName, Kind: containousv1alpha1.IngressRouteUDP{}.Kind},
|
|
||||||
schema.GroupKind{Group: containousv1alpha1.GroupName, Kind: containousv1alpha1.Middleware{}.Kind},
|
|
||||||
schema.GroupKind{Group: containousv1alpha1.GroupName, Kind: containousv1alpha1.MiddlewareTCP{}.Kind},
|
|
||||||
schema.GroupKind{Group: containousv1alpha1.GroupName, Kind: containousv1alpha1.TLSOption{}.Kind},
|
|
||||||
schema.GroupKind{Group: containousv1alpha1.GroupName, Kind: containousv1alpha1.TLSStore{}.Kind},
|
|
||||||
schema.GroupKind{Group: containousv1alpha1.GroupName, Kind: containousv1alpha1.ServersTransport{}.Kind},
|
|
||||||
schema.GroupKind{Group: containousv1alpha1.GroupName, Kind: containousv1alpha1.TraefikService{}.Kind},
|
|
||||||
)
|
|
||||||
|
|
||||||
convert := map[interface{}]interface{}{}
|
|
||||||
convert[&containousv1alpha1.IngressRoute{}] = &v1alpha1.IngressRoute{}
|
|
||||||
convert[&containousv1alpha1.IngressRouteTCP{}] = &v1alpha1.IngressRouteTCP{}
|
|
||||||
convert[&containousv1alpha1.IngressRouteUDP{}] = &v1alpha1.IngressRouteUDP{}
|
|
||||||
convert[&containousv1alpha1.Middleware{}] = &v1alpha1.Middleware{}
|
|
||||||
convert[&containousv1alpha1.MiddlewareTCP{}] = &v1alpha1.MiddlewareTCP{}
|
|
||||||
convert[&containousv1alpha1.TLSOption{}] = &v1alpha1.TLSOption{}
|
|
||||||
convert[&containousv1alpha1.TLSStore{}] = &v1alpha1.TLSStore{}
|
|
||||||
convert[&containousv1alpha1.ServersTransport{}] = &v1alpha1.ServersTransport{}
|
|
||||||
convert[&containousv1alpha1.TraefikService{}] = &v1alpha1.TraefikService{}
|
|
||||||
|
|
||||||
for interfaceA, interfaceB := range convert {
|
|
||||||
err := scheme.Scheme.AddConversionFunc(interfaceA, interfaceB, func(a, b interface{}, scope conversion.Scope) error {
|
|
||||||
unstruct, err := k8sruntime.DefaultUnstructuredConverter.ToUnstructured(a)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("failed to unstruct interface: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
u := &unstructured.Unstructured{Object: unstruct}
|
|
||||||
u.SetGroupVersionKind(v1alpha1.SchemeGroupVersion.WithKind(u.GetKind()))
|
|
||||||
|
|
||||||
if err = k8sruntime.DefaultUnstructuredConverter.FromUnstructured(u.Object, b); err != nil {
|
|
||||||
return fmt.Errorf("failed to convert interface: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Msg("Failed to add conversion func.")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
// +k8s:deepcopy-gen=package
|
|
||||||
|
|
||||||
// Package v1alpha1 is the v1alpha1 version of the API.
|
|
||||||
// +groupName=traefik.containo.us
|
|
||||||
// +groupGoName=TraefikContainous
|
|
||||||
package v1alpha1
|
|
|
@ -1,175 +0,0 @@
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/traefik/traefik/v3/pkg/config/dynamic"
|
|
||||||
"github.com/traefik/traefik/v3/pkg/types"
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
"k8s.io/apimachinery/pkg/util/intstr"
|
|
||||||
)
|
|
||||||
|
|
||||||
// IngressRouteSpec defines the desired state of IngressRoute.
|
|
||||||
type IngressRouteSpec struct {
|
|
||||||
// Routes defines the list of routes.
|
|
||||||
Routes []Route `json:"routes"`
|
|
||||||
// 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/v3.0/routing/entrypoints/
|
|
||||||
// Default: all.
|
|
||||||
EntryPoints []string `json:"entryPoints,omitempty"`
|
|
||||||
// TLS defines the TLS configuration.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#tls
|
|
||||||
TLS *TLS `json:"tls,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// Route holds the HTTP route configuration.
|
|
||||||
type Route struct {
|
|
||||||
// Match defines the router's rule.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#rule
|
|
||||||
Match string `json:"match"`
|
|
||||||
// Kind defines the kind of the route.
|
|
||||||
// Rule is the only supported kind.
|
|
||||||
// +kubebuilder:validation:Enum=Rule
|
|
||||||
Kind string `json:"kind"`
|
|
||||||
// Priority defines the router's priority.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#priority
|
|
||||||
Priority int `json:"priority,omitempty"`
|
|
||||||
// Services defines the list of Service.
|
|
||||||
// It can contain any combination of TraefikService and/or reference to a Kubernetes Service.
|
|
||||||
Services []Service `json:"services,omitempty"`
|
|
||||||
// Middlewares defines the list of references to Middleware resources.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-middleware
|
|
||||||
Middlewares []MiddlewareRef `json:"middlewares,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// TLS holds the TLS configuration.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#tls
|
|
||||||
type TLS struct {
|
|
||||||
// SecretName is the name of the referenced Kubernetes Secret to specify the certificate details.
|
|
||||||
SecretName string `json:"secretName,omitempty"`
|
|
||||||
// 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/v3.0/https/tls/#tls-options
|
|
||||||
Options *TLSOptionRef `json:"options,omitempty"`
|
|
||||||
// Store defines the reference to the TLSStore, that will be used to store certificates.
|
|
||||||
// Please note that only `default` TLSStore can be used.
|
|
||||||
Store *TLSStoreRef `json:"store,omitempty"`
|
|
||||||
// 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/v3.0/https/acme/#certificate-resolvers
|
|
||||||
CertResolver string `json:"certResolver,omitempty"`
|
|
||||||
// Domains defines the list of domains that will be used to issue certificates.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#domains
|
|
||||||
Domains []types.Domain `json:"domains,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// TLSOptionRef is a reference to a TLSOption resource.
|
|
||||||
type TLSOptionRef struct {
|
|
||||||
// Name defines the name of the referenced TLSOption.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-tlsoption
|
|
||||||
Name string `json:"name"`
|
|
||||||
// Namespace defines the namespace of the referenced TLSOption.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-tlsoption
|
|
||||||
Namespace string `json:"namespace,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// TLSStoreRef is a reference to a TLSStore resource.
|
|
||||||
type TLSStoreRef struct {
|
|
||||||
// Name defines the name of the referenced TLSStore.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-tlsstore
|
|
||||||
Name string `json:"name"`
|
|
||||||
// Namespace defines the namespace of the referenced TLSStore.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#kind-tlsstore
|
|
||||||
Namespace string `json:"namespace,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// LoadBalancerSpec defines the desired state of LoadBalancer.
|
|
||||||
// It can reference either a Kubernetes Service object (a load-balancer of servers),
|
|
||||||
// or a TraefikService object (a load-balancer of Traefik services).
|
|
||||||
type LoadBalancerSpec struct {
|
|
||||||
// Name defines the name of the referenced Kubernetes Service or TraefikService.
|
|
||||||
// The differentiation between the two is specified in the Kind field.
|
|
||||||
Name string `json:"name"`
|
|
||||||
// Kind defines the kind of the Service.
|
|
||||||
// +kubebuilder:validation:Enum=Service;TraefikService
|
|
||||||
Kind string `json:"kind,omitempty"`
|
|
||||||
// Namespace defines the namespace of the referenced Kubernetes Service or TraefikService.
|
|
||||||
Namespace string `json:"namespace,omitempty"`
|
|
||||||
// Sticky defines the sticky sessions configuration.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#sticky-sessions
|
|
||||||
Sticky *dynamic.Sticky `json:"sticky,omitempty"`
|
|
||||||
// Port defines the port of a Kubernetes Service.
|
|
||||||
// This can be a reference to a named port.
|
|
||||||
Port intstr.IntOrString `json:"port,omitempty"`
|
|
||||||
// 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.
|
|
||||||
Scheme string `json:"scheme,omitempty"`
|
|
||||||
// Strategy defines the load balancing strategy between the servers.
|
|
||||||
// RoundRobin is the only supported value at the moment.
|
|
||||||
Strategy string `json:"strategy,omitempty"`
|
|
||||||
// PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service.
|
|
||||||
// By default, passHostHeader is true.
|
|
||||||
PassHostHeader *bool `json:"passHostHeader,omitempty"`
|
|
||||||
// ResponseForwarding defines how Traefik forwards the response from the upstream Kubernetes Service to the client.
|
|
||||||
ResponseForwarding *ResponseForwarding `json:"responseForwarding,omitempty"`
|
|
||||||
// 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.
|
|
||||||
ServersTransport string `json:"serversTransport,omitempty"`
|
|
||||||
// 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).
|
|
||||||
Weight *int `json:"weight,omitempty"`
|
|
||||||
// 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.
|
|
||||||
NativeLB bool `json:"nativeLB,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type ResponseForwarding struct {
|
|
||||||
// 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
|
|
||||||
FlushInterval string `json:"flushInterval,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// Service defines an upstream HTTP service to proxy traffic to.
|
|
||||||
type Service struct {
|
|
||||||
LoadBalancerSpec `json:",inline"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// MiddlewareRef is a reference to a Middleware resource.
|
|
||||||
type MiddlewareRef struct {
|
|
||||||
// Name defines the name of the referenced Middleware resource.
|
|
||||||
Name string `json:"name"`
|
|
||||||
// Namespace defines the namespace of the referenced Middleware resource.
|
|
||||||
Namespace string `json:"namespace,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +genclient
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
// +kubebuilder:storageversion
|
|
||||||
|
|
||||||
// IngressRoute is the CRD implementation of a Traefik HTTP Router.
|
|
||||||
type IngressRoute struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
// Standard object's metadata.
|
|
||||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
||||||
metav1.ObjectMeta `json:"metadata"`
|
|
||||||
|
|
||||||
Spec IngressRouteSpec `json:"spec"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
|
|
||||||
// IngressRouteList is a collection of IngressRoute.
|
|
||||||
type IngressRouteList struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
// Standard object's metadata.
|
|
||||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
||||||
metav1.ListMeta `json:"metadata"`
|
|
||||||
|
|
||||||
// Items is the list of IngressRoute.
|
|
||||||
Items []IngressRoute `json:"items"`
|
|
||||||
}
|
|
|
@ -1,113 +0,0 @@
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/traefik/traefik/v3/pkg/config/dynamic"
|
|
||||||
"github.com/traefik/traefik/v3/pkg/types"
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
"k8s.io/apimachinery/pkg/util/intstr"
|
|
||||||
)
|
|
||||||
|
|
||||||
// IngressRouteTCPSpec defines the desired state of IngressRouteTCP.
|
|
||||||
type IngressRouteTCPSpec struct {
|
|
||||||
// Routes defines the list of routes.
|
|
||||||
Routes []RouteTCP `json:"routes"`
|
|
||||||
// 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/v3.0/routing/entrypoints/
|
|
||||||
// Default: all.
|
|
||||||
EntryPoints []string `json:"entryPoints,omitempty"`
|
|
||||||
// TLS defines the TLS configuration on a layer 4 / TCP Route.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#tls_1
|
|
||||||
TLS *TLSTCP `json:"tls,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// RouteTCP holds the TCP route configuration.
|
|
||||||
type RouteTCP struct {
|
|
||||||
// Match defines the router's rule.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#rule_1
|
|
||||||
Match string `json:"match"`
|
|
||||||
// Priority defines the router's priority.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#priority_1
|
|
||||||
Priority int `json:"priority,omitempty"`
|
|
||||||
// Services defines the list of TCP services.
|
|
||||||
Services []ServiceTCP `json:"services,omitempty"`
|
|
||||||
// Middlewares defines the list of references to MiddlewareTCP resources.
|
|
||||||
Middlewares []ObjectReference `json:"middlewares,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// TLSTCP holds the TLS configuration for an IngressRouteTCP.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#tls_1
|
|
||||||
type TLSTCP struct {
|
|
||||||
// SecretName is the name of the referenced Kubernetes Secret to specify the certificate details.
|
|
||||||
SecretName string `json:"secretName,omitempty"`
|
|
||||||
// Passthrough defines whether a TLS router will terminate the TLS connection.
|
|
||||||
Passthrough bool `json:"passthrough,omitempty"`
|
|
||||||
// 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/v3.0/https/tls/#tls-options
|
|
||||||
Options *ObjectReference `json:"options,omitempty"`
|
|
||||||
// Store defines the reference to the TLSStore, that will be used to store certificates.
|
|
||||||
// Please note that only `default` TLSStore can be used.
|
|
||||||
Store *ObjectReference `json:"store,omitempty"`
|
|
||||||
// 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/v3.0/https/acme/#certificate-resolvers
|
|
||||||
CertResolver string `json:"certResolver,omitempty"`
|
|
||||||
// Domains defines the list of domains that will be used to issue certificates.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/routing/routers/#domains
|
|
||||||
Domains []types.Domain `json:"domains,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ServiceTCP defines an upstream TCP service to proxy traffic to.
|
|
||||||
type ServiceTCP struct {
|
|
||||||
// Name defines the name of the referenced Kubernetes Service.
|
|
||||||
Name string `json:"name"`
|
|
||||||
// Namespace defines the namespace of the referenced Kubernetes Service.
|
|
||||||
Namespace string `json:"namespace,omitempty"`
|
|
||||||
// Port defines the port of a Kubernetes Service.
|
|
||||||
// This can be a reference to a named port.
|
|
||||||
Port intstr.IntOrString `json:"port"`
|
|
||||||
// Weight defines the weight used when balancing requests between multiple Kubernetes Service.
|
|
||||||
Weight *int `json:"weight,omitempty"`
|
|
||||||
// ProxyProtocol defines the PROXY protocol configuration.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#proxy-protocol
|
|
||||||
ProxyProtocol *dynamic.ProxyProtocol `json:"proxyProtocol,omitempty"`
|
|
||||||
// ServersTransport defines the name of ServersTransportTCP resource to use.
|
|
||||||
// It allows to configure the transport between Traefik and your servers.
|
|
||||||
// Can only be used on a Kubernetes Service.
|
|
||||||
ServersTransport string `json:"serversTransport,omitempty"`
|
|
||||||
// TLS determines whether to use TLS when dialing with the backend.
|
|
||||||
TLS bool `json:"tls,omitempty"`
|
|
||||||
// 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.
|
|
||||||
NativeLB bool `json:"nativeLB,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +genclient
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
// +kubebuilder:storageversion
|
|
||||||
|
|
||||||
// IngressRouteTCP is the CRD implementation of a Traefik TCP Router.
|
|
||||||
type IngressRouteTCP struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
// Standard object's metadata.
|
|
||||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
||||||
metav1.ObjectMeta `json:"metadata"`
|
|
||||||
|
|
||||||
Spec IngressRouteTCPSpec `json:"spec"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
|
|
||||||
// IngressRouteTCPList is a collection of IngressRouteTCP.
|
|
||||||
type IngressRouteTCPList struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
// Standard object's metadata.
|
|
||||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
||||||
metav1.ListMeta `json:"metadata"`
|
|
||||||
|
|
||||||
// Items is the list of IngressRouteTCP.
|
|
||||||
Items []IngressRouteTCP `json:"items"`
|
|
||||||
}
|
|
|
@ -1,68 +0,0 @@
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
"k8s.io/apimachinery/pkg/util/intstr"
|
|
||||||
)
|
|
||||||
|
|
||||||
// IngressRouteUDPSpec defines the desired state of a IngressRouteUDP.
|
|
||||||
type IngressRouteUDPSpec struct {
|
|
||||||
// Routes defines the list of routes.
|
|
||||||
Routes []RouteUDP `json:"routes"`
|
|
||||||
// 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/v3.0/routing/entrypoints/
|
|
||||||
// Default: all.
|
|
||||||
EntryPoints []string `json:"entryPoints,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// RouteUDP holds the UDP route configuration.
|
|
||||||
type RouteUDP struct {
|
|
||||||
// Services defines the list of UDP services.
|
|
||||||
Services []ServiceUDP `json:"services,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ServiceUDP defines an upstream UDP service to proxy traffic to.
|
|
||||||
type ServiceUDP struct {
|
|
||||||
// Name defines the name of the referenced Kubernetes Service.
|
|
||||||
Name string `json:"name"`
|
|
||||||
// Namespace defines the namespace of the referenced Kubernetes Service.
|
|
||||||
Namespace string `json:"namespace,omitempty"`
|
|
||||||
// Port defines the port of a Kubernetes Service.
|
|
||||||
// This can be a reference to a named port.
|
|
||||||
Port intstr.IntOrString `json:"port"`
|
|
||||||
// Weight defines the weight used when balancing requests between multiple Kubernetes Service.
|
|
||||||
Weight *int `json:"weight,omitempty"`
|
|
||||||
// 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.
|
|
||||||
NativeLB bool `json:"nativeLB,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +genclient
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
// +kubebuilder:storageversion
|
|
||||||
|
|
||||||
// IngressRouteUDP is a CRD implementation of a Traefik UDP Router.
|
|
||||||
type IngressRouteUDP struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
// Standard object's metadata.
|
|
||||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
||||||
metav1.ObjectMeta `json:"metadata"`
|
|
||||||
|
|
||||||
Spec IngressRouteUDPSpec `json:"spec"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
|
|
||||||
// IngressRouteUDPList is a collection of IngressRouteUDP.
|
|
||||||
type IngressRouteUDPList struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
// Standard object's metadata.
|
|
||||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
||||||
metav1.ListMeta `json:"metadata"`
|
|
||||||
|
|
||||||
// Items is the list of IngressRouteUDP.
|
|
||||||
Items []IngressRouteUDP `json:"items"`
|
|
||||||
}
|
|
|
@ -1,223 +0,0 @@
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/traefik/traefik/v3/pkg/config/dynamic"
|
|
||||||
apiextensionv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
"k8s.io/apimachinery/pkg/util/intstr"
|
|
||||||
)
|
|
||||||
|
|
||||||
// +genclient
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
// +kubebuilder:storageversion
|
|
||||||
|
|
||||||
// Middleware is the CRD implementation of a Traefik Middleware.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/overview/
|
|
||||||
type Middleware struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
// Standard object's metadata.
|
|
||||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
||||||
metav1.ObjectMeta `json:"metadata"`
|
|
||||||
|
|
||||||
Spec MiddlewareSpec `json:"spec"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen=true
|
|
||||||
|
|
||||||
// MiddlewareSpec defines the desired state of a Middleware.
|
|
||||||
type MiddlewareSpec struct {
|
|
||||||
AddPrefix *dynamic.AddPrefix `json:"addPrefix,omitempty"`
|
|
||||||
StripPrefix *dynamic.StripPrefix `json:"stripPrefix,omitempty"`
|
|
||||||
StripPrefixRegex *dynamic.StripPrefixRegex `json:"stripPrefixRegex,omitempty"`
|
|
||||||
ReplacePath *dynamic.ReplacePath `json:"replacePath,omitempty"`
|
|
||||||
ReplacePathRegex *dynamic.ReplacePathRegex `json:"replacePathRegex,omitempty"`
|
|
||||||
Chain *Chain `json:"chain,omitempty"`
|
|
||||||
IPAllowList *dynamic.IPAllowList `json:"ipAllowList,omitempty"`
|
|
||||||
Headers *dynamic.Headers `json:"headers,omitempty"`
|
|
||||||
Errors *ErrorPage `json:"errors,omitempty"`
|
|
||||||
RateLimit *RateLimit `json:"rateLimit,omitempty"`
|
|
||||||
RedirectRegex *dynamic.RedirectRegex `json:"redirectRegex,omitempty"`
|
|
||||||
RedirectScheme *dynamic.RedirectScheme `json:"redirectScheme,omitempty"`
|
|
||||||
BasicAuth *BasicAuth `json:"basicAuth,omitempty"`
|
|
||||||
DigestAuth *DigestAuth `json:"digestAuth,omitempty"`
|
|
||||||
ForwardAuth *ForwardAuth `json:"forwardAuth,omitempty"`
|
|
||||||
InFlightReq *dynamic.InFlightReq `json:"inFlightReq,omitempty"`
|
|
||||||
Buffering *dynamic.Buffering `json:"buffering,omitempty"`
|
|
||||||
CircuitBreaker *CircuitBreaker `json:"circuitBreaker,omitempty"`
|
|
||||||
Compress *dynamic.Compress `json:"compress,omitempty"`
|
|
||||||
PassTLSClientCert *dynamic.PassTLSClientCert `json:"passTLSClientCert,omitempty"`
|
|
||||||
Retry *Retry `json:"retry,omitempty"`
|
|
||||||
ContentType *dynamic.ContentType `json:"contentType,omitempty"`
|
|
||||||
GrpcWeb *dynamic.GrpcWeb `json:"grpcWeb,omitempty"`
|
|
||||||
// Plugin defines the middleware plugin configuration.
|
|
||||||
// More info: https://doc.traefik.io/traefik/plugins/
|
|
||||||
Plugin map[string]apiextensionv1.JSON `json:"plugin,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen=true
|
|
||||||
|
|
||||||
// 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/v3.0/middlewares/http/errorpages/
|
|
||||||
type ErrorPage struct {
|
|
||||||
// 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).
|
|
||||||
Status []string `json:"status,omitempty"`
|
|
||||||
// Service defines the reference to a Kubernetes Service that will serve the error page.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/errorpages/#service
|
|
||||||
Service Service `json:"service,omitempty"`
|
|
||||||
// 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.
|
|
||||||
Query string `json:"query,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen=true
|
|
||||||
|
|
||||||
// CircuitBreaker holds the circuit breaker configuration.
|
|
||||||
type CircuitBreaker struct {
|
|
||||||
// Expression is the condition that triggers the tripped state.
|
|
||||||
Expression string `json:"expression,omitempty" toml:"expression,omitempty" yaml:"expression,omitempty" export:"true"`
|
|
||||||
// CheckPeriod is the interval between successive checks of the circuit breaker condition (when in standby state).
|
|
||||||
CheckPeriod *intstr.IntOrString `json:"checkPeriod,omitempty" toml:"checkPeriod,omitempty" yaml:"checkPeriod,omitempty" export:"true"`
|
|
||||||
// FallbackDuration is the duration for which the circuit breaker will wait before trying to recover (from a tripped state).
|
|
||||||
FallbackDuration *intstr.IntOrString `json:"fallbackDuration,omitempty" toml:"fallbackDuration,omitempty" yaml:"fallbackDuration,omitempty" export:"true"`
|
|
||||||
// RecoveryDuration is the duration for which the circuit breaker will try to recover (as soon as it is in recovering state).
|
|
||||||
RecoveryDuration *intstr.IntOrString `json:"recoveryDuration,omitempty" toml:"recoveryDuration,omitempty" yaml:"recoveryDuration,omitempty" export:"true"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen=true
|
|
||||||
|
|
||||||
// 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/v3.0/middlewares/http/chain/
|
|
||||||
type Chain struct {
|
|
||||||
// Middlewares is the list of MiddlewareRef which composes the chain.
|
|
||||||
Middlewares []MiddlewareRef `json:"middlewares,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen=true
|
|
||||||
|
|
||||||
// BasicAuth holds the basic auth middleware configuration.
|
|
||||||
// This middleware restricts access to your services to known users.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/basicauth/
|
|
||||||
type BasicAuth struct {
|
|
||||||
// Secret is the name of the referenced Kubernetes Secret containing user credentials.
|
|
||||||
Secret string `json:"secret,omitempty"`
|
|
||||||
// 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.
|
|
||||||
Realm string `json:"realm,omitempty"`
|
|
||||||
// RemoveHeader sets the removeHeader option to true to remove the authorization header before forwarding the request to your service.
|
|
||||||
// Default: false.
|
|
||||||
RemoveHeader bool `json:"removeHeader,omitempty"`
|
|
||||||
// HeaderField defines a header field to store the authenticated user.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/basicauth/#headerfield
|
|
||||||
HeaderField string `json:"headerField,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen=true
|
|
||||||
|
|
||||||
// DigestAuth holds the digest auth middleware configuration.
|
|
||||||
// This middleware restricts access to your services to known users.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/digestauth/
|
|
||||||
type DigestAuth struct {
|
|
||||||
// Secret is the name of the referenced Kubernetes Secret containing user credentials.
|
|
||||||
Secret string `json:"secret,omitempty"`
|
|
||||||
// RemoveHeader defines whether to remove the authorization header before forwarding the request to the backend.
|
|
||||||
RemoveHeader bool `json:"removeHeader,omitempty"`
|
|
||||||
// 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.
|
|
||||||
Realm string `json:"realm,omitempty"`
|
|
||||||
// HeaderField defines a header field to store the authenticated user.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/basicauth/#headerfield
|
|
||||||
HeaderField string `json:"headerField,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen=true
|
|
||||||
|
|
||||||
// ForwardAuth holds the forward auth middleware configuration.
|
|
||||||
// This middleware delegates the request authentication to a Service.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/middlewares/http/forwardauth/
|
|
||||||
type ForwardAuth struct {
|
|
||||||
// Address defines the authentication server address.
|
|
||||||
Address string `json:"address,omitempty"`
|
|
||||||
// TrustForwardHeader defines whether to trust (ie: forward) all X-Forwarded-* headers.
|
|
||||||
TrustForwardHeader bool `json:"trustForwardHeader,omitempty"`
|
|
||||||
// AuthResponseHeaders defines the list of headers to copy from the authentication server response and set on forwarded request, replacing any existing conflicting headers.
|
|
||||||
AuthResponseHeaders []string `json:"authResponseHeaders,omitempty"`
|
|
||||||
// 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/v3.0/middlewares/http/forwardauth/#authresponseheadersregex
|
|
||||||
AuthResponseHeadersRegex string `json:"authResponseHeadersRegex,omitempty"`
|
|
||||||
// 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.
|
|
||||||
AuthRequestHeaders []string `json:"authRequestHeaders,omitempty"`
|
|
||||||
// TLS defines the configuration used to secure the connection to the authentication server.
|
|
||||||
TLS *ClientTLS `json:"tls,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ClientTLS holds the client TLS configuration.
|
|
||||||
type ClientTLS struct {
|
|
||||||
// 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`.
|
|
||||||
CASecret string `json:"caSecret,omitempty"`
|
|
||||||
// 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`.
|
|
||||||
CertSecret string `json:"certSecret,omitempty"`
|
|
||||||
// InsecureSkipVerify defines whether the server certificates should be validated.
|
|
||||||
InsecureSkipVerify bool `json:"insecureSkipVerify,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen=true
|
|
||||||
|
|
||||||
// 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/v3.0/middlewares/http/ratelimit/
|
|
||||||
type RateLimit struct {
|
|
||||||
// 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.
|
|
||||||
Average int64 `json:"average,omitempty"`
|
|
||||||
// Period, in combination with Average, defines the actual maximum rate, such as:
|
|
||||||
// r = Average / Period. It defaults to a second.
|
|
||||||
Period *intstr.IntOrString `json:"period,omitempty"`
|
|
||||||
// Burst is the maximum number of requests allowed to arrive in the same arbitrarily small period of time.
|
|
||||||
// It defaults to 1.
|
|
||||||
Burst *int64 `json:"burst,omitempty"`
|
|
||||||
// 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).
|
|
||||||
SourceCriterion *dynamic.SourceCriterion `json:"sourceCriterion,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen=true
|
|
||||||
|
|
||||||
// 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/v3.0/middlewares/http/retry/
|
|
||||||
type Retry struct {
|
|
||||||
// Attempts defines how many times the request should be retried.
|
|
||||||
Attempts int `json:"attempts,omitempty"`
|
|
||||||
// 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.
|
|
||||||
InitialInterval intstr.IntOrString `json:"initialInterval,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
|
|
||||||
// MiddlewareList is a collection of Middleware resources.
|
|
||||||
type MiddlewareList struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
// Standard object's metadata.
|
|
||||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
||||||
metav1.ListMeta `json:"metadata"`
|
|
||||||
|
|
||||||
// Items is the list of Middleware.
|
|
||||||
Items []Middleware `json:"items"`
|
|
||||||
}
|
|
|
@ -1,43 +0,0 @@
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/traefik/traefik/v3/pkg/config/dynamic"
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
)
|
|
||||||
|
|
||||||
// +genclient
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
|
|
||||||
// MiddlewareTCP is the CRD implementation of a Traefik TCP middleware.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/middlewares/overview/
|
|
||||||
type MiddlewareTCP struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
// Standard object's metadata.
|
|
||||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
||||||
metav1.ObjectMeta `json:"metadata"`
|
|
||||||
|
|
||||||
Spec MiddlewareTCPSpec `json:"spec"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen=true
|
|
||||||
|
|
||||||
// MiddlewareTCPSpec defines the desired state of a MiddlewareTCP.
|
|
||||||
type MiddlewareTCPSpec struct {
|
|
||||||
// InFlightConn defines the InFlightConn middleware configuration.
|
|
||||||
InFlightConn *dynamic.TCPInFlightConn `json:"inFlightConn,omitempty"`
|
|
||||||
// IPAllowList defines the IPAllowList middleware configuration.
|
|
||||||
IPAllowList *dynamic.TCPIPAllowList `json:"ipAllowList,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
|
|
||||||
// MiddlewareTCPList is a collection of MiddlewareTCP resources.
|
|
||||||
type MiddlewareTCPList struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
// Standard object's metadata.
|
|
||||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
||||||
metav1.ListMeta `json:"metadata"`
|
|
||||||
|
|
||||||
// Items is the list of MiddlewareTCP.
|
|
||||||
Items []MiddlewareTCP `json:"items"`
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
// ObjectReference is a generic reference to a Traefik resource.
|
|
||||||
type ObjectReference struct {
|
|
||||||
// Name defines the name of the referenced Traefik resource.
|
|
||||||
Name string `json:"name"`
|
|
||||||
// Namespace defines the namespace of the referenced Traefik resource.
|
|
||||||
Namespace string `json:"namespace,omitempty"`
|
|
||||||
}
|
|
|
@ -1,59 +0,0 @@
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
|
||||||
)
|
|
||||||
|
|
||||||
// GroupName is the group name for Traefik.
|
|
||||||
const GroupName = "traefik.containo.us"
|
|
||||||
|
|
||||||
var (
|
|
||||||
// SchemeBuilder collects the scheme builder functions.
|
|
||||||
SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
|
|
||||||
|
|
||||||
// AddToScheme applies the SchemeBuilder functions to a specified scheme.
|
|
||||||
AddToScheme = SchemeBuilder.AddToScheme
|
|
||||||
)
|
|
||||||
|
|
||||||
// SchemeGroupVersion is group version used to register these objects.
|
|
||||||
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"}
|
|
||||||
|
|
||||||
// Kind takes an unqualified kind and returns back a Group qualified GroupKind.
|
|
||||||
func Kind(kind string) schema.GroupKind {
|
|
||||||
return SchemeGroupVersion.WithKind(kind).GroupKind()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Resource takes an unqualified resource and returns a Group qualified GroupResource.
|
|
||||||
func Resource(resource string) schema.GroupResource {
|
|
||||||
return SchemeGroupVersion.WithResource(resource).GroupResource()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Adds the list of known types to Scheme.
|
|
||||||
func addKnownTypes(scheme *runtime.Scheme) error {
|
|
||||||
scheme.AddKnownTypes(SchemeGroupVersion,
|
|
||||||
&IngressRoute{},
|
|
||||||
&IngressRouteList{},
|
|
||||||
&IngressRouteTCP{},
|
|
||||||
&IngressRouteTCPList{},
|
|
||||||
&IngressRouteUDP{},
|
|
||||||
&IngressRouteUDPList{},
|
|
||||||
&Middleware{},
|
|
||||||
&MiddlewareList{},
|
|
||||||
&MiddlewareTCP{},
|
|
||||||
&MiddlewareTCPList{},
|
|
||||||
&TLSOption{},
|
|
||||||
&TLSOptionList{},
|
|
||||||
&TLSStore{},
|
|
||||||
&TLSStoreList{},
|
|
||||||
&TraefikService{},
|
|
||||||
&TraefikServiceList{},
|
|
||||||
&ServersTransport{},
|
|
||||||
&ServersTransportList{},
|
|
||||||
&ServersTransportTCP{},
|
|
||||||
&ServersTransportTCPList{},
|
|
||||||
)
|
|
||||||
metav1.AddToGroupVersion(scheme, SchemeGroupVersion)
|
|
||||||
return nil
|
|
||||||
}
|
|
|
@ -1,77 +0,0 @@
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/traefik/traefik/v3/pkg/config/dynamic"
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
"k8s.io/apimachinery/pkg/util/intstr"
|
|
||||||
)
|
|
||||||
|
|
||||||
// +genclient
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
// +kubebuilder:storageversion
|
|
||||||
|
|
||||||
// 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/v3.0/routing/services/#serverstransport_1
|
|
||||||
type ServersTransport struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
// Standard object's metadata.
|
|
||||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
||||||
metav1.ObjectMeta `json:"metadata"`
|
|
||||||
|
|
||||||
Spec ServersTransportSpec `json:"spec"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen=true
|
|
||||||
|
|
||||||
// ServersTransportSpec defines the desired state of a ServersTransport.
|
|
||||||
type ServersTransportSpec struct {
|
|
||||||
// ServerName defines the server name used to contact the server.
|
|
||||||
ServerName string `json:"serverName,omitempty"`
|
|
||||||
// InsecureSkipVerify disables SSL certificate verification.
|
|
||||||
InsecureSkipVerify bool `json:"insecureSkipVerify,omitempty"`
|
|
||||||
// RootCAsSecrets defines a list of CA secret used to validate self-signed certificate.
|
|
||||||
RootCAsSecrets []string `json:"rootCAsSecrets,omitempty"`
|
|
||||||
// CertificatesSecrets defines a list of secret storing client certificates for mTLS.
|
|
||||||
CertificatesSecrets []string `json:"certificatesSecrets,omitempty"`
|
|
||||||
// MaxIdleConnsPerHost controls the maximum idle (keep-alive) to keep per-host.
|
|
||||||
MaxIdleConnsPerHost int `json:"maxIdleConnsPerHost,omitempty"`
|
|
||||||
// ForwardingTimeouts defines the timeouts for requests forwarded to the backend servers.
|
|
||||||
ForwardingTimeouts *ForwardingTimeouts `json:"forwardingTimeouts,omitempty"`
|
|
||||||
// DisableHTTP2 disables HTTP/2 for connections with backend servers.
|
|
||||||
DisableHTTP2 bool `json:"disableHTTP2,omitempty"`
|
|
||||||
// PeerCertURI defines the peer cert URI used to match against SAN URI during the peer certificate verification.
|
|
||||||
PeerCertURI string `json:"peerCertURI,omitempty"`
|
|
||||||
// Spiffe defines the SPIFFE configuration.
|
|
||||||
Spiffe *dynamic.Spiffe `json:"spiffe,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen=true
|
|
||||||
|
|
||||||
// ForwardingTimeouts holds the timeout configurations for forwarding requests to the backend servers.
|
|
||||||
type ForwardingTimeouts struct {
|
|
||||||
// DialTimeout is the amount of time to wait until a connection to a backend server can be established.
|
|
||||||
DialTimeout *intstr.IntOrString `json:"dialTimeout,omitempty"`
|
|
||||||
// ResponseHeaderTimeout is the amount of time to wait for a server's response headers after fully writing the request (including its body, if any).
|
|
||||||
ResponseHeaderTimeout *intstr.IntOrString `json:"responseHeaderTimeout,omitempty"`
|
|
||||||
// IdleConnTimeout is the maximum period for which an idle HTTP keep-alive connection will remain open before closing itself.
|
|
||||||
IdleConnTimeout *intstr.IntOrString `json:"idleConnTimeout,omitempty"`
|
|
||||||
// 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.
|
|
||||||
ReadIdleTimeout *intstr.IntOrString `json:"readIdleTimeout,omitempty"`
|
|
||||||
// PingTimeout is the timeout after which the HTTP/2 connection will be closed if a response to ping is not received.
|
|
||||||
PingTimeout *intstr.IntOrString `json:"pingTimeout,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
|
|
||||||
// ServersTransportList is a collection of ServersTransport resources.
|
|
||||||
type ServersTransportList struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
// Standard object's metadata.
|
|
||||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
||||||
metav1.ListMeta `json:"metadata"`
|
|
||||||
|
|
||||||
// Items is the list of ServersTransport.
|
|
||||||
Items []ServersTransport `json:"items"`
|
|
||||||
}
|
|
|
@ -1,68 +0,0 @@
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/traefik/traefik/v3/pkg/config/dynamic"
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
"k8s.io/apimachinery/pkg/util/intstr"
|
|
||||||
)
|
|
||||||
|
|
||||||
// +genclient
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
// +kubebuilder:storageversion
|
|
||||||
|
|
||||||
// ServersTransportTCP is the CRD implementation of a TCPServersTransport.
|
|
||||||
// If no tcpServersTransport is specified, a default one named default@internal will be used.
|
|
||||||
// The default@internal tcpServersTransport can be configured in the static configuration.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#serverstransport_3
|
|
||||||
type ServersTransportTCP struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
// Standard object's metadata.
|
|
||||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
||||||
metav1.ObjectMeta `json:"metadata"`
|
|
||||||
|
|
||||||
Spec ServersTransportTCPSpec `json:"spec"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen=true
|
|
||||||
|
|
||||||
// ServersTransportTCPSpec defines the desired state of a ServersTransportTCP.
|
|
||||||
type ServersTransportTCPSpec struct {
|
|
||||||
// DialTimeout is the amount of time to wait until a connection to a backend server can be established.
|
|
||||||
DialTimeout *intstr.IntOrString `json:"dialTimeout,omitempty"`
|
|
||||||
// DialKeepAlive is the interval between keep-alive probes for an active network connection. If zero, keep-alive probes are sent with a default value (currently 15 seconds), if supported by the protocol and operating system. Network protocols or operating systems that do not support keep-alives ignore this field. If negative, keep-alive probes are disabled.
|
|
||||||
DialKeepAlive *intstr.IntOrString `json:"dialKeepAlive,omitempty"`
|
|
||||||
// TerminationDelay defines the delay to wait before fully terminating the connection, after one connected peer has closed its writing capability.
|
|
||||||
TerminationDelay *intstr.IntOrString `json:"terminationDelay,omitempty"`
|
|
||||||
// TLS defines the TLS configuration
|
|
||||||
TLS *TLSClientConfig `description:"Defines the TLS configuration." json:"tls,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// TLSClientConfig defines the desired state of a TLSClientConfig.
|
|
||||||
type TLSClientConfig struct {
|
|
||||||
// ServerName defines the server name used to contact the server.
|
|
||||||
ServerName string `json:"serverName,omitempty"`
|
|
||||||
// InsecureSkipVerify disables TLS certificate verification.
|
|
||||||
InsecureSkipVerify bool `json:"insecureSkipVerify,omitempty"`
|
|
||||||
// RootCAsSecrets defines a list of CA secret used to validate self-signed certificates.
|
|
||||||
RootCAsSecrets []string `json:"rootCAsSecrets,omitempty"`
|
|
||||||
// CertificatesSecrets defines a list of secret storing client certificates for mTLS.
|
|
||||||
CertificatesSecrets []string `json:"certificatesSecrets,omitempty"`
|
|
||||||
// MaxIdleConnsPerHost controls the maximum idle (keep-alive) to keep per-host.
|
|
||||||
// PeerCertURI defines the peer cert URI used to match against SAN URI during the peer certificate verification.
|
|
||||||
PeerCertURI string `json:"peerCertURI,omitempty"`
|
|
||||||
// Spiffe defines the SPIFFE configuration.
|
|
||||||
Spiffe *dynamic.Spiffe `json:"spiffe,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
|
|
||||||
// ServersTransportTCPList is a collection of ServersTransportTCP resources.
|
|
||||||
type ServersTransportTCPList struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
// Standard object's metadata.
|
|
||||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
||||||
metav1.ListMeta `json:"metadata"`
|
|
||||||
|
|
||||||
// Items is the list of ServersTransportTCP.
|
|
||||||
Items []ServersTransportTCP `json:"items"`
|
|
||||||
}
|
|
|
@ -1,85 +0,0 @@
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/traefik/traefik/v3/pkg/config/dynamic"
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
)
|
|
||||||
|
|
||||||
// +genclient
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
// +kubebuilder:storageversion
|
|
||||||
|
|
||||||
// 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/v3.0/routing/providers/kubernetes-crd/#kind-traefikservice
|
|
||||||
type TraefikService struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
// Standard object's metadata.
|
|
||||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
||||||
metav1.ObjectMeta `json:"metadata"`
|
|
||||||
|
|
||||||
Spec TraefikServiceSpec `json:"spec"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
|
|
||||||
// TraefikServiceList is a collection of TraefikService resources.
|
|
||||||
type TraefikServiceList struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
// Standard object's metadata.
|
|
||||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
||||||
metav1.ListMeta `json:"metadata"`
|
|
||||||
|
|
||||||
// Items is the list of TraefikService.
|
|
||||||
Items []TraefikService `json:"items"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen=true
|
|
||||||
|
|
||||||
// TraefikServiceSpec defines the desired state of a TraefikService.
|
|
||||||
type TraefikServiceSpec struct {
|
|
||||||
// Weighted defines the Weighted Round Robin configuration.
|
|
||||||
Weighted *WeightedRoundRobin `json:"weighted,omitempty"`
|
|
||||||
// Mirroring defines the Mirroring service configuration.
|
|
||||||
Mirroring *Mirroring `json:"mirroring,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen=true
|
|
||||||
|
|
||||||
// Mirroring holds the mirroring service configuration.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#mirroring-service
|
|
||||||
type Mirroring struct {
|
|
||||||
LoadBalancerSpec `json:",inline"`
|
|
||||||
|
|
||||||
// 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.
|
|
||||||
MaxBodySize *int64 `json:"maxBodySize,omitempty"`
|
|
||||||
// Mirrors defines the list of mirrors where Traefik will duplicate the traffic.
|
|
||||||
Mirrors []MirrorService `json:"mirrors,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen=true
|
|
||||||
|
|
||||||
// MirrorService holds the mirror configuration.
|
|
||||||
type MirrorService struct {
|
|
||||||
LoadBalancerSpec `json:",inline"`
|
|
||||||
|
|
||||||
// Percent defines the part of the traffic to mirror.
|
|
||||||
// Supported values: 0 to 100.
|
|
||||||
Percent int `json:"percent,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen=true
|
|
||||||
|
|
||||||
// WeightedRoundRobin holds the weighted round-robin configuration.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/routing/services/#weighted-round-robin-service
|
|
||||||
type WeightedRoundRobin struct {
|
|
||||||
// Services defines the list of Kubernetes Service and/or TraefikService to load-balance, with weight.
|
|
||||||
Services []Service `json:"services,omitempty"`
|
|
||||||
// Sticky defines whether sticky sessions are enabled.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/routing/providers/kubernetes-crd/#stickiness-and-load-balancing
|
|
||||||
Sticky *dynamic.Sticky `json:"sticky,omitempty"`
|
|
||||||
}
|
|
|
@ -1,71 +0,0 @@
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
)
|
|
||||||
|
|
||||||
// +genclient
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
// +kubebuilder:storageversion
|
|
||||||
|
|
||||||
// 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/v3.0/https/tls/#tls-options
|
|
||||||
type TLSOption struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
// Standard object's metadata.
|
|
||||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
||||||
metav1.ObjectMeta `json:"metadata"`
|
|
||||||
|
|
||||||
Spec TLSOptionSpec `json:"spec"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen=true
|
|
||||||
|
|
||||||
// TLSOptionSpec defines the desired state of a TLSOption.
|
|
||||||
type TLSOptionSpec struct {
|
|
||||||
// MinVersion defines the minimum TLS version that Traefik will accept.
|
|
||||||
// Possible values: VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13.
|
|
||||||
// Default: VersionTLS10.
|
|
||||||
MinVersion string `json:"minVersion,omitempty"`
|
|
||||||
// MaxVersion defines the maximum TLS version that Traefik will accept.
|
|
||||||
// Possible values: VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13.
|
|
||||||
// Default: None.
|
|
||||||
MaxVersion string `json:"maxVersion,omitempty"`
|
|
||||||
// CipherSuites defines the list of supported cipher suites for TLS versions up to TLS 1.2.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/https/tls/#cipher-suites
|
|
||||||
CipherSuites []string `json:"cipherSuites,omitempty"`
|
|
||||||
// CurvePreferences defines the preferred elliptic curves in a specific order.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/https/tls/#curve-preferences
|
|
||||||
CurvePreferences []string `json:"curvePreferences,omitempty"`
|
|
||||||
// ClientAuth defines the server's policy for TLS Client Authentication.
|
|
||||||
ClientAuth ClientAuth `json:"clientAuth,omitempty"`
|
|
||||||
// SniStrict defines whether Traefik allows connections from clients connections that do not specify a server_name extension.
|
|
||||||
SniStrict bool `json:"sniStrict,omitempty"`
|
|
||||||
// ALPNProtocols defines the list of supported application level protocols for the TLS handshake, in order of preference.
|
|
||||||
// More info: https://doc.traefik.io/traefik/v3.0/https/tls/#alpn-protocols
|
|
||||||
ALPNProtocols []string `json:"alpnProtocols,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen=true
|
|
||||||
|
|
||||||
// ClientAuth holds the TLS client authentication configuration.
|
|
||||||
type ClientAuth struct {
|
|
||||||
// SecretNames defines the names of the referenced Kubernetes Secret storing certificate details.
|
|
||||||
SecretNames []string `json:"secretNames,omitempty"`
|
|
||||||
// ClientAuthType defines the client authentication type to apply.
|
|
||||||
// +kubebuilder:validation:Enum=NoClientCert;RequestClientCert;RequireAnyClientCert;VerifyClientCertIfGiven;RequireAndVerifyClientCert
|
|
||||||
ClientAuthType string `json:"clientAuthType,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
|
|
||||||
// TLSOptionList is a collection of TLSOption resources.
|
|
||||||
type TLSOptionList struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
// Standard object's metadata.
|
|
||||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
||||||
metav1.ListMeta `json:"metadata"`
|
|
||||||
|
|
||||||
// Items is the list of TLSOption.
|
|
||||||
Items []TLSOption `json:"items"`
|
|
||||||
}
|
|
|
@ -1,58 +0,0 @@
|
||||||
package v1alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/traefik/traefik/v3/pkg/tls"
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
)
|
|
||||||
|
|
||||||
// +genclient
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
// +kubebuilder:storageversion
|
|
||||||
|
|
||||||
// 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/v3.0/https/tls/#certificates-stores
|
|
||||||
type TLSStore struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
// Standard object's metadata.
|
|
||||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
||||||
metav1.ObjectMeta `json:"metadata"`
|
|
||||||
|
|
||||||
Spec TLSStoreSpec `json:"spec"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen=true
|
|
||||||
|
|
||||||
// TLSStoreSpec defines the desired state of a TLSStore.
|
|
||||||
type TLSStoreSpec struct {
|
|
||||||
// DefaultCertificate defines the default certificate configuration.
|
|
||||||
DefaultCertificate *Certificate `json:"defaultCertificate,omitempty"`
|
|
||||||
|
|
||||||
// DefaultGeneratedCert defines the default generated certificate configuration.
|
|
||||||
DefaultGeneratedCert *tls.GeneratedCert `json:"defaultGeneratedCert,omitempty"`
|
|
||||||
|
|
||||||
// Certificates is a list of secret names, each secret holding a key/certificate pair to add to the store.
|
|
||||||
Certificates []Certificate `json:"certificates,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen=true
|
|
||||||
|
|
||||||
// Certificate holds a secret name for the TLSStore resource.
|
|
||||||
type Certificate struct {
|
|
||||||
// SecretName is the name of the referenced Kubernetes Secret to specify the certificate details.
|
|
||||||
SecretName string `json:"secretName"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
|
|
||||||
// TLSStoreList is a collection of TLSStore resources.
|
|
||||||
type TLSStoreList struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
// Standard object's metadata.
|
|
||||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
||||||
metav1.ListMeta `json:"metadata"`
|
|
||||||
|
|
||||||
// Items is the list of TLSStore.
|
|
||||||
Items []TLSStore `json:"items"`
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load diff
|
@ -23,7 +23,6 @@ import (
|
||||||
"github.com/traefik/traefik/v3/pkg/job"
|
"github.com/traefik/traefik/v3/pkg/job"
|
||||||
"github.com/traefik/traefik/v3/pkg/logs"
|
"github.com/traefik/traefik/v3/pkg/logs"
|
||||||
"github.com/traefik/traefik/v3/pkg/provider"
|
"github.com/traefik/traefik/v3/pkg/provider"
|
||||||
containousv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikcontainous/v1alpha1"
|
|
||||||
traefikv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikio/v1alpha1"
|
traefikv1alpha1 "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikio/v1alpha1"
|
||||||
"github.com/traefik/traefik/v3/pkg/safe"
|
"github.com/traefik/traefik/v3/pkg/safe"
|
||||||
"github.com/traefik/traefik/v3/pkg/tls"
|
"github.com/traefik/traefik/v3/pkg/tls"
|
||||||
|
@ -1808,7 +1807,7 @@ func isTraefikService(ref v1alpha2.BackendRef) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
return (*ref.Group == containousv1alpha1.GroupName || *ref.Group == traefikv1alpha1.GroupName) && *ref.Kind == kindTraefikService
|
return *ref.Group == traefikv1alpha1.GroupName && *ref.Kind == kindTraefikService
|
||||||
}
|
}
|
||||||
|
|
||||||
func isInternalService(ref v1alpha2.BackendRef) bool {
|
func isInternalService(ref v1alpha2.BackendRef) bool {
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue