From 92f798dfcd12999007eb83fac18734f260f445c0 Mon Sep 17 00:00:00 2001 From: Jesper Noordsij <45041769+jnoordsij@users.noreply.github.com> Date: Mon, 2 Jun 2025 16:08:04 +0200 Subject: [PATCH 1/5] Update supported versions --- docs/content/deprecation/releases.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/content/deprecation/releases.md b/docs/content/deprecation/releases.md index 1a5fc0b03..0c25265bd 100644 --- a/docs/content/deprecation/releases.md +++ b/docs/content/deprecation/releases.md @@ -6,11 +6,12 @@ Below is a non-exhaustive list of versions and their maintenance status: | Version | Release Date | Active Support | Security Support | |---------|--------------|--------------------|-------------------| -| 3.3 | Jan 06, 2025 | Yes | Yes | +| 3.4 | May 05, 2025 | Yes | Yes | +| 3.3 | Jan 06, 2025 | Ended May 05, 2025 | No | | 3.2 | Oct 28, 2024 | Ended Jan 06, 2025 | No | | 3.1 | Jul 15, 2024 | Ended Oct 28, 2024 | No | | 3.0 | Apr 29, 2024 | Ended Jul 15, 2024 | No | -| 2.11 | Feb 12, 2024 | Ends Apr 29, 2025 | Ends Feb 01, 2026 | +| 2.11 | Feb 12, 2024 | Ended Apr 29, 2025 | Ends Feb 01, 2026 | | 2.10 | Apr 24, 2023 | Ended Feb 12, 2024 | No | | 2.9 | Oct 03, 2022 | Ended Apr 24, 2023 | No | | 2.8 | Jun 29, 2022 | Ended Oct 03, 2022 | No | From f7a6f32784bca83d424264c390ec5592d63bc860 Mon Sep 17 00:00:00 2001 From: Jesper Noordsij <45041769+jnoordsij@users.noreply.github.com> Date: Tue, 3 Jun 2025 11:24:05 +0200 Subject: [PATCH 2/5] Update Dockerfiles to Alpine 3.22 --- Dockerfile | 2 +- docs/check.Dockerfile | 4 +--- docs/docs.Dockerfile | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index fcf9c49b9..0e08e72da 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # syntax=docker/dockerfile:1.2 -FROM alpine:3.21 +FROM alpine:3.22 RUN apk add --no-cache --no-progress ca-certificates tzdata diff --git a/docs/check.Dockerfile b/docs/check.Dockerfile index 41a389f69..2a03cf8af 100644 --- a/docs/check.Dockerfile +++ b/docs/check.Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.21 +FROM alpine:3.22 RUN apk --no-cache --no-progress add \ build-base \ @@ -9,9 +9,7 @@ RUN apk --no-cache --no-progress add \ ruby \ ruby-bigdecimal \ ruby-dev \ - ruby-etc \ ruby-ffi \ - ruby-json \ zlib-dev RUN gem install nokogiri --version 1.18.6 --no-document -- --use-system-libraries diff --git a/docs/docs.Dockerfile b/docs/docs.Dockerfile index e15440a36..99e963cf4 100644 --- a/docs/docs.Dockerfile +++ b/docs/docs.Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.21 +FROM alpine:3.22 ENV PATH="${PATH}:/venv/bin" From bfcef58a4f701166146aa37a1132707486c3b69f Mon Sep 17 00:00:00 2001 From: Romain Date: Tue, 3 Jun 2025 16:56:04 +0200 Subject: [PATCH 3/5] Fix KV reference rendering --- docs/content/reference/dynamic-configuration/kv-ref.md | 3 +++ docs/content/reference/dynamic-configuration/kv.md | 2 -- internal/gendoc.go | 5 +++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/content/reference/dynamic-configuration/kv-ref.md b/docs/content/reference/dynamic-configuration/kv-ref.md index b39dc96ab..0b2f7c5f0 100644 --- a/docs/content/reference/dynamic-configuration/kv-ref.md +++ b/docs/content/reference/dynamic-configuration/kv-ref.md @@ -2,6 +2,9 @@ CODE GENERATED AUTOMATICALLY THIS FILE MUST NOT BE EDITED BY HAND --> + +| Key (Path) | Value | +|------------|-------| | `traefik/http/middlewares/Middleware01/addPrefix/prefix` | `foobar` | | `traefik/http/middlewares/Middleware02/basicAuth/headerField` | `foobar` | | `traefik/http/middlewares/Middleware02/basicAuth/realm` | `foobar` | diff --git a/docs/content/reference/dynamic-configuration/kv.md b/docs/content/reference/dynamic-configuration/kv.md index 8db8415e5..71fe4ab06 100644 --- a/docs/content/reference/dynamic-configuration/kv.md +++ b/docs/content/reference/dynamic-configuration/kv.md @@ -8,6 +8,4 @@ description: "Read the technical documentation to learn the Traefik Dynamic Conf Dynamic configuration with KV stores. {: .subtitle } -| Key (Path) | Value | -|----------------------------------------------------------------------------------------------|-------------| --8<-- "content/reference/dynamic-configuration/kv-ref.md" diff --git a/internal/gendoc.go b/internal/gendoc.go index 76f650582..e2362faf5 100644 --- a/internal/gendoc.go +++ b/internal/gendoc.go @@ -349,6 +349,11 @@ func genKVDynConfDoc(outputFile string) { CODE GENERATED AUTOMATICALLY THIS FILE MUST NOT BE EDITED BY HAND --> +`) + + _, _ = fmt.Fprintf(file, ` +| Key (Path) | Value | +|------------|-------| `) for _, k := range keys { From ae79d4e5f00fcd639ba11715f02963828217cf40 Mon Sep 17 00:00:00 2001 From: Kevin Pollet Date: Wed, 4 Jun 2025 12:08:04 +0200 Subject: [PATCH 4/5] Do not log redis sentinel username and password --- pkg/provider/kv/redis/redis.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/provider/kv/redis/redis.go b/pkg/provider/kv/redis/redis.go index 3005c8f2d..afb4531f6 100644 --- a/pkg/provider/kv/redis/redis.go +++ b/pkg/provider/kv/redis/redis.go @@ -21,14 +21,14 @@ type Provider struct { Username string `description:"Username for authentication." json:"username,omitempty" toml:"username,omitempty" yaml:"username,omitempty" loggable:"false"` Password string `description:"Password for authentication." json:"password,omitempty" toml:"password,omitempty" yaml:"password,omitempty" loggable:"false"` DB int `description:"Database to be selected after connecting to the server." json:"db,omitempty" toml:"db,omitempty" yaml:"db,omitempty"` - Sentinel *Sentinel `description:"Enable Sentinel support." json:"sentinel,omitempty" toml:"sentinel,omitempty" yaml:"sentinel,omitempty"` + Sentinel *Sentinel `description:"Enable Sentinel support." json:"sentinel,omitempty" toml:"sentinel,omitempty" yaml:"sentinel,omitempty" export:"true"` } // Sentinel holds the Redis Sentinel configuration. type Sentinel struct { MasterName string `description:"Name of the master." json:"masterName,omitempty" toml:"masterName,omitempty" yaml:"masterName,omitempty" export:"true"` - Username string `description:"Username for Sentinel authentication." json:"username,omitempty" toml:"username,omitempty" yaml:"username,omitempty" export:"true"` - Password string `description:"Password for Sentinel authentication." json:"password,omitempty" toml:"password,omitempty" yaml:"password,omitempty" export:"true"` + Username string `description:"Username for Sentinel authentication." json:"username,omitempty" toml:"username,omitempty" yaml:"username,omitempty" loggable:"false"` + Password string `description:"Password for Sentinel authentication." json:"password,omitempty" toml:"password,omitempty" yaml:"password,omitempty" loggable:"false"` LatencyStrategy bool `description:"Defines whether to route commands to the closest master or replica nodes (mutually exclusive with RandomStrategy and ReplicaStrategy)." json:"latencyStrategy,omitempty" toml:"latencyStrategy,omitempty" yaml:"latencyStrategy,omitempty" export:"true"` RandomStrategy bool `description:"Defines whether to route commands randomly to master or replica nodes (mutually exclusive with LatencyStrategy and ReplicaStrategy)." json:"randomStrategy,omitempty" toml:"randomStrategy,omitempty" yaml:"randomStrategy,omitempty" export:"true"` From b0d8e08e2b48d0135f11df30495475477868a48c Mon Sep 17 00:00:00 2001 From: Romain Date: Wed, 11 Jun 2025 09:46:05 +0200 Subject: [PATCH 5/5] Fix typo in redirect middleware documentation --- .../kubernetes-crd-definition-v1.yml | 8 ++++---- .../traefik.containo.us_middlewares.yaml | 4 ++-- .../dynamic-configuration/traefik.io_middlewares.yaml | 4 ++-- integration/fixtures/k8s/01-traefik-crd.yml | 8 ++++---- pkg/config/dynamic/middlewares.go | 4 ++-- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1.yml b/docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1.yml index be8be7dd4..6f901cb57 100644 --- a/docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1.yml +++ b/docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1.yml @@ -1478,7 +1478,7 @@ spec: properties: permanent: description: Permanent defines whether the redirection is permanent - (301). + (308). type: boolean regex: description: Regex defines the regex used to match and capture @@ -1497,7 +1497,7 @@ spec: properties: permanent: description: Permanent defines whether the redirection is permanent - (301). + (308). type: boolean port: description: Port defines the port of the new URL. @@ -3908,7 +3908,7 @@ spec: properties: permanent: description: Permanent defines whether the redirection is permanent - (301). + (308). type: boolean regex: description: Regex defines the regex used to match and capture @@ -3927,7 +3927,7 @@ spec: properties: permanent: description: Permanent defines whether the redirection is permanent - (301). + (308). type: boolean port: description: Port defines the port of the new URL. diff --git a/docs/content/reference/dynamic-configuration/traefik.containo.us_middlewares.yaml b/docs/content/reference/dynamic-configuration/traefik.containo.us_middlewares.yaml index 10382ea4c..f822b08f5 100644 --- a/docs/content/reference/dynamic-configuration/traefik.containo.us_middlewares.yaml +++ b/docs/content/reference/dynamic-configuration/traefik.containo.us_middlewares.yaml @@ -863,7 +863,7 @@ spec: properties: permanent: description: Permanent defines whether the redirection is permanent - (301). + (308). type: boolean regex: description: Regex defines the regex used to match and capture @@ -882,7 +882,7 @@ spec: properties: permanent: description: Permanent defines whether the redirection is permanent - (301). + (308). type: boolean port: description: Port defines the port of the new URL. diff --git a/docs/content/reference/dynamic-configuration/traefik.io_middlewares.yaml b/docs/content/reference/dynamic-configuration/traefik.io_middlewares.yaml index e82fab171..0dee0fa2c 100644 --- a/docs/content/reference/dynamic-configuration/traefik.io_middlewares.yaml +++ b/docs/content/reference/dynamic-configuration/traefik.io_middlewares.yaml @@ -863,7 +863,7 @@ spec: properties: permanent: description: Permanent defines whether the redirection is permanent - (301). + (308). type: boolean regex: description: Regex defines the regex used to match and capture @@ -882,7 +882,7 @@ spec: properties: permanent: description: Permanent defines whether the redirection is permanent - (301). + (308). type: boolean port: description: Port defines the port of the new URL. diff --git a/integration/fixtures/k8s/01-traefik-crd.yml b/integration/fixtures/k8s/01-traefik-crd.yml index be8be7dd4..6f901cb57 100644 --- a/integration/fixtures/k8s/01-traefik-crd.yml +++ b/integration/fixtures/k8s/01-traefik-crd.yml @@ -1478,7 +1478,7 @@ spec: properties: permanent: description: Permanent defines whether the redirection is permanent - (301). + (308). type: boolean regex: description: Regex defines the regex used to match and capture @@ -1497,7 +1497,7 @@ spec: properties: permanent: description: Permanent defines whether the redirection is permanent - (301). + (308). type: boolean port: description: Port defines the port of the new URL. @@ -3908,7 +3908,7 @@ spec: properties: permanent: description: Permanent defines whether the redirection is permanent - (301). + (308). type: boolean regex: description: Regex defines the regex used to match and capture @@ -3927,7 +3927,7 @@ spec: properties: permanent: description: Permanent defines whether the redirection is permanent - (301). + (308). type: boolean port: description: Port defines the port of the new URL. diff --git a/pkg/config/dynamic/middlewares.go b/pkg/config/dynamic/middlewares.go index c820d9fcf..bb5f95f9b 100644 --- a/pkg/config/dynamic/middlewares.go +++ b/pkg/config/dynamic/middlewares.go @@ -489,7 +489,7 @@ type RedirectRegex struct { Regex string `json:"regex,omitempty" toml:"regex,omitempty" yaml:"regex,omitempty"` // Replacement defines how to modify the URL to have the new target URL. Replacement string `json:"replacement,omitempty" toml:"replacement,omitempty" yaml:"replacement,omitempty"` - // Permanent defines whether the redirection is permanent (301). + // Permanent defines whether the redirection is permanent (308). Permanent bool `json:"permanent,omitempty" toml:"permanent,omitempty" yaml:"permanent,omitempty" export:"true"` } @@ -503,7 +503,7 @@ type RedirectScheme struct { Scheme string `json:"scheme,omitempty" toml:"scheme,omitempty" yaml:"scheme,omitempty" export:"true"` // Port defines the port of the new URL. Port string `json:"port,omitempty" toml:"port,omitempty" yaml:"port,omitempty" export:"true"` - // Permanent defines whether the redirection is permanent (301). + // Permanent defines whether the redirection is permanent (308). Permanent bool `json:"permanent,omitempty" toml:"permanent,omitempty" yaml:"permanent,omitempty" export:"true"` }