Enhance doc on static vs dynamic configuration
This commit is contained in:
parent
27a7563e33
commit
491de0cf64
3 changed files with 26 additions and 25 deletions
|
@ -51,7 +51,7 @@ Once positioned, this option sets (and resets) all the default values of the sub
|
||||||
|
|
||||||
### Configuration File
|
### Configuration File
|
||||||
|
|
||||||
At startup, Traefik searches for a file named `traefik.yml` (or `traefik.yaml` or `traefik.toml`) in:
|
At startup, Traefik searches for static configuration in a file named `traefik.yml` (or `traefik.yaml` or `traefik.toml`) in:
|
||||||
|
|
||||||
- `/etc/traefik/`
|
- `/etc/traefik/`
|
||||||
- `$XDG_CONFIG_HOME/`
|
- `$XDG_CONFIG_HOME/`
|
||||||
|
|
|
@ -143,11 +143,11 @@ The TLS options allow one to configure some parameters of the TLS connection.
|
||||||
you must specify the provider namespace, for example:
|
you must specify the provider namespace, for example:
|
||||||
`traefik.http.routers.myrouter.tls.options=myoptions@file`
|
`traefik.http.routers.myrouter.tls.options=myoptions@file`
|
||||||
|
|
||||||
!!! important "TLSOptions in Kubernetes"
|
!!! important "TLSOption in Kubernetes"
|
||||||
|
|
||||||
When using the TLSOptions-CRD in Kubernetes, one might setup a default set of options that,
|
When using the [TLSOption resource](../../routing/providers/kubernetes-crd#kind-tlsoption) in Kubernetes, one might setup a default set of options that,
|
||||||
if not explicitly overwritten, should apply to all ingresses.
|
if not explicitly overwritten, should apply to all ingresses.
|
||||||
To achieve that, you'll have to create a TLSOptions CR with the name `default`.
|
To achieve that, you'll have to create a TLSOption resource with the name `default`.
|
||||||
There may exist only one TLSOption with the name `default` (across all namespaces) - otherwise they will be dropped.
|
There may exist only one TLSOption with the name `default` (across all namespaces) - otherwise they will be dropped.
|
||||||
To explicitly use a different TLSOption (and using the Kubernetes Ingress resources)
|
To explicitly use a different TLSOption (and using the Kubernetes Ingress resources)
|
||||||
you'll have to add an annotation to the Ingress in the following form:
|
you'll have to add an annotation to the Ingress in the following form:
|
||||||
|
|
|
@ -1485,39 +1485,40 @@ or referencing TLS options in the [`IngressRoute`](#kind-ingressroute) / [`Ingre
|
||||||
apiVersion: traefik.containo.us/v1alpha1
|
apiVersion: traefik.containo.us/v1alpha1
|
||||||
kind: TLSOption
|
kind: TLSOption
|
||||||
metadata:
|
metadata:
|
||||||
name: mytlsoption
|
name: mytlsoption # [1]
|
||||||
namespace: default
|
namespace: default
|
||||||
|
|
||||||
spec:
|
spec:
|
||||||
minVersion: VersionTLS12 # [1]
|
minVersion: VersionTLS12 # [2]
|
||||||
maxVersion: VersionTLS13 # [1]
|
maxVersion: VersionTLS13 # [3]
|
||||||
curvePreferences: # [3]
|
curvePreferences: # [4]
|
||||||
- CurveP521
|
- CurveP521
|
||||||
- CurveP384
|
- CurveP384
|
||||||
cipherSuites: # [4]
|
cipherSuites: # [5]
|
||||||
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
|
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
|
||||||
- TLS_RSA_WITH_AES_256_GCM_SHA384
|
- TLS_RSA_WITH_AES_256_GCM_SHA384
|
||||||
clientAuth: # [5]
|
clientAuth: # [6]
|
||||||
secretNames: # [6]
|
secretNames: # [7]
|
||||||
- secret-ca1
|
- secret-ca1
|
||||||
- secret-ca2
|
- secret-ca2
|
||||||
clientAuthType: VerifyClientCertIfGiven # [7]
|
clientAuthType: VerifyClientCertIfGiven # [8]
|
||||||
sniStrict: true # [8]
|
sniStrict: true # [9]
|
||||||
alpnProtocols: # [9]
|
alpnProtocols: # [10]
|
||||||
- foobar
|
- foobar
|
||||||
```
|
```
|
||||||
|
|
||||||
| Ref | Attribute | Purpose |
|
| Ref | Attribute | Purpose |
|
||||||
|-----|-----------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|------|-----------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| [1] | `minVersion` | Defines the [minimum TLS version](../../https/tls.md#minimum-tls-version) that is acceptable |
|
| [1] | `name` | Defines the name of the TLSOption resource. One can use `default` as name to redefine the [default TLSOption](../../https/tls.md#tls-options). |
|
||||||
| [2] | `maxVersion` | Defines the [maximum TLS version](../../https/tls.md#maximum-tls-version) that is acceptable |
|
| [2] | `minVersion` | Defines the [minimum TLS version](../../https/tls.md#minimum-tls-version) that is acceptable. |
|
||||||
| [3] | `cipherSuites` | list of supported [cipher suites](../../https/tls.md#cipher-suites) for TLS versions up to TLS 1.2 |
|
| [3] | `maxVersion` | Defines the [maximum TLS version](../../https/tls.md#maximum-tls-version) that is acceptable. |
|
||||||
| [4] | `curvePreferences` | List of the [elliptic curves references](../../https/tls.md#curve-preferences) that will be used in an ECDHE handshake, in preference order |
|
| [4] | `cipherSuites` | list of supported [cipher suites](../../https/tls.md#cipher-suites) for TLS versions up to TLS 1.2. |
|
||||||
| [5] | `clientAuth` | determines the server's policy for TLS [Client Authentication](../../https/tls.md#client-authentication-mtls) |
|
| [5] | `curvePreferences` | List of the [elliptic curves references](../../https/tls.md#curve-preferences) that will be used in an ECDHE handshake, in preference order. |
|
||||||
| [6] | `clientAuth.secretNames` | list of names of the referenced Kubernetes [Secrets](https://kubernetes.io/docs/concepts/configuration/secret/) (in TLSOption namespace). The secret must contain a certificate under either a `tls.ca` or a `ca.crt` key. |
|
| [6] | `clientAuth` | determines the server's policy for TLS [Client Authentication](../../https/tls.md#client-authentication-mtls). |
|
||||||
| [7] | `clientAuth.clientAuthType` | defines the client authentication type to apply. The available values are: `NoClientCert`, `RequestClientCert`, `VerifyClientCertIfGiven` and `RequireAndVerifyClientCert` |
|
| [7] | `clientAuth.secretNames` | list of names of the referenced Kubernetes [Secrets](https://kubernetes.io/docs/concepts/configuration/secret/) (in TLSOption namespace). The secret must contain a certificate under either a `tls.ca` or a `ca.crt` key. |
|
||||||
| [8] | `sniStrict` | if `true`, Traefik won't allow connections from clients connections that do not specify a server_name extension |
|
| [8] | `clientAuth.clientAuthType` | defines the client authentication type to apply. The available values are: `NoClientCert`, `RequestClientCert`, `VerifyClientCertIfGiven` and `RequireAndVerifyClientCert`. |
|
||||||
| [9] | `alpnProtocols` | List of supported [application level protocols](../../https/tls.md#alpn-protocols) for the TLS handshake, in order of preference. |
|
| [9] | `sniStrict` | if `true`, Traefik won't allow connections from clients connections that do not specify a server_name extension. |
|
||||||
|
| [10] | `alpnProtocols` | List of supported [application level protocols](../../https/tls.md#alpn-protocols) for the TLS handshake, in order of preference. |
|
||||||
|
|
||||||
!!! info "CA Secret"
|
!!! info "CA Secret"
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue