feat(helm)!: Update chart traefik (38.0.2 → 39.0.8)#1176
Merged
Conversation
Contributor
Author
--- main/traefik_gitops_manifests_traefik_beelink_manifest_main.yaml 2026-05-13 11:37:52.664016010 +0000
+++ pr/traefik_gitops_manifests_traefik_beelink_manifest_pr.yaml 2026-05-13 11:37:52.157015715 +0000
@@ -1,52 +1,52 @@
---
# Source: traefik/charts/traefik/templates/poddisruptionbudget.yaml
apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
name: traefik
namespace: default
labels:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
- helm.sh/chart: traefik-38.0.2
+ helm.sh/chart: traefik-37.4.0
app.kubernetes.io/managed-by: Helm
spec:
selector:
matchLabels:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
maxUnavailable: 1
---
# Source: traefik/charts/traefik/templates/rbac/serviceaccount.yaml
kind: ServiceAccount
apiVersion: v1
metadata:
name: traefik
namespace: default
labels:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
- helm.sh/chart: traefik-38.0.2
+ helm.sh/chart: traefik-37.4.0
app.kubernetes.io/managed-by: Helm
annotations:
automountServiceAccountToken: false
---
# Source: traefik/charts/traefik/templates/rbac/clusterrole.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: traefik-default
labels:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
- helm.sh/chart: traefik-38.0.2
+ helm.sh/chart: traefik-37.4.0
app.kubernetes.io/managed-by: Helm
rules:
- apiGroups:
- ""
resources:
- configmaps
- nodes
- services
verbs:
- get
@@ -84,27 +84,20 @@
- list
- watch
- apiGroups:
- extensions
- networking.k8s.io
resources:
- ingresses/status
verbs:
- update
- apiGroups:
- - ""
- resources:
- - namespaces
- verbs:
- - list
- - watch
- - apiGroups:
- traefik.io
resources:
- ingressroutes
- ingressroutetcps
- ingressrouteudps
- middlewares
- middlewaretcps
- serverstransports
- serverstransporttcps
- tlsoptions
@@ -116,41 +109,41 @@
- watch
---
# Source: traefik/charts/traefik/templates/rbac/clusterrolebinding.yaml
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: traefik-default
labels:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
- helm.sh/chart: traefik-38.0.2
+ helm.sh/chart: traefik-37.4.0
app.kubernetes.io/managed-by: Helm
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: traefik-default
subjects:
- kind: ServiceAccount
name: traefik
namespace: default
---
# Source: traefik/charts/traefik/templates/service.yaml
apiVersion: v1
kind: Service
metadata:
name: traefik
namespace: default
labels:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
- helm.sh/chart: traefik-38.0.2
+ helm.sh/chart: traefik-37.4.0
app.kubernetes.io/managed-by: Helm
annotations:
spec:
type: LoadBalancer
selector:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
ipFamilyPolicy: PreferDualStack
ports:
- port: 80
@@ -164,21 +157,21 @@
---
# Source: traefik/charts/traefik/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: traefik
namespace: default
labels:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
- helm.sh/chart: traefik-38.0.2
+ helm.sh/chart: traefik-37.4.0
app.kubernetes.io/managed-by: Helm
annotations:
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
strategy:
type: RollingUpdate
@@ -188,21 +181,21 @@
minReadySeconds: 0
template:
metadata:
annotations:
prometheus.io/scrape: "true"
prometheus.io/path: "/metrics"
prometheus.io/port: "9100"
labels:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
- helm.sh/chart: traefik-38.0.2
+ helm.sh/chart: traefik-37.4.0
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: traefik
automountServiceAccountToken: true
terminationGracePeriodSeconds: 60
hostNetwork: false
containers:
- image: docker.io/traefik:v3.7.1
imagePullPolicy: IfNotPresent
name: traefik
@@ -300,33 +293,31 @@
key: node-role.kubernetes.io/control-plane
operator: Exists
- effect: NoSchedule
key: node-role.kubernetes.io/master
operator: Exists
priorityClassName: system-cluster-critical
securityContext:
runAsGroup: 65532
runAsNonRoot: true
runAsUser: 65532
- seccompProfile:
- type: RuntimeDefault
---
# Source: traefik/charts/traefik/templates/ingressclass.yaml
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
annotations:
ingressclass.kubernetes.io/is-default-class: "true"
labels:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
- helm.sh/chart: traefik-38.0.2
+ helm.sh/chart: traefik-37.4.0
app.kubernetes.io/managed-by: Helm
name: traefik
spec:
controller: traefik.io/ingress-controller
---
# Source: traefik/templates/extsecret-wildcard-cert.yaml
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: fredcorp-wildcard
@@ -447,15 +438,15 @@
---
# Source: traefik/charts/traefik/templates/tlsstore.yaml
apiVersion: traefik.io/v1alpha1
kind: TLSStore
metadata:
name: default
namespace: default
labels:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
- helm.sh/chart: traefik-38.0.2
+ helm.sh/chart: traefik-37.4.0
app.kubernetes.io/managed-by: Helm
spec:
defaultCertificate:
secretName: k0s-fullstack-wildcard
--- main/traefik_gitops_manifests_traefik_genmachine_manifest_main.yaml 2026-05-13 11:37:53.678016599 +0000
+++ pr/traefik_gitops_manifests_traefik_genmachine_manifest_pr.yaml 2026-05-13 11:37:53.177016308 +0000
@@ -1,52 +1,52 @@
---
# Source: traefik/charts/traefik/templates/poddisruptionbudget.yaml
apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
name: traefik
namespace: default
labels:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
- helm.sh/chart: traefik-38.0.2
+ helm.sh/chart: traefik-39.0.8
app.kubernetes.io/managed-by: Helm
spec:
selector:
matchLabels:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
maxUnavailable: 1
---
# Source: traefik/charts/traefik/templates/rbac/serviceaccount.yaml
kind: ServiceAccount
apiVersion: v1
metadata:
name: traefik
namespace: default
labels:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
- helm.sh/chart: traefik-38.0.2
+ helm.sh/chart: traefik-39.0.8
app.kubernetes.io/managed-by: Helm
annotations:
automountServiceAccountToken: false
---
# Source: traefik/charts/traefik/templates/rbac/clusterrole.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: traefik-default
labels:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
- helm.sh/chart: traefik-38.0.2
+ helm.sh/chart: traefik-39.0.8
app.kubernetes.io/managed-by: Helm
rules:
- apiGroups:
- ""
resources:
- configmaps
- nodes
- services
verbs:
- get
@@ -86,20 +86,21 @@
- apiGroups:
- extensions
- networking.k8s.io
resources:
- ingresses/status
verbs:
- update
- apiGroups:
- ""
resources:
+ - configmaps
- namespaces
verbs:
- list
- watch
- apiGroups:
- traefik.io
resources:
- ingressroutes
- ingressroutetcps
- ingressrouteudps
@@ -116,42 +117,42 @@
- watch
---
# Source: traefik/charts/traefik/templates/rbac/clusterrolebinding.yaml
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: traefik-default
labels:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
- helm.sh/chart: traefik-38.0.2
+ helm.sh/chart: traefik-39.0.8
app.kubernetes.io/managed-by: Helm
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: traefik-default
subjects:
- kind: ServiceAccount
name: traefik
namespace: default
---
# Source: traefik/charts/traefik/templates/service-metrics.yaml
apiVersion: v1
kind: Service
metadata:
name: traefik-metrics
namespace: default
labels:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
app.kubernetes.io/component: metrics
- helm.sh/chart: traefik-38.0.2
+ helm.sh/chart: traefik-39.0.8
app.kubernetes.io/managed-by: Helm
annotations:
spec:
type: ClusterIP
selector:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
ports:
- port: 9100
name: metrics
@@ -160,21 +161,21 @@
---
# Source: traefik/charts/traefik/templates/service.yaml
apiVersion: v1
kind: Service
metadata:
name: traefik
namespace: default
labels:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
- helm.sh/chart: traefik-38.0.2
+ helm.sh/chart: traefik-39.0.8
app.kubernetes.io/managed-by: Helm
annotations:
spec:
type: LoadBalancer
selector:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
ipFamilyPolicy: PreferDualStack
ports:
- port: 80
@@ -188,165 +189,165 @@
---
# Source: traefik/charts/traefik/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: traefik
namespace: default
labels:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
- helm.sh/chart: traefik-38.0.2
+ helm.sh/chart: traefik-39.0.8
app.kubernetes.io/managed-by: Helm
annotations:
spec:
replicas: 2
selector:
matchLabels:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 0
maxSurge: 1
minReadySeconds: 0
+
template:
metadata:
- annotations:
+ annotations: null
labels:
- app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
- helm.sh/chart: traefik-38.0.2
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: traefik
+ helm.sh/chart: traefik-39.0.8
spec:
- serviceAccountName: traefik
automountServiceAccountToken: true
- terminationGracePeriodSeconds: 60
- hostNetwork: false
containers:
- - image: docker.io/traefik:v3.7.1
+ - args:
+ - --global.checkNewVersion=false
+ - --entryPoints.metrics.address=:9100/tcp
+ - --entryPoints.traefik.address=:8080/tcp
+ - --entryPoints.web.address=:8000/tcp
+ - --entryPoints.websecure.address=:8443/tcp
+ - --api.dashboard=true
+ - --ping=true
+ - --metrics.addinternals
+ - --metrics.prometheus=true
+ - --metrics.prometheus.entrypoint=metrics
+ - --providers.kubernetescrd
+ - --providers.kubernetescrd.allowCrossNamespace=true
+ - --providers.kubernetescrd.allowExternalNameServices=true
+ - --providers.kubernetescrd.allowEmptyServices=true
+ - --providers.kubernetesingress
+ - --providers.kubernetesingress.allowExternalNameServices=true
+ - --providers.kubernetesingress.allowEmptyServices=true
+ - --providers.kubernetesingress.ingressendpoint.publishedservice=default/traefik
+ - --entryPoints.web.http.redirections.entryPoint.to=:443
+ - --entryPoints.web.http.redirections.entryPoint.scheme=https
+ - --entryPoints.websecure.http.tls=true
+ - --log.level=TRACE
+ env:
+ - name: POD_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.name
+ - name: POD_NAMESPACE
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.namespace
+ - name: USER
+ value: traefik
+ image: docker.io/traefik:v3.7.1
imagePullPolicy: IfNotPresent
- name: traefik
- resources:
- readinessProbe:
+ lifecycle: null
+ livenessProbe:
+ failureThreshold: 3
httpGet:
path: /ping
port: 8080
scheme: HTTP
- failureThreshold: 1
initialDelaySeconds: 2
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 2
- livenessProbe:
+ name: traefik
+ ports:
+ - containerPort: 9100
+ name: metrics
+ protocol: TCP
+ - containerPort: 8080
+ name: traefik
+ protocol: TCP
+ - containerPort: 8000
+ name: web
+ protocol: TCP
+ - containerPort: 8443
+ name: websecure
+ protocol: TCP
+ readinessProbe:
+ failureThreshold: 1
httpGet:
path: /ping
port: 8080
scheme: HTTP
- failureThreshold: 3
initialDelaySeconds: 2
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 2
- lifecycle:
- ports:
- - name: metrics
- containerPort: 9100
- protocol: TCP
- - name: traefik
- containerPort: 8080
- protocol: TCP
- - name: web
- containerPort: 8000
- protocol: TCP
- - name: websecure
- containerPort: 8443
- protocol: TCP
+ resources: null
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
volumeMounts:
- - name: data
- mountPath: /data
- - name: tmp
- mountPath: /tmp
-
- args:
- - "--entryPoints.metrics.address=:9100/tcp"
- - "--entryPoints.traefik.address=:8080/tcp"
- - "--entryPoints.web.address=:8000/tcp"
- - "--entryPoints.websecure.address=:8443/tcp"
- - "--api.dashboard=true"
- - "--ping=true"
- - "--metrics.addinternals"
- - "--metrics.prometheus=true"
- - "--metrics.prometheus.entrypoint=metrics"
-
-
- - "--providers.kubernetescrd"
- - "--providers.kubernetescrd.allowCrossNamespace=true"
- - "--providers.kubernetescrd.allowExternalNameServices=true"
- - "--providers.kubernetescrd.allowEmptyServices=true"
- - "--providers.kubernetesingress"
- - "--providers.kubernetesingress.allowExternalNameServices=true"
- - "--providers.kubernetesingress.allowEmptyServices=true"
- - "--providers.kubernetesingress.ingressendpoint.publishedservice=default/traefik"
- - "--entryPoints.websecure.http.tls=true"
- - "--log.level=TRACE"
-
- env:
- - name: POD_NAME
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- - name: POD_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- - name: USER
- value: traefik
- volumes:
- - name: data
- emptyDir: {}
- - name: tmp
- emptyDir: {}
- tolerations:
- - key: CriticalAddonsOnly
- operator: Exists
- - effect: NoSchedule
- key: node-role.kubernetes.io/control-plane
- operator: Exists
- - effect: NoSchedule
- key: node-role.kubernetes.io/master
- operator: Exists
+ - mountPath: /data
+ name: data
+ - mountPath: /tmp
+ name: tmp
+ hostNetwork: false
priorityClassName: system-cluster-critical
securityContext:
runAsGroup: 65532
runAsNonRoot: true
runAsUser: 65532
seccompProfile:
type: RuntimeDefault
+ serviceAccountName: traefik
+ terminationGracePeriodSeconds: 60
+ tolerations:
+ - key: CriticalAddonsOnly
+ operator: Exists
+ - effect: NoSchedule
+ key: node-role.kubernetes.io/control-plane
+ operator: Exists
+ - effect: NoSchedule
+ key: node-role.kubernetes.io/master
+ operator: Exists
+ volumes:
+ - emptyDir: {}
+ name: data
+ - emptyDir: {}
+ name: tmp
---
# Source: traefik/charts/traefik/templates/ingressclass.yaml
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
annotations:
ingressclass.kubernetes.io/is-default-class: "true"
labels:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
- helm.sh/chart: traefik-38.0.2
+ helm.sh/chart: traefik-39.0.8
app.kubernetes.io/managed-by: Helm
name: traefik
spec:
controller: traefik.io/ingress-controller
---
# Source: traefik/templates/wildcard-genmachine.yaml
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: genmachine-wildcard
@@ -484,21 +485,21 @@
# Source: traefik/charts/traefik/templates/servicemonitor.yaml
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: traefik
namespace: default
labels:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
app.kubernetes.io/component: metrics
- helm.sh/chart: traefik-38.0.2
+ helm.sh/chart: traefik-39.0.8
app.kubernetes.io/managed-by: Helm
release: prometheus
spec:
jobLabel: traefik
endpoints:
- targetPort: metrics
path: /metrics
namespaceSelector:
matchNames:
- default
@@ -510,15 +511,15 @@
---
# Source: traefik/charts/traefik/templates/tlsstore.yaml
apiVersion: traefik.io/v1alpha1
kind: TLSStore
metadata:
name: default
namespace: default
labels:
app.kubernetes.io/name: traefik
app.kubernetes.io/instance: traefik-default
- helm.sh/chart: traefik-38.0.2
+ helm.sh/chart: traefik-39.0.8
app.kubernetes.io/managed-by: Helm
spec:
defaultCertificate:
secretName: genmachine-wildcard
|
cf74241 to
99d6583
Compare
3d5c9ab to
8d1ad3b
Compare
4ffaf79 to
0c7975f
Compare
06f1cf1 to
35d83b0
Compare
0aca455 to
6e89bce
Compare
870c58a to
3991f18
Compare
0652186 to
427cf9a
Compare
9d37f87 to
810c4b6
Compare
aa389f4 to
0776684
Compare
34cb29f to
63b7d0e
Compare
| datasource | package | from | to | | ---------- | ------- | ------ | ------ | | helm | traefik | 38.0.2 | 39.0.8 | Co-authored-by: renovate[bot] <renovate@whitesourcesoftware.com>
v39.0.0 introduced strict schema validation with two breaking changes: 1. ports.web.redirections → ports.web.http.redirections HTTP options now require explicit 'http' nesting level (PR #1603) 2. globalArguments removed → replaced by checkNewVersion/sendAnonymousUsage top-level values (or additionalArguments for arbitrary CLI flags) Since common-values.yaml is shared between beelink (v37) and genmachine (v39), breaking values are moved to cluster-specific files: - common: remove ports.web.redirections and globalArguments - genmachine (v39): add ports.web.http.redirections + checkNewVersion/sendAnonymousUsage - beelink (v37): keep old syntax ports.web.redirections + globalArguments (v37 has no strict schema) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…r global In v39 schema, these values are nested under 'global' not at root level. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
38.0.2→39.0.8Release Notes
traefik/traefik-helm-chart (traefik)
v39.0.8Compare Source
👌 Traefik version support
🚀 Features
📦 Others
v39.0.7Compare Source
🚀 Features
📦 Others
v39.0.6Compare Source
🚀 Features
📦 Others
v39.0.5Compare Source
🚀 Features
🐛 Bug fixes
websecurelistener can fail #1673 by @falzm📦 Others
v39.0.4Compare Source
Upgrades Notes
🚀 Features
🐛 Bug fixes
📦 Others
v39.0.3Compare Source
🚀 Features
🐛 Bug fixes
rbac.secretResourceNames#1683 by @mloiseleur📦 Others
v39.0.2Compare Source
🚀 Features
📦 Others
v39.0.1Compare Source
🚀 Features
🐛 Bug fixes
📦 Others
New Contributors
Full Changelog: traefik/traefik-helm-chart@v39.0.0...v39.0.1
v39.0.0Compare Source
Upgrade Notes
There are 3 breaking changes in this release:
httpnesting level with PR #1603.ℹ️ Schema validation has been enforced in this release. When it fails, it means that the parameter is not implemented.
💥 BREAKING CHANGES
httpoptions #1603 by @mloiseleur🚀 Features
📦 Others
Configuration
📅 Schedule: (in timezone Europe/Paris)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate.