Skip to content

mailu changelog

0.1.7

Released 2026-10-25.

Changes

Alert rules can be left out of monitoring

monitoring.enabled made the ServiceMonitors and the PrometheusRule together. A platform that evaluates alerts centrally scrapes the metrics of the project but keeps the rules in one place: a rule in the project then fires twice or nowhere.

The new value monitoring.alerts (default true) switches the PrometheusRule on and off. With monitoring.enabled=true and monitoring.alerts=false the chart makes the metrics Services, the ServiceMonitors and the NetworkPolicy for the scraper, and no rules. The default renders the same objects as 0.1.6.

imapsync pinned to 2.326

The imapsync image was latest with pullPolicy: Always, against the rule that a chart pins every image. It is now tag 2.326 with IfNotPresent. The image is the same build as latest on the day of this release. Only a release with imapsync.enabled=true changes.

0.1.6

Released 2026-10-13.

Changes

Write chart labels as literals (#7)

Every chart built its labels through a helper that took a dict and returned all five labels, so a reader had to open the helper to learn what an object is called. app, app.kubernetes.io/name and app.kubernetes.io/component are now literal lines on each object. One helper per chart, .commonLabels, emits what is the same on every object: part-of and version, or version alone in nextcloud, which draws several groups and writes part-of on the object.

The nextcloud topology table is gone as well: the console keys (runtime, vcs-uri, connects-to, custom-icon) are literal lines on the workloads.

A value stays an expression where it must follow a name that is one: the fullname in mkdocs, omniroute and mailu, the upstream name override in mailu, and the loop and helper arguments in nextcloud.

No selector, pod template or value changes. The rendered objects are the same as before.

The contributor rules still asked for one helper that emits all five labels. They now state what the charts do: three literal labels on each object, .commonLabels for part-of and version, console keys and sync-wave numbers as literals in the template.

ci/check_labels.py reads the rendered objects, not the helper, so it needs no change.

The templates of every chart changed, and a change to a chart raises its version. The rendered objects are the same, so this is a patch.

nextcloud keeps bundling mailu 0.1.5: the dependency is resolved from the published repository, and 0.1.6 renders the same objects.

0.1.5

Released 2026-10-11.

Changes

Label every chart object

Every object a chart renders from its own templates now carries app and the app.kubernetes.io labels name, component, part-of and version, so the console and label queries can tell which application and which component an object belongs to. Each chart gets one small helper that emits them.

Workloads and the database and cache resources also get a runtime icon, the upstream source address and, where a component depends on another, a connects-to arrow for the topology view.

The labels sit on the object's own metadata only. Pod templates and selectors are unchanged, so an upgrade restarts no pod. Three charts hash a rendered file into a pod annotation (n8n, odoo, vaultwarden): that hash is taken without the new labels and keeps its value.

Objects of the upstream subcharts are labelled where the upstream chart has a value that reaches object metadata only: the workload of bifrost, the objects of mailu except its Redis subchart, and the workload, volumes and imaginary Service of nextcloud.

All ten charts move up one patch version.

0.1.4

Released 2026-10-09.

Changes

Write external-dns annotations under both prefixes

external-dns v0.23 reads external-dns.kubernetes.io/ instead of external-dns.alpha.kubernetes.io/. The public Services carry the hostname and ttl annotations under both, so their records follow with either version.

0.1.3

Released 2026-10-08.

Changes

Let cert-manager make the DKIM key of the mail server

The platform publishes the DKIM record from the Secret that holds the key. The DNSEndpoint no longer asks for an MX record: the platform's DNS provider cannot write one. TXT values carry their quotes, the form in which the provider stores them.

0.1.2

Released 2026-10-08.

Changes

Add DNS records and address sharing to mailu and nextcloud

0.1.1

Released 2026-10-07.

Changes

Add nextcloud chart

Nextcloud on the upstream chart with a MariaDB custom resource and an OnlyOffice document server, as a tenant installs it: no SCC binding, the containers that need root ask for UID 0, OnlyOffice without the MKNOD capability, secrets generated once, own Ingress for both hostnames. Depends on the mailu chart, on by default.

Talk, the whiteboard, notify-push, the task worker, monitoring and backup of the private chart are not part of this first version.

Name GRN.CLOUD B.V. as chart provider

0.1.0

Released 2026-10-04.

Changes

Add mailu chart

Mailu as a tenant installs it: the upstream chart 2.6.3 with the components that need root asking for UID 0, a Route for the web interface, own mail Service with annotations from values, secrets generated once. The mail Service is cluster-internal by default; a public address is a value. ci/check.sh builds chart dependencies.