Kubernetes Configuration Reference

Dynamic configuration with Kubernetes Custom Resource

Deprecated apiextensions.k8s.io/v1beta1 CRD

The apiextensions.k8s.io/v1beta1 CustomResourceDefinition is deprecated in Kubernetes v1.16+ and will be removed in v1.22+.

For Kubernetes v1.16+, please use the Traefik apiextensions.k8s.io/v1 CRDs instead.

Definitions

apiextensions.k8s.io/v1 (Kubernetes v1.16+)

  1. ---
  2. apiVersion: apiextensions.k8s.io/v1
  3. kind: CustomResourceDefinition
  4. metadata:
  5. annotations:
  6. controller-gen.kubebuilder.io/version: v0.14.0
  7. name: ingressroutes.traefik.io
  8. spec:
  9. group: traefik.io
  10. names:
  11. kind: IngressRoute
  12. listKind: IngressRouteList
  13. plural: ingressroutes
  14. singular: ingressroute
  15. scope: Namespaced
  16. versions:
  17. - name: v1alpha1
  18. schema:
  19. openAPIV3Schema:
  20. description: IngressRoute is the CRD implementation of a Traefik HTTP Router.
  21. properties:
  22. apiVersion:
  23. description: |-
  24. APIVersion defines the versioned schema of this representation of an object.
  25. Servers should convert recognized schemas to the latest internal value, and
  26. may reject unrecognized values.
  27. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  28. type: string
  29. kind:
  30. description: |-
  31. Kind is a string value representing the REST resource this object represents.
  32. Servers may infer this from the endpoint the client submits requests to.
  33. Cannot be updated.
  34. In CamelCase.
  35. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  36. type: string
  37. metadata:
  38. type: object
  39. spec:
  40. description: IngressRouteSpec defines the desired state of IngressRoute.
  41. properties:
  42. entryPoints:
  43. description: |-
  44. EntryPoints defines the list of entry point names to bind to.
  45. Entry points have to be configured in the static configuration.
  46. More info: https://doc.traefik.io/traefik/v2.11/routing/entrypoints/
  47. Default: all.
  48. items:
  49. type: string
  50. type: array
  51. routes:
  52. description: Routes defines the list of routes.
  53. items:
  54. description: Route holds the HTTP route configuration.
  55. properties:
  56. kind:
  57. description: |-
  58. Kind defines the kind of the route.
  59. Rule is the only supported kind.
  60. enum:
  61. - Rule
  62. type: string
  63. match:
  64. description: |-
  65. Match defines the router's rule.
  66. More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#rule
  67. type: string
  68. middlewares:
  69. description: |-
  70. Middlewares defines the list of references to Middleware resources.
  71. More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-middleware
  72. items:
  73. description: MiddlewareRef is a reference to a Middleware
  74. resource.
  75. properties:
  76. name:
  77. description: Name defines the name of the referenced Middleware
  78. resource.
  79. type: string
  80. namespace:
  81. description: Namespace defines the namespace of the referenced
  82. Middleware resource.
  83. type: string
  84. required:
  85. - name
  86. type: object
  87. type: array
  88. priority:
  89. description: |-
  90. Priority defines the router's priority.
  91. More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#priority
  92. type: integer
  93. services:
  94. description: |-
  95. Services defines the list of Service.
  96. It can contain any combination of TraefikService and/or reference to a Kubernetes Service.
  97. items:
  98. description: Service defines an upstream HTTP service to proxy
  99. traffic to.
  100. properties:
  101. kind:
  102. description: Kind defines the kind of the Service.
  103. enum:
  104. - Service
  105. - TraefikService
  106. type: string
  107. name:
  108. description: |-
  109. Name defines the name of the referenced Kubernetes Service or TraefikService.
  110. The differentiation between the two is specified in the Kind field.
  111. type: string
  112. namespace:
  113. description: Namespace defines the namespace of the referenced
  114. Kubernetes Service or TraefikService.
  115. type: string
  116. nativeLB:
  117. description: |-
  118. NativeLB controls, when creating the load-balancer,
  119. whether the LB's children are directly the pods IPs or if the only child is the Kubernetes Service clusterIP.
  120. The Kubernetes Service itself does load-balance to the pods.
  121. By default, NativeLB is false.
  122. type: boolean
  123. passHostHeader:
  124. description: |-
  125. PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service.
  126. By default, passHostHeader is true.
  127. type: boolean
  128. port:
  129. anyOf:
  130. - type: integer
  131. - type: string
  132. description: |-
  133. Port defines the port of a Kubernetes Service.
  134. This can be a reference to a named port.
  135. x-kubernetes-int-or-string: true
  136. responseForwarding:
  137. description: ResponseForwarding defines how Traefik forwards
  138. the response from the upstream Kubernetes Service to
  139. the client.
  140. properties:
  141. flushInterval:
  142. description: |-
  143. FlushInterval defines the interval, in milliseconds, in between flushes to the client while copying the response body.
  144. A negative value means to flush immediately after each write to the client.
  145. This configuration is ignored when ReverseProxy recognizes a response as a streaming response;
  146. for such responses, writes are flushed to the client immediately.
  147. Default: 100ms
  148. type: string
  149. type: object
  150. scheme:
  151. description: |-
  152. Scheme defines the scheme to use for the request to the upstream Kubernetes Service.
  153. It defaults to https when Kubernetes Service port is 443, http otherwise.
  154. type: string
  155. serversTransport:
  156. description: |-
  157. ServersTransport defines the name of ServersTransport resource to use.
  158. It allows to configure the transport between Traefik and your servers.
  159. Can only be used on a Kubernetes Service.
  160. type: string
  161. sticky:
  162. description: |-
  163. Sticky defines the sticky sessions configuration.
  164. More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions
  165. properties:
  166. cookie:
  167. description: Cookie defines the sticky cookie configuration.
  168. properties:
  169. httpOnly:
  170. description: HTTPOnly defines whether the cookie
  171. can be accessed by client-side APIs, such as
  172. JavaScript.
  173. type: boolean
  174. name:
  175. description: Name defines the Cookie name.
  176. type: string
  177. sameSite:
  178. description: |-
  179. SameSite defines the same site policy.
  180. More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite
  181. type: string
  182. secure:
  183. description: Secure defines whether the cookie
  184. can only be transmitted over an encrypted connection
  185. (i.e. HTTPS).
  186. type: boolean
  187. type: object
  188. type: object
  189. strategy:
  190. description: |-
  191. Strategy defines the load balancing strategy between the servers.
  192. RoundRobin is the only supported value at the moment.
  193. type: string
  194. weight:
  195. description: |-
  196. Weight defines the weight and should only be specified when Name references a TraefikService object
  197. (and to be precise, one that embeds a Weighted Round Robin).
  198. type: integer
  199. required:
  200. - name
  201. type: object
  202. type: array
  203. required:
  204. - kind
  205. - match
  206. type: object
  207. type: array
  208. tls:
  209. description: |-
  210. TLS defines the TLS configuration.
  211. More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#tls
  212. properties:
  213. certResolver:
  214. description: |-
  215. CertResolver defines the name of the certificate resolver to use.
  216. Cert resolvers have to be configured in the static configuration.
  217. More info: https://doc.traefik.io/traefik/v2.11/https/acme/#certificate-resolvers
  218. type: string
  219. domains:
  220. description: |-
  221. Domains defines the list of domains that will be used to issue certificates.
  222. More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#domains
  223. items:
  224. description: Domain holds a domain name with SANs.
  225. properties:
  226. main:
  227. description: Main defines the main domain name.
  228. type: string
  229. sans:
  230. description: SANs defines the subject alternative domain
  231. names.
  232. items:
  233. type: string
  234. type: array
  235. type: object
  236. type: array
  237. options:
  238. description: |-
  239. Options defines the reference to a TLSOption, that specifies the parameters of the TLS connection.
  240. If not defined, the `default` TLSOption is used.
  241. More info: https://doc.traefik.io/traefik/v2.11/https/tls/#tls-options
  242. properties:
  243. name:
  244. description: |-
  245. Name defines the name of the referenced TLSOption.
  246. More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsoption
  247. type: string
  248. namespace:
  249. description: |-
  250. Namespace defines the namespace of the referenced TLSOption.
  251. More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsoption
  252. type: string
  253. required:
  254. - name
  255. type: object
  256. secretName:
  257. description: SecretName is the name of the referenced Kubernetes
  258. Secret to specify the certificate details.
  259. type: string
  260. store:
  261. description: |-
  262. Store defines the reference to the TLSStore, that will be used to store certificates.
  263. Please note that only `default` TLSStore can be used.
  264. properties:
  265. name:
  266. description: |-
  267. Name defines the name of the referenced TLSStore.
  268. More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsstore
  269. type: string
  270. namespace:
  271. description: |-
  272. Namespace defines the namespace of the referenced TLSStore.
  273. More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsstore
  274. type: string
  275. required:
  276. - name
  277. type: object
  278. type: object
  279. required:
  280. - routes
  281. type: object
  282. required:
  283. - metadata
  284. - spec
  285. type: object
  286. served: true
  287. storage: true
  288. ---
  289. apiVersion: apiextensions.k8s.io/v1
  290. kind: CustomResourceDefinition
  291. metadata:
  292. annotations:
  293. controller-gen.kubebuilder.io/version: v0.14.0
  294. name: ingressroutetcps.traefik.io
  295. spec:
  296. group: traefik.io
  297. names:
  298. kind: IngressRouteTCP
  299. listKind: IngressRouteTCPList
  300. plural: ingressroutetcps
  301. singular: ingressroutetcp
  302. scope: Namespaced
  303. versions:
  304. - name: v1alpha1
  305. schema:
  306. openAPIV3Schema:
  307. description: IngressRouteTCP is the CRD implementation of a Traefik TCP Router.
  308. properties:
  309. apiVersion:
  310. description: |-
  311. APIVersion defines the versioned schema of this representation of an object.
  312. Servers should convert recognized schemas to the latest internal value, and
  313. may reject unrecognized values.
  314. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  315. type: string
  316. kind:
  317. description: |-
  318. Kind is a string value representing the REST resource this object represents.
  319. Servers may infer this from the endpoint the client submits requests to.
  320. Cannot be updated.
  321. In CamelCase.
  322. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  323. type: string
  324. metadata:
  325. type: object
  326. spec:
  327. description: IngressRouteTCPSpec defines the desired state of IngressRouteTCP.
  328. properties:
  329. entryPoints:
  330. description: |-
  331. EntryPoints defines the list of entry point names to bind to.
  332. Entry points have to be configured in the static configuration.
  333. More info: https://doc.traefik.io/traefik/v2.11/routing/entrypoints/
  334. Default: all.
  335. items:
  336. type: string
  337. type: array
  338. routes:
  339. description: Routes defines the list of routes.
  340. items:
  341. description: RouteTCP holds the TCP route configuration.
  342. properties:
  343. match:
  344. description: |-
  345. Match defines the router's rule.
  346. More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#rule_1
  347. type: string
  348. middlewares:
  349. description: Middlewares defines the list of references to MiddlewareTCP
  350. resources.
  351. items:
  352. description: ObjectReference is a generic reference to a Traefik
  353. resource.
  354. properties:
  355. name:
  356. description: Name defines the name of the referenced Traefik
  357. resource.
  358. type: string
  359. namespace:
  360. description: Namespace defines the namespace of the referenced
  361. Traefik resource.
  362. type: string
  363. required:
  364. - name
  365. type: object
  366. type: array
  367. priority:
  368. description: |-
  369. Priority defines the router's priority.
  370. More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#priority_1
  371. type: integer
  372. services:
  373. description: Services defines the list of TCP services.
  374. items:
  375. description: ServiceTCP defines an upstream TCP service to
  376. proxy traffic to.
  377. properties:
  378. name:
  379. description: Name defines the name of the referenced Kubernetes
  380. Service.
  381. type: string
  382. namespace:
  383. description: Namespace defines the namespace of the referenced
  384. Kubernetes Service.
  385. type: string
  386. nativeLB:
  387. description: |-
  388. NativeLB controls, when creating the load-balancer,
  389. whether the LB's children are directly the pods IPs or if the only child is the Kubernetes Service clusterIP.
  390. The Kubernetes Service itself does load-balance to the pods.
  391. By default, NativeLB is false.
  392. type: boolean
  393. port:
  394. anyOf:
  395. - type: integer
  396. - type: string
  397. description: |-
  398. Port defines the port of a Kubernetes Service.
  399. This can be a reference to a named port.
  400. x-kubernetes-int-or-string: true
  401. proxyProtocol:
  402. description: |-
  403. ProxyProtocol defines the PROXY protocol configuration.
  404. More info: https://doc.traefik.io/traefik/v2.11/routing/services/#proxy-protocol
  405. properties:
  406. version:
  407. description: Version defines the PROXY Protocol version
  408. to use.
  409. type: integer
  410. type: object
  411. terminationDelay:
  412. description: |-
  413. TerminationDelay defines the deadline that the proxy sets, after one of its connected peers indicates
  414. it has closed the writing capability of its connection, to close the reading capability as well,
  415. hence fully terminating the connection.
  416. It is a duration in milliseconds, defaulting to 100.
  417. A negative value means an infinite deadline (i.e. the reading capability is never closed).
  418. type: integer
  419. weight:
  420. description: Weight defines the weight used when balancing
  421. requests between multiple Kubernetes Service.
  422. type: integer
  423. required:
  424. - name
  425. - port
  426. type: object
  427. type: array
  428. required:
  429. - match
  430. type: object
  431. type: array
  432. tls:
  433. description: |-
  434. TLS defines the TLS configuration on a layer 4 / TCP Route.
  435. More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#tls_1
  436. properties:
  437. certResolver:
  438. description: |-
  439. CertResolver defines the name of the certificate resolver to use.
  440. Cert resolvers have to be configured in the static configuration.
  441. More info: https://doc.traefik.io/traefik/v2.11/https/acme/#certificate-resolvers
  442. type: string
  443. domains:
  444. description: |-
  445. Domains defines the list of domains that will be used to issue certificates.
  446. More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#domains
  447. items:
  448. description: Domain holds a domain name with SANs.
  449. properties:
  450. main:
  451. description: Main defines the main domain name.
  452. type: string
  453. sans:
  454. description: SANs defines the subject alternative domain
  455. names.
  456. items:
  457. type: string
  458. type: array
  459. type: object
  460. type: array
  461. options:
  462. description: |-
  463. Options defines the reference to a TLSOption, that specifies the parameters of the TLS connection.
  464. If not defined, the `default` TLSOption is used.
  465. More info: https://doc.traefik.io/traefik/v2.11/https/tls/#tls-options
  466. properties:
  467. name:
  468. description: Name defines the name of the referenced Traefik
  469. resource.
  470. type: string
  471. namespace:
  472. description: Namespace defines the namespace of the referenced
  473. Traefik resource.
  474. type: string
  475. required:
  476. - name
  477. type: object
  478. passthrough:
  479. description: Passthrough defines whether a TLS router will terminate
  480. the TLS connection.
  481. type: boolean
  482. secretName:
  483. description: SecretName is the name of the referenced Kubernetes
  484. Secret to specify the certificate details.
  485. type: string
  486. store:
  487. description: |-
  488. Store defines the reference to the TLSStore, that will be used to store certificates.
  489. Please note that only `default` TLSStore can be used.
  490. properties:
  491. name:
  492. description: Name defines the name of the referenced Traefik
  493. resource.
  494. type: string
  495. namespace:
  496. description: Namespace defines the namespace of the referenced
  497. Traefik resource.
  498. type: string
  499. required:
  500. - name
  501. type: object
  502. type: object
  503. required:
  504. - routes
  505. type: object
  506. required:
  507. - metadata
  508. - spec
  509. type: object
  510. served: true
  511. storage: true
  512. ---
  513. apiVersion: apiextensions.k8s.io/v1
  514. kind: CustomResourceDefinition
  515. metadata:
  516. annotations:
  517. controller-gen.kubebuilder.io/version: v0.14.0
  518. name: ingressrouteudps.traefik.io
  519. spec:
  520. group: traefik.io
  521. names:
  522. kind: IngressRouteUDP
  523. listKind: IngressRouteUDPList
  524. plural: ingressrouteudps
  525. singular: ingressrouteudp
  526. scope: Namespaced
  527. versions:
  528. - name: v1alpha1
  529. schema:
  530. openAPIV3Schema:
  531. description: IngressRouteUDP is a CRD implementation of a Traefik UDP Router.
  532. properties:
  533. apiVersion:
  534. description: |-
  535. APIVersion defines the versioned schema of this representation of an object.
  536. Servers should convert recognized schemas to the latest internal value, and
  537. may reject unrecognized values.
  538. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  539. type: string
  540. kind:
  541. description: |-
  542. Kind is a string value representing the REST resource this object represents.
  543. Servers may infer this from the endpoint the client submits requests to.
  544. Cannot be updated.
  545. In CamelCase.
  546. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  547. type: string
  548. metadata:
  549. type: object
  550. spec:
  551. description: IngressRouteUDPSpec defines the desired state of a IngressRouteUDP.
  552. properties:
  553. entryPoints:
  554. description: |-
  555. EntryPoints defines the list of entry point names to bind to.
  556. Entry points have to be configured in the static configuration.
  557. More info: https://doc.traefik.io/traefik/v2.11/routing/entrypoints/
  558. Default: all.
  559. items:
  560. type: string
  561. type: array
  562. routes:
  563. description: Routes defines the list of routes.
  564. items:
  565. description: RouteUDP holds the UDP route configuration.
  566. properties:
  567. services:
  568. description: Services defines the list of UDP services.
  569. items:
  570. description: ServiceUDP defines an upstream UDP service to
  571. proxy traffic to.
  572. properties:
  573. name:
  574. description: Name defines the name of the referenced Kubernetes
  575. Service.
  576. type: string
  577. namespace:
  578. description: Namespace defines the namespace of the referenced
  579. Kubernetes Service.
  580. type: string
  581. nativeLB:
  582. description: |-
  583. NativeLB controls, when creating the load-balancer,
  584. whether the LB's children are directly the pods IPs or if the only child is the Kubernetes Service clusterIP.
  585. The Kubernetes Service itself does load-balance to the pods.
  586. By default, NativeLB is false.
  587. type: boolean
  588. port:
  589. anyOf:
  590. - type: integer
  591. - type: string
  592. description: |-
  593. Port defines the port of a Kubernetes Service.
  594. This can be a reference to a named port.
  595. x-kubernetes-int-or-string: true
  596. weight:
  597. description: Weight defines the weight used when balancing
  598. requests between multiple Kubernetes Service.
  599. type: integer
  600. required:
  601. - name
  602. - port
  603. type: object
  604. type: array
  605. type: object
  606. type: array
  607. required:
  608. - routes
  609. type: object
  610. required:
  611. - metadata
  612. - spec
  613. type: object
  614. served: true
  615. storage: true
  616. ---
  617. apiVersion: apiextensions.k8s.io/v1
  618. kind: CustomResourceDefinition
  619. metadata:
  620. annotations:
  621. controller-gen.kubebuilder.io/version: v0.14.0
  622. name: middlewares.traefik.io
  623. spec:
  624. group: traefik.io
  625. names:
  626. kind: Middleware
  627. listKind: MiddlewareList
  628. plural: middlewares
  629. singular: middleware
  630. scope: Namespaced
  631. versions:
  632. - name: v1alpha1
  633. schema:
  634. openAPIV3Schema:
  635. description: |-
  636. Middleware is the CRD implementation of a Traefik Middleware.
  637. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/overview/
  638. properties:
  639. apiVersion:
  640. description: |-
  641. APIVersion defines the versioned schema of this representation of an object.
  642. Servers should convert recognized schemas to the latest internal value, and
  643. may reject unrecognized values.
  644. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  645. type: string
  646. kind:
  647. description: |-
  648. Kind is a string value representing the REST resource this object represents.
  649. Servers may infer this from the endpoint the client submits requests to.
  650. Cannot be updated.
  651. In CamelCase.
  652. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  653. type: string
  654. metadata:
  655. type: object
  656. spec:
  657. description: MiddlewareSpec defines the desired state of a Middleware.
  658. properties:
  659. addPrefix:
  660. description: |-
  661. AddPrefix holds the add prefix middleware configuration.
  662. This middleware updates the path of a request before forwarding it.
  663. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/addprefix/
  664. properties:
  665. prefix:
  666. description: |-
  667. Prefix is the string to add before the current path in the requested URL.
  668. It should include a leading slash (/).
  669. type: string
  670. type: object
  671. basicAuth:
  672. description: |-
  673. BasicAuth holds the basic auth middleware configuration.
  674. This middleware restricts access to your services to known users.
  675. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/basicauth/
  676. properties:
  677. headerField:
  678. description: |-
  679. HeaderField defines a header field to store the authenticated user.
  680. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/basicauth/#headerfield
  681. type: string
  682. realm:
  683. description: |-
  684. Realm allows the protected resources on a server to be partitioned into a set of protection spaces, each with its own authentication scheme.
  685. Default: traefik.
  686. type: string
  687. removeHeader:
  688. description: |-
  689. RemoveHeader sets the removeHeader option to true to remove the authorization header before forwarding the request to your service.
  690. Default: false.
  691. type: boolean
  692. secret:
  693. description: Secret is the name of the referenced Kubernetes Secret
  694. containing user credentials.
  695. type: string
  696. type: object
  697. buffering:
  698. description: |-
  699. Buffering holds the buffering middleware configuration.
  700. This middleware retries or limits the size of requests that can be forwarded to backends.
  701. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/buffering/#maxrequestbodybytes
  702. properties:
  703. maxRequestBodyBytes:
  704. description: |-
  705. MaxRequestBodyBytes defines the maximum allowed body size for the request (in bytes).
  706. 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.
  707. Default: 0 (no maximum).
  708. format: int64
  709. type: integer
  710. maxResponseBodyBytes:
  711. description: |-
  712. MaxResponseBodyBytes defines the maximum allowed response size from the service (in bytes).
  713. If the response exceeds the allowed size, it is not forwarded to the client. The client gets a 500 (Internal Server Error) response instead.
  714. Default: 0 (no maximum).
  715. format: int64
  716. type: integer
  717. memRequestBodyBytes:
  718. description: |-
  719. MemRequestBodyBytes defines the threshold (in bytes) from which the request will be buffered on disk instead of in memory.
  720. Default: 1048576 (1Mi).
  721. format: int64
  722. type: integer
  723. memResponseBodyBytes:
  724. description: |-
  725. MemResponseBodyBytes defines the threshold (in bytes) from which the response will be buffered on disk instead of in memory.
  726. Default: 1048576 (1Mi).
  727. format: int64
  728. type: integer
  729. retryExpression:
  730. description: |-
  731. RetryExpression defines the retry conditions.
  732. It is a logical combination of functions with operators AND (&&) and OR (||).
  733. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/buffering/#retryexpression
  734. type: string
  735. type: object
  736. chain:
  737. description: |-
  738. Chain holds the configuration of the chain middleware.
  739. This middleware enables to define reusable combinations of other pieces of middleware.
  740. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/chain/
  741. properties:
  742. middlewares:
  743. description: Middlewares is the list of MiddlewareRef which composes
  744. the chain.
  745. items:
  746. description: MiddlewareRef is a reference to a Middleware resource.
  747. properties:
  748. name:
  749. description: Name defines the name of the referenced Middleware
  750. resource.
  751. type: string
  752. namespace:
  753. description: Namespace defines the namespace of the referenced
  754. Middleware resource.
  755. type: string
  756. required:
  757. - name
  758. type: object
  759. type: array
  760. type: object
  761. circuitBreaker:
  762. description: CircuitBreaker holds the circuit breaker configuration.
  763. properties:
  764. checkPeriod:
  765. anyOf:
  766. - type: integer
  767. - type: string
  768. description: CheckPeriod is the interval between successive checks
  769. of the circuit breaker condition (when in standby state).
  770. x-kubernetes-int-or-string: true
  771. expression:
  772. description: Expression is the condition that triggers the tripped
  773. state.
  774. type: string
  775. fallbackDuration:
  776. anyOf:
  777. - type: integer
  778. - type: string
  779. description: FallbackDuration is the duration for which the circuit
  780. breaker will wait before trying to recover (from a tripped state).
  781. x-kubernetes-int-or-string: true
  782. recoveryDuration:
  783. anyOf:
  784. - type: integer
  785. - type: string
  786. description: RecoveryDuration is the duration for which the circuit
  787. breaker will try to recover (as soon as it is in recovering
  788. state).
  789. x-kubernetes-int-or-string: true
  790. type: object
  791. compress:
  792. description: |-
  793. Compress holds the compress middleware configuration.
  794. This middleware compresses responses before sending them to the client, using gzip compression.
  795. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/compress/
  796. properties:
  797. excludedContentTypes:
  798. description: ExcludedContentTypes defines the list of content
  799. types to compare the Content-Type header of the incoming requests
  800. and responses before compressing.
  801. items:
  802. type: string
  803. type: array
  804. minResponseBodyBytes:
  805. description: |-
  806. MinResponseBodyBytes defines the minimum amount of bytes a response body must have to be compressed.
  807. Default: 1024.
  808. type: integer
  809. type: object
  810. contentType:
  811. description: |-
  812. ContentType holds the content-type middleware configuration.
  813. This middleware exists to enable the correct behavior until at least the default one can be changed in a future version.
  814. properties:
  815. autoDetect:
  816. description: |-
  817. AutoDetect specifies whether to let the `Content-Type` header, if it has not been set by the backend,
  818. be automatically set to a value derived from the contents of the response.
  819. As a proxy, the default behavior should be to leave the header alone, regardless of what the backend did with it.
  820. However, the historic default was to always auto-detect and set the header if it was nil,
  821. and it is going to be kept that way in order to support users currently relying on it.
  822. type: boolean
  823. type: object
  824. digestAuth:
  825. description: |-
  826. DigestAuth holds the digest auth middleware configuration.
  827. This middleware restricts access to your services to known users.
  828. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/digestauth/
  829. properties:
  830. headerField:
  831. description: |-
  832. HeaderField defines a header field to store the authenticated user.
  833. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/basicauth/#headerfield
  834. type: string
  835. realm:
  836. description: |-
  837. Realm allows the protected resources on a server to be partitioned into a set of protection spaces, each with its own authentication scheme.
  838. Default: traefik.
  839. type: string
  840. removeHeader:
  841. description: RemoveHeader defines whether to remove the authorization
  842. header before forwarding the request to the backend.
  843. type: boolean
  844. secret:
  845. description: Secret is the name of the referenced Kubernetes Secret
  846. containing user credentials.
  847. type: string
  848. type: object
  849. errors:
  850. description: |-
  851. ErrorPage holds the custom error middleware configuration.
  852. This middleware returns a custom page in lieu of the default, according to configured ranges of HTTP Status codes.
  853. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/errorpages/
  854. properties:
  855. query:
  856. description: |-
  857. Query defines the URL for the error page (hosted by service).
  858. The {status} variable can be used in order to insert the status code in the URL.
  859. type: string
  860. service:
  861. description: |-
  862. Service defines the reference to a Kubernetes Service that will serve the error page.
  863. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/errorpages/#service
  864. properties:
  865. kind:
  866. description: Kind defines the kind of the Service.
  867. enum:
  868. - Service
  869. - TraefikService
  870. type: string
  871. name:
  872. description: |-
  873. Name defines the name of the referenced Kubernetes Service or TraefikService.
  874. The differentiation between the two is specified in the Kind field.
  875. type: string
  876. namespace:
  877. description: Namespace defines the namespace of the referenced
  878. Kubernetes Service or TraefikService.
  879. type: string
  880. nativeLB:
  881. description: |-
  882. NativeLB controls, when creating the load-balancer,
  883. whether the LB's children are directly the pods IPs or if the only child is the Kubernetes Service clusterIP.
  884. The Kubernetes Service itself does load-balance to the pods.
  885. By default, NativeLB is false.
  886. type: boolean
  887. passHostHeader:
  888. description: |-
  889. PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service.
  890. By default, passHostHeader is true.
  891. type: boolean
  892. port:
  893. anyOf:
  894. - type: integer
  895. - type: string
  896. description: |-
  897. Port defines the port of a Kubernetes Service.
  898. This can be a reference to a named port.
  899. x-kubernetes-int-or-string: true
  900. responseForwarding:
  901. description: ResponseForwarding defines how Traefik forwards
  902. the response from the upstream Kubernetes Service to the
  903. client.
  904. properties:
  905. flushInterval:
  906. description: |-
  907. FlushInterval defines the interval, in milliseconds, in between flushes to the client while copying the response body.
  908. A negative value means to flush immediately after each write to the client.
  909. This configuration is ignored when ReverseProxy recognizes a response as a streaming response;
  910. for such responses, writes are flushed to the client immediately.
  911. Default: 100ms
  912. type: string
  913. type: object
  914. scheme:
  915. description: |-
  916. Scheme defines the scheme to use for the request to the upstream Kubernetes Service.
  917. It defaults to https when Kubernetes Service port is 443, http otherwise.
  918. type: string
  919. serversTransport:
  920. description: |-
  921. ServersTransport defines the name of ServersTransport resource to use.
  922. It allows to configure the transport between Traefik and your servers.
  923. Can only be used on a Kubernetes Service.
  924. type: string
  925. sticky:
  926. description: |-
  927. Sticky defines the sticky sessions configuration.
  928. More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions
  929. properties:
  930. cookie:
  931. description: Cookie defines the sticky cookie configuration.
  932. properties:
  933. httpOnly:
  934. description: HTTPOnly defines whether the cookie can
  935. be accessed by client-side APIs, such as JavaScript.
  936. type: boolean
  937. name:
  938. description: Name defines the Cookie name.
  939. type: string
  940. sameSite:
  941. description: |-
  942. SameSite defines the same site policy.
  943. More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite
  944. type: string
  945. secure:
  946. description: Secure defines whether the cookie can
  947. only be transmitted over an encrypted connection
  948. (i.e. HTTPS).
  949. type: boolean
  950. type: object
  951. type: object
  952. strategy:
  953. description: |-
  954. Strategy defines the load balancing strategy between the servers.
  955. RoundRobin is the only supported value at the moment.
  956. type: string
  957. weight:
  958. description: |-
  959. Weight defines the weight and should only be specified when Name references a TraefikService object
  960. (and to be precise, one that embeds a Weighted Round Robin).
  961. type: integer
  962. required:
  963. - name
  964. type: object
  965. status:
  966. description: |-
  967. Status defines which status or range of statuses should result in an error page.
  968. It can be either a status code as a number (500),
  969. as multiple comma-separated numbers (500,502),
  970. as ranges by separating two codes with a dash (500-599),
  971. or a combination of the two (404,418,500-599).
  972. items:
  973. type: string
  974. type: array
  975. type: object
  976. forwardAuth:
  977. description: |-
  978. ForwardAuth holds the forward auth middleware configuration.
  979. This middleware delegates the request authentication to a Service.
  980. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/forwardauth/
  981. properties:
  982. address:
  983. description: Address defines the authentication server address.
  984. type: string
  985. authRequestHeaders:
  986. description: |-
  987. AuthRequestHeaders defines the list of the headers to copy from the request to the authentication server.
  988. If not set or empty then all request headers are passed.
  989. items:
  990. type: string
  991. type: array
  992. authResponseHeaders:
  993. description: AuthResponseHeaders defines the list of headers to
  994. copy from the authentication server response and set on forwarded
  995. request, replacing any existing conflicting headers.
  996. items:
  997. type: string
  998. type: array
  999. authResponseHeadersRegex:
  1000. description: |-
  1001. 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.
  1002. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/forwardauth/#authresponseheadersregex
  1003. type: string
  1004. tls:
  1005. description: TLS defines the configuration used to secure the
  1006. connection to the authentication server.
  1007. properties:
  1008. caOptional:
  1009. type: boolean
  1010. caSecret:
  1011. description: |-
  1012. CASecret is the name of the referenced Kubernetes Secret containing the CA to validate the server certificate.
  1013. The CA certificate is extracted from key `tls.ca` or `ca.crt`.
  1014. type: string
  1015. certSecret:
  1016. description: |-
  1017. CertSecret is the name of the referenced Kubernetes Secret containing the client certificate.
  1018. The client certificate is extracted from the keys `tls.crt` and `tls.key`.
  1019. type: string
  1020. insecureSkipVerify:
  1021. description: InsecureSkipVerify defines whether the server
  1022. certificates should be validated.
  1023. type: boolean
  1024. type: object
  1025. trustForwardHeader:
  1026. description: 'TrustForwardHeader defines whether to trust (ie:
  1027. forward) all X-Forwarded-* headers.'
  1028. type: boolean
  1029. type: object
  1030. headers:
  1031. description: |-
  1032. Headers holds the headers middleware configuration.
  1033. This middleware manages the requests and responses headers.
  1034. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/headers/#customrequestheaders
  1035. properties:
  1036. accessControlAllowCredentials:
  1037. description: AccessControlAllowCredentials defines whether the
  1038. request can include user credentials.
  1039. type: boolean
  1040. accessControlAllowHeaders:
  1041. description: AccessControlAllowHeaders defines the Access-Control-Request-Headers
  1042. values sent in preflight response.
  1043. items:
  1044. type: string
  1045. type: array
  1046. accessControlAllowMethods:
  1047. description: AccessControlAllowMethods defines the Access-Control-Request-Method
  1048. values sent in preflight response.
  1049. items:
  1050. type: string
  1051. type: array
  1052. accessControlAllowOriginList:
  1053. description: AccessControlAllowOriginList is a list of allowable
  1054. origins. Can also be a wildcard origin "*".
  1055. items:
  1056. type: string
  1057. type: array
  1058. accessControlAllowOriginListRegex:
  1059. description: AccessControlAllowOriginListRegex is a list of allowable
  1060. origins written following the Regular Expression syntax (https://golang.org/pkg/regexp/).
  1061. items:
  1062. type: string
  1063. type: array
  1064. accessControlExposeHeaders:
  1065. description: AccessControlExposeHeaders defines the Access-Control-Expose-Headers
  1066. values sent in preflight response.
  1067. items:
  1068. type: string
  1069. type: array
  1070. accessControlMaxAge:
  1071. description: AccessControlMaxAge defines the time that a preflight
  1072. request may be cached.
  1073. format: int64
  1074. type: integer
  1075. addVaryHeader:
  1076. description: AddVaryHeader defines whether the Vary header is
  1077. automatically added/updated when the AccessControlAllowOriginList
  1078. is set.
  1079. type: boolean
  1080. allowedHosts:
  1081. description: AllowedHosts defines the fully qualified list of
  1082. allowed domain names.
  1083. items:
  1084. type: string
  1085. type: array
  1086. browserXssFilter:
  1087. description: BrowserXSSFilter defines whether to add the X-XSS-Protection
  1088. header with the value 1; mode=block.
  1089. type: boolean
  1090. contentSecurityPolicy:
  1091. description: ContentSecurityPolicy defines the Content-Security-Policy
  1092. header value.
  1093. type: string
  1094. contentTypeNosniff:
  1095. description: ContentTypeNosniff defines whether to add the X-Content-Type-Options
  1096. header with the nosniff value.
  1097. type: boolean
  1098. customBrowserXSSValue:
  1099. description: |-
  1100. CustomBrowserXSSValue defines the X-XSS-Protection header value.
  1101. This overrides the BrowserXssFilter option.
  1102. type: string
  1103. customFrameOptionsValue:
  1104. description: |-
  1105. CustomFrameOptionsValue defines the X-Frame-Options header value.
  1106. This overrides the FrameDeny option.
  1107. type: string
  1108. customRequestHeaders:
  1109. additionalProperties:
  1110. type: string
  1111. description: CustomRequestHeaders defines the header names and
  1112. values to apply to the request.
  1113. type: object
  1114. customResponseHeaders:
  1115. additionalProperties:
  1116. type: string
  1117. description: CustomResponseHeaders defines the header names and
  1118. values to apply to the response.
  1119. type: object
  1120. featurePolicy:
  1121. description: 'Deprecated: use PermissionsPolicy instead.'
  1122. type: string
  1123. forceSTSHeader:
  1124. description: ForceSTSHeader defines whether to add the STS header
  1125. even when the connection is HTTP.
  1126. type: boolean
  1127. frameDeny:
  1128. description: FrameDeny defines whether to add the X-Frame-Options
  1129. header with the DENY value.
  1130. type: boolean
  1131. hostsProxyHeaders:
  1132. description: HostsProxyHeaders defines the header keys that may
  1133. hold a proxied hostname value for the request.
  1134. items:
  1135. type: string
  1136. type: array
  1137. isDevelopment:
  1138. description: |-
  1139. IsDevelopment defines whether to mitigate the unwanted effects of the AllowedHosts, SSL, and STS options when developing.
  1140. Usually testing takes place using HTTP, not HTTPS, and on localhost, not your production domain.
  1141. If you would like your development environment to mimic production with complete Host blocking, SSL redirects,
  1142. and STS headers, leave this as false.
  1143. type: boolean
  1144. permissionsPolicy:
  1145. description: |-
  1146. PermissionsPolicy defines the Permissions-Policy header value.
  1147. This allows sites to control browser features.
  1148. type: string
  1149. publicKey:
  1150. description: PublicKey is the public key that implements HPKP
  1151. to prevent MITM attacks with forged certificates.
  1152. type: string
  1153. referrerPolicy:
  1154. description: |-
  1155. ReferrerPolicy defines the Referrer-Policy header value.
  1156. This allows sites to control whether browsers forward the Referer header to other sites.
  1157. type: string
  1158. sslForceHost:
  1159. description: 'Deprecated: use RedirectRegex instead.'
  1160. type: boolean
  1161. sslHost:
  1162. description: 'Deprecated: use RedirectRegex instead.'
  1163. type: string
  1164. sslProxyHeaders:
  1165. additionalProperties:
  1166. type: string
  1167. description: |-
  1168. SSLProxyHeaders defines the header keys with associated values that would indicate a valid HTTPS request.
  1169. It can be useful when using other proxies (example: "X-Forwarded-Proto": "https").
  1170. type: object
  1171. sslRedirect:
  1172. description: 'Deprecated: use EntryPoint redirection or RedirectScheme
  1173. instead.'
  1174. type: boolean
  1175. sslTemporaryRedirect:
  1176. description: 'Deprecated: use EntryPoint redirection or RedirectScheme
  1177. instead.'
  1178. type: boolean
  1179. stsIncludeSubdomains:
  1180. description: STSIncludeSubdomains defines whether the includeSubDomains
  1181. directive is appended to the Strict-Transport-Security header.
  1182. type: boolean
  1183. stsPreload:
  1184. description: STSPreload defines whether the preload flag is appended
  1185. to the Strict-Transport-Security header.
  1186. type: boolean
  1187. stsSeconds:
  1188. description: |-
  1189. STSSeconds defines the max-age of the Strict-Transport-Security header.
  1190. If set to 0, the header is not set.
  1191. format: int64
  1192. type: integer
  1193. type: object
  1194. inFlightReq:
  1195. description: |-
  1196. InFlightReq holds the in-flight request middleware configuration.
  1197. This middleware limits the number of requests being processed and served concurrently.
  1198. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/inflightreq/
  1199. properties:
  1200. amount:
  1201. description: |-
  1202. Amount defines the maximum amount of allowed simultaneous in-flight request.
  1203. The middleware responds with HTTP 429 Too Many Requests if there are already amount requests in progress (based on the same sourceCriterion strategy).
  1204. format: int64
  1205. type: integer
  1206. sourceCriterion:
  1207. description: |-
  1208. SourceCriterion defines what criterion is used to group requests as originating from a common source.
  1209. If several strategies are defined at the same time, an error will be raised.
  1210. If none are set, the default is to use the requestHost.
  1211. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/inflightreq/#sourcecriterion
  1212. properties:
  1213. ipStrategy:
  1214. description: |-
  1215. IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP.
  1216. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy
  1217. properties:
  1218. depth:
  1219. description: Depth tells Traefik to use the X-Forwarded-For
  1220. header and take the IP located at the depth position
  1221. (starting from the right).
  1222. type: integer
  1223. excludedIPs:
  1224. description: ExcludedIPs configures Traefik to scan the
  1225. X-Forwarded-For header and select the first IP not in
  1226. the list.
  1227. items:
  1228. type: string
  1229. type: array
  1230. type: object
  1231. requestHeaderName:
  1232. description: RequestHeaderName defines the name of the header
  1233. used to group incoming requests.
  1234. type: string
  1235. requestHost:
  1236. description: RequestHost defines whether to consider the request
  1237. Host as the source.
  1238. type: boolean
  1239. type: object
  1240. type: object
  1241. ipAllowList:
  1242. description: |-
  1243. IPAllowList holds the IP allowlist middleware configuration.
  1244. This middleware accepts / refuses requests based on the client IP.
  1245. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/
  1246. properties:
  1247. ipStrategy:
  1248. description: |-
  1249. IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP.
  1250. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy
  1251. properties:
  1252. depth:
  1253. description: Depth tells Traefik to use the X-Forwarded-For
  1254. header and take the IP located at the depth position (starting
  1255. from the right).
  1256. type: integer
  1257. excludedIPs:
  1258. description: ExcludedIPs configures Traefik to scan the X-Forwarded-For
  1259. header and select the first IP not in the list.
  1260. items:
  1261. type: string
  1262. type: array
  1263. type: object
  1264. sourceRange:
  1265. description: SourceRange defines the set of allowed IPs (or ranges
  1266. of allowed IPs by using CIDR notation).
  1267. items:
  1268. type: string
  1269. type: array
  1270. type: object
  1271. ipWhiteList:
  1272. description: |-
  1273. IPWhiteList holds the IP whitelist middleware configuration.
  1274. This middleware accepts / refuses requests based on the client IP.
  1275. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipwhitelist/
  1276. Deprecated: please use IPAllowList instead.
  1277. properties:
  1278. ipStrategy:
  1279. description: |-
  1280. IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP.
  1281. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy
  1282. properties:
  1283. depth:
  1284. description: Depth tells Traefik to use the X-Forwarded-For
  1285. header and take the IP located at the depth position (starting
  1286. from the right).
  1287. type: integer
  1288. excludedIPs:
  1289. description: ExcludedIPs configures Traefik to scan the X-Forwarded-For
  1290. header and select the first IP not in the list.
  1291. items:
  1292. type: string
  1293. type: array
  1294. type: object
  1295. sourceRange:
  1296. description: SourceRange defines the set of allowed IPs (or ranges
  1297. of allowed IPs by using CIDR notation).
  1298. items:
  1299. type: string
  1300. type: array
  1301. type: object
  1302. passTLSClientCert:
  1303. description: |-
  1304. PassTLSClientCert holds the pass TLS client cert middleware configuration.
  1305. This middleware adds the selected data from the passed client TLS certificate to a header.
  1306. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/passtlsclientcert/
  1307. properties:
  1308. info:
  1309. description: Info selects the specific client certificate details
  1310. you want to add to the X-Forwarded-Tls-Client-Cert-Info header.
  1311. properties:
  1312. issuer:
  1313. description: Issuer defines the client certificate issuer
  1314. details to add to the X-Forwarded-Tls-Client-Cert-Info header.
  1315. properties:
  1316. commonName:
  1317. description: CommonName defines whether to add the organizationalUnit
  1318. information into the issuer.
  1319. type: boolean
  1320. country:
  1321. description: Country defines whether to add the country
  1322. information into the issuer.
  1323. type: boolean
  1324. domainComponent:
  1325. description: DomainComponent defines whether to add the
  1326. domainComponent information into the issuer.
  1327. type: boolean
  1328. locality:
  1329. description: Locality defines whether to add the locality
  1330. information into the issuer.
  1331. type: boolean
  1332. organization:
  1333. description: Organization defines whether to add the organization
  1334. information into the issuer.
  1335. type: boolean
  1336. province:
  1337. description: Province defines whether to add the province
  1338. information into the issuer.
  1339. type: boolean
  1340. serialNumber:
  1341. description: SerialNumber defines whether to add the serialNumber
  1342. information into the issuer.
  1343. type: boolean
  1344. type: object
  1345. notAfter:
  1346. description: NotAfter defines whether to add the Not After
  1347. information from the Validity part.
  1348. type: boolean
  1349. notBefore:
  1350. description: NotBefore defines whether to add the Not Before
  1351. information from the Validity part.
  1352. type: boolean
  1353. sans:
  1354. description: Sans defines whether to add the Subject Alternative
  1355. Name information from the Subject Alternative Name part.
  1356. type: boolean
  1357. serialNumber:
  1358. description: SerialNumber defines whether to add the client
  1359. serialNumber information.
  1360. type: boolean
  1361. subject:
  1362. description: Subject defines the client certificate subject
  1363. details to add to the X-Forwarded-Tls-Client-Cert-Info header.
  1364. properties:
  1365. commonName:
  1366. description: CommonName defines whether to add the organizationalUnit
  1367. information into the subject.
  1368. type: boolean
  1369. country:
  1370. description: Country defines whether to add the country
  1371. information into the subject.
  1372. type: boolean
  1373. domainComponent:
  1374. description: DomainComponent defines whether to add the
  1375. domainComponent information into the subject.
  1376. type: boolean
  1377. locality:
  1378. description: Locality defines whether to add the locality
  1379. information into the subject.
  1380. type: boolean
  1381. organization:
  1382. description: Organization defines whether to add the organization
  1383. information into the subject.
  1384. type: boolean
  1385. organizationalUnit:
  1386. description: OrganizationalUnit defines whether to add
  1387. the organizationalUnit information into the subject.
  1388. type: boolean
  1389. province:
  1390. description: Province defines whether to add the province
  1391. information into the subject.
  1392. type: boolean
  1393. serialNumber:
  1394. description: SerialNumber defines whether to add the serialNumber
  1395. information into the subject.
  1396. type: boolean
  1397. type: object
  1398. type: object
  1399. pem:
  1400. description: PEM sets the X-Forwarded-Tls-Client-Cert header with
  1401. the certificate.
  1402. type: boolean
  1403. type: object
  1404. plugin:
  1405. additionalProperties:
  1406. x-kubernetes-preserve-unknown-fields: true
  1407. description: |-
  1408. Plugin defines the middleware plugin configuration.
  1409. More info: https://doc.traefik.io/traefik/plugins/
  1410. type: object
  1411. rateLimit:
  1412. description: |-
  1413. RateLimit holds the rate limit configuration.
  1414. This middleware ensures that services will receive a fair amount of requests, and allows one to define what fair is.
  1415. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ratelimit/
  1416. properties:
  1417. average:
  1418. description: |-
  1419. Average is the maximum rate, by default in requests/s, allowed for the given source.
  1420. It defaults to 0, which means no rate limiting.
  1421. The rate is actually defined by dividing Average by Period. So for a rate below 1req/s,
  1422. one needs to define a Period larger than a second.
  1423. format: int64
  1424. type: integer
  1425. burst:
  1426. description: |-
  1427. Burst is the maximum number of requests allowed to arrive in the same arbitrarily small period of time.
  1428. It defaults to 1.
  1429. format: int64
  1430. type: integer
  1431. period:
  1432. anyOf:
  1433. - type: integer
  1434. - type: string
  1435. description: |-
  1436. Period, in combination with Average, defines the actual maximum rate, such as:
  1437. r = Average / Period. It defaults to a second.
  1438. x-kubernetes-int-or-string: true
  1439. sourceCriterion:
  1440. description: |-
  1441. SourceCriterion defines what criterion is used to group requests as originating from a common source.
  1442. If several strategies are defined at the same time, an error will be raised.
  1443. If none are set, the default is to use the request's remote address field (as an ipStrategy).
  1444. properties:
  1445. ipStrategy:
  1446. description: |-
  1447. IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP.
  1448. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy
  1449. properties:
  1450. depth:
  1451. description: Depth tells Traefik to use the X-Forwarded-For
  1452. header and take the IP located at the depth position
  1453. (starting from the right).
  1454. type: integer
  1455. excludedIPs:
  1456. description: ExcludedIPs configures Traefik to scan the
  1457. X-Forwarded-For header and select the first IP not in
  1458. the list.
  1459. items:
  1460. type: string
  1461. type: array
  1462. type: object
  1463. requestHeaderName:
  1464. description: RequestHeaderName defines the name of the header
  1465. used to group incoming requests.
  1466. type: string
  1467. requestHost:
  1468. description: RequestHost defines whether to consider the request
  1469. Host as the source.
  1470. type: boolean
  1471. type: object
  1472. type: object
  1473. redirectRegex:
  1474. description: |-
  1475. RedirectRegex holds the redirect regex middleware configuration.
  1476. This middleware redirects a request using regex matching and replacement.
  1477. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/redirectregex/#regex
  1478. properties:
  1479. permanent:
  1480. description: Permanent defines whether the redirection is permanent
  1481. (301).
  1482. type: boolean
  1483. regex:
  1484. description: Regex defines the regex used to match and capture
  1485. elements from the request URL.
  1486. type: string
  1487. replacement:
  1488. description: Replacement defines how to modify the URL to have
  1489. the new target URL.
  1490. type: string
  1491. type: object
  1492. redirectScheme:
  1493. description: |-
  1494. RedirectScheme holds the redirect scheme middleware configuration.
  1495. This middleware redirects requests from a scheme/port to another.
  1496. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/redirectscheme/
  1497. properties:
  1498. permanent:
  1499. description: Permanent defines whether the redirection is permanent
  1500. (301).
  1501. type: boolean
  1502. port:
  1503. description: Port defines the port of the new URL.
  1504. type: string
  1505. scheme:
  1506. description: Scheme defines the scheme of the new URL.
  1507. type: string
  1508. type: object
  1509. replacePath:
  1510. description: |-
  1511. ReplacePath holds the replace path middleware configuration.
  1512. This middleware replaces the path of the request URL and store the original path in an X-Replaced-Path header.
  1513. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/replacepath/
  1514. properties:
  1515. path:
  1516. description: Path defines the path to use as replacement in the
  1517. request URL.
  1518. type: string
  1519. type: object
  1520. replacePathRegex:
  1521. description: |-
  1522. ReplacePathRegex holds the replace path regex middleware configuration.
  1523. This middleware replaces the path of a URL using regex matching and replacement.
  1524. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/replacepathregex/
  1525. properties:
  1526. regex:
  1527. description: Regex defines the regular expression used to match
  1528. and capture the path from the request URL.
  1529. type: string
  1530. replacement:
  1531. description: Replacement defines the replacement path format,
  1532. which can include captured variables.
  1533. type: string
  1534. type: object
  1535. retry:
  1536. description: |-
  1537. Retry holds the retry middleware configuration.
  1538. This middleware reissues requests a given number of times to a backend server if that server does not reply.
  1539. As soon as the server answers, the middleware stops retrying, regardless of the response status.
  1540. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/retry/
  1541. properties:
  1542. attempts:
  1543. description: Attempts defines how many times the request should
  1544. be retried.
  1545. type: integer
  1546. initialInterval:
  1547. anyOf:
  1548. - type: integer
  1549. - type: string
  1550. description: |-
  1551. InitialInterval defines the first wait time in the exponential backoff series.
  1552. The maximum interval is calculated as twice the initialInterval.
  1553. If unspecified, requests will be retried immediately.
  1554. The value of initialInterval should be provided in seconds or as a valid duration format,
  1555. see https://pkg.go.dev/time#ParseDuration.
  1556. x-kubernetes-int-or-string: true
  1557. type: object
  1558. stripPrefix:
  1559. description: |-
  1560. StripPrefix holds the strip prefix middleware configuration.
  1561. This middleware removes the specified prefixes from the URL path.
  1562. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/stripprefix/
  1563. properties:
  1564. forceSlash:
  1565. description: |-
  1566. ForceSlash ensures that the resulting stripped path is not the empty string, by replacing it with / when necessary.
  1567. Default: true.
  1568. type: boolean
  1569. prefixes:
  1570. description: Prefixes defines the prefixes to strip from the request
  1571. URL.
  1572. items:
  1573. type: string
  1574. type: array
  1575. type: object
  1576. stripPrefixRegex:
  1577. description: |-
  1578. StripPrefixRegex holds the strip prefix regex middleware configuration.
  1579. This middleware removes the matching prefixes from the URL path.
  1580. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/stripprefixregex/
  1581. properties:
  1582. regex:
  1583. description: Regex defines the regular expression to match the
  1584. path prefix from the request URL.
  1585. items:
  1586. type: string
  1587. type: array
  1588. type: object
  1589. type: object
  1590. required:
  1591. - metadata
  1592. - spec
  1593. type: object
  1594. served: true
  1595. storage: true
  1596. ---
  1597. apiVersion: apiextensions.k8s.io/v1
  1598. kind: CustomResourceDefinition
  1599. metadata:
  1600. annotations:
  1601. controller-gen.kubebuilder.io/version: v0.14.0
  1602. name: middlewaretcps.traefik.io
  1603. spec:
  1604. group: traefik.io
  1605. names:
  1606. kind: MiddlewareTCP
  1607. listKind: MiddlewareTCPList
  1608. plural: middlewaretcps
  1609. singular: middlewaretcp
  1610. scope: Namespaced
  1611. versions:
  1612. - name: v1alpha1
  1613. schema:
  1614. openAPIV3Schema:
  1615. description: |-
  1616. MiddlewareTCP is the CRD implementation of a Traefik TCP middleware.
  1617. More info: https://doc.traefik.io/traefik/v2.11/middlewares/overview/
  1618. properties:
  1619. apiVersion:
  1620. description: |-
  1621. APIVersion defines the versioned schema of this representation of an object.
  1622. Servers should convert recognized schemas to the latest internal value, and
  1623. may reject unrecognized values.
  1624. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  1625. type: string
  1626. kind:
  1627. description: |-
  1628. Kind is a string value representing the REST resource this object represents.
  1629. Servers may infer this from the endpoint the client submits requests to.
  1630. Cannot be updated.
  1631. In CamelCase.
  1632. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  1633. type: string
  1634. metadata:
  1635. type: object
  1636. spec:
  1637. description: MiddlewareTCPSpec defines the desired state of a MiddlewareTCP.
  1638. properties:
  1639. inFlightConn:
  1640. description: InFlightConn defines the InFlightConn middleware configuration.
  1641. properties:
  1642. amount:
  1643. description: |-
  1644. Amount defines the maximum amount of allowed simultaneous connections.
  1645. The middleware closes the connection if there are already amount connections opened.
  1646. format: int64
  1647. type: integer
  1648. type: object
  1649. ipAllowList:
  1650. description: |-
  1651. IPAllowList defines the IPAllowList middleware configuration.
  1652. This middleware accepts/refuses connections based on the client IP.
  1653. More info: https://doc.traefik.io/traefik/v2.11/middlewares/tcp/ipallowlist/
  1654. properties:
  1655. sourceRange:
  1656. description: SourceRange defines the allowed IPs (or ranges of
  1657. allowed IPs by using CIDR notation).
  1658. items:
  1659. type: string
  1660. type: array
  1661. type: object
  1662. ipWhiteList:
  1663. description: |-
  1664. IPWhiteList defines the IPWhiteList middleware configuration.
  1665. This middleware accepts/refuses connections based on the client IP.
  1666. Deprecated: please use IPAllowList instead.
  1667. More info: https://doc.traefik.io/traefik/v2.11/middlewares/tcp/ipwhitelist/
  1668. properties:
  1669. sourceRange:
  1670. description: SourceRange defines the allowed IPs (or ranges of
  1671. allowed IPs by using CIDR notation).
  1672. items:
  1673. type: string
  1674. type: array
  1675. type: object
  1676. type: object
  1677. required:
  1678. - metadata
  1679. - spec
  1680. type: object
  1681. served: true
  1682. storage: true
  1683. ---
  1684. apiVersion: apiextensions.k8s.io/v1
  1685. kind: CustomResourceDefinition
  1686. metadata:
  1687. annotations:
  1688. controller-gen.kubebuilder.io/version: v0.14.0
  1689. name: serverstransports.traefik.io
  1690. spec:
  1691. group: traefik.io
  1692. names:
  1693. kind: ServersTransport
  1694. listKind: ServersTransportList
  1695. plural: serverstransports
  1696. singular: serverstransport
  1697. scope: Namespaced
  1698. versions:
  1699. - name: v1alpha1
  1700. schema:
  1701. openAPIV3Schema:
  1702. description: |-
  1703. ServersTransport is the CRD implementation of a ServersTransport.
  1704. If no serversTransport is specified, the default@internal will be used.
  1705. The default@internal serversTransport is created from the static configuration.
  1706. More info: https://doc.traefik.io/traefik/v2.11/routing/services/#serverstransport_1
  1707. properties:
  1708. apiVersion:
  1709. description: |-
  1710. APIVersion defines the versioned schema of this representation of an object.
  1711. Servers should convert recognized schemas to the latest internal value, and
  1712. may reject unrecognized values.
  1713. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  1714. type: string
  1715. kind:
  1716. description: |-
  1717. Kind is a string value representing the REST resource this object represents.
  1718. Servers may infer this from the endpoint the client submits requests to.
  1719. Cannot be updated.
  1720. In CamelCase.
  1721. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  1722. type: string
  1723. metadata:
  1724. type: object
  1725. spec:
  1726. description: ServersTransportSpec defines the desired state of a ServersTransport.
  1727. properties:
  1728. certificatesSecrets:
  1729. description: CertificatesSecrets defines a list of secret storing
  1730. client certificates for mTLS.
  1731. items:
  1732. type: string
  1733. type: array
  1734. disableHTTP2:
  1735. description: DisableHTTP2 disables HTTP/2 for connections with backend
  1736. servers.
  1737. type: boolean
  1738. forwardingTimeouts:
  1739. description: ForwardingTimeouts defines the timeouts for requests
  1740. forwarded to the backend servers.
  1741. properties:
  1742. dialTimeout:
  1743. anyOf:
  1744. - type: integer
  1745. - type: string
  1746. description: DialTimeout is the amount of time to wait until a
  1747. connection to a backend server can be established.
  1748. x-kubernetes-int-or-string: true
  1749. idleConnTimeout:
  1750. anyOf:
  1751. - type: integer
  1752. - type: string
  1753. description: IdleConnTimeout is the maximum period for which an
  1754. idle HTTP keep-alive connection will remain open before closing
  1755. itself.
  1756. x-kubernetes-int-or-string: true
  1757. pingTimeout:
  1758. anyOf:
  1759. - type: integer
  1760. - type: string
  1761. description: PingTimeout is the timeout after which the HTTP/2
  1762. connection will be closed if a response to ping is not received.
  1763. x-kubernetes-int-or-string: true
  1764. readIdleTimeout:
  1765. anyOf:
  1766. - type: integer
  1767. - type: string
  1768. description: ReadIdleTimeout is the timeout after which a health
  1769. check using ping frame will be carried out if no frame is received
  1770. on the HTTP/2 connection.
  1771. x-kubernetes-int-or-string: true
  1772. responseHeaderTimeout:
  1773. anyOf:
  1774. - type: integer
  1775. - type: string
  1776. description: ResponseHeaderTimeout is the amount of time to wait
  1777. for a server's response headers after fully writing the request
  1778. (including its body, if any).
  1779. x-kubernetes-int-or-string: true
  1780. type: object
  1781. insecureSkipVerify:
  1782. description: InsecureSkipVerify disables SSL certificate verification.
  1783. type: boolean
  1784. maxIdleConnsPerHost:
  1785. description: MaxIdleConnsPerHost controls the maximum idle (keep-alive)
  1786. to keep per-host.
  1787. type: integer
  1788. peerCertURI:
  1789. description: PeerCertURI defines the peer cert URI used to match against
  1790. SAN URI during the peer certificate verification.
  1791. type: string
  1792. rootCAsSecrets:
  1793. description: RootCAsSecrets defines a list of CA secret used to validate
  1794. self-signed certificate.
  1795. items:
  1796. type: string
  1797. type: array
  1798. serverName:
  1799. description: ServerName defines the server name used to contact the
  1800. server.
  1801. type: string
  1802. type: object
  1803. required:
  1804. - metadata
  1805. - spec
  1806. type: object
  1807. served: true
  1808. storage: true
  1809. ---
  1810. apiVersion: apiextensions.k8s.io/v1
  1811. kind: CustomResourceDefinition
  1812. metadata:
  1813. annotations:
  1814. controller-gen.kubebuilder.io/version: v0.14.0
  1815. name: tlsoptions.traefik.io
  1816. spec:
  1817. group: traefik.io
  1818. names:
  1819. kind: TLSOption
  1820. listKind: TLSOptionList
  1821. plural: tlsoptions
  1822. singular: tlsoption
  1823. scope: Namespaced
  1824. versions:
  1825. - name: v1alpha1
  1826. schema:
  1827. openAPIV3Schema:
  1828. description: |-
  1829. TLSOption is the CRD implementation of a Traefik TLS Option, allowing to configure some parameters of the TLS connection.
  1830. More info: https://doc.traefik.io/traefik/v2.11/https/tls/#tls-options
  1831. properties:
  1832. apiVersion:
  1833. description: |-
  1834. APIVersion defines the versioned schema of this representation of an object.
  1835. Servers should convert recognized schemas to the latest internal value, and
  1836. may reject unrecognized values.
  1837. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  1838. type: string
  1839. kind:
  1840. description: |-
  1841. Kind is a string value representing the REST resource this object represents.
  1842. Servers may infer this from the endpoint the client submits requests to.
  1843. Cannot be updated.
  1844. In CamelCase.
  1845. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  1846. type: string
  1847. metadata:
  1848. type: object
  1849. spec:
  1850. description: TLSOptionSpec defines the desired state of a TLSOption.
  1851. properties:
  1852. alpnProtocols:
  1853. description: |-
  1854. ALPNProtocols defines the list of supported application level protocols for the TLS handshake, in order of preference.
  1855. More info: https://doc.traefik.io/traefik/v2.11/https/tls/#alpn-protocols
  1856. items:
  1857. type: string
  1858. type: array
  1859. cipherSuites:
  1860. description: |-
  1861. CipherSuites defines the list of supported cipher suites for TLS versions up to TLS 1.2.
  1862. More info: https://doc.traefik.io/traefik/v2.11/https/tls/#cipher-suites
  1863. items:
  1864. type: string
  1865. type: array
  1866. clientAuth:
  1867. description: ClientAuth defines the server's policy for TLS Client
  1868. Authentication.
  1869. properties:
  1870. clientAuthType:
  1871. description: ClientAuthType defines the client authentication
  1872. type to apply.
  1873. enum:
  1874. - NoClientCert
  1875. - RequestClientCert
  1876. - RequireAnyClientCert
  1877. - VerifyClientCertIfGiven
  1878. - RequireAndVerifyClientCert
  1879. type: string
  1880. secretNames:
  1881. description: SecretNames defines the names of the referenced Kubernetes
  1882. Secret storing certificate details.
  1883. items:
  1884. type: string
  1885. type: array
  1886. type: object
  1887. curvePreferences:
  1888. description: |-
  1889. CurvePreferences defines the preferred elliptic curves in a specific order.
  1890. More info: https://doc.traefik.io/traefik/v2.11/https/tls/#curve-preferences
  1891. items:
  1892. type: string
  1893. type: array
  1894. maxVersion:
  1895. description: |-
  1896. MaxVersion defines the maximum TLS version that Traefik will accept.
  1897. Possible values: VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13.
  1898. Default: None.
  1899. type: string
  1900. minVersion:
  1901. description: |-
  1902. MinVersion defines the minimum TLS version that Traefik will accept.
  1903. Possible values: VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13.
  1904. Default: VersionTLS10.
  1905. type: string
  1906. preferServerCipherSuites:
  1907. description: |-
  1908. PreferServerCipherSuites defines whether the server chooses a cipher suite among his own instead of among the client's.
  1909. It is enabled automatically when minVersion or maxVersion is set.
  1910. Deprecated: https://github.com/golang/go/issues/45430
  1911. type: boolean
  1912. sniStrict:
  1913. description: SniStrict defines whether Traefik allows connections
  1914. from clients connections that do not specify a server_name extension.
  1915. type: boolean
  1916. type: object
  1917. required:
  1918. - metadata
  1919. - spec
  1920. type: object
  1921. served: true
  1922. storage: true
  1923. ---
  1924. apiVersion: apiextensions.k8s.io/v1
  1925. kind: CustomResourceDefinition
  1926. metadata:
  1927. annotations:
  1928. controller-gen.kubebuilder.io/version: v0.14.0
  1929. name: tlsstores.traefik.io
  1930. spec:
  1931. group: traefik.io
  1932. names:
  1933. kind: TLSStore
  1934. listKind: TLSStoreList
  1935. plural: tlsstores
  1936. singular: tlsstore
  1937. scope: Namespaced
  1938. versions:
  1939. - name: v1alpha1
  1940. schema:
  1941. openAPIV3Schema:
  1942. description: |-
  1943. TLSStore is the CRD implementation of a Traefik TLS Store.
  1944. For the time being, only the TLSStore named default is supported.
  1945. This means that you cannot have two stores that are named default in different Kubernetes namespaces.
  1946. More info: https://doc.traefik.io/traefik/v2.11/https/tls/#certificates-stores
  1947. properties:
  1948. apiVersion:
  1949. description: |-
  1950. APIVersion defines the versioned schema of this representation of an object.
  1951. Servers should convert recognized schemas to the latest internal value, and
  1952. may reject unrecognized values.
  1953. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  1954. type: string
  1955. kind:
  1956. description: |-
  1957. Kind is a string value representing the REST resource this object represents.
  1958. Servers may infer this from the endpoint the client submits requests to.
  1959. Cannot be updated.
  1960. In CamelCase.
  1961. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  1962. type: string
  1963. metadata:
  1964. type: object
  1965. spec:
  1966. description: TLSStoreSpec defines the desired state of a TLSStore.
  1967. properties:
  1968. certificates:
  1969. description: Certificates is a list of secret names, each secret holding
  1970. a key/certificate pair to add to the store.
  1971. items:
  1972. description: Certificate holds a secret name for the TLSStore resource.
  1973. properties:
  1974. secretName:
  1975. description: SecretName is the name of the referenced Kubernetes
  1976. Secret to specify the certificate details.
  1977. type: string
  1978. required:
  1979. - secretName
  1980. type: object
  1981. type: array
  1982. defaultCertificate:
  1983. description: DefaultCertificate defines the default certificate configuration.
  1984. properties:
  1985. secretName:
  1986. description: SecretName is the name of the referenced Kubernetes
  1987. Secret to specify the certificate details.
  1988. type: string
  1989. required:
  1990. - secretName
  1991. type: object
  1992. defaultGeneratedCert:
  1993. description: DefaultGeneratedCert defines the default generated certificate
  1994. configuration.
  1995. properties:
  1996. domain:
  1997. description: Domain is the domain definition for the DefaultCertificate.
  1998. properties:
  1999. main:
  2000. description: Main defines the main domain name.
  2001. type: string
  2002. sans:
  2003. description: SANs defines the subject alternative domain names.
  2004. items:
  2005. type: string
  2006. type: array
  2007. type: object
  2008. resolver:
  2009. description: Resolver is the name of the resolver that will be
  2010. used to issue the DefaultCertificate.
  2011. type: string
  2012. type: object
  2013. type: object
  2014. required:
  2015. - metadata
  2016. - spec
  2017. type: object
  2018. served: true
  2019. storage: true
  2020. ---
  2021. apiVersion: apiextensions.k8s.io/v1
  2022. kind: CustomResourceDefinition
  2023. metadata:
  2024. annotations:
  2025. controller-gen.kubebuilder.io/version: v0.14.0
  2026. name: traefikservices.traefik.io
  2027. spec:
  2028. group: traefik.io
  2029. names:
  2030. kind: TraefikService
  2031. listKind: TraefikServiceList
  2032. plural: traefikservices
  2033. singular: traefikservice
  2034. scope: Namespaced
  2035. versions:
  2036. - name: v1alpha1
  2037. schema:
  2038. openAPIV3Schema:
  2039. description: |-
  2040. TraefikService is the CRD implementation of a Traefik Service.
  2041. TraefikService object allows to:
  2042. - Apply weight to Services on load-balancing
  2043. - Mirror traffic on services
  2044. More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-traefikservice
  2045. properties:
  2046. apiVersion:
  2047. description: |-
  2048. APIVersion defines the versioned schema of this representation of an object.
  2049. Servers should convert recognized schemas to the latest internal value, and
  2050. may reject unrecognized values.
  2051. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  2052. type: string
  2053. kind:
  2054. description: |-
  2055. Kind is a string value representing the REST resource this object represents.
  2056. Servers may infer this from the endpoint the client submits requests to.
  2057. Cannot be updated.
  2058. In CamelCase.
  2059. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  2060. type: string
  2061. metadata:
  2062. type: object
  2063. spec:
  2064. description: TraefikServiceSpec defines the desired state of a TraefikService.
  2065. properties:
  2066. mirroring:
  2067. description: Mirroring defines the Mirroring service configuration.
  2068. properties:
  2069. kind:
  2070. description: Kind defines the kind of the Service.
  2071. enum:
  2072. - Service
  2073. - TraefikService
  2074. type: string
  2075. maxBodySize:
  2076. description: |-
  2077. MaxBodySize defines the maximum size allowed for the body of the request.
  2078. If the body is larger, the request is not mirrored.
  2079. Default value is -1, which means unlimited size.
  2080. format: int64
  2081. type: integer
  2082. mirrors:
  2083. description: Mirrors defines the list of mirrors where Traefik
  2084. will duplicate the traffic.
  2085. items:
  2086. description: MirrorService holds the mirror configuration.
  2087. properties:
  2088. kind:
  2089. description: Kind defines the kind of the Service.
  2090. enum:
  2091. - Service
  2092. - TraefikService
  2093. type: string
  2094. name:
  2095. description: |-
  2096. Name defines the name of the referenced Kubernetes Service or TraefikService.
  2097. The differentiation between the two is specified in the Kind field.
  2098. type: string
  2099. namespace:
  2100. description: Namespace defines the namespace of the referenced
  2101. Kubernetes Service or TraefikService.
  2102. type: string
  2103. nativeLB:
  2104. description: |-
  2105. NativeLB controls, when creating the load-balancer,
  2106. whether the LB's children are directly the pods IPs or if the only child is the Kubernetes Service clusterIP.
  2107. The Kubernetes Service itself does load-balance to the pods.
  2108. By default, NativeLB is false.
  2109. type: boolean
  2110. passHostHeader:
  2111. description: |-
  2112. PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service.
  2113. By default, passHostHeader is true.
  2114. type: boolean
  2115. percent:
  2116. description: |-
  2117. Percent defines the part of the traffic to mirror.
  2118. Supported values: 0 to 100.
  2119. type: integer
  2120. port:
  2121. anyOf:
  2122. - type: integer
  2123. - type: string
  2124. description: |-
  2125. Port defines the port of a Kubernetes Service.
  2126. This can be a reference to a named port.
  2127. x-kubernetes-int-or-string: true
  2128. responseForwarding:
  2129. description: ResponseForwarding defines how Traefik forwards
  2130. the response from the upstream Kubernetes Service to the
  2131. client.
  2132. properties:
  2133. flushInterval:
  2134. description: |-
  2135. FlushInterval defines the interval, in milliseconds, in between flushes to the client while copying the response body.
  2136. A negative value means to flush immediately after each write to the client.
  2137. This configuration is ignored when ReverseProxy recognizes a response as a streaming response;
  2138. for such responses, writes are flushed to the client immediately.
  2139. Default: 100ms
  2140. type: string
  2141. type: object
  2142. scheme:
  2143. description: |-
  2144. Scheme defines the scheme to use for the request to the upstream Kubernetes Service.
  2145. It defaults to https when Kubernetes Service port is 443, http otherwise.
  2146. type: string
  2147. serversTransport:
  2148. description: |-
  2149. ServersTransport defines the name of ServersTransport resource to use.
  2150. It allows to configure the transport between Traefik and your servers.
  2151. Can only be used on a Kubernetes Service.
  2152. type: string
  2153. sticky:
  2154. description: |-
  2155. Sticky defines the sticky sessions configuration.
  2156. More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions
  2157. properties:
  2158. cookie:
  2159. description: Cookie defines the sticky cookie configuration.
  2160. properties:
  2161. httpOnly:
  2162. description: HTTPOnly defines whether the cookie
  2163. can be accessed by client-side APIs, such as JavaScript.
  2164. type: boolean
  2165. name:
  2166. description: Name defines the Cookie name.
  2167. type: string
  2168. sameSite:
  2169. description: |-
  2170. SameSite defines the same site policy.
  2171. More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite
  2172. type: string
  2173. secure:
  2174. description: Secure defines whether the cookie can
  2175. only be transmitted over an encrypted connection
  2176. (i.e. HTTPS).
  2177. type: boolean
  2178. type: object
  2179. type: object
  2180. strategy:
  2181. description: |-
  2182. Strategy defines the load balancing strategy between the servers.
  2183. RoundRobin is the only supported value at the moment.
  2184. type: string
  2185. weight:
  2186. description: |-
  2187. Weight defines the weight and should only be specified when Name references a TraefikService object
  2188. (and to be precise, one that embeds a Weighted Round Robin).
  2189. type: integer
  2190. required:
  2191. - name
  2192. type: object
  2193. type: array
  2194. name:
  2195. description: |-
  2196. Name defines the name of the referenced Kubernetes Service or TraefikService.
  2197. The differentiation between the two is specified in the Kind field.
  2198. type: string
  2199. namespace:
  2200. description: Namespace defines the namespace of the referenced
  2201. Kubernetes Service or TraefikService.
  2202. type: string
  2203. nativeLB:
  2204. description: |-
  2205. NativeLB controls, when creating the load-balancer,
  2206. whether the LB's children are directly the pods IPs or if the only child is the Kubernetes Service clusterIP.
  2207. The Kubernetes Service itself does load-balance to the pods.
  2208. By default, NativeLB is false.
  2209. type: boolean
  2210. passHostHeader:
  2211. description: |-
  2212. PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service.
  2213. By default, passHostHeader is true.
  2214. type: boolean
  2215. port:
  2216. anyOf:
  2217. - type: integer
  2218. - type: string
  2219. description: |-
  2220. Port defines the port of a Kubernetes Service.
  2221. This can be a reference to a named port.
  2222. x-kubernetes-int-or-string: true
  2223. responseForwarding:
  2224. description: ResponseForwarding defines how Traefik forwards the
  2225. response from the upstream Kubernetes Service to the client.
  2226. properties:
  2227. flushInterval:
  2228. description: |-
  2229. FlushInterval defines the interval, in milliseconds, in between flushes to the client while copying the response body.
  2230. A negative value means to flush immediately after each write to the client.
  2231. This configuration is ignored when ReverseProxy recognizes a response as a streaming response;
  2232. for such responses, writes are flushed to the client immediately.
  2233. Default: 100ms
  2234. type: string
  2235. type: object
  2236. scheme:
  2237. description: |-
  2238. Scheme defines the scheme to use for the request to the upstream Kubernetes Service.
  2239. It defaults to https when Kubernetes Service port is 443, http otherwise.
  2240. type: string
  2241. serversTransport:
  2242. description: |-
  2243. ServersTransport defines the name of ServersTransport resource to use.
  2244. It allows to configure the transport between Traefik and your servers.
  2245. Can only be used on a Kubernetes Service.
  2246. type: string
  2247. sticky:
  2248. description: |-
  2249. Sticky defines the sticky sessions configuration.
  2250. More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions
  2251. properties:
  2252. cookie:
  2253. description: Cookie defines the sticky cookie configuration.
  2254. properties:
  2255. httpOnly:
  2256. description: HTTPOnly defines whether the cookie can be
  2257. accessed by client-side APIs, such as JavaScript.
  2258. type: boolean
  2259. name:
  2260. description: Name defines the Cookie name.
  2261. type: string
  2262. sameSite:
  2263. description: |-
  2264. SameSite defines the same site policy.
  2265. More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite
  2266. type: string
  2267. secure:
  2268. description: Secure defines whether the cookie can only
  2269. be transmitted over an encrypted connection (i.e. HTTPS).
  2270. type: boolean
  2271. type: object
  2272. type: object
  2273. strategy:
  2274. description: |-
  2275. Strategy defines the load balancing strategy between the servers.
  2276. RoundRobin is the only supported value at the moment.
  2277. type: string
  2278. weight:
  2279. description: |-
  2280. Weight defines the weight and should only be specified when Name references a TraefikService object
  2281. (and to be precise, one that embeds a Weighted Round Robin).
  2282. type: integer
  2283. required:
  2284. - name
  2285. type: object
  2286. weighted:
  2287. description: Weighted defines the Weighted Round Robin configuration.
  2288. properties:
  2289. services:
  2290. description: Services defines the list of Kubernetes Service and/or
  2291. TraefikService to load-balance, with weight.
  2292. items:
  2293. description: Service defines an upstream HTTP service to proxy
  2294. traffic to.
  2295. properties:
  2296. kind:
  2297. description: Kind defines the kind of the Service.
  2298. enum:
  2299. - Service
  2300. - TraefikService
  2301. type: string
  2302. name:
  2303. description: |-
  2304. Name defines the name of the referenced Kubernetes Service or TraefikService.
  2305. The differentiation between the two is specified in the Kind field.
  2306. type: string
  2307. namespace:
  2308. description: Namespace defines the namespace of the referenced
  2309. Kubernetes Service or TraefikService.
  2310. type: string
  2311. nativeLB:
  2312. description: |-
  2313. NativeLB controls, when creating the load-balancer,
  2314. whether the LB's children are directly the pods IPs or if the only child is the Kubernetes Service clusterIP.
  2315. The Kubernetes Service itself does load-balance to the pods.
  2316. By default, NativeLB is false.
  2317. type: boolean
  2318. passHostHeader:
  2319. description: |-
  2320. PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service.
  2321. By default, passHostHeader is true.
  2322. type: boolean
  2323. port:
  2324. anyOf:
  2325. - type: integer
  2326. - type: string
  2327. description: |-
  2328. Port defines the port of a Kubernetes Service.
  2329. This can be a reference to a named port.
  2330. x-kubernetes-int-or-string: true
  2331. responseForwarding:
  2332. description: ResponseForwarding defines how Traefik forwards
  2333. the response from the upstream Kubernetes Service to the
  2334. client.
  2335. properties:
  2336. flushInterval:
  2337. description: |-
  2338. FlushInterval defines the interval, in milliseconds, in between flushes to the client while copying the response body.
  2339. A negative value means to flush immediately after each write to the client.
  2340. This configuration is ignored when ReverseProxy recognizes a response as a streaming response;
  2341. for such responses, writes are flushed to the client immediately.
  2342. Default: 100ms
  2343. type: string
  2344. type: object
  2345. scheme:
  2346. description: |-
  2347. Scheme defines the scheme to use for the request to the upstream Kubernetes Service.
  2348. It defaults to https when Kubernetes Service port is 443, http otherwise.
  2349. type: string
  2350. serversTransport:
  2351. description: |-
  2352. ServersTransport defines the name of ServersTransport resource to use.
  2353. It allows to configure the transport between Traefik and your servers.
  2354. Can only be used on a Kubernetes Service.
  2355. type: string
  2356. sticky:
  2357. description: |-
  2358. Sticky defines the sticky sessions configuration.
  2359. More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions
  2360. properties:
  2361. cookie:
  2362. description: Cookie defines the sticky cookie configuration.
  2363. properties:
  2364. httpOnly:
  2365. description: HTTPOnly defines whether the cookie
  2366. can be accessed by client-side APIs, such as JavaScript.
  2367. type: boolean
  2368. name:
  2369. description: Name defines the Cookie name.
  2370. type: string
  2371. sameSite:
  2372. description: |-
  2373. SameSite defines the same site policy.
  2374. More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite
  2375. type: string
  2376. secure:
  2377. description: Secure defines whether the cookie can
  2378. only be transmitted over an encrypted connection
  2379. (i.e. HTTPS).
  2380. type: boolean
  2381. type: object
  2382. type: object
  2383. strategy:
  2384. description: |-
  2385. Strategy defines the load balancing strategy between the servers.
  2386. RoundRobin is the only supported value at the moment.
  2387. type: string
  2388. weight:
  2389. description: |-
  2390. Weight defines the weight and should only be specified when Name references a TraefikService object
  2391. (and to be precise, one that embeds a Weighted Round Robin).
  2392. type: integer
  2393. required:
  2394. - name
  2395. type: object
  2396. type: array
  2397. sticky:
  2398. description: |-
  2399. Sticky defines whether sticky sessions are enabled.
  2400. More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#stickiness-and-load-balancing
  2401. properties:
  2402. cookie:
  2403. description: Cookie defines the sticky cookie configuration.
  2404. properties:
  2405. httpOnly:
  2406. description: HTTPOnly defines whether the cookie can be
  2407. accessed by client-side APIs, such as JavaScript.
  2408. type: boolean
  2409. name:
  2410. description: Name defines the Cookie name.
  2411. type: string
  2412. sameSite:
  2413. description: |-
  2414. SameSite defines the same site policy.
  2415. More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite
  2416. type: string
  2417. secure:
  2418. description: Secure defines whether the cookie can only
  2419. be transmitted over an encrypted connection (i.e. HTTPS).
  2420. type: boolean
  2421. type: object
  2422. type: object
  2423. type: object
  2424. type: object
  2425. required:
  2426. - metadata
  2427. - spec
  2428. type: object
  2429. served: true
  2430. storage: true
  2431. ---
  2432. apiVersion: apiextensions.k8s.io/v1
  2433. kind: CustomResourceDefinition
  2434. metadata:
  2435. annotations:
  2436. controller-gen.kubebuilder.io/version: v0.14.0
  2437. name: ingressroutes.traefik.containo.us
  2438. spec:
  2439. group: traefik.containo.us
  2440. names:
  2441. kind: IngressRoute
  2442. listKind: IngressRouteList
  2443. plural: ingressroutes
  2444. singular: ingressroute
  2445. scope: Namespaced
  2446. versions:
  2447. - name: v1alpha1
  2448. schema:
  2449. openAPIV3Schema:
  2450. description: IngressRoute is the CRD implementation of a Traefik HTTP Router.
  2451. properties:
  2452. apiVersion:
  2453. description: |-
  2454. APIVersion defines the versioned schema of this representation of an object.
  2455. Servers should convert recognized schemas to the latest internal value, and
  2456. may reject unrecognized values.
  2457. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  2458. type: string
  2459. kind:
  2460. description: |-
  2461. Kind is a string value representing the REST resource this object represents.
  2462. Servers may infer this from the endpoint the client submits requests to.
  2463. Cannot be updated.
  2464. In CamelCase.
  2465. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  2466. type: string
  2467. metadata:
  2468. type: object
  2469. spec:
  2470. description: IngressRouteSpec defines the desired state of IngressRoute.
  2471. properties:
  2472. entryPoints:
  2473. description: |-
  2474. EntryPoints defines the list of entry point names to bind to.
  2475. Entry points have to be configured in the static configuration.
  2476. More info: https://doc.traefik.io/traefik/v2.11/routing/entrypoints/
  2477. Default: all.
  2478. items:
  2479. type: string
  2480. type: array
  2481. routes:
  2482. description: Routes defines the list of routes.
  2483. items:
  2484. description: Route holds the HTTP route configuration.
  2485. properties:
  2486. kind:
  2487. description: |-
  2488. Kind defines the kind of the route.
  2489. Rule is the only supported kind.
  2490. enum:
  2491. - Rule
  2492. type: string
  2493. match:
  2494. description: |-
  2495. Match defines the router's rule.
  2496. More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#rule
  2497. type: string
  2498. middlewares:
  2499. description: |-
  2500. Middlewares defines the list of references to Middleware resources.
  2501. More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-middleware
  2502. items:
  2503. description: MiddlewareRef is a reference to a Middleware
  2504. resource.
  2505. properties:
  2506. name:
  2507. description: Name defines the name of the referenced Middleware
  2508. resource.
  2509. type: string
  2510. namespace:
  2511. description: Namespace defines the namespace of the referenced
  2512. Middleware resource.
  2513. type: string
  2514. required:
  2515. - name
  2516. type: object
  2517. type: array
  2518. priority:
  2519. description: |-
  2520. Priority defines the router's priority.
  2521. More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#priority
  2522. type: integer
  2523. services:
  2524. description: |-
  2525. Services defines the list of Service.
  2526. It can contain any combination of TraefikService and/or reference to a Kubernetes Service.
  2527. items:
  2528. description: Service defines an upstream HTTP service to proxy
  2529. traffic to.
  2530. properties:
  2531. kind:
  2532. description: Kind defines the kind of the Service.
  2533. enum:
  2534. - Service
  2535. - TraefikService
  2536. type: string
  2537. name:
  2538. description: |-
  2539. Name defines the name of the referenced Kubernetes Service or TraefikService.
  2540. The differentiation between the two is specified in the Kind field.
  2541. type: string
  2542. namespace:
  2543. description: Namespace defines the namespace of the referenced
  2544. Kubernetes Service or TraefikService.
  2545. type: string
  2546. nativeLB:
  2547. description: |-
  2548. NativeLB controls, when creating the load-balancer,
  2549. whether the LB's children are directly the pods IPs or if the only child is the Kubernetes Service clusterIP.
  2550. The Kubernetes Service itself does load-balance to the pods.
  2551. By default, NativeLB is false.
  2552. type: boolean
  2553. passHostHeader:
  2554. description: |-
  2555. PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service.
  2556. By default, passHostHeader is true.
  2557. type: boolean
  2558. port:
  2559. anyOf:
  2560. - type: integer
  2561. - type: string
  2562. description: |-
  2563. Port defines the port of a Kubernetes Service.
  2564. This can be a reference to a named port.
  2565. x-kubernetes-int-or-string: true
  2566. responseForwarding:
  2567. description: ResponseForwarding defines how Traefik forwards
  2568. the response from the upstream Kubernetes Service to
  2569. the client.
  2570. properties:
  2571. flushInterval:
  2572. description: |-
  2573. FlushInterval defines the interval, in milliseconds, in between flushes to the client while copying the response body.
  2574. A negative value means to flush immediately after each write to the client.
  2575. This configuration is ignored when ReverseProxy recognizes a response as a streaming response;
  2576. for such responses, writes are flushed to the client immediately.
  2577. Default: 100ms
  2578. type: string
  2579. type: object
  2580. scheme:
  2581. description: |-
  2582. Scheme defines the scheme to use for the request to the upstream Kubernetes Service.
  2583. It defaults to https when Kubernetes Service port is 443, http otherwise.
  2584. type: string
  2585. serversTransport:
  2586. description: |-
  2587. ServersTransport defines the name of ServersTransport resource to use.
  2588. It allows to configure the transport between Traefik and your servers.
  2589. Can only be used on a Kubernetes Service.
  2590. type: string
  2591. sticky:
  2592. description: |-
  2593. Sticky defines the sticky sessions configuration.
  2594. More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions
  2595. properties:
  2596. cookie:
  2597. description: Cookie defines the sticky cookie configuration.
  2598. properties:
  2599. httpOnly:
  2600. description: HTTPOnly defines whether the cookie
  2601. can be accessed by client-side APIs, such as
  2602. JavaScript.
  2603. type: boolean
  2604. name:
  2605. description: Name defines the Cookie name.
  2606. type: string
  2607. sameSite:
  2608. description: |-
  2609. SameSite defines the same site policy.
  2610. More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite
  2611. type: string
  2612. secure:
  2613. description: Secure defines whether the cookie
  2614. can only be transmitted over an encrypted connection
  2615. (i.e. HTTPS).
  2616. type: boolean
  2617. type: object
  2618. type: object
  2619. strategy:
  2620. description: |-
  2621. Strategy defines the load balancing strategy between the servers.
  2622. RoundRobin is the only supported value at the moment.
  2623. type: string
  2624. weight:
  2625. description: |-
  2626. Weight defines the weight and should only be specified when Name references a TraefikService object
  2627. (and to be precise, one that embeds a Weighted Round Robin).
  2628. type: integer
  2629. required:
  2630. - name
  2631. type: object
  2632. type: array
  2633. required:
  2634. - kind
  2635. - match
  2636. type: object
  2637. type: array
  2638. tls:
  2639. description: |-
  2640. TLS defines the TLS configuration.
  2641. More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#tls
  2642. properties:
  2643. certResolver:
  2644. description: |-
  2645. CertResolver defines the name of the certificate resolver to use.
  2646. Cert resolvers have to be configured in the static configuration.
  2647. More info: https://doc.traefik.io/traefik/v2.11/https/acme/#certificate-resolvers
  2648. type: string
  2649. domains:
  2650. description: |-
  2651. Domains defines the list of domains that will be used to issue certificates.
  2652. More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#domains
  2653. items:
  2654. description: Domain holds a domain name with SANs.
  2655. properties:
  2656. main:
  2657. description: Main defines the main domain name.
  2658. type: string
  2659. sans:
  2660. description: SANs defines the subject alternative domain
  2661. names.
  2662. items:
  2663. type: string
  2664. type: array
  2665. type: object
  2666. type: array
  2667. options:
  2668. description: |-
  2669. Options defines the reference to a TLSOption, that specifies the parameters of the TLS connection.
  2670. If not defined, the `default` TLSOption is used.
  2671. More info: https://doc.traefik.io/traefik/v2.11/https/tls/#tls-options
  2672. properties:
  2673. name:
  2674. description: |-
  2675. Name defines the name of the referenced TLSOption.
  2676. More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsoption
  2677. type: string
  2678. namespace:
  2679. description: |-
  2680. Namespace defines the namespace of the referenced TLSOption.
  2681. More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsoption
  2682. type: string
  2683. required:
  2684. - name
  2685. type: object
  2686. secretName:
  2687. description: SecretName is the name of the referenced Kubernetes
  2688. Secret to specify the certificate details.
  2689. type: string
  2690. store:
  2691. description: |-
  2692. Store defines the reference to the TLSStore, that will be used to store certificates.
  2693. Please note that only `default` TLSStore can be used.
  2694. properties:
  2695. name:
  2696. description: |-
  2697. Name defines the name of the referenced TLSStore.
  2698. More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsstore
  2699. type: string
  2700. namespace:
  2701. description: |-
  2702. Namespace defines the namespace of the referenced TLSStore.
  2703. More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-tlsstore
  2704. type: string
  2705. required:
  2706. - name
  2707. type: object
  2708. type: object
  2709. required:
  2710. - routes
  2711. type: object
  2712. required:
  2713. - metadata
  2714. - spec
  2715. type: object
  2716. served: true
  2717. storage: true
  2718. ---
  2719. apiVersion: apiextensions.k8s.io/v1
  2720. kind: CustomResourceDefinition
  2721. metadata:
  2722. annotations:
  2723. controller-gen.kubebuilder.io/version: v0.14.0
  2724. name: ingressroutetcps.traefik.containo.us
  2725. spec:
  2726. group: traefik.containo.us
  2727. names:
  2728. kind: IngressRouteTCP
  2729. listKind: IngressRouteTCPList
  2730. plural: ingressroutetcps
  2731. singular: ingressroutetcp
  2732. scope: Namespaced
  2733. versions:
  2734. - name: v1alpha1
  2735. schema:
  2736. openAPIV3Schema:
  2737. description: IngressRouteTCP is the CRD implementation of a Traefik TCP Router.
  2738. properties:
  2739. apiVersion:
  2740. description: |-
  2741. APIVersion defines the versioned schema of this representation of an object.
  2742. Servers should convert recognized schemas to the latest internal value, and
  2743. may reject unrecognized values.
  2744. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  2745. type: string
  2746. kind:
  2747. description: |-
  2748. Kind is a string value representing the REST resource this object represents.
  2749. Servers may infer this from the endpoint the client submits requests to.
  2750. Cannot be updated.
  2751. In CamelCase.
  2752. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  2753. type: string
  2754. metadata:
  2755. type: object
  2756. spec:
  2757. description: IngressRouteTCPSpec defines the desired state of IngressRouteTCP.
  2758. properties:
  2759. entryPoints:
  2760. description: |-
  2761. EntryPoints defines the list of entry point names to bind to.
  2762. Entry points have to be configured in the static configuration.
  2763. More info: https://doc.traefik.io/traefik/v2.11/routing/entrypoints/
  2764. Default: all.
  2765. items:
  2766. type: string
  2767. type: array
  2768. routes:
  2769. description: Routes defines the list of routes.
  2770. items:
  2771. description: RouteTCP holds the TCP route configuration.
  2772. properties:
  2773. match:
  2774. description: |-
  2775. Match defines the router's rule.
  2776. More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#rule_1
  2777. type: string
  2778. middlewares:
  2779. description: Middlewares defines the list of references to MiddlewareTCP
  2780. resources.
  2781. items:
  2782. description: ObjectReference is a generic reference to a Traefik
  2783. resource.
  2784. properties:
  2785. name:
  2786. description: Name defines the name of the referenced Traefik
  2787. resource.
  2788. type: string
  2789. namespace:
  2790. description: Namespace defines the namespace of the referenced
  2791. Traefik resource.
  2792. type: string
  2793. required:
  2794. - name
  2795. type: object
  2796. type: array
  2797. priority:
  2798. description: |-
  2799. Priority defines the router's priority.
  2800. More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#priority_1
  2801. type: integer
  2802. services:
  2803. description: Services defines the list of TCP services.
  2804. items:
  2805. description: ServiceTCP defines an upstream TCP service to
  2806. proxy traffic to.
  2807. properties:
  2808. name:
  2809. description: Name defines the name of the referenced Kubernetes
  2810. Service.
  2811. type: string
  2812. namespace:
  2813. description: Namespace defines the namespace of the referenced
  2814. Kubernetes Service.
  2815. type: string
  2816. nativeLB:
  2817. description: |-
  2818. NativeLB controls, when creating the load-balancer,
  2819. whether the LB's children are directly the pods IPs or if the only child is the Kubernetes Service clusterIP.
  2820. The Kubernetes Service itself does load-balance to the pods.
  2821. By default, NativeLB is false.
  2822. type: boolean
  2823. port:
  2824. anyOf:
  2825. - type: integer
  2826. - type: string
  2827. description: |-
  2828. Port defines the port of a Kubernetes Service.
  2829. This can be a reference to a named port.
  2830. x-kubernetes-int-or-string: true
  2831. proxyProtocol:
  2832. description: |-
  2833. ProxyProtocol defines the PROXY protocol configuration.
  2834. More info: https://doc.traefik.io/traefik/v2.11/routing/services/#proxy-protocol
  2835. properties:
  2836. version:
  2837. description: Version defines the PROXY Protocol version
  2838. to use.
  2839. type: integer
  2840. type: object
  2841. terminationDelay:
  2842. description: |-
  2843. TerminationDelay defines the deadline that the proxy sets, after one of its connected peers indicates
  2844. it has closed the writing capability of its connection, to close the reading capability as well,
  2845. hence fully terminating the connection.
  2846. It is a duration in milliseconds, defaulting to 100.
  2847. A negative value means an infinite deadline (i.e. the reading capability is never closed).
  2848. type: integer
  2849. weight:
  2850. description: Weight defines the weight used when balancing
  2851. requests between multiple Kubernetes Service.
  2852. type: integer
  2853. required:
  2854. - name
  2855. - port
  2856. type: object
  2857. type: array
  2858. required:
  2859. - match
  2860. type: object
  2861. type: array
  2862. tls:
  2863. description: |-
  2864. TLS defines the TLS configuration on a layer 4 / TCP Route.
  2865. More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#tls_1
  2866. properties:
  2867. certResolver:
  2868. description: |-
  2869. CertResolver defines the name of the certificate resolver to use.
  2870. Cert resolvers have to be configured in the static configuration.
  2871. More info: https://doc.traefik.io/traefik/v2.11/https/acme/#certificate-resolvers
  2872. type: string
  2873. domains:
  2874. description: |-
  2875. Domains defines the list of domains that will be used to issue certificates.
  2876. More info: https://doc.traefik.io/traefik/v2.11/routing/routers/#domains
  2877. items:
  2878. description: Domain holds a domain name with SANs.
  2879. properties:
  2880. main:
  2881. description: Main defines the main domain name.
  2882. type: string
  2883. sans:
  2884. description: SANs defines the subject alternative domain
  2885. names.
  2886. items:
  2887. type: string
  2888. type: array
  2889. type: object
  2890. type: array
  2891. options:
  2892. description: |-
  2893. Options defines the reference to a TLSOption, that specifies the parameters of the TLS connection.
  2894. If not defined, the `default` TLSOption is used.
  2895. More info: https://doc.traefik.io/traefik/v2.11/https/tls/#tls-options
  2896. properties:
  2897. name:
  2898. description: Name defines the name of the referenced Traefik
  2899. resource.
  2900. type: string
  2901. namespace:
  2902. description: Namespace defines the namespace of the referenced
  2903. Traefik resource.
  2904. type: string
  2905. required:
  2906. - name
  2907. type: object
  2908. passthrough:
  2909. description: Passthrough defines whether a TLS router will terminate
  2910. the TLS connection.
  2911. type: boolean
  2912. secretName:
  2913. description: SecretName is the name of the referenced Kubernetes
  2914. Secret to specify the certificate details.
  2915. type: string
  2916. store:
  2917. description: |-
  2918. Store defines the reference to the TLSStore, that will be used to store certificates.
  2919. Please note that only `default` TLSStore can be used.
  2920. properties:
  2921. name:
  2922. description: Name defines the name of the referenced Traefik
  2923. resource.
  2924. type: string
  2925. namespace:
  2926. description: Namespace defines the namespace of the referenced
  2927. Traefik resource.
  2928. type: string
  2929. required:
  2930. - name
  2931. type: object
  2932. type: object
  2933. required:
  2934. - routes
  2935. type: object
  2936. required:
  2937. - metadata
  2938. - spec
  2939. type: object
  2940. served: true
  2941. storage: true
  2942. ---
  2943. apiVersion: apiextensions.k8s.io/v1
  2944. kind: CustomResourceDefinition
  2945. metadata:
  2946. annotations:
  2947. controller-gen.kubebuilder.io/version: v0.14.0
  2948. name: ingressrouteudps.traefik.containo.us
  2949. spec:
  2950. group: traefik.containo.us
  2951. names:
  2952. kind: IngressRouteUDP
  2953. listKind: IngressRouteUDPList
  2954. plural: ingressrouteudps
  2955. singular: ingressrouteudp
  2956. scope: Namespaced
  2957. versions:
  2958. - name: v1alpha1
  2959. schema:
  2960. openAPIV3Schema:
  2961. description: IngressRouteUDP is a CRD implementation of a Traefik UDP Router.
  2962. properties:
  2963. apiVersion:
  2964. description: |-
  2965. APIVersion defines the versioned schema of this representation of an object.
  2966. Servers should convert recognized schemas to the latest internal value, and
  2967. may reject unrecognized values.
  2968. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  2969. type: string
  2970. kind:
  2971. description: |-
  2972. Kind is a string value representing the REST resource this object represents.
  2973. Servers may infer this from the endpoint the client submits requests to.
  2974. Cannot be updated.
  2975. In CamelCase.
  2976. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  2977. type: string
  2978. metadata:
  2979. type: object
  2980. spec:
  2981. description: IngressRouteUDPSpec defines the desired state of a IngressRouteUDP.
  2982. properties:
  2983. entryPoints:
  2984. description: |-
  2985. EntryPoints defines the list of entry point names to bind to.
  2986. Entry points have to be configured in the static configuration.
  2987. More info: https://doc.traefik.io/traefik/v2.11/routing/entrypoints/
  2988. Default: all.
  2989. items:
  2990. type: string
  2991. type: array
  2992. routes:
  2993. description: Routes defines the list of routes.
  2994. items:
  2995. description: RouteUDP holds the UDP route configuration.
  2996. properties:
  2997. services:
  2998. description: Services defines the list of UDP services.
  2999. items:
  3000. description: ServiceUDP defines an upstream UDP service to
  3001. proxy traffic to.
  3002. properties:
  3003. name:
  3004. description: Name defines the name of the referenced Kubernetes
  3005. Service.
  3006. type: string
  3007. namespace:
  3008. description: Namespace defines the namespace of the referenced
  3009. Kubernetes Service.
  3010. type: string
  3011. nativeLB:
  3012. description: |-
  3013. NativeLB controls, when creating the load-balancer,
  3014. whether the LB's children are directly the pods IPs or if the only child is the Kubernetes Service clusterIP.
  3015. The Kubernetes Service itself does load-balance to the pods.
  3016. By default, NativeLB is false.
  3017. type: boolean
  3018. port:
  3019. anyOf:
  3020. - type: integer
  3021. - type: string
  3022. description: |-
  3023. Port defines the port of a Kubernetes Service.
  3024. This can be a reference to a named port.
  3025. x-kubernetes-int-or-string: true
  3026. weight:
  3027. description: Weight defines the weight used when balancing
  3028. requests between multiple Kubernetes Service.
  3029. type: integer
  3030. required:
  3031. - name
  3032. - port
  3033. type: object
  3034. type: array
  3035. type: object
  3036. type: array
  3037. required:
  3038. - routes
  3039. type: object
  3040. required:
  3041. - metadata
  3042. - spec
  3043. type: object
  3044. served: true
  3045. storage: true
  3046. ---
  3047. apiVersion: apiextensions.k8s.io/v1
  3048. kind: CustomResourceDefinition
  3049. metadata:
  3050. annotations:
  3051. controller-gen.kubebuilder.io/version: v0.14.0
  3052. name: middlewares.traefik.containo.us
  3053. spec:
  3054. group: traefik.containo.us
  3055. names:
  3056. kind: Middleware
  3057. listKind: MiddlewareList
  3058. plural: middlewares
  3059. singular: middleware
  3060. scope: Namespaced
  3061. versions:
  3062. - name: v1alpha1
  3063. schema:
  3064. openAPIV3Schema:
  3065. description: |-
  3066. Middleware is the CRD implementation of a Traefik Middleware.
  3067. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/overview/
  3068. properties:
  3069. apiVersion:
  3070. description: |-
  3071. APIVersion defines the versioned schema of this representation of an object.
  3072. Servers should convert recognized schemas to the latest internal value, and
  3073. may reject unrecognized values.
  3074. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  3075. type: string
  3076. kind:
  3077. description: |-
  3078. Kind is a string value representing the REST resource this object represents.
  3079. Servers may infer this from the endpoint the client submits requests to.
  3080. Cannot be updated.
  3081. In CamelCase.
  3082. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  3083. type: string
  3084. metadata:
  3085. type: object
  3086. spec:
  3087. description: MiddlewareSpec defines the desired state of a Middleware.
  3088. properties:
  3089. addPrefix:
  3090. description: |-
  3091. AddPrefix holds the add prefix middleware configuration.
  3092. This middleware updates the path of a request before forwarding it.
  3093. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/addprefix/
  3094. properties:
  3095. prefix:
  3096. description: |-
  3097. Prefix is the string to add before the current path in the requested URL.
  3098. It should include a leading slash (/).
  3099. type: string
  3100. type: object
  3101. basicAuth:
  3102. description: |-
  3103. BasicAuth holds the basic auth middleware configuration.
  3104. This middleware restricts access to your services to known users.
  3105. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/basicauth/
  3106. properties:
  3107. headerField:
  3108. description: |-
  3109. HeaderField defines a header field to store the authenticated user.
  3110. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/basicauth/#headerfield
  3111. type: string
  3112. realm:
  3113. description: |-
  3114. Realm allows the protected resources on a server to be partitioned into a set of protection spaces, each with its own authentication scheme.
  3115. Default: traefik.
  3116. type: string
  3117. removeHeader:
  3118. description: |-
  3119. RemoveHeader sets the removeHeader option to true to remove the authorization header before forwarding the request to your service.
  3120. Default: false.
  3121. type: boolean
  3122. secret:
  3123. description: Secret is the name of the referenced Kubernetes Secret
  3124. containing user credentials.
  3125. type: string
  3126. type: object
  3127. buffering:
  3128. description: |-
  3129. Buffering holds the buffering middleware configuration.
  3130. This middleware retries or limits the size of requests that can be forwarded to backends.
  3131. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/buffering/#maxrequestbodybytes
  3132. properties:
  3133. maxRequestBodyBytes:
  3134. description: |-
  3135. MaxRequestBodyBytes defines the maximum allowed body size for the request (in bytes).
  3136. 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.
  3137. Default: 0 (no maximum).
  3138. format: int64
  3139. type: integer
  3140. maxResponseBodyBytes:
  3141. description: |-
  3142. MaxResponseBodyBytes defines the maximum allowed response size from the service (in bytes).
  3143. If the response exceeds the allowed size, it is not forwarded to the client. The client gets a 500 (Internal Server Error) response instead.
  3144. Default: 0 (no maximum).
  3145. format: int64
  3146. type: integer
  3147. memRequestBodyBytes:
  3148. description: |-
  3149. MemRequestBodyBytes defines the threshold (in bytes) from which the request will be buffered on disk instead of in memory.
  3150. Default: 1048576 (1Mi).
  3151. format: int64
  3152. type: integer
  3153. memResponseBodyBytes:
  3154. description: |-
  3155. MemResponseBodyBytes defines the threshold (in bytes) from which the response will be buffered on disk instead of in memory.
  3156. Default: 1048576 (1Mi).
  3157. format: int64
  3158. type: integer
  3159. retryExpression:
  3160. description: |-
  3161. RetryExpression defines the retry conditions.
  3162. It is a logical combination of functions with operators AND (&&) and OR (||).
  3163. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/buffering/#retryexpression
  3164. type: string
  3165. type: object
  3166. chain:
  3167. description: |-
  3168. Chain holds the configuration of the chain middleware.
  3169. This middleware enables to define reusable combinations of other pieces of middleware.
  3170. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/chain/
  3171. properties:
  3172. middlewares:
  3173. description: Middlewares is the list of MiddlewareRef which composes
  3174. the chain.
  3175. items:
  3176. description: MiddlewareRef is a reference to a Middleware resource.
  3177. properties:
  3178. name:
  3179. description: Name defines the name of the referenced Middleware
  3180. resource.
  3181. type: string
  3182. namespace:
  3183. description: Namespace defines the namespace of the referenced
  3184. Middleware resource.
  3185. type: string
  3186. required:
  3187. - name
  3188. type: object
  3189. type: array
  3190. type: object
  3191. circuitBreaker:
  3192. description: CircuitBreaker holds the circuit breaker configuration.
  3193. properties:
  3194. checkPeriod:
  3195. anyOf:
  3196. - type: integer
  3197. - type: string
  3198. description: CheckPeriod is the interval between successive checks
  3199. of the circuit breaker condition (when in standby state).
  3200. x-kubernetes-int-or-string: true
  3201. expression:
  3202. description: Expression is the condition that triggers the tripped
  3203. state.
  3204. type: string
  3205. fallbackDuration:
  3206. anyOf:
  3207. - type: integer
  3208. - type: string
  3209. description: FallbackDuration is the duration for which the circuit
  3210. breaker will wait before trying to recover (from a tripped state).
  3211. x-kubernetes-int-or-string: true
  3212. recoveryDuration:
  3213. anyOf:
  3214. - type: integer
  3215. - type: string
  3216. description: RecoveryDuration is the duration for which the circuit
  3217. breaker will try to recover (as soon as it is in recovering
  3218. state).
  3219. x-kubernetes-int-or-string: true
  3220. type: object
  3221. compress:
  3222. description: |-
  3223. Compress holds the compress middleware configuration.
  3224. This middleware compresses responses before sending them to the client, using gzip compression.
  3225. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/compress/
  3226. properties:
  3227. excludedContentTypes:
  3228. description: ExcludedContentTypes defines the list of content
  3229. types to compare the Content-Type header of the incoming requests
  3230. and responses before compressing.
  3231. items:
  3232. type: string
  3233. type: array
  3234. minResponseBodyBytes:
  3235. description: |-
  3236. MinResponseBodyBytes defines the minimum amount of bytes a response body must have to be compressed.
  3237. Default: 1024.
  3238. type: integer
  3239. type: object
  3240. contentType:
  3241. description: |-
  3242. ContentType holds the content-type middleware configuration.
  3243. This middleware exists to enable the correct behavior until at least the default one can be changed in a future version.
  3244. properties:
  3245. autoDetect:
  3246. description: |-
  3247. AutoDetect specifies whether to let the `Content-Type` header, if it has not been set by the backend,
  3248. be automatically set to a value derived from the contents of the response.
  3249. As a proxy, the default behavior should be to leave the header alone, regardless of what the backend did with it.
  3250. However, the historic default was to always auto-detect and set the header if it was nil,
  3251. and it is going to be kept that way in order to support users currently relying on it.
  3252. type: boolean
  3253. type: object
  3254. digestAuth:
  3255. description: |-
  3256. DigestAuth holds the digest auth middleware configuration.
  3257. This middleware restricts access to your services to known users.
  3258. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/digestauth/
  3259. properties:
  3260. headerField:
  3261. description: |-
  3262. HeaderField defines a header field to store the authenticated user.
  3263. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/basicauth/#headerfield
  3264. type: string
  3265. realm:
  3266. description: |-
  3267. Realm allows the protected resources on a server to be partitioned into a set of protection spaces, each with its own authentication scheme.
  3268. Default: traefik.
  3269. type: string
  3270. removeHeader:
  3271. description: RemoveHeader defines whether to remove the authorization
  3272. header before forwarding the request to the backend.
  3273. type: boolean
  3274. secret:
  3275. description: Secret is the name of the referenced Kubernetes Secret
  3276. containing user credentials.
  3277. type: string
  3278. type: object
  3279. errors:
  3280. description: |-
  3281. ErrorPage holds the custom error middleware configuration.
  3282. This middleware returns a custom page in lieu of the default, according to configured ranges of HTTP Status codes.
  3283. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/errorpages/
  3284. properties:
  3285. query:
  3286. description: |-
  3287. Query defines the URL for the error page (hosted by service).
  3288. The {status} variable can be used in order to insert the status code in the URL.
  3289. type: string
  3290. service:
  3291. description: |-
  3292. Service defines the reference to a Kubernetes Service that will serve the error page.
  3293. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/errorpages/#service
  3294. properties:
  3295. kind:
  3296. description: Kind defines the kind of the Service.
  3297. enum:
  3298. - Service
  3299. - TraefikService
  3300. type: string
  3301. name:
  3302. description: |-
  3303. Name defines the name of the referenced Kubernetes Service or TraefikService.
  3304. The differentiation between the two is specified in the Kind field.
  3305. type: string
  3306. namespace:
  3307. description: Namespace defines the namespace of the referenced
  3308. Kubernetes Service or TraefikService.
  3309. type: string
  3310. nativeLB:
  3311. description: |-
  3312. NativeLB controls, when creating the load-balancer,
  3313. whether the LB's children are directly the pods IPs or if the only child is the Kubernetes Service clusterIP.
  3314. The Kubernetes Service itself does load-balance to the pods.
  3315. By default, NativeLB is false.
  3316. type: boolean
  3317. passHostHeader:
  3318. description: |-
  3319. PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service.
  3320. By default, passHostHeader is true.
  3321. type: boolean
  3322. port:
  3323. anyOf:
  3324. - type: integer
  3325. - type: string
  3326. description: |-
  3327. Port defines the port of a Kubernetes Service.
  3328. This can be a reference to a named port.
  3329. x-kubernetes-int-or-string: true
  3330. responseForwarding:
  3331. description: ResponseForwarding defines how Traefik forwards
  3332. the response from the upstream Kubernetes Service to the
  3333. client.
  3334. properties:
  3335. flushInterval:
  3336. description: |-
  3337. FlushInterval defines the interval, in milliseconds, in between flushes to the client while copying the response body.
  3338. A negative value means to flush immediately after each write to the client.
  3339. This configuration is ignored when ReverseProxy recognizes a response as a streaming response;
  3340. for such responses, writes are flushed to the client immediately.
  3341. Default: 100ms
  3342. type: string
  3343. type: object
  3344. scheme:
  3345. description: |-
  3346. Scheme defines the scheme to use for the request to the upstream Kubernetes Service.
  3347. It defaults to https when Kubernetes Service port is 443, http otherwise.
  3348. type: string
  3349. serversTransport:
  3350. description: |-
  3351. ServersTransport defines the name of ServersTransport resource to use.
  3352. It allows to configure the transport between Traefik and your servers.
  3353. Can only be used on a Kubernetes Service.
  3354. type: string
  3355. sticky:
  3356. description: |-
  3357. Sticky defines the sticky sessions configuration.
  3358. More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions
  3359. properties:
  3360. cookie:
  3361. description: Cookie defines the sticky cookie configuration.
  3362. properties:
  3363. httpOnly:
  3364. description: HTTPOnly defines whether the cookie can
  3365. be accessed by client-side APIs, such as JavaScript.
  3366. type: boolean
  3367. name:
  3368. description: Name defines the Cookie name.
  3369. type: string
  3370. sameSite:
  3371. description: |-
  3372. SameSite defines the same site policy.
  3373. More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite
  3374. type: string
  3375. secure:
  3376. description: Secure defines whether the cookie can
  3377. only be transmitted over an encrypted connection
  3378. (i.e. HTTPS).
  3379. type: boolean
  3380. type: object
  3381. type: object
  3382. strategy:
  3383. description: |-
  3384. Strategy defines the load balancing strategy between the servers.
  3385. RoundRobin is the only supported value at the moment.
  3386. type: string
  3387. weight:
  3388. description: |-
  3389. Weight defines the weight and should only be specified when Name references a TraefikService object
  3390. (and to be precise, one that embeds a Weighted Round Robin).
  3391. type: integer
  3392. required:
  3393. - name
  3394. type: object
  3395. status:
  3396. description: |-
  3397. Status defines which status or range of statuses should result in an error page.
  3398. It can be either a status code as a number (500),
  3399. as multiple comma-separated numbers (500,502),
  3400. as ranges by separating two codes with a dash (500-599),
  3401. or a combination of the two (404,418,500-599).
  3402. items:
  3403. type: string
  3404. type: array
  3405. type: object
  3406. forwardAuth:
  3407. description: |-
  3408. ForwardAuth holds the forward auth middleware configuration.
  3409. This middleware delegates the request authentication to a Service.
  3410. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/forwardauth/
  3411. properties:
  3412. address:
  3413. description: Address defines the authentication server address.
  3414. type: string
  3415. authRequestHeaders:
  3416. description: |-
  3417. AuthRequestHeaders defines the list of the headers to copy from the request to the authentication server.
  3418. If not set or empty then all request headers are passed.
  3419. items:
  3420. type: string
  3421. type: array
  3422. authResponseHeaders:
  3423. description: AuthResponseHeaders defines the list of headers to
  3424. copy from the authentication server response and set on forwarded
  3425. request, replacing any existing conflicting headers.
  3426. items:
  3427. type: string
  3428. type: array
  3429. authResponseHeadersRegex:
  3430. description: |-
  3431. 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.
  3432. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/forwardauth/#authresponseheadersregex
  3433. type: string
  3434. tls:
  3435. description: TLS defines the configuration used to secure the
  3436. connection to the authentication server.
  3437. properties:
  3438. caOptional:
  3439. type: boolean
  3440. caSecret:
  3441. description: |-
  3442. CASecret is the name of the referenced Kubernetes Secret containing the CA to validate the server certificate.
  3443. The CA certificate is extracted from key `tls.ca` or `ca.crt`.
  3444. type: string
  3445. certSecret:
  3446. description: |-
  3447. CertSecret is the name of the referenced Kubernetes Secret containing the client certificate.
  3448. The client certificate is extracted from the keys `tls.crt` and `tls.key`.
  3449. type: string
  3450. insecureSkipVerify:
  3451. description: InsecureSkipVerify defines whether the server
  3452. certificates should be validated.
  3453. type: boolean
  3454. type: object
  3455. trustForwardHeader:
  3456. description: 'TrustForwardHeader defines whether to trust (ie:
  3457. forward) all X-Forwarded-* headers.'
  3458. type: boolean
  3459. type: object
  3460. headers:
  3461. description: |-
  3462. Headers holds the headers middleware configuration.
  3463. This middleware manages the requests and responses headers.
  3464. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/headers/#customrequestheaders
  3465. properties:
  3466. accessControlAllowCredentials:
  3467. description: AccessControlAllowCredentials defines whether the
  3468. request can include user credentials.
  3469. type: boolean
  3470. accessControlAllowHeaders:
  3471. description: AccessControlAllowHeaders defines the Access-Control-Request-Headers
  3472. values sent in preflight response.
  3473. items:
  3474. type: string
  3475. type: array
  3476. accessControlAllowMethods:
  3477. description: AccessControlAllowMethods defines the Access-Control-Request-Method
  3478. values sent in preflight response.
  3479. items:
  3480. type: string
  3481. type: array
  3482. accessControlAllowOriginList:
  3483. description: AccessControlAllowOriginList is a list of allowable
  3484. origins. Can also be a wildcard origin "*".
  3485. items:
  3486. type: string
  3487. type: array
  3488. accessControlAllowOriginListRegex:
  3489. description: AccessControlAllowOriginListRegex is a list of allowable
  3490. origins written following the Regular Expression syntax (https://golang.org/pkg/regexp/).
  3491. items:
  3492. type: string
  3493. type: array
  3494. accessControlExposeHeaders:
  3495. description: AccessControlExposeHeaders defines the Access-Control-Expose-Headers
  3496. values sent in preflight response.
  3497. items:
  3498. type: string
  3499. type: array
  3500. accessControlMaxAge:
  3501. description: AccessControlMaxAge defines the time that a preflight
  3502. request may be cached.
  3503. format: int64
  3504. type: integer
  3505. addVaryHeader:
  3506. description: AddVaryHeader defines whether the Vary header is
  3507. automatically added/updated when the AccessControlAllowOriginList
  3508. is set.
  3509. type: boolean
  3510. allowedHosts:
  3511. description: AllowedHosts defines the fully qualified list of
  3512. allowed domain names.
  3513. items:
  3514. type: string
  3515. type: array
  3516. browserXssFilter:
  3517. description: BrowserXSSFilter defines whether to add the X-XSS-Protection
  3518. header with the value 1; mode=block.
  3519. type: boolean
  3520. contentSecurityPolicy:
  3521. description: ContentSecurityPolicy defines the Content-Security-Policy
  3522. header value.
  3523. type: string
  3524. contentTypeNosniff:
  3525. description: ContentTypeNosniff defines whether to add the X-Content-Type-Options
  3526. header with the nosniff value.
  3527. type: boolean
  3528. customBrowserXSSValue:
  3529. description: |-
  3530. CustomBrowserXSSValue defines the X-XSS-Protection header value.
  3531. This overrides the BrowserXssFilter option.
  3532. type: string
  3533. customFrameOptionsValue:
  3534. description: |-
  3535. CustomFrameOptionsValue defines the X-Frame-Options header value.
  3536. This overrides the FrameDeny option.
  3537. type: string
  3538. customRequestHeaders:
  3539. additionalProperties:
  3540. type: string
  3541. description: CustomRequestHeaders defines the header names and
  3542. values to apply to the request.
  3543. type: object
  3544. customResponseHeaders:
  3545. additionalProperties:
  3546. type: string
  3547. description: CustomResponseHeaders defines the header names and
  3548. values to apply to the response.
  3549. type: object
  3550. featurePolicy:
  3551. description: 'Deprecated: use PermissionsPolicy instead.'
  3552. type: string
  3553. forceSTSHeader:
  3554. description: ForceSTSHeader defines whether to add the STS header
  3555. even when the connection is HTTP.
  3556. type: boolean
  3557. frameDeny:
  3558. description: FrameDeny defines whether to add the X-Frame-Options
  3559. header with the DENY value.
  3560. type: boolean
  3561. hostsProxyHeaders:
  3562. description: HostsProxyHeaders defines the header keys that may
  3563. hold a proxied hostname value for the request.
  3564. items:
  3565. type: string
  3566. type: array
  3567. isDevelopment:
  3568. description: |-
  3569. IsDevelopment defines whether to mitigate the unwanted effects of the AllowedHosts, SSL, and STS options when developing.
  3570. Usually testing takes place using HTTP, not HTTPS, and on localhost, not your production domain.
  3571. If you would like your development environment to mimic production with complete Host blocking, SSL redirects,
  3572. and STS headers, leave this as false.
  3573. type: boolean
  3574. permissionsPolicy:
  3575. description: |-
  3576. PermissionsPolicy defines the Permissions-Policy header value.
  3577. This allows sites to control browser features.
  3578. type: string
  3579. publicKey:
  3580. description: PublicKey is the public key that implements HPKP
  3581. to prevent MITM attacks with forged certificates.
  3582. type: string
  3583. referrerPolicy:
  3584. description: |-
  3585. ReferrerPolicy defines the Referrer-Policy header value.
  3586. This allows sites to control whether browsers forward the Referer header to other sites.
  3587. type: string
  3588. sslForceHost:
  3589. description: 'Deprecated: use RedirectRegex instead.'
  3590. type: boolean
  3591. sslHost:
  3592. description: 'Deprecated: use RedirectRegex instead.'
  3593. type: string
  3594. sslProxyHeaders:
  3595. additionalProperties:
  3596. type: string
  3597. description: |-
  3598. SSLProxyHeaders defines the header keys with associated values that would indicate a valid HTTPS request.
  3599. It can be useful when using other proxies (example: "X-Forwarded-Proto": "https").
  3600. type: object
  3601. sslRedirect:
  3602. description: 'Deprecated: use EntryPoint redirection or RedirectScheme
  3603. instead.'
  3604. type: boolean
  3605. sslTemporaryRedirect:
  3606. description: 'Deprecated: use EntryPoint redirection or RedirectScheme
  3607. instead.'
  3608. type: boolean
  3609. stsIncludeSubdomains:
  3610. description: STSIncludeSubdomains defines whether the includeSubDomains
  3611. directive is appended to the Strict-Transport-Security header.
  3612. type: boolean
  3613. stsPreload:
  3614. description: STSPreload defines whether the preload flag is appended
  3615. to the Strict-Transport-Security header.
  3616. type: boolean
  3617. stsSeconds:
  3618. description: |-
  3619. STSSeconds defines the max-age of the Strict-Transport-Security header.
  3620. If set to 0, the header is not set.
  3621. format: int64
  3622. type: integer
  3623. type: object
  3624. inFlightReq:
  3625. description: |-
  3626. InFlightReq holds the in-flight request middleware configuration.
  3627. This middleware limits the number of requests being processed and served concurrently.
  3628. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/inflightreq/
  3629. properties:
  3630. amount:
  3631. description: |-
  3632. Amount defines the maximum amount of allowed simultaneous in-flight request.
  3633. The middleware responds with HTTP 429 Too Many Requests if there are already amount requests in progress (based on the same sourceCriterion strategy).
  3634. format: int64
  3635. type: integer
  3636. sourceCriterion:
  3637. description: |-
  3638. SourceCriterion defines what criterion is used to group requests as originating from a common source.
  3639. If several strategies are defined at the same time, an error will be raised.
  3640. If none are set, the default is to use the requestHost.
  3641. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/inflightreq/#sourcecriterion
  3642. properties:
  3643. ipStrategy:
  3644. description: |-
  3645. IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP.
  3646. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy
  3647. properties:
  3648. depth:
  3649. description: Depth tells Traefik to use the X-Forwarded-For
  3650. header and take the IP located at the depth position
  3651. (starting from the right).
  3652. type: integer
  3653. excludedIPs:
  3654. description: ExcludedIPs configures Traefik to scan the
  3655. X-Forwarded-For header and select the first IP not in
  3656. the list.
  3657. items:
  3658. type: string
  3659. type: array
  3660. type: object
  3661. requestHeaderName:
  3662. description: RequestHeaderName defines the name of the header
  3663. used to group incoming requests.
  3664. type: string
  3665. requestHost:
  3666. description: RequestHost defines whether to consider the request
  3667. Host as the source.
  3668. type: boolean
  3669. type: object
  3670. type: object
  3671. ipAllowList:
  3672. description: |-
  3673. IPAllowList holds the IP allowlist middleware configuration.
  3674. This middleware accepts / refuses requests based on the client IP.
  3675. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/
  3676. properties:
  3677. ipStrategy:
  3678. description: |-
  3679. IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP.
  3680. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy
  3681. properties:
  3682. depth:
  3683. description: Depth tells Traefik to use the X-Forwarded-For
  3684. header and take the IP located at the depth position (starting
  3685. from the right).
  3686. type: integer
  3687. excludedIPs:
  3688. description: ExcludedIPs configures Traefik to scan the X-Forwarded-For
  3689. header and select the first IP not in the list.
  3690. items:
  3691. type: string
  3692. type: array
  3693. type: object
  3694. sourceRange:
  3695. description: SourceRange defines the set of allowed IPs (or ranges
  3696. of allowed IPs by using CIDR notation).
  3697. items:
  3698. type: string
  3699. type: array
  3700. type: object
  3701. ipWhiteList:
  3702. description: |-
  3703. IPWhiteList holds the IP whitelist middleware configuration.
  3704. This middleware accepts / refuses requests based on the client IP.
  3705. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipwhitelist/
  3706. Deprecated: please use IPAllowList instead.
  3707. properties:
  3708. ipStrategy:
  3709. description: |-
  3710. IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP.
  3711. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy
  3712. properties:
  3713. depth:
  3714. description: Depth tells Traefik to use the X-Forwarded-For
  3715. header and take the IP located at the depth position (starting
  3716. from the right).
  3717. type: integer
  3718. excludedIPs:
  3719. description: ExcludedIPs configures Traefik to scan the X-Forwarded-For
  3720. header and select the first IP not in the list.
  3721. items:
  3722. type: string
  3723. type: array
  3724. type: object
  3725. sourceRange:
  3726. description: SourceRange defines the set of allowed IPs (or ranges
  3727. of allowed IPs by using CIDR notation).
  3728. items:
  3729. type: string
  3730. type: array
  3731. type: object
  3732. passTLSClientCert:
  3733. description: |-
  3734. PassTLSClientCert holds the pass TLS client cert middleware configuration.
  3735. This middleware adds the selected data from the passed client TLS certificate to a header.
  3736. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/passtlsclientcert/
  3737. properties:
  3738. info:
  3739. description: Info selects the specific client certificate details
  3740. you want to add to the X-Forwarded-Tls-Client-Cert-Info header.
  3741. properties:
  3742. issuer:
  3743. description: Issuer defines the client certificate issuer
  3744. details to add to the X-Forwarded-Tls-Client-Cert-Info header.
  3745. properties:
  3746. commonName:
  3747. description: CommonName defines whether to add the organizationalUnit
  3748. information into the issuer.
  3749. type: boolean
  3750. country:
  3751. description: Country defines whether to add the country
  3752. information into the issuer.
  3753. type: boolean
  3754. domainComponent:
  3755. description: DomainComponent defines whether to add the
  3756. domainComponent information into the issuer.
  3757. type: boolean
  3758. locality:
  3759. description: Locality defines whether to add the locality
  3760. information into the issuer.
  3761. type: boolean
  3762. organization:
  3763. description: Organization defines whether to add the organization
  3764. information into the issuer.
  3765. type: boolean
  3766. province:
  3767. description: Province defines whether to add the province
  3768. information into the issuer.
  3769. type: boolean
  3770. serialNumber:
  3771. description: SerialNumber defines whether to add the serialNumber
  3772. information into the issuer.
  3773. type: boolean
  3774. type: object
  3775. notAfter:
  3776. description: NotAfter defines whether to add the Not After
  3777. information from the Validity part.
  3778. type: boolean
  3779. notBefore:
  3780. description: NotBefore defines whether to add the Not Before
  3781. information from the Validity part.
  3782. type: boolean
  3783. sans:
  3784. description: Sans defines whether to add the Subject Alternative
  3785. Name information from the Subject Alternative Name part.
  3786. type: boolean
  3787. serialNumber:
  3788. description: SerialNumber defines whether to add the client
  3789. serialNumber information.
  3790. type: boolean
  3791. subject:
  3792. description: Subject defines the client certificate subject
  3793. details to add to the X-Forwarded-Tls-Client-Cert-Info header.
  3794. properties:
  3795. commonName:
  3796. description: CommonName defines whether to add the organizationalUnit
  3797. information into the subject.
  3798. type: boolean
  3799. country:
  3800. description: Country defines whether to add the country
  3801. information into the subject.
  3802. type: boolean
  3803. domainComponent:
  3804. description: DomainComponent defines whether to add the
  3805. domainComponent information into the subject.
  3806. type: boolean
  3807. locality:
  3808. description: Locality defines whether to add the locality
  3809. information into the subject.
  3810. type: boolean
  3811. organization:
  3812. description: Organization defines whether to add the organization
  3813. information into the subject.
  3814. type: boolean
  3815. organizationalUnit:
  3816. description: OrganizationalUnit defines whether to add
  3817. the organizationalUnit information into the subject.
  3818. type: boolean
  3819. province:
  3820. description: Province defines whether to add the province
  3821. information into the subject.
  3822. type: boolean
  3823. serialNumber:
  3824. description: SerialNumber defines whether to add the serialNumber
  3825. information into the subject.
  3826. type: boolean
  3827. type: object
  3828. type: object
  3829. pem:
  3830. description: PEM sets the X-Forwarded-Tls-Client-Cert header with
  3831. the certificate.
  3832. type: boolean
  3833. type: object
  3834. plugin:
  3835. additionalProperties:
  3836. x-kubernetes-preserve-unknown-fields: true
  3837. description: |-
  3838. Plugin defines the middleware plugin configuration.
  3839. More info: https://doc.traefik.io/traefik/plugins/
  3840. type: object
  3841. rateLimit:
  3842. description: |-
  3843. RateLimit holds the rate limit configuration.
  3844. This middleware ensures that services will receive a fair amount of requests, and allows one to define what fair is.
  3845. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ratelimit/
  3846. properties:
  3847. average:
  3848. description: |-
  3849. Average is the maximum rate, by default in requests/s, allowed for the given source.
  3850. It defaults to 0, which means no rate limiting.
  3851. The rate is actually defined by dividing Average by Period. So for a rate below 1req/s,
  3852. one needs to define a Period larger than a second.
  3853. format: int64
  3854. type: integer
  3855. burst:
  3856. description: |-
  3857. Burst is the maximum number of requests allowed to arrive in the same arbitrarily small period of time.
  3858. It defaults to 1.
  3859. format: int64
  3860. type: integer
  3861. period:
  3862. anyOf:
  3863. - type: integer
  3864. - type: string
  3865. description: |-
  3866. Period, in combination with Average, defines the actual maximum rate, such as:
  3867. r = Average / Period. It defaults to a second.
  3868. x-kubernetes-int-or-string: true
  3869. sourceCriterion:
  3870. description: |-
  3871. SourceCriterion defines what criterion is used to group requests as originating from a common source.
  3872. If several strategies are defined at the same time, an error will be raised.
  3873. If none are set, the default is to use the request's remote address field (as an ipStrategy).
  3874. properties:
  3875. ipStrategy:
  3876. description: |-
  3877. IPStrategy holds the IP strategy configuration used by Traefik to determine the client IP.
  3878. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/ipallowlist/#ipstrategy
  3879. properties:
  3880. depth:
  3881. description: Depth tells Traefik to use the X-Forwarded-For
  3882. header and take the IP located at the depth position
  3883. (starting from the right).
  3884. type: integer
  3885. excludedIPs:
  3886. description: ExcludedIPs configures Traefik to scan the
  3887. X-Forwarded-For header and select the first IP not in
  3888. the list.
  3889. items:
  3890. type: string
  3891. type: array
  3892. type: object
  3893. requestHeaderName:
  3894. description: RequestHeaderName defines the name of the header
  3895. used to group incoming requests.
  3896. type: string
  3897. requestHost:
  3898. description: RequestHost defines whether to consider the request
  3899. Host as the source.
  3900. type: boolean
  3901. type: object
  3902. type: object
  3903. redirectRegex:
  3904. description: |-
  3905. RedirectRegex holds the redirect regex middleware configuration.
  3906. This middleware redirects a request using regex matching and replacement.
  3907. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/redirectregex/#regex
  3908. properties:
  3909. permanent:
  3910. description: Permanent defines whether the redirection is permanent
  3911. (301).
  3912. type: boolean
  3913. regex:
  3914. description: Regex defines the regex used to match and capture
  3915. elements from the request URL.
  3916. type: string
  3917. replacement:
  3918. description: Replacement defines how to modify the URL to have
  3919. the new target URL.
  3920. type: string
  3921. type: object
  3922. redirectScheme:
  3923. description: |-
  3924. RedirectScheme holds the redirect scheme middleware configuration.
  3925. This middleware redirects requests from a scheme/port to another.
  3926. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/redirectscheme/
  3927. properties:
  3928. permanent:
  3929. description: Permanent defines whether the redirection is permanent
  3930. (301).
  3931. type: boolean
  3932. port:
  3933. description: Port defines the port of the new URL.
  3934. type: string
  3935. scheme:
  3936. description: Scheme defines the scheme of the new URL.
  3937. type: string
  3938. type: object
  3939. replacePath:
  3940. description: |-
  3941. ReplacePath holds the replace path middleware configuration.
  3942. This middleware replaces the path of the request URL and store the original path in an X-Replaced-Path header.
  3943. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/replacepath/
  3944. properties:
  3945. path:
  3946. description: Path defines the path to use as replacement in the
  3947. request URL.
  3948. type: string
  3949. type: object
  3950. replacePathRegex:
  3951. description: |-
  3952. ReplacePathRegex holds the replace path regex middleware configuration.
  3953. This middleware replaces the path of a URL using regex matching and replacement.
  3954. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/replacepathregex/
  3955. properties:
  3956. regex:
  3957. description: Regex defines the regular expression used to match
  3958. and capture the path from the request URL.
  3959. type: string
  3960. replacement:
  3961. description: Replacement defines the replacement path format,
  3962. which can include captured variables.
  3963. type: string
  3964. type: object
  3965. retry:
  3966. description: |-
  3967. Retry holds the retry middleware configuration.
  3968. This middleware reissues requests a given number of times to a backend server if that server does not reply.
  3969. As soon as the server answers, the middleware stops retrying, regardless of the response status.
  3970. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/retry/
  3971. properties:
  3972. attempts:
  3973. description: Attempts defines how many times the request should
  3974. be retried.
  3975. type: integer
  3976. initialInterval:
  3977. anyOf:
  3978. - type: integer
  3979. - type: string
  3980. description: |-
  3981. InitialInterval defines the first wait time in the exponential backoff series.
  3982. The maximum interval is calculated as twice the initialInterval.
  3983. If unspecified, requests will be retried immediately.
  3984. The value of initialInterval should be provided in seconds or as a valid duration format,
  3985. see https://pkg.go.dev/time#ParseDuration.
  3986. x-kubernetes-int-or-string: true
  3987. type: object
  3988. stripPrefix:
  3989. description: |-
  3990. StripPrefix holds the strip prefix middleware configuration.
  3991. This middleware removes the specified prefixes from the URL path.
  3992. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/stripprefix/
  3993. properties:
  3994. forceSlash:
  3995. description: |-
  3996. ForceSlash ensures that the resulting stripped path is not the empty string, by replacing it with / when necessary.
  3997. Default: true.
  3998. type: boolean
  3999. prefixes:
  4000. description: Prefixes defines the prefixes to strip from the request
  4001. URL.
  4002. items:
  4003. type: string
  4004. type: array
  4005. type: object
  4006. stripPrefixRegex:
  4007. description: |-
  4008. StripPrefixRegex holds the strip prefix regex middleware configuration.
  4009. This middleware removes the matching prefixes from the URL path.
  4010. More info: https://doc.traefik.io/traefik/v2.11/middlewares/http/stripprefixregex/
  4011. properties:
  4012. regex:
  4013. description: Regex defines the regular expression to match the
  4014. path prefix from the request URL.
  4015. items:
  4016. type: string
  4017. type: array
  4018. type: object
  4019. type: object
  4020. required:
  4021. - metadata
  4022. - spec
  4023. type: object
  4024. served: true
  4025. storage: true
  4026. ---
  4027. apiVersion: apiextensions.k8s.io/v1
  4028. kind: CustomResourceDefinition
  4029. metadata:
  4030. annotations:
  4031. controller-gen.kubebuilder.io/version: v0.14.0
  4032. name: middlewaretcps.traefik.containo.us
  4033. spec:
  4034. group: traefik.containo.us
  4035. names:
  4036. kind: MiddlewareTCP
  4037. listKind: MiddlewareTCPList
  4038. plural: middlewaretcps
  4039. singular: middlewaretcp
  4040. scope: Namespaced
  4041. versions:
  4042. - name: v1alpha1
  4043. schema:
  4044. openAPIV3Schema:
  4045. description: |-
  4046. MiddlewareTCP is the CRD implementation of a Traefik TCP middleware.
  4047. More info: https://doc.traefik.io/traefik/v2.11/middlewares/overview/
  4048. properties:
  4049. apiVersion:
  4050. description: |-
  4051. APIVersion defines the versioned schema of this representation of an object.
  4052. Servers should convert recognized schemas to the latest internal value, and
  4053. may reject unrecognized values.
  4054. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  4055. type: string
  4056. kind:
  4057. description: |-
  4058. Kind is a string value representing the REST resource this object represents.
  4059. Servers may infer this from the endpoint the client submits requests to.
  4060. Cannot be updated.
  4061. In CamelCase.
  4062. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  4063. type: string
  4064. metadata:
  4065. type: object
  4066. spec:
  4067. description: MiddlewareTCPSpec defines the desired state of a MiddlewareTCP.
  4068. properties:
  4069. inFlightConn:
  4070. description: InFlightConn defines the InFlightConn middleware configuration.
  4071. properties:
  4072. amount:
  4073. description: |-
  4074. Amount defines the maximum amount of allowed simultaneous connections.
  4075. The middleware closes the connection if there are already amount connections opened.
  4076. format: int64
  4077. type: integer
  4078. type: object
  4079. ipAllowList:
  4080. description: |-
  4081. IPAllowList defines the IPAllowList middleware configuration.
  4082. This middleware accepts/refuses connections based on the client IP.
  4083. More info: https://doc.traefik.io/traefik/v2.11/middlewares/tcp/ipallowlist/
  4084. properties:
  4085. sourceRange:
  4086. description: SourceRange defines the allowed IPs (or ranges of
  4087. allowed IPs by using CIDR notation).
  4088. items:
  4089. type: string
  4090. type: array
  4091. type: object
  4092. ipWhiteList:
  4093. description: |-
  4094. IPWhiteList defines the IPWhiteList middleware configuration.
  4095. This middleware accepts/refuses connections based on the client IP.
  4096. Deprecated: please use IPAllowList instead.
  4097. More info: https://doc.traefik.io/traefik/v2.11/middlewares/tcp/ipwhitelist/
  4098. properties:
  4099. sourceRange:
  4100. description: SourceRange defines the allowed IPs (or ranges of
  4101. allowed IPs by using CIDR notation).
  4102. items:
  4103. type: string
  4104. type: array
  4105. type: object
  4106. type: object
  4107. required:
  4108. - metadata
  4109. - spec
  4110. type: object
  4111. served: true
  4112. storage: true
  4113. ---
  4114. apiVersion: apiextensions.k8s.io/v1
  4115. kind: CustomResourceDefinition
  4116. metadata:
  4117. annotations:
  4118. controller-gen.kubebuilder.io/version: v0.14.0
  4119. name: serverstransports.traefik.containo.us
  4120. spec:
  4121. group: traefik.containo.us
  4122. names:
  4123. kind: ServersTransport
  4124. listKind: ServersTransportList
  4125. plural: serverstransports
  4126. singular: serverstransport
  4127. scope: Namespaced
  4128. versions:
  4129. - name: v1alpha1
  4130. schema:
  4131. openAPIV3Schema:
  4132. description: |-
  4133. ServersTransport is the CRD implementation of a ServersTransport.
  4134. If no serversTransport is specified, the default@internal will be used.
  4135. The default@internal serversTransport is created from the static configuration.
  4136. More info: https://doc.traefik.io/traefik/v2.11/routing/services/#serverstransport_1
  4137. properties:
  4138. apiVersion:
  4139. description: |-
  4140. APIVersion defines the versioned schema of this representation of an object.
  4141. Servers should convert recognized schemas to the latest internal value, and
  4142. may reject unrecognized values.
  4143. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  4144. type: string
  4145. kind:
  4146. description: |-
  4147. Kind is a string value representing the REST resource this object represents.
  4148. Servers may infer this from the endpoint the client submits requests to.
  4149. Cannot be updated.
  4150. In CamelCase.
  4151. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  4152. type: string
  4153. metadata:
  4154. type: object
  4155. spec:
  4156. description: ServersTransportSpec defines the desired state of a ServersTransport.
  4157. properties:
  4158. certificatesSecrets:
  4159. description: CertificatesSecrets defines a list of secret storing
  4160. client certificates for mTLS.
  4161. items:
  4162. type: string
  4163. type: array
  4164. disableHTTP2:
  4165. description: DisableHTTP2 disables HTTP/2 for connections with backend
  4166. servers.
  4167. type: boolean
  4168. forwardingTimeouts:
  4169. description: ForwardingTimeouts defines the timeouts for requests
  4170. forwarded to the backend servers.
  4171. properties:
  4172. dialTimeout:
  4173. anyOf:
  4174. - type: integer
  4175. - type: string
  4176. description: DialTimeout is the amount of time to wait until a
  4177. connection to a backend server can be established.
  4178. x-kubernetes-int-or-string: true
  4179. idleConnTimeout:
  4180. anyOf:
  4181. - type: integer
  4182. - type: string
  4183. description: IdleConnTimeout is the maximum period for which an
  4184. idle HTTP keep-alive connection will remain open before closing
  4185. itself.
  4186. x-kubernetes-int-or-string: true
  4187. pingTimeout:
  4188. anyOf:
  4189. - type: integer
  4190. - type: string
  4191. description: PingTimeout is the timeout after which the HTTP/2
  4192. connection will be closed if a response to ping is not received.
  4193. x-kubernetes-int-or-string: true
  4194. readIdleTimeout:
  4195. anyOf:
  4196. - type: integer
  4197. - type: string
  4198. description: ReadIdleTimeout is the timeout after which a health
  4199. check using ping frame will be carried out if no frame is received
  4200. on the HTTP/2 connection.
  4201. x-kubernetes-int-or-string: true
  4202. responseHeaderTimeout:
  4203. anyOf:
  4204. - type: integer
  4205. - type: string
  4206. description: ResponseHeaderTimeout is the amount of time to wait
  4207. for a server's response headers after fully writing the request
  4208. (including its body, if any).
  4209. x-kubernetes-int-or-string: true
  4210. type: object
  4211. insecureSkipVerify:
  4212. description: InsecureSkipVerify disables SSL certificate verification.
  4213. type: boolean
  4214. maxIdleConnsPerHost:
  4215. description: MaxIdleConnsPerHost controls the maximum idle (keep-alive)
  4216. to keep per-host.
  4217. type: integer
  4218. peerCertURI:
  4219. description: PeerCertURI defines the peer cert URI used to match against
  4220. SAN URI during the peer certificate verification.
  4221. type: string
  4222. rootCAsSecrets:
  4223. description: RootCAsSecrets defines a list of CA secret used to validate
  4224. self-signed certificate.
  4225. items:
  4226. type: string
  4227. type: array
  4228. serverName:
  4229. description: ServerName defines the server name used to contact the
  4230. server.
  4231. type: string
  4232. type: object
  4233. required:
  4234. - metadata
  4235. - spec
  4236. type: object
  4237. served: true
  4238. storage: true
  4239. ---
  4240. apiVersion: apiextensions.k8s.io/v1
  4241. kind: CustomResourceDefinition
  4242. metadata:
  4243. annotations:
  4244. controller-gen.kubebuilder.io/version: v0.14.0
  4245. name: tlsoptions.traefik.containo.us
  4246. spec:
  4247. group: traefik.containo.us
  4248. names:
  4249. kind: TLSOption
  4250. listKind: TLSOptionList
  4251. plural: tlsoptions
  4252. singular: tlsoption
  4253. scope: Namespaced
  4254. versions:
  4255. - name: v1alpha1
  4256. schema:
  4257. openAPIV3Schema:
  4258. description: |-
  4259. TLSOption is the CRD implementation of a Traefik TLS Option, allowing to configure some parameters of the TLS connection.
  4260. More info: https://doc.traefik.io/traefik/v2.11/https/tls/#tls-options
  4261. properties:
  4262. apiVersion:
  4263. description: |-
  4264. APIVersion defines the versioned schema of this representation of an object.
  4265. Servers should convert recognized schemas to the latest internal value, and
  4266. may reject unrecognized values.
  4267. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  4268. type: string
  4269. kind:
  4270. description: |-
  4271. Kind is a string value representing the REST resource this object represents.
  4272. Servers may infer this from the endpoint the client submits requests to.
  4273. Cannot be updated.
  4274. In CamelCase.
  4275. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  4276. type: string
  4277. metadata:
  4278. type: object
  4279. spec:
  4280. description: TLSOptionSpec defines the desired state of a TLSOption.
  4281. properties:
  4282. alpnProtocols:
  4283. description: |-
  4284. ALPNProtocols defines the list of supported application level protocols for the TLS handshake, in order of preference.
  4285. More info: https://doc.traefik.io/traefik/v2.11/https/tls/#alpn-protocols
  4286. items:
  4287. type: string
  4288. type: array
  4289. cipherSuites:
  4290. description: |-
  4291. CipherSuites defines the list of supported cipher suites for TLS versions up to TLS 1.2.
  4292. More info: https://doc.traefik.io/traefik/v2.11/https/tls/#cipher-suites
  4293. items:
  4294. type: string
  4295. type: array
  4296. clientAuth:
  4297. description: ClientAuth defines the server's policy for TLS Client
  4298. Authentication.
  4299. properties:
  4300. clientAuthType:
  4301. description: ClientAuthType defines the client authentication
  4302. type to apply.
  4303. enum:
  4304. - NoClientCert
  4305. - RequestClientCert
  4306. - RequireAnyClientCert
  4307. - VerifyClientCertIfGiven
  4308. - RequireAndVerifyClientCert
  4309. type: string
  4310. secretNames:
  4311. description: SecretNames defines the names of the referenced Kubernetes
  4312. Secret storing certificate details.
  4313. items:
  4314. type: string
  4315. type: array
  4316. type: object
  4317. curvePreferences:
  4318. description: |-
  4319. CurvePreferences defines the preferred elliptic curves in a specific order.
  4320. More info: https://doc.traefik.io/traefik/v2.11/https/tls/#curve-preferences
  4321. items:
  4322. type: string
  4323. type: array
  4324. maxVersion:
  4325. description: |-
  4326. MaxVersion defines the maximum TLS version that Traefik will accept.
  4327. Possible values: VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13.
  4328. Default: None.
  4329. type: string
  4330. minVersion:
  4331. description: |-
  4332. MinVersion defines the minimum TLS version that Traefik will accept.
  4333. Possible values: VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13.
  4334. Default: VersionTLS10.
  4335. type: string
  4336. preferServerCipherSuites:
  4337. description: |-
  4338. PreferServerCipherSuites defines whether the server chooses a cipher suite among his own instead of among the client's.
  4339. It is enabled automatically when minVersion or maxVersion is set.
  4340. Deprecated: https://github.com/golang/go/issues/45430
  4341. type: boolean
  4342. sniStrict:
  4343. description: SniStrict defines whether Traefik allows connections
  4344. from clients connections that do not specify a server_name extension.
  4345. type: boolean
  4346. type: object
  4347. required:
  4348. - metadata
  4349. - spec
  4350. type: object
  4351. served: true
  4352. storage: true
  4353. ---
  4354. apiVersion: apiextensions.k8s.io/v1
  4355. kind: CustomResourceDefinition
  4356. metadata:
  4357. annotations:
  4358. controller-gen.kubebuilder.io/version: v0.14.0
  4359. name: tlsstores.traefik.containo.us
  4360. spec:
  4361. group: traefik.containo.us
  4362. names:
  4363. kind: TLSStore
  4364. listKind: TLSStoreList
  4365. plural: tlsstores
  4366. singular: tlsstore
  4367. scope: Namespaced
  4368. versions:
  4369. - name: v1alpha1
  4370. schema:
  4371. openAPIV3Schema:
  4372. description: |-
  4373. TLSStore is the CRD implementation of a Traefik TLS Store.
  4374. For the time being, only the TLSStore named default is supported.
  4375. This means that you cannot have two stores that are named default in different Kubernetes namespaces.
  4376. More info: https://doc.traefik.io/traefik/v2.11/https/tls/#certificates-stores
  4377. properties:
  4378. apiVersion:
  4379. description: |-
  4380. APIVersion defines the versioned schema of this representation of an object.
  4381. Servers should convert recognized schemas to the latest internal value, and
  4382. may reject unrecognized values.
  4383. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  4384. type: string
  4385. kind:
  4386. description: |-
  4387. Kind is a string value representing the REST resource this object represents.
  4388. Servers may infer this from the endpoint the client submits requests to.
  4389. Cannot be updated.
  4390. In CamelCase.
  4391. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  4392. type: string
  4393. metadata:
  4394. type: object
  4395. spec:
  4396. description: TLSStoreSpec defines the desired state of a TLSStore.
  4397. properties:
  4398. certificates:
  4399. description: Certificates is a list of secret names, each secret holding
  4400. a key/certificate pair to add to the store.
  4401. items:
  4402. description: Certificate holds a secret name for the TLSStore resource.
  4403. properties:
  4404. secretName:
  4405. description: SecretName is the name of the referenced Kubernetes
  4406. Secret to specify the certificate details.
  4407. type: string
  4408. required:
  4409. - secretName
  4410. type: object
  4411. type: array
  4412. defaultCertificate:
  4413. description: DefaultCertificate defines the default certificate configuration.
  4414. properties:
  4415. secretName:
  4416. description: SecretName is the name of the referenced Kubernetes
  4417. Secret to specify the certificate details.
  4418. type: string
  4419. required:
  4420. - secretName
  4421. type: object
  4422. defaultGeneratedCert:
  4423. description: DefaultGeneratedCert defines the default generated certificate
  4424. configuration.
  4425. properties:
  4426. domain:
  4427. description: Domain is the domain definition for the DefaultCertificate.
  4428. properties:
  4429. main:
  4430. description: Main defines the main domain name.
  4431. type: string
  4432. sans:
  4433. description: SANs defines the subject alternative domain names.
  4434. items:
  4435. type: string
  4436. type: array
  4437. type: object
  4438. resolver:
  4439. description: Resolver is the name of the resolver that will be
  4440. used to issue the DefaultCertificate.
  4441. type: string
  4442. type: object
  4443. type: object
  4444. required:
  4445. - metadata
  4446. - spec
  4447. type: object
  4448. served: true
  4449. storage: true
  4450. ---
  4451. apiVersion: apiextensions.k8s.io/v1
  4452. kind: CustomResourceDefinition
  4453. metadata:
  4454. annotations:
  4455. controller-gen.kubebuilder.io/version: v0.14.0
  4456. name: traefikservices.traefik.containo.us
  4457. spec:
  4458. group: traefik.containo.us
  4459. names:
  4460. kind: TraefikService
  4461. listKind: TraefikServiceList
  4462. plural: traefikservices
  4463. singular: traefikservice
  4464. scope: Namespaced
  4465. versions:
  4466. - name: v1alpha1
  4467. schema:
  4468. openAPIV3Schema:
  4469. description: |-
  4470. TraefikService is the CRD implementation of a Traefik Service.
  4471. TraefikService object allows to:
  4472. - Apply weight to Services on load-balancing
  4473. - Mirror traffic on services
  4474. More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#kind-traefikservice
  4475. properties:
  4476. apiVersion:
  4477. description: |-
  4478. APIVersion defines the versioned schema of this representation of an object.
  4479. Servers should convert recognized schemas to the latest internal value, and
  4480. may reject unrecognized values.
  4481. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  4482. type: string
  4483. kind:
  4484. description: |-
  4485. Kind is a string value representing the REST resource this object represents.
  4486. Servers may infer this from the endpoint the client submits requests to.
  4487. Cannot be updated.
  4488. In CamelCase.
  4489. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  4490. type: string
  4491. metadata:
  4492. type: object
  4493. spec:
  4494. description: TraefikServiceSpec defines the desired state of a TraefikService.
  4495. properties:
  4496. mirroring:
  4497. description: Mirroring defines the Mirroring service configuration.
  4498. properties:
  4499. kind:
  4500. description: Kind defines the kind of the Service.
  4501. enum:
  4502. - Service
  4503. - TraefikService
  4504. type: string
  4505. maxBodySize:
  4506. description: |-
  4507. MaxBodySize defines the maximum size allowed for the body of the request.
  4508. If the body is larger, the request is not mirrored.
  4509. Default value is -1, which means unlimited size.
  4510. format: int64
  4511. type: integer
  4512. mirrors:
  4513. description: Mirrors defines the list of mirrors where Traefik
  4514. will duplicate the traffic.
  4515. items:
  4516. description: MirrorService holds the mirror configuration.
  4517. properties:
  4518. kind:
  4519. description: Kind defines the kind of the Service.
  4520. enum:
  4521. - Service
  4522. - TraefikService
  4523. type: string
  4524. name:
  4525. description: |-
  4526. Name defines the name of the referenced Kubernetes Service or TraefikService.
  4527. The differentiation between the two is specified in the Kind field.
  4528. type: string
  4529. namespace:
  4530. description: Namespace defines the namespace of the referenced
  4531. Kubernetes Service or TraefikService.
  4532. type: string
  4533. nativeLB:
  4534. description: |-
  4535. NativeLB controls, when creating the load-balancer,
  4536. whether the LB's children are directly the pods IPs or if the only child is the Kubernetes Service clusterIP.
  4537. The Kubernetes Service itself does load-balance to the pods.
  4538. By default, NativeLB is false.
  4539. type: boolean
  4540. passHostHeader:
  4541. description: |-
  4542. PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service.
  4543. By default, passHostHeader is true.
  4544. type: boolean
  4545. percent:
  4546. description: |-
  4547. Percent defines the part of the traffic to mirror.
  4548. Supported values: 0 to 100.
  4549. type: integer
  4550. port:
  4551. anyOf:
  4552. - type: integer
  4553. - type: string
  4554. description: |-
  4555. Port defines the port of a Kubernetes Service.
  4556. This can be a reference to a named port.
  4557. x-kubernetes-int-or-string: true
  4558. responseForwarding:
  4559. description: ResponseForwarding defines how Traefik forwards
  4560. the response from the upstream Kubernetes Service to the
  4561. client.
  4562. properties:
  4563. flushInterval:
  4564. description: |-
  4565. FlushInterval defines the interval, in milliseconds, in between flushes to the client while copying the response body.
  4566. A negative value means to flush immediately after each write to the client.
  4567. This configuration is ignored when ReverseProxy recognizes a response as a streaming response;
  4568. for such responses, writes are flushed to the client immediately.
  4569. Default: 100ms
  4570. type: string
  4571. type: object
  4572. scheme:
  4573. description: |-
  4574. Scheme defines the scheme to use for the request to the upstream Kubernetes Service.
  4575. It defaults to https when Kubernetes Service port is 443, http otherwise.
  4576. type: string
  4577. serversTransport:
  4578. description: |-
  4579. ServersTransport defines the name of ServersTransport resource to use.
  4580. It allows to configure the transport between Traefik and your servers.
  4581. Can only be used on a Kubernetes Service.
  4582. type: string
  4583. sticky:
  4584. description: |-
  4585. Sticky defines the sticky sessions configuration.
  4586. More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions
  4587. properties:
  4588. cookie:
  4589. description: Cookie defines the sticky cookie configuration.
  4590. properties:
  4591. httpOnly:
  4592. description: HTTPOnly defines whether the cookie
  4593. can be accessed by client-side APIs, such as JavaScript.
  4594. type: boolean
  4595. name:
  4596. description: Name defines the Cookie name.
  4597. type: string
  4598. sameSite:
  4599. description: |-
  4600. SameSite defines the same site policy.
  4601. More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite
  4602. type: string
  4603. secure:
  4604. description: Secure defines whether the cookie can
  4605. only be transmitted over an encrypted connection
  4606. (i.e. HTTPS).
  4607. type: boolean
  4608. type: object
  4609. type: object
  4610. strategy:
  4611. description: |-
  4612. Strategy defines the load balancing strategy between the servers.
  4613. RoundRobin is the only supported value at the moment.
  4614. type: string
  4615. weight:
  4616. description: |-
  4617. Weight defines the weight and should only be specified when Name references a TraefikService object
  4618. (and to be precise, one that embeds a Weighted Round Robin).
  4619. type: integer
  4620. required:
  4621. - name
  4622. type: object
  4623. type: array
  4624. name:
  4625. description: |-
  4626. Name defines the name of the referenced Kubernetes Service or TraefikService.
  4627. The differentiation between the two is specified in the Kind field.
  4628. type: string
  4629. namespace:
  4630. description: Namespace defines the namespace of the referenced
  4631. Kubernetes Service or TraefikService.
  4632. type: string
  4633. nativeLB:
  4634. description: |-
  4635. NativeLB controls, when creating the load-balancer,
  4636. whether the LB's children are directly the pods IPs or if the only child is the Kubernetes Service clusterIP.
  4637. The Kubernetes Service itself does load-balance to the pods.
  4638. By default, NativeLB is false.
  4639. type: boolean
  4640. passHostHeader:
  4641. description: |-
  4642. PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service.
  4643. By default, passHostHeader is true.
  4644. type: boolean
  4645. port:
  4646. anyOf:
  4647. - type: integer
  4648. - type: string
  4649. description: |-
  4650. Port defines the port of a Kubernetes Service.
  4651. This can be a reference to a named port.
  4652. x-kubernetes-int-or-string: true
  4653. responseForwarding:
  4654. description: ResponseForwarding defines how Traefik forwards the
  4655. response from the upstream Kubernetes Service to the client.
  4656. properties:
  4657. flushInterval:
  4658. description: |-
  4659. FlushInterval defines the interval, in milliseconds, in between flushes to the client while copying the response body.
  4660. A negative value means to flush immediately after each write to the client.
  4661. This configuration is ignored when ReverseProxy recognizes a response as a streaming response;
  4662. for such responses, writes are flushed to the client immediately.
  4663. Default: 100ms
  4664. type: string
  4665. type: object
  4666. scheme:
  4667. description: |-
  4668. Scheme defines the scheme to use for the request to the upstream Kubernetes Service.
  4669. It defaults to https when Kubernetes Service port is 443, http otherwise.
  4670. type: string
  4671. serversTransport:
  4672. description: |-
  4673. ServersTransport defines the name of ServersTransport resource to use.
  4674. It allows to configure the transport between Traefik and your servers.
  4675. Can only be used on a Kubernetes Service.
  4676. type: string
  4677. sticky:
  4678. description: |-
  4679. Sticky defines the sticky sessions configuration.
  4680. More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions
  4681. properties:
  4682. cookie:
  4683. description: Cookie defines the sticky cookie configuration.
  4684. properties:
  4685. httpOnly:
  4686. description: HTTPOnly defines whether the cookie can be
  4687. accessed by client-side APIs, such as JavaScript.
  4688. type: boolean
  4689. name:
  4690. description: Name defines the Cookie name.
  4691. type: string
  4692. sameSite:
  4693. description: |-
  4694. SameSite defines the same site policy.
  4695. More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite
  4696. type: string
  4697. secure:
  4698. description: Secure defines whether the cookie can only
  4699. be transmitted over an encrypted connection (i.e. HTTPS).
  4700. type: boolean
  4701. type: object
  4702. type: object
  4703. strategy:
  4704. description: |-
  4705. Strategy defines the load balancing strategy between the servers.
  4706. RoundRobin is the only supported value at the moment.
  4707. type: string
  4708. weight:
  4709. description: |-
  4710. Weight defines the weight and should only be specified when Name references a TraefikService object
  4711. (and to be precise, one that embeds a Weighted Round Robin).
  4712. type: integer
  4713. required:
  4714. - name
  4715. type: object
  4716. weighted:
  4717. description: Weighted defines the Weighted Round Robin configuration.
  4718. properties:
  4719. services:
  4720. description: Services defines the list of Kubernetes Service and/or
  4721. TraefikService to load-balance, with weight.
  4722. items:
  4723. description: Service defines an upstream HTTP service to proxy
  4724. traffic to.
  4725. properties:
  4726. kind:
  4727. description: Kind defines the kind of the Service.
  4728. enum:
  4729. - Service
  4730. - TraefikService
  4731. type: string
  4732. name:
  4733. description: |-
  4734. Name defines the name of the referenced Kubernetes Service or TraefikService.
  4735. The differentiation between the two is specified in the Kind field.
  4736. type: string
  4737. namespace:
  4738. description: Namespace defines the namespace of the referenced
  4739. Kubernetes Service or TraefikService.
  4740. type: string
  4741. nativeLB:
  4742. description: |-
  4743. NativeLB controls, when creating the load-balancer,
  4744. whether the LB's children are directly the pods IPs or if the only child is the Kubernetes Service clusterIP.
  4745. The Kubernetes Service itself does load-balance to the pods.
  4746. By default, NativeLB is false.
  4747. type: boolean
  4748. passHostHeader:
  4749. description: |-
  4750. PassHostHeader defines whether the client Host header is forwarded to the upstream Kubernetes Service.
  4751. By default, passHostHeader is true.
  4752. type: boolean
  4753. port:
  4754. anyOf:
  4755. - type: integer
  4756. - type: string
  4757. description: |-
  4758. Port defines the port of a Kubernetes Service.
  4759. This can be a reference to a named port.
  4760. x-kubernetes-int-or-string: true
  4761. responseForwarding:
  4762. description: ResponseForwarding defines how Traefik forwards
  4763. the response from the upstream Kubernetes Service to the
  4764. client.
  4765. properties:
  4766. flushInterval:
  4767. description: |-
  4768. FlushInterval defines the interval, in milliseconds, in between flushes to the client while copying the response body.
  4769. A negative value means to flush immediately after each write to the client.
  4770. This configuration is ignored when ReverseProxy recognizes a response as a streaming response;
  4771. for such responses, writes are flushed to the client immediately.
  4772. Default: 100ms
  4773. type: string
  4774. type: object
  4775. scheme:
  4776. description: |-
  4777. Scheme defines the scheme to use for the request to the upstream Kubernetes Service.
  4778. It defaults to https when Kubernetes Service port is 443, http otherwise.
  4779. type: string
  4780. serversTransport:
  4781. description: |-
  4782. ServersTransport defines the name of ServersTransport resource to use.
  4783. It allows to configure the transport between Traefik and your servers.
  4784. Can only be used on a Kubernetes Service.
  4785. type: string
  4786. sticky:
  4787. description: |-
  4788. Sticky defines the sticky sessions configuration.
  4789. More info: https://doc.traefik.io/traefik/v2.11/routing/services/#sticky-sessions
  4790. properties:
  4791. cookie:
  4792. description: Cookie defines the sticky cookie configuration.
  4793. properties:
  4794. httpOnly:
  4795. description: HTTPOnly defines whether the cookie
  4796. can be accessed by client-side APIs, such as JavaScript.
  4797. type: boolean
  4798. name:
  4799. description: Name defines the Cookie name.
  4800. type: string
  4801. sameSite:
  4802. description: |-
  4803. SameSite defines the same site policy.
  4804. More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite
  4805. type: string
  4806. secure:
  4807. description: Secure defines whether the cookie can
  4808. only be transmitted over an encrypted connection
  4809. (i.e. HTTPS).
  4810. type: boolean
  4811. type: object
  4812. type: object
  4813. strategy:
  4814. description: |-
  4815. Strategy defines the load balancing strategy between the servers.
  4816. RoundRobin is the only supported value at the moment.
  4817. type: string
  4818. weight:
  4819. description: |-
  4820. Weight defines the weight and should only be specified when Name references a TraefikService object
  4821. (and to be precise, one that embeds a Weighted Round Robin).
  4822. type: integer
  4823. required:
  4824. - name
  4825. type: object
  4826. type: array
  4827. sticky:
  4828. description: |-
  4829. Sticky defines whether sticky sessions are enabled.
  4830. More info: https://doc.traefik.io/traefik/v2.11/routing/providers/kubernetes-crd/#stickiness-and-load-balancing
  4831. properties:
  4832. cookie:
  4833. description: Cookie defines the sticky cookie configuration.
  4834. properties:
  4835. httpOnly:
  4836. description: HTTPOnly defines whether the cookie can be
  4837. accessed by client-side APIs, such as JavaScript.
  4838. type: boolean
  4839. name:
  4840. description: Name defines the Cookie name.
  4841. type: string
  4842. sameSite:
  4843. description: |-
  4844. SameSite defines the same site policy.
  4845. More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite
  4846. type: string
  4847. secure:
  4848. description: Secure defines whether the cookie can only
  4849. be transmitted over an encrypted connection (i.e. HTTPS).
  4850. type: boolean
  4851. type: object
  4852. type: object
  4853. type: object
  4854. type: object
  4855. required:
  4856. - metadata
  4857. - spec
  4858. type: object
  4859. served: true
  4860. storage: true

apiextensions.k8s.io/v1beta1 (Deprecated)

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: ingressroutes.traefik.io

spec:
  group: traefik.io
  version: v1alpha1
  names:
    kind: IngressRoute
    plural: ingressroutes
    singular: ingressroute
  scope: Namespaced

---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: middlewares.traefik.io

spec:
  group: traefik.io
  version: v1alpha1
  names:
    kind: Middleware
    plural: middlewares
    singular: middleware
  scope: Namespaced

---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: middlewaretcps.traefik.io

spec:
  group: traefik.io
  version: v1alpha1
  names:
    kind: MiddlewareTCP
    plural: middlewaretcps
    singular: middlewaretcp
  scope: Namespaced

---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: ingressroutetcps.traefik.io

spec:
  group: traefik.io
  version: v1alpha1
  names:
    kind: IngressRouteTCP
    plural: ingressroutetcps
    singular: ingressroutetcp
  scope: Namespaced

---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: ingressrouteudps.traefik.io

spec:
  group: traefik.io
  version: v1alpha1
  names:
    kind: IngressRouteUDP
    plural: ingressrouteudps
    singular: ingressrouteudp
  scope: Namespaced

---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: tlsoptions.traefik.io

spec:
  group: traefik.io
  version: v1alpha1
  names:
    kind: TLSOption
    plural: tlsoptions
    singular: tlsoption
  scope: Namespaced

---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: tlsstores.traefik.io

spec:
  group: traefik.io
  version: v1alpha1
  names:
    kind: TLSStore
    plural: tlsstores
    singular: tlsstore
  scope: Namespaced

---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: traefikservices.traefik.io

spec:
  group: traefik.io
  version: v1alpha1
  names:
    kind: TraefikService
    plural: traefikservices
    singular: traefikservice
  scope: Namespaced

---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: serverstransports.traefik.io

spec:
  group: traefik.io
  version: v1alpha1
  names:
    kind: ServersTransport
    plural: serverstransports
    singular: serverstransport
  scope: Namespaced

Resources

apiVersion: traefik.io/v1alpha1
kind: TraefikService
metadata:
  name: wrr2
  namespace: default

spec:
  weighted:
    services:
      - name: s1
        weight: 1
        port: 80
        # Optional, as it is the default value
        kind: Service
      - name: s3
        weight: 1
        port: 80

---
apiVersion: traefik.io/v1alpha1
kind: TraefikService
metadata:
  name: wrr1
  namespace: default

spec:
  weighted:
    services:
      - name: wrr2
        kind: TraefikService
        weight: 1
      - name: s3
        weight: 1
        port: 80

---
apiVersion: traefik.io/v1alpha1
kind: TraefikService
metadata:
  name: mirror1
  namespace: default

spec:
  mirroring:
    name: s1
    port: 80
    mirrors:
      - name: s3
        percent: 20
        port: 80
      - name: mirror2
        kind: TraefikService
        percent: 20

---
apiVersion: traefik.io/v1alpha1
kind: TraefikService
metadata:
  name: mirror2
  namespace: default

spec:
  mirroring:
    name: wrr2
    kind: TraefikService
    # Optional
    maxBodySize: 2000000000
    mirrors:
      - name: s2
        # Optional, as it is the default value
        kind: Service
        percent: 20
        port: 80

---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
  name: ingressroute

spec:
  entryPoints:
    - web
    - websecure
  routes:
    - match: Host(`example.net`) && PathPrefix(`/bar`)
      kind: Rule
      priority: 12
      # defining several services is possible and allowed, but for now the servers of
      # all the services (for a given route) get merged altogether under the same
      # load-balancing strategy.
      services:
        - name: s1
          port: 80
          # strategy defines the load balancing strategy between the servers. It defaults
          # to Round Robin, and for now only Round Robin is supported anyway.
          strategy: RoundRobin
        - name: s2
          port: 433
          serversTransport: mytransport
    - match: PathPrefix(`/misc`)
      kind: Rule
      services:
        - name: s3
          port: 80
      middlewares:
        - name: stripprefix
        - name: addprefix
    - match: PathPrefix(`/misc`)
      kind: Rule
      services:
        - name: s3
          # Optional, as it is the default value
          kind: Service
          port: 8443
          # scheme allow to override the scheme for the service. (ex: https or h2c)
          scheme: https
    - match: PathPrefix(`/lb`)
      kind: Rule
      services:
        - name: wrr1
          kind: TraefikService
    - match: PathPrefix(`/mirrored`)
      kind: Rule
      services:
        - name: mirror1
          kind: TraefikService
  # use an empty tls object for TLS with Let's Encrypt
  tls:
    secretName: supersecret
    options:
      name: my-tls-option
      namespace: default

---
apiVersion: traefik.io/v1alpha1
kind: IngressRouteTCP
metadata:
  name: ingressroutetcp.crd
  namespace: default

spec:
  entryPoints:
    - footcp
  routes:
    - match: HostSNI(`example.com`)
      services:
        - name: whoamitcp
          port: 8080
      middlewares:
        - name: ipallowlist
  tls:
    secretName: foosecret
    passthrough: false
    options:
      name: my-tls-option
      namespace: default

---
apiVersion: traefik.io/v1alpha1
kind: IngressRouteUDP
metadata:
  name: ingressrouteudp.crd
  namespace: default

spec:
  entryPoints:
    - footcp
  routes:
    - services:
        - name: whoamiudp
          port: 8080

---
apiVersion: traefik.io/v1alpha1
kind: TLSOption
metadata:
  name: tlsoption
  namespace: default

spec:
  minVersion: foobar
  maxVersion: foobar
  cipherSuites:
    - foobar
    - foobar
  curvePreferences:
    - foobar
    - foobar
  clientAuth:
    secretNames:
      - foobar
      - foobar
    clientAuthType: RequireAndVerifyClientCert
  sniStrict: true
  preferServerCipherSuites: true
  alpnProtocols:
    - foobar
    - foobar

---
apiVersion: traefik.io/v1alpha1
kind: ServersTransport
metadata:
  name: mytransport
  namespace: default

spec:
  serverName: foobar
  insecureSkipVerify: true
  rootCAsSecrets:
    - foobar
    - foobar
  certificatesSecrets:
    - foobar
    - foobar
  maxIdleConnsPerHost: 1
  forwardingTimeouts:
    dialTimeout: 42s
    responseHeaderTimeout: 42s
    idleConnTimeout: 42s
  disableHTTP2: true

RBAC

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: traefik-ingress-controller

rules:
  - apiGroups:
      - ""
    resources:
      - services
      - endpoints
      - secrets
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - extensions
      - networking.k8s.io
    resources:
      - ingresses
      - ingressclasses
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - extensions
      - networking.k8s.io
    resources:
      - ingresses/status
    verbs:
      - update
  - apiGroups:
      - traefik.io
      - traefik.containo.us
    resources:
      - middlewares
      - middlewaretcps
      - ingressroutes
      - traefikservices
      - ingressroutetcps
      - ingressrouteudps
      - tlsoptions
      - tlsstores
      - serverstransports
    verbs:
      - get
      - list
      - watch

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: traefik-ingress-controller

roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: traefik-ingress-controller
subjects:
  - kind: ServiceAccount
    name: traefik-ingress-controller
    namespace: default

Using Traefik for Business Applications?

If you are using Traefik in your organization, consider our enterprise-grade solutions:

These tools help businesses discover, deploy, secure, and manage microservices and APIs easily, at scale, across any environment.