Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
Each revision is versioned by the date of the revision.
2026-10-12¶
Fixed Traefik retaining a stale CA trust pool when certificates from an existing
receive-ca-certrelation were restored during Pebble readiness.Renamed the misspelled
csr-subject-atttributesconfig option tocsr-subject-attributes.
2026-10-07¶
Added a scheduled
close_stale.yamlGitHub Actions workflow to automatically mark inactive issues and pull requests as stale and close them after a grace period.
2026-10-06¶
Fixed certificate signing requests being wiped from
certificatesinterface relation data when a hook (e.g.config-changed) runs before the traefik Pebble service reports ready, such as right after a charm upgrade.
2026-10-05¶
Switched the
loggingintegration fromLokiPushApiConsumertoLogForwarder, so theloki_push_apirelation now forwards the workload’s logs to related Loki endpoints using Pebble log targets instead of only reading the interface.Removed the write of the workload’s logs to
/var/log/traefik.log. The service command used toteethe output to that file as well as stdout, butteewas called without-a, so the file was truncated on every restart instead of growing without bound. Logs remain available throughjuju exec --unit traefik/0 -- pebble logs traefikandkubectl logs.Fixed CI breakage from dev/docs tooling version bumps: resolved new
pyright1.1.414 findings in theingress,ingress_per_unit, andingressv2 charm libraries, silencedsphinx_llmwarnings for unsupportedmeta/mermaidnodes, and reworded two docs pages to clearvalespell-check false positives.
2026-10-01¶
Set a blocked status that explains how to run
juju trustwhen the charm is deployed without--trust, instead of going into error state.Fixed deferred ingress events repeatedly failing hooks when relation data changed before replay. Ingress relations are now processed once through the existing reconciliation path, which cleans up invalid configuration and reports status without trapping the event in a replay loop.
2026-09-28¶
Fixed invalid
routing_modevalues putting the unit into error instead of blocked status.
2026-09-08¶
Replaced some external charms in integration tests with an any-charm as ingress requirer.
2026-09-02¶
Added
csr-subject-atttributesconfig to include configurable CSR subject fields such asC,ST,L,O,OU,CN, andemailAddressin certificate requests.
2026-08-26¶
Added
get-loadbalancer-ipJuju action to expose the external LoadBalancer address.
2026-08-25¶
Fixed several documentation issues.
Fixed typing issue in
TraefikRouteRequirer.__init__:relationparameter is nowOptional[Relation]with a default ofNone.Stabilized the
test_charm_trace_collectionunit test by isolating it from the shared charm tracing buffer file.Updated the TLS integration test to verify HTTPS with the self-signed provider’s CA certificate and stronger post-integration waits.
2026-08-19¶
Updated Sphinx Stack from 1.4.1 to 2.0 with the following changes:
Migrated from
.sphinx/to_dev/directory structureMigrated virtual environment from
.sphinx/venvto.venvAdded
sphinx-rerediraffeextension for improved redirectsAdded
sphinx-llmextension for LLM documentation supportUpdated
canonical-sphinxto 0.6.0Fixed broken Rockcraft documentation link
Updated the documentation home page to the mature home page pattern, improved the how-to index organization, and reclassified the local-CA TLS page as a how-to guide.
2026-08-17¶
Fixed charm incorrectly reporting active status when the LoadBalancer Service has no external IP, even with
external_hostnameconfigured. The charm now reports waiting status until the LB obtains an address.
2026-08-14¶
Preserved the TLS private key when the
certificatesrelation is removed so re-adding the relation reuses the existing key instead of requesting a new certificate.
2026-08-12¶
Migrated repository CI workflows from observability-owned reusable workflows to operator-workflows, and removed the unused Tiobe scan workflow.
2026-07-22¶
Updated the Grafana dashboard to the official Traefik Kubernetes dashboard using Traefik v2 metric names (e.g.
traefik_service_requests_total).Added a basic deployment tutorial.
2026-07-10¶
Changed the unit status to active (from blocked) while a certificate is pending, keeping the “Certificate not available yet” message.
2026-07-08¶
Added migration logic to handle TLS private key and CSR migration.
2026-07-01¶
Added a
baseinput to the Terraform module to set the OS base the charm is deployed on.
2026-06-24¶
Fixed Traefik entrypoint
readTimeoutdefaults for HTTP and TCP traffic entrypoints so large uploads are not cut off after 60 seconds on Traefik v2.11.2+.Added integration tests for Traefik charm upgrade.
2026-06-19¶
Removed “How to force HTTPS redirect” documentation as it is stale code.
2026-06-18¶
Migrated the RTD documentation URL under the Canonical domain.
2026-06-08¶
Added an
exposeinput to the Terraform module to make Traefik publicly available over the network.
2026-06-05¶
Added support for
ubuntu@26.04on the charm.
2026-06-04¶
Updated Terraform module Juju provider version constraint to support Juju 4.
2026-06-03¶
Added the charm architecture documentation page.
2026-06-01¶
Updated ingress lib to publish new attribute
is_port_openedon the requirer’s side that represents whether the port requested is open or not.
2026-06-01¶
Update the charm to use 2.11-26.04_edge tag of traefik image.
2026-05-28¶
Push all dynamic configurations together in the end rather than individual pushes.
Reduced unnecessary LoadBalancer reconciliations by removing redundant
_reconcile_lb()calls from CA certificate and configuration paths, and removed per-relation maintenance status churn during ingress processing.
2026-05-22¶
Fixed
delete_dynamic_configsanddelete_dynamic_configto guard against missing directory/file, preventingExecErrorcrash on first container start or after pod churn.
2026-05-19¶
Added the
resourcesvariable to the Terraform charm module so users can pin images for Traefik.
2026-05-07¶
Fixed
_on_removeto only delete the LoadBalancer resource when the application is fully removed (0 planned units), preventing accidental LB deletion during scale-down.
2026-04-20¶
Replaced
@propertywith@functools.cached_propertyon frequently accessed charm attributes.
2025-05-07¶
Fixed reading the CA certificates from the
certificate-transferrelation.
2026-05-05¶
Ensure hosts ordering in the dynamic configuration files.
2026-04-19¶
Removed redundant
relation-createdandrelation-joinedevent observers from the ingress v1 and v2 libraries; ingress processing now triggers only onrelation-changed.
2026-03-30¶
Added support for release notes.
2025-03-17¶
Changed certificate mode from
UNITtoAPPmode.
2026-03-13¶
Add support for UDP entrypoints in the
traefik-routerelation.
2026-03-16¶
Add security documentation.
2025-03-12¶
Updated charm code to trigger certificate refresh conditionally rather than through refresh hooks.
2025-02-26¶
Add some more logs and unit tests on the
proxied_endpointsmethod.
2026-01-29¶
Removed leader requirement on
TraefikRouteRequirerto update the stored state.
2026-01-27¶
Cleaned up the repository to remove stale comments, align
tox.iniand removerequirements.txt.
2026-01-19¶
Add how to upgrade documentation.
2026-01-08¶
Migrated documentation to GitHub and set up RTD project.
Added workflow to check for CLA compliance.
2025-11-28¶
Changed¶
Fixed Traefik accessing Pebble before container is ready.