posit-dev / posit-dev/ptd

Upgrade Traefik from chart 24.0.0 (v2.10) to chart 37.1.2 (v3.5.3)

Open
#279 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
7
Forks
2
Avg merge
1d 15h
Merged PRs (30d)
3

Description

Summary

Upgrade the default Traefik ingress controller from Helm chart 24.0.0 (Traefik v2.10) to chart 37.1.2 (Traefik v3.5.3).

Why this is needed

Traefik v2.x is EOL. Chart 24.0.0 ships Traefik v2.10, which uses the traefik.containo.us CRD API group that was completely removed in Traefik v3. While Kubernetes 1.36 does not itself remove any API that v2.10 depends on, running an EOL ingress controller on K8s 1.36 is unsupported — no security patches or compatibility fixes will be issued for v2.x going forward.

This upgrade is a prerequisite for the planned Kubernetes 1.36 upgrade across all workload clusters.

Relevant links:

Backward compatibility

Chart 37.1.2 / Traefik v3.5.3 supports Kubernetes 1.22+. This means it can be deployed in place on clusters currently running K8s 1.31 through 1.35 — the Traefik upgrade can be performed independently of and prior to the Kubernetes 1.36 upgrade.

Breaking changes in the upgrade

This is a major version bump (v2 → v3) with required migration steps:

  1. CRD API group rename — All traefik.containo.us resources (IngressRoute, Middleware, TLSOption, etc.) must be re-applied under the new traefik.io API group before or as part of the upgrade.
  2. RBAC updates — ClusterRole/ClusterRoleBinding objects referencing traefik.containo.us must be updated.
  3. New CRD versionstraefik.io/v1alpha1 is replaced by traefik.io/v1 in v3.

The migration must be coordinated carefully to avoid ingress downtime. See the migration guide above for the full procedure.

Acceptance criteria

  • Default Traefik chart version updated to 37.1.2 in workload.go (or equivalent config)
  • CRD migration documented and tested
  • Verified working on a staging cluster before rolling to production
  • Existing IngressRoute/Middleware resources confirmed functional after upgrade

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in workload.go, or the equivalent configuration entry point, to locate the default Traefik chart version and related CRD or RBAC definitions. Read the linked Traefik v2-to-v3 migration guidance, then verify the CRD migration and existing IngressRoute/Middleware resources on a staging cluster. Done means chart 37.1.2 is configured, migration behavior is tested, and staging remains functional before production rollout.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, helm, kubernetes
Domain
devops, infrastructure
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.