Releases: element-hq/ess-helm
26.3.2
ESS Community Helm Chart 26.3.2 (2026-04-01)
Added
-
Allow configuration of
storage.storageClassNameandstorage.resourcePolicyas defaults across all constructedPersistentVolumeClaims.The individual values can still be overridden on a per-
PersistentVolumeClaimbasis as before. (#1203)
Changed
-
Upgrade Matrix RTC SFU to 1.10.0.
Resolves CVE-2026-33186.
Full Changelogs:
(#1191)
-
Configure Synapse to use the system CA trust store for Postgres connections if
sslMode: verify-full. (#1202) -
Upgrade Matrix RTC LiveKit JWT Service to v0.4.2.
Resolves CVE-2026-26014 and CVE-2026-33186.
Full Changelogs:
(#1205)
-
Switch back to ESS Synapse variant.
Regression in 26.3.1. (#1210)
Internal
- CI: Publish ESS tests as a python package for use in external projects and developers environments. (#1185, #1192, #1193, #1196, #1197, #1199)
- CI: Use a python script to generate logs. (#1192)
- CI: Cache
pyhelmpulled chart relatively to the runner directory, not to the script install path. (#1198) - Developers: Move
.cato~/.config/ess-helm-ca. (#1198, #1201) - CI: Log the content of the cache when
pyhelmcache fails to hit. (#1200)
26.3.1
ESS Community Helm Chart 26.3.1 (2026-03-25)
Changed
-
Synapse: Change
database.args.databaseand replace withdatabase.args.dbname. (#1151) -
Upgrade Element Admin to v0.1.11.
Highlights:
- Rename
ModerationtoSupervision - Use upstream
nginxconfiguration
Full Changelogs:
(#1170)
- Rename
-
Raise the default size of Synapse's connection pool.
Goes from 3-5 (min-max) to 5-10.
These settings can be overridden with additional Synapse configuration. (#1171) -
Upgrade Element Web to v1.12.13.
Highlights:
- Upgrade Element Call for new picture-in-picture designs
- Fix "key storage out of sync" appearing when key storage is actually fine
Full Changelogs:
(#1173)
-
Allow configuration of the resources for Synapse's check config
Job.Rather than using the resources for the Synapse
mainprocess. (#1174) -
Upgrade Synapse to v1.150.0.
Highlights:
- When Matrix Authentication Service (MAS) integration is enabled, allow MAS to set the user locked status in Synapse
- Fix a bug introduced in v1.26.0 that caused deactivated, erased users to not be removed from the user directory
- Allow caching of the
/versionsand/auth_metadatapublic endpoints
Full Changelogs:
(#1175)
-
Upgrade Matrix Authentication Service to v1.14.0.
Highlights:
- Synchronise the user
lockedflag to Synapse - Respect HTTP Proxy environment variables in outgoing HTTP requests
Full Changelogs:
(#1176)
- Synchronise the user
Fixed
- Fix extra quotes being added around the Redis password in the Synapse configuration template. (#1164)
- Element Web: Fix
Cache-Controlheader on/i18n. (#1167)
Documentation
- Migration: Adjust Migrating documentation to use the new
ess-migration-toolcommand. (#1147) - Improve developer documentation. (#1172)
Internal
26.3.0
ESS Community Helm Chart 26.3.0 (2026-03-18)
Removed / Breaking Changes
-
Matrix RTC: Change the default ports to move them to the proper default Kubernetes static range.
Kubernetes default static range contains ports 30000-30085. The new Matrix RTC exposed services have been moved to :
- Matrix RTC TCP : 30001
- Matrix RTC UDP : 30002
- Matrix RTC Turn TLS: 30003
- Matrix RTC Turn: 30004
If you want to keep using the previously set static ports, you can do so by adding the following to your values files :
matrixRTC: sfu: exposedServices: rtcTcp: port: 30881 rtcMuxedUdp: port: 30882 turnTLS: port: 31443 turn: port: 31748
Added
- Add example config for Caddy reverse proxy. (#1087)
- Added support for external Redis configuration (
synapse.redis,hookshot.redis) allowing use of managed Redis services (AWS Elasticache, Azure Cache for Redis, etc.) instead of the internal Redis deployment. Each Redis-using component uses the chart Redis unless it has been independently configured with an external Redis. When external Redis is configured for all components, the internal Redis Deployment, Service, ConfigMap, and ServiceAccount are automatically skipped. (#1143)
Changed
-
Remove unstable MSC2965 details from Well Known Files.
Native OIDC (Matrix Authentication Service) support is advertised through
/auth_metadataavailability.The classic Element applications need to be upgraded to the following versions:
(#898)
-
Use double quotes string-scalar in
Chart.yamlfor consistency with CI values files. (#1081, #1084) -
Add optional file pattern argument to
scripts/ct-lint.shto allow selective linting of files, similar toscripts/assemble_ci_values_files_from_fragments.sh. (#1103) -
Matrix Authentication Service: Remove hardcoded
kidfrom secret keys in the config file, and let Matrix Authentication Service automatically derive them.Matrix Authentication Service includes the
kidit used when signing JWTs, likeid_tokens, which helps consumers verify using the right key. The Matrix specifications doesn't make use ofid_tokens, so there is no impact changing thekidand letting it derive one automatically at runtime. (#1112) -
Upgrade Element Web to v1.12.12.
Highlights:
- Add stable support for MSC4380 invite blocking
- Hide the names of banned users behind a spoiler tag
Full Changelogs:
(#1120)
-
Upgrade Matrix Authentication Service to v1.13.0.
Highlights:
- Support MSC4198 login_hint in account management URI
Full Changelogs:
(#1121)
-
Upgrade Synapse to v1.149.1.
Highlights:
- Add stable support for MSC4380 invite blocking
- Add experimental support for MSC4388: Secure out-of-band channel for sign in with QR
- Fix
/syncmissing membership event instate_after(experimental MSC4222 implementation) in some scenarios
Full Changelogs:
(#1122)
-
Upgrade Matrix RTC SFU to 1.9.12.
Full Changelogs:
(#1127)
-
Upgrade MatrixRTC authoriser to v0.4.1 for MSC4195 compliance.
Highlights:
- Introduces the new MSC4195-compliant request flow
Full Changelogs:
(#1128)
Fixed
-
Matrix RTC: Fix an issue where LiveKit would crash if setting
exposedServices.turnTLS.portto443when not usingHostPortportType. (#1079) -
Fix HAProxy memory leak in dual-stack clusters.
In dual-stack clusters the IP of the backend server for each Synapse
Pod
flaps between the IPv4 & IPv6 address every second or so. This causes a memory leak.Configure HAProxy to only use the IPv4 or IPv6 address based on the value of
networking.ipFamily. In the case ofdual-stack(the default value), the IPv4
address is used. As such IPv6 only clusters must now setnetworking.ipFamily: ipv6. (#1124) -
Fix Element Admin not starting in an IPv6 only cluster. (#1125)
-
Fix Hookshot not starting in an IPv6 only cluster. (#1126)
Documentation
- Fix the link to the "Quick setup" section in the README. (#1136)
Internal
- Migration script : Add supports automatically discovering extra files referenced by Synapse configuration and outputs them to Kubernetes ConfigMaps manifests. (#1067, #1085, #1117)
- Add support for Synapse workers discovery in migration script. (#1080, #1106)
- Add support for Matrix Authentication Service to migration scripts. (#1083)
- CI: Verify nested values behaviour in migration scripts. (#1077)
- CI: Log the last exception happening when waiting for an ingress to become ready. (#1078)
- CI: Use a composite action to share the ASDF cache run steps. (#1082)
- CI: Cache asdf in manifests tests. (#1082)
- Use helm standard function to transform string to env var name. (#1094)
- CI: Fix
KeyErrorbeing raised when logging the reason a volume could not be found in configuration consistency tests. (#1095) - CI: exempt dependabot from copyright-dates check. (#1096)
- CI: skip trying to login to DockerHub on forks. (#1096)
- Scripts: Do not escape strings automatically in our Jinja files. (#1097)
- Rewrite postgres databases handling to enhance the script readability. (#1101)
- Improve error messages in
chart_from_ci_cacheto include specific details about missing charts and cache locations. (#1102) - CI: Run zizmor security scan against ess-helm github action workflows. (#1107, #1114, #1115, #1116, #1119, #1140)
- CI: Document manifests tests with docstring and better assertion messages. (#1108)
- CI: Matrix RTC pytest now uses DynamicNodePort to avoid port conflicts. (#1118)
- CI: Replace
poetrywithuvfor python package manager. (#1129) - CI: Fix an issue with
matrix-toolsimage sometimes not being pushed until we retry the job. (#1142)
26.2.3
ESS Community Helm Chart 26.2.3 (2026-02-26)
Added
-
Add a script to migrate existing Synapse configuration to ESS Community values.
- The script will generate a valid ESS Values file based on an existing Synapse configuration.
- The script supports automatically discovering secrets and outputs them to Kubernetes Secrets manifests.
-
Add
tlsTerminationOnPodproperty to matrix-rtc TURN TLS service for external TLS termination support. (#1053)
Changed
-
Upgrade Matrix Authentication Service to v1.12.0.
Highlights:
- Allow
+in usernames, as per the Matrix spec - Fix compat token refresh giving back a consumed token
- Add a default
Message-IDwhen sending emails
Full Changelogs:
(#1066)
- Allow
-
Upgrade Element Web to v1.12.11.
Highlights:
- Update the room list visuals in order to have better contrast
- Remove server acl status/summaries from timeline
Full Changelogs:
(#1068)
-
Upgrade Synapse to v1.148.0.
Highlights:
- Support sending and receiving MSC4354 Sticky Event metadata
Full Changelogs:
(#1069)
Fixed
- Ensure all
DeploymentsandStatefulSetshaverestartPolicy: Alwaysin theirspec.template.specso that theirPodsare always correctly restarted. (#1055) - Ensure all
JobshaverestartPolicy: Neverin theirspec.template.specso that failedPodsare kept around. (#1055) - Don't wait for the chart Synapse to be available to start Hookshot when an external Synapse is used. (#1062)
Documentation
- Document how to troubleshoot Matrix RTC SFU connectivity. (#1051)
Internal
- CI: Cache Helm OCI dependencies for the current week. (#1057, #1070)
- CI: test that all references to
Servicesin the chart exist. (#1062) - Make
scripts/assemble_ci_values_files_from_fragments.shuse standard characters classes and not GNU extensions for improved portability. (#1063) - Allow passing of additional options when creating the
k3dcluster. (#1064) - CI: Export k3d debug logs. (#1070)
- CI: Do not setup cert-manager in integration tests as its only used for local testing. (#1070)
- CI: Retry setting up prometheus operator CRDs to kill flakes. (#1072)
- CI: Retry Turn TLS connectivity in case of unexpected EOF Errors. (#1073, #1074)
- CI: Cache dependencies installed with asdf. (#1075)
26.2.2
ESS Community Helm Chart 26.2.2 (2026-02-18)
Changed
-
Upgrade Matrix Authentication Service to v1.11.0.
Highlights:
- Make the compat login SSO redirect query parameters ignore invalid values
- Clean up unsupported threepids from already deactivated users
- Cleanup finished OAuth 2.0 sessions
- Cleanup finished user/browser sessions
- Clear out last active IP on each session after 30 days
Full Changelogs:
(#1035)
-
Update
matrix-toolsbase image to Debian 13.For compatibility with syn2mas v1.11 (#1042)
Documentation
- Update README diagram to represent Hookshot. (#1039)
26.2.1
ESS Community Helm Chart 26.2.1 (2026-02-13)
Changed
-
Upgrade Synapse to v1.147.1.
Highlights:
- Don't retry joining partial state rooms all at once on startup.
- Block federation requests and events authenticated using a known insecure signing key. See
CVE-2026-24044/ELEMENTSEC-2025-1670.
Full Changelogs:
(#1031)
-
Upgrade Element Web to v1.12.10.
Highlights:
- Allow Element Call widgets to receive sticky events
- Add option for sorting by rooms with unread messages in the room list view
Full Changelogs:
(#1034)
Documentation
- Document how to manually fix
CVE-2026-24044/ELEMENTSEC-2025-1670. (#1037)
Internal
26.2.0
ESS Community Helm Chart 26.2.0 (2026-02-05)
Changed
-
Set default permissions on Hookshot so that local users only have permissions to manage integrations and connections. (#1010, #1014)
Permissions should be adjusted to give specific users the ability to administer integrations, e.g.
hookshot: additional: permissions.yaml: config: | permissions: - actor: {{ $.Values.serverName | quote }} services: - service: "*" level: manageConnections - action: "@an-admin-user:{{ $.Values.serverName }}" services: - service: "*" level: admin
-
Update the test cluster values so that Hookshot can make requests to cluster-internal IP addresses. (#1010, #1018, #1023)
Fixed
- Fix Hookshot widgets not being available when using the Synapse
Ingress/ not having a dedicated HookshotIngress. (#1010)
Internal
- CI: Export logs of all k3d namespaces. (#1015)
- CI: Remove code duplication that existed between
pytestintegration test suite andsetup_test_cluster.shscript. (#1016, #1017) - CI: Use OCI repository to install
cert-managerandprometheus-operator-crds. (#1020) - CI: Support
--rollback-on-failurehelm 4 parameter. (#1022)
26.1.3
ESS Community Helm Chart 26.1.3 (2026-01-28)
Changed
-
Upgrade Element Web to v1.12.9.
Highlights:
- Allow local log downloads instead of a bug report endpoint URL.
- Support for stable MSC4191 account management action parameter
- Support for stable m.oauth UIA stage from MSC4312
Full Changelogs:
(#981)
-
Upgrade Matrix Authentication Service to v1.10.0.
Highlights:
- Support for stable MSC3824 (OAuth 2.0 API aware clients) values
- Support for stable MSC4191 account management actions
- Cleanup various old, soft-deleted entities from the database.
Full Changelogs:
(#990)
-
Upgrade Synapse to v1.146.0.
Highlights:
- Stabilise support for MSC4312's
m.oauthUser-Interactive Auth stage for resetting cross-signing identity with the OAuth 2.0 API. - Fix joining a restricted v12 room locally when no local room creator is present but local users with sufficient power levels are.
- Fixed parallel calls to
/_matrix/media/v1/createbeing rate-limited for appservices even ifrate_limited: falsewas set in the registration.
Full Changelogs:
(#992)
- Stabilise support for MSC4312's
26.1.2
ESS Community Helm Chart 26.1.2 (2026-01-27)
Added
-
Add support for configuring
internalTrafficPolicyfor services behind ingresses. (#999) -
Add support for configuring
externalTrafficPolicyforNodePortandLoadBalancerservices behind ingresses. (#1000) -
Add support for configuring
externalTrafficPolicytoexposedServices. (#1001) -
Add support for configuring
internalTrafficPolicytoexposedServices. (#1001) -
Add support to customize
nodePortof exposed services.nodePortproperty ofexposedServices.*is now a string template taking two parameters:
-context: The exposed service values context*.exposedServices.<svc>root: The helm $ root values context
On Matrix RTC values, the
nodePorttemplate defaults to{{ .context.port }}so that thenodePort
is the same asport. Setting the template to an empty string will skip settingnodePort
on the service.(#1002)
-
Add support for configuring
externalIPsof exposed services. (#1006) -
Add support for configuring annotations of Ingress services. (#1007)
-
Add support for configuring
externalIPsof Ingress services. (#1007)
Changed
-
Hookshot: Disable encryption by default as it is still experimental. (#995)
-
Hookshot: Use appservice fully qualified domain name in the registration file. (#996)
-
Hookshot: Publish service unready address. (#996)
-
Hookshot: Enable adding widgets in rooms where it is invited by default. (#997)
-
Change default
externalTrafficPolicyfor the SFU exposed services fromLocalto Kubernetes defaultsCluster. (#1001) -
Update Hookshot to 7.3.1.
Highlights :
- Add generic webhook transformation JS snippet which can handle GitLab Pipeline payloads under
contrib/jsTransformationFunctions/gitlab-pipeline.js - Add generic webhook transformation JS snippet to format text as code block under
contrib/jsTransformationFunctions/format-as-code.js - Fix the
!hookshot helpcommand not working
Full Changelogs:
(#1008)
- Add generic webhook transformation JS snippet which can handle GitLab Pipeline payloads under
Fixed
- Matrix RTC: Fix a templating issue when turn was enabled with a cert-manager issuer to generate the tls secret. (#989)
- Hookshot: Fix a templating issue when Matrix Authentication Service is enabled if Hookshot was enabled without an Ingress. (#993)
Documentation
- Document how to setup and configure Hookshot. (#988)
Internal
26.1.1
ESS Community Helm Chart 26.1.1 (2026-01-22)
Removed / Breaking Changes
-
Move Synapse's Redis to a top-level shared component that can be used by multiple components of the chart.
There is no impact when using the default values, but if you have customised values under the
synapse.rediskey, you will need to update them to be under the new top-levelredisredis. (#972)
Added
-
Add
extraInitContainerssupport to all workloads. (#971) -
Matrix RTC: Add support for configuring Turn TLS to help RTC traffic go through corporate Wifi networks and firewalls. (#976)
-
Add support for generating appservice registration files with
matrix-tools. (#979) -
Add support for Hookshot installation in ESS Community.
Hookshot is a Matrix Bot for connecting to external services.
It is not enabled by default, but can be enabled by settinghookshot.enabled: true. (#979, #986) -
Matrix RTC: Add support for configuring UDP Turn. (#982)
Changed
- Support generator arguments in
matrix-toolssecret generation. (#973) - Support configuring the RSA key size generated by
matrix-tools. (#973) - Support exporting RSA key as DER and PEM
matrix-tools. (#973) matrixRTC.sfu.exposedServices.*.portTypeare now an enum, and only acceptsNodePort,HostPortandLoadBalancer. (#976)- Few corrections to the README. (#980)
- Specify service type
ClusterIPfor internal services of Matrix RTC and Synapse. (#985)
Documentation
- Make documentation clearer that some configuration options can't be changed by the additional configuration mechanism. (#975)