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

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: ipwhitelist
  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