diff --git a/CHANGELOG.md b/CHANGELOG.md index ed2c79f8f..bf46d9ae7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,59 @@ +## [v3.5.4](https://github.com/traefik/traefik/tree/v3.5.4) (2025-10-28) +[All Commits](https://github.com/traefik/traefik/compare/v3.5.3...v3.5.4) + +**Bug fixes:** +- **[acme]** Bump github.com/go-acme/lego/v4 to v4.27.0 ([#12166](https://github.com/traefik/traefik/pull/12166) by [ldez](https://github.com/ldez)) +- **[acme]** Bump github.com/go-acme/lego/v4 to v4.26.0 ([#12063](https://github.com/traefik/traefik/pull/12063) by [ldez](https://github.com/ldez)) +- **[http3]** Bump github.com/quic-go/quic-go to v0.55.0 ([#12121](https://github.com/traefik/traefik/pull/12121) by [GreyXor](https://github.com/GreyXor)) +- **[kv]** Bump github.com/kvtools/etcdv3 to v1.0.3 ([#12163](https://github.com/traefik/traefik/pull/12163) by [kevinpollet](https://github.com/kevinpollet)) +- **[logs,metrics,tracing,accesslogs,otel]** Fix otel not working without USER ([#12103](https://github.com/traefik/traefik/pull/12103) by [mmatur](https://github.com/mmatur)) +- **[logs,otel]** Enable stdout logging when OTLP is enabled ([#12124](https://github.com/traefik/traefik/pull/12124) by [lbenguigui](https://github.com/lbenguigui)) +- **[metrics,otel]** Rename traefik_tls_certs_not_after_milliseconds to traefik_tls_certs_not_after_seconds ([#12141](https://github.com/traefik/traefik/pull/12141) by [shreealt](https://github.com/shreealt)) +- **[otel]** Update OpenTelemetry to v1.38.0 and semantic conventions to v1.37.0 ([#12099](https://github.com/traefik/traefik/pull/12099) by [rtribotte](https://github.com/rtribotte)) +- **[otel]** Do not fail when pod is not found in K8sAttributesDetector ([#12096](https://github.com/traefik/traefik/pull/12096) by [xe-leon](https://github.com/xe-leon)) +- **[tls]** Make the staple updates continuous ([#12142](https://github.com/traefik/traefik/pull/12142) by [rtribotte](https://github.com/rtribotte)) +- **[webui]** Fix version display regression ([#12111](https://github.com/traefik/traefik/pull/12111) by [mdeliatf](https://github.com/mdeliatf)) + +**Documentation:** +- **[accesslogs]** Fix link for accesslog.fields.names in documentation ([#12094](https://github.com/traefik/traefik/pull/12094) by [rmbruntz](https://github.com/rmbruntz)) +- **[acme]** Fix Hetzner env var name inside documentation ([#12187](https://github.com/traefik/traefik/pull/12187) by [ldez](https://github.com/ldez)) +- **[acme]** Replace internal dead links ([#12152](https://github.com/traefik/traefik/pull/12152) by [rtribotte](https://github.com/rtribotte)) +- **[acme]** Clean and avoid collisions of anchors in option tables ([#12149](https://github.com/traefik/traefik/pull/12149) by [rtribotte](https://github.com/rtribotte)) +- **[docker/swarm]** Fix swarm code example ([#12115](https://github.com/traefik/traefik/pull/12115) by [Dr4K4n](https://github.com/Dr4K4n)) +- **[healthcheck]** Clarify health check requirement for server status metric ([#12201](https://github.com/traefik/traefik/pull/12201) by [asafm](https://github.com/asafm)) +- **[k8s/crd]** Fix typo in ingressroute.md from pirority to priority ([#12112](https://github.com/traefik/traefik/pull/12112) by [miromichalicka](https://github.com/miromichalicka)) +- **[k8s]** Fix incorrect option and lint page ([#12108](https://github.com/traefik/traefik/pull/12108) by [sheddy-traefik](https://github.com/sheddy-traefik)) +- **[k8s]** Add API basePath documentation and fix broken links ([#12177](https://github.com/traefik/traefik/pull/12177) by [mloiseleur](https://github.com/mloiseleur)) +- **[k8s]** Merge TLSOption/TLSStore CRD documentation page ([#12164](https://github.com/traefik/traefik/pull/12164) by [nmengin](https://github.com/nmengin)) +- **[logs]** Clarify log.filePath behavior in documentation ([#12153](https://github.com/traefik/traefik/pull/12153) by [Alanxtl](https://github.com/Alanxtl)) +- **[metrics]** Fix incorrect addInternals configuration option ([#12118](https://github.com/traefik/traefik/pull/12118) by [shreealt](https://github.com/shreealt)) +- **[middleware]** Fix anchors in basic auth configuration options ([#12168](https://github.com/traefik/traefik/pull/12168) by [homersimpsons](https://github.com/homersimpsons)) +- **[middleware]** Fix PreserveRequestMethod casing ([#12122](https://github.com/traefik/traefik/pull/12122) by [LeTamanoir](https://github.com/LeTamanoir)) +- **[middleware]** Add missing reference docs for statusRewrites in errors middleware ([#12198](https://github.com/traefik/traefik/pull/12198) by [sevensolutions](https://github.com/sevensolutions)) +- **[middleware]** Document rejectStatusCode ([#12062](https://github.com/traefik/traefik/pull/12062) by [czocher](https://github.com/czocher)) +- **[otel]** Align documentation on default otlp endpoint ([#12151](https://github.com/traefik/traefik/pull/12151) by [mloiseleur](https://github.com/mloiseleur)) +- **[otel]** Fix metric name to metrics.otlp.grpc.insecure ([#12200](https://github.com/traefik/traefik/pull/12200) by [germainlefebvre4](https://github.com/germainlefebvre4)) +- **[server,k8s/crd,k8s]** Add dedicated pages for routers and fix doc links in CRDs ([#12119](https://github.com/traefik/traefik/pull/12119) by [rtribotte](https://github.com/rtribotte)) +- **[tls]** Fix typo in TLS certificate generation description ([#12185](https://github.com/traefik/traefik/pull/12185) by [iraj-jelo](https://github.com/iraj-jelo)) +- Fix wrong references to router's pages ([#12131](https://github.com/traefik/traefik/pull/12131) by [rtribotte](https://github.com/rtribotte)) +- Fix markdown rendering for table anchors ([#12129](https://github.com/traefik/traefik/pull/12129) by [MaBauMeBad](https://github.com/MaBauMeBad)) +- Fix provider option descriptions ([#12135](https://github.com/traefik/traefik/pull/12135) by [kevinpollet](https://github.com/kevinpollet)) +- Format HTTP headers as code ([#12105](https://github.com/traefik/traefik/pull/12105) by [tyilo](https://github.com/tyilo)) +- Fix heading levels and add links ([#12084](https://github.com/traefik/traefik/pull/12084) by [Granjow](https://github.com/Granjow)) + +**Misc:** +- Merge branch v2.11 into v3.5 ([#12206](https://github.com/traefik/traefik/pull/12206) by [kevinpollet](https://github.com/kevinpollet)) +- Merge branch v2.11 into v3.5 ([#12158](https://github.com/traefik/traefik/pull/12158) by [rtribotte](https://github.com/rtribotte)) + +## [v2.11.30](https://github.com/traefik/traefik/tree/v2.11.30) (2025-10-28) +[All Commits](https://github.com/traefik/traefik/compare/v2.11.29...v2.11.30) + +**Bug fixes:** +- **[http3]** Bump github.com/quic-go/quic-go to v0.55.0 ([#12156](https://github.com/traefik/traefik/pull/12156) by [kevinpollet](https://github.com/kevinpollet)) +- **[kv]** Fix KV key name used to check if connection is alive ([#12162](https://github.com/traefik/traefik/pull/12162) by [kevinpollet](https://github.com/kevinpollet)) +- **[server]** Bump golang.org/x/net to v0.46.0 ([#12143](https://github.com/traefik/traefik/pull/12143) by [kevinpollet](https://github.com/kevinpollet)) +- **[tracing]** Bump gopkg.in/DataDog/dd-trace-go.v1 to v1.74.6 ([#12083](https://github.com/traefik/traefik/pull/12083) by [hannahkm](https://github.com/hannahkm)) + ## [v3.5.3](https://github.com/traefik/traefik/tree/v3.5.3) (2025-09-26) [All Commits](https://github.com/traefik/traefik/compare/v3.5.2...v3.5.3) diff --git a/docs/content/migrate/v2.md b/docs/content/migrate/v2.md new file mode 100644 index 000000000..4816bff90 --- /dev/null +++ b/docs/content/migrate/v2.md @@ -0,0 +1,11 @@ +--- +title: "Traefik V2 Migration Documentation" +description: "Learn the steps needed to migrate to new Traefik Proxy v2 versions, i.e. v2.0 to v2.1 or v2.1 to v2.2. Read the technical documentation." +--- + +# Migration: Steps needed between the v2 versions + +The multiple minor versions of Traefik v2 introduced a number of changes, +which may require one to update their configuration when they migrate. + +For more information about the changes between Traefik v2 minor versions, please refer to the [v2 documentation](https://doc.traefik.io/traefik/v2.11/migration/v2/). diff --git a/docs/content/reference/install-configuration/api-dashboard.md b/docs/content/reference/install-configuration/api-dashboard.md index 948f06998..9f03454ca 100644 --- a/docs/content/reference/install-configuration/api-dashboard.md +++ b/docs/content/reference/install-configuration/api-dashboard.md @@ -156,6 +156,7 @@ enabing the dashboard [here](https://github.com/traefik/traefik-helm-chart/blob/ | Field | Description | Default | Required | |:-----------|:---------------------------------|:--------|:---------| | `api` | Enable api/dashboard. When set to `true`, its sub option `api.dashboard` is also set to true.| false | No | +| api.basepath | Defines the base path where the API and Dashboard will be exposed. | / | No | | `api.dashboard` | Enable dashboard. | false | No | | `api.debug` | Enable additional endpoints for debugging and profiling. | false | No | | `api.disabledashboardad` | Disable the advertisement from the dashboard. | false | No | @@ -195,9 +196,14 @@ All the following endpoints must be accessed with a `GET` HTTP request. | `/debug/pprof/symbol` | See the [pprof Symbol](https://golang.org/pkg/net/http/pprof/#Symbol) Go documentation. | | `/debug/pprof/trace` | See the [pprof Trace](https://golang.org/pkg/net/http/pprof/#Trace) Go documentation. | + +!!! note "Base Path Configuration" + + By default, Traefik exposes its API and Dashboard under the `/` base path. It's possible to configure it with `api.basepath`. When configured, all endpoints (api, dashboard, debug) are using it. + ## Dashboard -The dashboard is available at the same location as the [API](../../operations/api.md), but by default on the path `/dashboard/`. +The dashboard is available at the same location as the API, but by default on the path `/dashboard/`. !!! note diff --git a/docs/content/reference/install-configuration/observability/metrics.md b/docs/content/reference/install-configuration/observability/metrics.md index 595fb9892..979fb230d 100644 --- a/docs/content/reference/install-configuration/observability/metrics.md +++ b/docs/content/reference/install-configuration/observability/metrics.md @@ -80,7 +80,7 @@ metrics: | `metrics.otlp.grpc` | This instructs the exporter to send metrics to the OpenTelemetry Collector using gRPC. | null/false | No | | `metrics.otlp.grpc.endpoint` | Address of the OpenTelemetry Collector to send metrics to.
Format="`:`" | "localhost:4317" | Yes | | `metrics.otlp.grpc.headers` | Additional headers sent with metrics by the exporter to the OpenTelemetry Collector. | - | No | -| `metrics.otlp.http.grpc.insecure` | Allows exporter to send metrics to the OpenTelemetry Collector without using a secured protocol. | false | Yes | +| `metrics.otlp.grpc.insecure` | Allows exporter to send metrics to the OpenTelemetry Collector without using a secured protocol. | false | Yes | | `metrics.otlp.grpc.tls.ca` | Path to the certificate authority used for the secure connection to the OpenTelemetry Collector,
it defaults to the system bundle. | - | No | | `metrics.otlp.grpc.tls.cert` | Path to the public certificate used for the secure connection to the OpenTelemetry Collector.
When using this option, setting the `key` option is required. | - | No | | `metrics.otlp.grpc.tls.key` | This instructs the exporter to send the metrics to the OpenTelemetry Collector using HTTP.
Setting the sub-options with their default values. | null/false | No | @@ -403,29 +403,16 @@ Here is a comprehensive list of labels that are provided by the metrics: Here is a comprehensive list of labels that are provided by the metrics: -<<<<<<< Updated upstream -| Label | Description | example | -|-------------------------------------------------------------------------------------------------------------------------------------------------|------------|---------------| -| `error.type` | Describes a class of error the operation ended with | "500" | -| `http.request.method` | HTTP request method | "GET" | -| `http.response.status_code` | HTTP response status code | "200" | +| Label | Description | example | +|----------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------|---------------| +| `error.type` | Describes a class of error the operation ended with | "500" | +| `http.request.method` | HTTP request method | "GET" | +| `http.response.status_code` | HTTP response status code | "200" | | `network.protocol.name` | OSI application layer or non-OSI equivalent | "http/1.1" | | `network.protocol.version` | Version of the protocol specified in `network.protocol.name` | "1.1" | | `server.address` | Name of the local HTTP server that received the request | "example.com" | | `server.port` | Port of the local HTTP server that received the request | "80" | | `url.scheme` | The URI scheme component identifying the used protocol | "http" | -======= -| Label | Description | example | -| ------ ----- |------------|---------------| -| `error.type` | Describes a class of error the operation ended with | "500" | -| `http.request.method` | HTTP request method | "GET" | -| `http.response.status_code` | HTTP response status code | "200" | -| `network.protocol.name` | OSI application layer or non-OSI equivalent | "http/1.1" | -| `network.protocol.version` | Version of the protocol specified in `network.protocol.name` | "1.1" | -| `server.address` | Name of the local HTTP server that received the request | "example.com" | -| `server.port` | Port of the local HTTP server that received the request | "80" | -| `url.scheme` | The URI scheme component identifying the used protocol | "http" | ->>>>>>> Stashed changes ### HTTP Metrics @@ -551,7 +538,7 @@ On top of the official OpenTelemetry semantic conventions, Traefik provides its | `traefik_service_requests_tls_total` | Count | `tls_version`, `tls_cipher`, `service` | The total count of HTTPS requests processed on a service. | | `traefik_service_request_duration_seconds` | Histogram | `code`, `method`, `protocol`, `service` | Request processing duration histogram on a service. | | `traefik_service_retries_total` | Count | `service` | The count of requests retries on a service. | - | `traefik_service_server_up` | Gauge | `service`, `url` | Current service's server status, 0 for a down or 1 for up. | + | `traefik_service_server_up` | Gauge | `service`, `url` | Current service's server status, 0 for a down or 1 for up. Only for services configured with healthcheck. | | `traefik_service_requests_bytes_total` | Count | `code`, `method`, `protocol`, `service` | The total size of requests in bytes received by a service. | | `traefik_service_responses_bytes_total` | Count | `code`, `method`, `protocol`, `service` | The total size of responses in bytes returned by a service. | @@ -563,7 +550,7 @@ On top of the official OpenTelemetry semantic conventions, Traefik provides its | `traefik_service_requests_tls_total` | Count | `tls_version`, `tls_cipher`, `service` | The total count of HTTPS requests processed on a service. | | `traefik_service_request_duration_seconds` | Histogram | `code`, `method`, `protocol`, `service` | Request processing duration histogram on a service. | | `traefik_service_retries_total` | Count | `service` | The count of requests retries on a service. | - | `traefik_service_server_up` | Gauge | `service`, `url` | Current service's server status, 0 for a down or 1 for up. | + | `traefik_service_server_up` | Gauge | `service`, `url` | Current service's server status, 0 for a down or 1 for up. Only for services configured with healthcheck. | | `traefik_service_requests_bytes_total` | Count | `code`, `method`, `protocol`, `service` | The total size of requests in bytes received by a service. | | `traefik_service_responses_bytes_total` | Count | `code`, `method`, `protocol`, `service` | The total size of responses in bytes returned by a service. | @@ -575,7 +562,7 @@ On top of the official OpenTelemetry semantic conventions, Traefik provides its | `router.service.tls.total` | Count | `tls_version`, `tls_cipher`, `service` | The total count of HTTPS requests processed on a service. | | `service.request.duration.seconds` | Histogram | `code`, `method`, `protocol`, `service` | Request processing duration histogram on a service. | | `service.retries.total` | Count | `service` | The count of requests retries on a service. | - | `service.server.up` | Gauge | `service`, `url` | Current service's server status, 0 for a down or 1 for up. | + | `service.server.up` | Gauge | `service`, `url` | Current service's server status, 0 for a down or 1 for up. Only for services configured with healthcheck. | | `service.requests.bytes.total` | Count | `code`, `method`, `protocol`, `service` | The total size of requests in bytes received by a service. | | `service.responses.bytes.total` | Count | `code`, `method`, `protocol`, `service` | The total size of responses in bytes returned by a service. | @@ -587,7 +574,7 @@ On top of the official OpenTelemetry semantic conventions, Traefik provides its | `traefik.service.requests.tls.total` | Count | `tls_version`, `tls_cipher`, `service` | The total count of HTTPS requests processed on a service. | | `traefik.service.request.duration.seconds` | Histogram | `code`, `method`, `protocol`, `service` | Request processing duration histogram on a service. | | `traefik.service.retries.total` | Count | `service` | The count of requests retries on a service. | - | `traefik.service.server.up` | Gauge | `service`, `url` | Current service's server status, 0 for a down or 1 for up. | + | `traefik.service.server.up` | Gauge | `service`, `url` | Current service's server status, 0 for a down or 1 for up. Only for services configured with healthcheck. | | `traefik.service.requests.bytes.total` | Count | `code`, `method`, `protocol`, `service` | The total size of requests in bytes received by a service. | | `traefik.service.responses.bytes.total` | Count | `code`, `method`, `protocol`, `service` | The total size of responses in bytes returned by a service. | @@ -599,7 +586,7 @@ On top of the official OpenTelemetry semantic conventions, Traefik provides its | `{prefix}.service.requests.tls.total` | Count | `tls_version`, `tls_cipher`, `service` | The total count of HTTPS requests processed on a service. | | `{prefix}.service.request.duration.seconds` | Histogram | `code`, `method`, `protocol`, `service` | Request processing duration histogram on a service. | | `{prefix}.service.retries.total` | Count | `service` | The count of requests retries on a service. | - | `{prefix}.service.server.up` | Gauge | `service`, `url` | Current service's server status, 0 for a down or 1 for up. | + | `{prefix}.service.server.up` | Gauge | `service`, `url` | Current service's server status, 0 for a down or 1 for up. Only for services configured with healthcheck. | | `{prefix}.service.requests.bytes.total` | Count | `code`, `method`, `protocol`, `service` | The total size of requests in bytes received by a service. | | `{prefix}.service.responses.bytes.total` | Count | `code`, `method`, `protocol`, `service` | The total size of responses in bytes returned by a service. | diff --git a/docs/content/reference/install-configuration/providers/kubernetes/kubernetes-crd.md b/docs/content/reference/install-configuration/providers/kubernetes/kubernetes-crd.md index 15ea9c9c0..50ea7ff2d 100644 --- a/docs/content/reference/install-configuration/providers/kubernetes/kubernetes-crd.md +++ b/docs/content/reference/install-configuration/providers/kubernetes/kubernetes-crd.md @@ -113,8 +113,8 @@ See the dedicated section in [routing](../../../../routing/providers/kubernetes- | [IngressRoute](../../../routing-configuration/kubernetes/crd/http/ingressroute.md) | HTTP Routing | | [Middleware](../../../routing-configuration/kubernetes/crd/http/middleware.md) | Tweaks the HTTP requests before they are sent to your service | | [TraefikService](../../../routing-configuration/kubernetes/crd/http/traefikservice.md) | Abstraction for HTTP loadbalancing/mirroring | -| [TLSOptions](../../../routing-configuration/kubernetes/crd/http/tlsoption.md) | Allows configuring some parameters of the TLS connection | -| [TLSStores](../../../routing-configuration/kubernetes/crd/http/tlsstore.md) | Allows configuring the default TLS store | +| [TLSOptions](../../../routing-configuration/kubernetes/crd/tls/tlsoption.md) | Allows configuring some parameters of the TLS connection | +| [TLSStores](../../../routing-configuration/kubernetes/crd/tls/tlsstore.md) | Allows configuring the default TLS store | | [ServersTransport](../../../routing-configuration/kubernetes/crd/http/serverstransport.md) | Allows configuring the transport between Traefik and the backends | | [IngressRouteTCP](../../../routing-configuration/kubernetes/crd/tcp/ingressroutetcp.md) | TCP Routing | | [MiddlewareTCP](../../../routing-configuration/kubernetes/crd/tcp/middlewaretcp.md) | Tweaks the TCP requests before they are sent to your service | diff --git a/docs/content/reference/routing-configuration/http/middlewares/errorpages.md b/docs/content/reference/routing-configuration/http/middlewares/errorpages.md index 251953b4b..2855a5cbb 100644 --- a/docs/content/reference/routing-configuration/http/middlewares/errorpages.md +++ b/docs/content/reference/routing-configuration/http/middlewares/errorpages.md @@ -18,6 +18,9 @@ http: - "501" - "503" - "505-599" + statusRewrites: + "418": "404" + "502-504": "500" service: error-handler-service query: "/{status}.html" @@ -33,6 +36,10 @@ http: service = "error-handler-service" query = "/{status}.html" + [http.middlewares.test-errors.errors.statusRewrites] + "418" = "404" + "502-504" = "500" + [http.services] # ... definition of the error-handler-service ``` @@ -41,6 +48,8 @@ http: # Dynamic Custom Error Page for 5XX Status Code labels: - "traefik.http.middlewares.test-errors.errors.status=500,501,503,505-599" + - "traefik.http.middlewares.test-errors.errors.statusRewrites.418=404" + - "traefik.http.middlewares.test-errors.errors.statusRewrites.502-504=500" - "traefik.http.middlewares.test-errors.errors.service=error-handler-service" - "traefik.http.middlewares.test-errors.errors.query=/{status}.html" ``` @@ -51,6 +60,8 @@ labels: // ... "Tags": [ "traefik.http.middlewares.test-errors.errors.status=500,501,503,505-599", + "traefik.http.middlewares.test-errors.errors.statusRewrites.418=404", + "traefik.http.middlewares.test-errors.errors.statusRewrites.502-504=500", "traefik.http.middlewares.test-errors.errors.service=error-handler-service", "traefik.http.middlewares.test-errors.errors.query=/{status}.html" ] @@ -71,6 +82,9 @@ spec: - "501" - "503" - "505-599" + statusRewrites: + "418": "404" + "502-504": "500" query: /{status}.html service: name: error-handler-service @@ -82,6 +96,7 @@ spec: | Field | Description | Default | Required | |:-----------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------|:---------| | `status` | Defines which status or range of statuses should result in an error page.
The status code ranges are inclusive (`505-599` will trigger with every code between `505` and `599`, `505` and `599` included).
You can define either a status code as a number (`500`), as multiple comma-separated numbers (`500,502`), as ranges by separating two codes with a dash (`505-599`), or a combination of the two (`404,418,505-599`). | [] | No | +| `statusRewrites` | An optional mapping of status codes to be rewritten. More information [here](#statusrewrites). | [] | No | | `service` | The service that will serve the new requested error page.
More information [here](#service-and-hostheader). | "" | No | | `query` | The URL for the error page (hosted by `service`).
More information [here](#query) | "" | No | @@ -94,6 +109,15 @@ the [`passHostHeader`](../../../../routing/services/index.md#pass-host-header) o !!!info "Kubernetes" When specifying a service in Kubernetes (e.g., in an IngressRoute), you need to reference the `name`, `namespace`, and `port` of your Kubernetes Service resource. For example, `my-service.my-namespace@kubernetescrd` (or `my-service.my-namespace@kubernetescrd:80`) ensures that requests go to the correct service and port. +### statusRewrites + +`statusRewrites` is an optional mapping of status codes to be rewritten. + +For example, if a service returns a 418, you might want to rewrite it to a 404. +You can map individual status codes or even ranges to a different status code. + +The syntax for ranges follows the same rules as the `status` option. + ### query There are multiple variables that can be placed in the `query` option to insert values in the URL. @@ -103,4 +127,5 @@ The table below lists all the available variables and their associated values. | Variable | Value | |------------|------------------------------------------------------------------| | `{status}` | The response status code. | +| `{originalStatus}` | The original response status code, if it has been modified by the `statusRewrites` option. | | `{url}` | The [escaped](https://pkg.go.dev/net/url#QueryEscape) request URL.| diff --git a/docs/content/reference/routing-configuration/http/tls/tls-options.md b/docs/content/reference/routing-configuration/http/tls/tls-options.md index a50b9ff77..939edf91e 100644 --- a/docs/content/reference/routing-configuration/http/tls/tls-options.md +++ b/docs/content/reference/routing-configuration/http/tls/tls-options.md @@ -188,7 +188,7 @@ Traefik supports mutual authentication, through the `clientAuth` section. For authentication policies that require verification of the client certificate, the certificate authority for the certificates should be set in `clientAuth.caFiles`. -In Kubernetes environment, CA certificate can be set in `clientAuth.secretNames`. See [TLSOption resource](../../kubernetes/crd/http/tlsoption.md) for more details. +In Kubernetes environment, CA certificate can be set in `clientAuth.secretNames`. See [TLSOption resource](../../kubernetes/crd/tls/tlsoption.md) for more details. The `clientAuth.clientAuthType` option governs the behaviour as follows: diff --git a/docs/content/reference/routing-configuration/kubernetes/crd/http/ingressroute.md b/docs/content/reference/routing-configuration/kubernetes/crd/http/ingressroute.md index cc658fb2a..fc7ae06b2 100644 --- a/docs/content/reference/routing-configuration/kubernetes/crd/http/ingressroute.md +++ b/docs/content/reference/routing-configuration/kubernetes/crd/http/ingressroute.md @@ -93,11 +93,11 @@ spec: | `routes[n].`
`observability.`
`accesslogs`
| Defines whether the route will produce [access-logs](../../../../install-configuration/observability/logs-and-accesslogs.md). See [here](../../../http/routing/observability.md) for more information. | false | No | | `routes[n].`
`observability.`
`metrics`
| Defines whether the route will produce [metrics](../../../../install-configuration/observability/metrics.md). See [here](../../../http/routing/observability.md) for more information. | false | No | | `routes[n].`
`observability.`
`tracing`
| Defines whether the route will produce [traces](../../../../install-configuration/observability/tracing.md). See [here](../../../http/routing/observability.md) for more information. | false | No | -| `tls` | TLS configuration.
Can be an empty value(`{}`):
A self signed is generated in such a case
(or the [default certificate](tlsstore.md) is used if it is defined.) | | No | +| `tls` | TLS configuration.
Can be an empty value(`{}`):
A self signed is generated in such a case
(or the [default certificate](../tls/tlsstore.md) is used if it is defined.) | | No | | `routes[n].`
`services`
| List of any combination of [TraefikService](./traefikservice.md) and [Kubernetes service](https://kubernetes.io/docs/concepts/services-networking/service/).
Exhaustive list of option in the [`Service`](./service.md#configuration-options) documentation. | | No | | `tls.secretName` | [Secret](https://kubernetes.io/docs/concepts/configuration/secret/) name used to store the certificate (in the same namesapce as the `IngressRoute`) | "" | No | -| `tls.`
`options.name`
| Name of the [`TLSOption`](tlsoption.md) to use.
More information [here](#tls-options). | "" | No | -| `tls.`
`options.namespace`
| Namespace of the [`TLSOption`](tlsoption.md) to use. | "" | No | +| `tls.`
`options.name`
| Name of the [`TLSOption`](../tls/tlsoption.md) to use.
More information [here](#tls-options). | "" | No | +| `tls.`
`options.namespace`
| Namespace of the [`TLSOption`](../tls/tlsoption.md) to use. | "" | No | | `tls.certResolver` | Name of the [Certificate Resolver](../../../../install-configuration/tls/certificate-resolvers/overview.md) to use to generate automatic TLS certificates. | "" | No | | `tls.domains` | List of domains to serve using the certificates generates (one `tls.domain`= one certificate).
More information in the [dedicated section](../../../../install-configuration/tls/certificate-resolvers/acme.md#domain-definition). | | No | | `tls.`
`domains[n].main`
| Main domain name | "" | Yes | @@ -156,7 +156,7 @@ same namespace as the IngressRoute) ### TLS Options The `options` field enables fine-grained control of the TLS parameters. -It refers to a [TLSOption](./tlsoption.md) and will be applied only if a `Host` +It refers to a [TLSOption](../tls/tlsoption.md) and will be applied only if a `Host` rule is defined. #### Server Name Association diff --git a/docs/content/reference/routing-configuration/kubernetes/crd/tcp/ingressroutetcp.md b/docs/content/reference/routing-configuration/kubernetes/crd/tcp/ingressroutetcp.md index 90a64e771..4ae214dae 100644 --- a/docs/content/reference/routing-configuration/kubernetes/crd/tcp/ingressroutetcp.md +++ b/docs/content/reference/routing-configuration/kubernetes/crd/tcp/ingressroutetcp.md @@ -75,9 +75,9 @@ spec: | `routes[n].services[n].nodePortLB` | Controls, when creating the load-balancer, whether the LB's children are directly the nodes internal IPs using the nodePort when the service type is `NodePort`. It allows services to be reachable when Traefik runs externally from the Kubernetes cluster but within the same network of the nodes. | false | No | | `tls` | Defines [TLS](../../../../install-configuration/tls/certificate-resolvers/overview.md) certificate configuration. | | No | | `tls.secretName` | Defines the [secret](https://kubernetes.io/docs/concepts/configuration/secret/) name used to store the certificate (in the `IngressRoute` namespace). | "" | No | -| `tls.options` | Defines the reference to a [TLSOption](tlsoption.md). | "" | No | -| `tls.options.name` | Defines the [TLSOption](tlsoption.md) name. | "" | No | -| `tls.options.namespace` | Defines the [TLSOption](tlsoption.md) namespace. | "" | No | +| `tls.options` | Defines the reference to a [TLSOption](../tls/tlsoption.md). | "" | No | +| `tls.options.name` | Defines the [TLSOption](../tls/tlsoption.md) name. | "" | No | +| `tls.options.namespace` | Defines the [TLSOption](../tls/tlsoption.md) namespace. | "" | No | | `tls.certResolver` | Defines the reference to a [CertResolver](../../../../install-configuration/tls/certificate-resolvers/overview.md). | "" | No | | `tls.domains` | List of domains. | "" | No | | `tls.domains[n].main` | Defines the main domain name. | "" | No | diff --git a/docs/content/reference/routing-configuration/kubernetes/ingress.md b/docs/content/reference/routing-configuration/kubernetes/ingress.md index 7343a2bdf..a9b0aab71 100644 --- a/docs/content/reference/routing-configuration/kubernetes/ingress.md +++ b/docs/content/reference/routing-configuration/kubernetes/ingress.md @@ -133,7 +133,7 @@ spec: ??? info "`traefik.ingress.kubernetes.io/router.tls.options`" - See [options](../kubernetes/crd/http/tlsoption.md) for more information. + See [options](../kubernetes/crd/tls/tlsoption.md) for more information. ```yaml traefik.ingress.kubernetes.io/router.tls.options: foobar@file @@ -589,7 +589,7 @@ and will connect via TLS automatically. Please note that by enabling TLS communication between traefik and your pods, you will have to have trusted certificates that have the proper trust chain and IP subject name. If this is not an option, you may need to skip TLS certificate verification. - See the [`insecureSkipVerify` TLSOption](../kubernetes/crd/http/tlsoption.md) setting for more details. + See the [`insecureSkipVerify` TLSOption](../kubernetes/crd/tls/tlsoption.md) setting for more details. ## Global Default Backend Ingresses diff --git a/docs/content/user-guides/cert-manager.md b/docs/content/user-guides/cert-manager.md index db1afc4fe..fbb90d918 100644 --- a/docs/content/user-guides/cert-manager.md +++ b/docs/content/user-guides/cert-manager.md @@ -56,7 +56,7 @@ The certificates can then be used in an Ingress / IngressRoute / HTTPRoute. ``` Let's see now how to use it with the various Kubernetes providers of Traefik Proxy. -The enabled providers can be seen on the [dashboard](../operations/dashboard.md) of Traefik Proxy and also in the INFO logs when Traefik Proxy starts. +The enabled providers can be seen on the [dashboard](../reference/install-configuration/api-dashboard.md) of Traefik Proxy and also in the INFO logs when Traefik Proxy starts. ### With an Ingress diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index df533575c..c894a9f1f 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -62,7 +62,7 @@ plugins: # Routing 'routing/overview.md': 'reference/routing-configuration/dynamic-configuration-methods.md' 'routing/entrypoints.md': 'reference/install-configuration/entrypoints.md' - 'routing/routers/index.md': 'reference/routing-configuration/http/router/rules-and-priority.md' + 'routing/routers/index.md': 'reference/routing-configuration/http/routing/rules-and-priority.md' 'routing/services/index.md': 'reference/routing-configuration/http/load-balancing/service.md' 'routing/providers/docker.md': 'reference/routing-configuration/other-providers/docker.md' 'routing/providers/swarm.md': 'reference/routing-configuration/other-providers/swarm.md' diff --git a/pkg/provider/kv/kv.go b/pkg/provider/kv/kv.go index 237a0d4b0..a03d4e711 100644 --- a/pkg/provider/kv/kv.go +++ b/pkg/provider/kv/kv.go @@ -55,7 +55,7 @@ func (p *Provider) Provide(configurationChan chan<- dynamic.Message, pool *safe. ctx := logger.WithContext(context.Background()) operation := func() error { - if _, err := p.kvClient.Exists(ctx, path.Join(p.RootKey, "qmslkjdfmqlskdjfmqlksjazçueznbvbwzlkajzebvkwjdcqmlsfj"), nil); err != nil { + if _, err := p.kvClient.Exists(ctx, path.Join(p.RootKey, "qmslkjdfmqlskdjfmqlksjazcueznbvbwzlkajzebvkwjdcqmlsfj"), nil); err != nil { return fmt.Errorf("KV store connection error: %w", err) } return nil diff --git a/script/gcg/traefik-bugfix.toml b/script/gcg/traefik-bugfix.toml index 7465f10af..36d6242a3 100644 --- a/script/gcg/traefik-bugfix.toml +++ b/script/gcg/traefik-bugfix.toml @@ -4,11 +4,11 @@ RepositoryName = "traefik" OutputType = "file" FileName = "traefik_changelog.md" -# example new bugfix v3.5.3 +# example new bugfix v3.5.4 CurrentRef = "v3.5" -PreviousRef = "v3.5.2" +PreviousRef = "v3.5.3" BaseBranch = "v3.5" -FutureCurrentRefName = "v3.5.3" +FutureCurrentRefName = "v3.5.4" ThresholdPreviousRef = 10 ThresholdCurrentRef = 10