Skip to content

External release in a tenant without a host: postgres, qdrant, nats and mariadb fail the render, redis, rabbitmq, opensearch and mongodb skip the SAN #4047

Open

Description

Two charts break an external: true release in a tenant whose _namespace.host is empty, each in its own way.

qdrant, packages/apps/qdrant/templates/certmanager.yaml:81, appends the external SAN with no guard:

{{- if .Values.external }}
- {{ .Release.Name }}.{{ .Values._namespace.host }}
{{- end }}

With an empty host that renders <release>. as a dnsName, which cert-manager rejects, so the Certificate never issues and the TLS instance never comes up.

nats, packages/apps/nats/templates/certmanager.yaml:72, uses required "external is true but _namespace.host is not set", which fails the whole release at render time instead. Loud rather than silent, but it still means a hostless tenant cannot run an external nats.

opensearch on #2682 takes the third path: the external SAN is added only when the host is non-empty, so the release renders and serves TLS on its in-cluster names, and only the external hostname is missing. Aligning qdrant and nats on that behaviour keeps external access working where the tenant has a host and degrades cleanly where it has none.

Activity

  1. added
    kind/bugCategorizes issue or PR as related to a bug
    area/databaseIssues or PRs related to managed databases (postgres, mariadb, redis, etcd, kafka, clickhouse)
    area/tenantIssues or PRs related to the tenant chart and multi-tenancy
    on Sep 2, 2026
  2. added
    triage/acceptedIndicates an issue is ready to be actively worked on
    priority/backlogGeneral backlog priority. Lower than priority/important-longterm
    and removed
    triage/needs-triageIndicates an issue needs triage by a maintainer
    on Sep 23, 2026
  3. lexfrei commented on Oct 6, 2026

    @lexfrei
    ContributorAuthor

    The split is wider now than when I filed this. On bcda5c8, an external release with TLS in a tenant without a host goes one of two ways.

    The render fails in four charts:

    • postgres, packages/apps/postgres/templates/db.yaml:74, through cozy-lib.ns-host-required
    • qdrant, packages/apps/qdrant/templates/certmanager.yaml:81, now also through cozy-lib.ns-host-required, so it fails loudly instead of rendering <release>.
    • nats, packages/apps/nats/templates/certmanager.yaml:72, through required
    • mariadb, packages/apps/mariadb/templates/certmanager.yaml:154, through required

    Four others skip the external name and keep TLS on the in-cluster names: redis (packages/apps/redis/templates/certmanager.yaml:111-113), rabbitmq (certmanager.yaml:86-90), opensearch (certmanager.yaml:265) and mongodb (mongodb.yaml:183-184, for the split horizons).

    The comment in the rabbitmq chart gives the reason to skip. The tenant host comes from the optional root host, so requiring it turns an upgrade of an existing external release into a render error. I still think every engine should skip. The postgres and redis case came up again in the review of #4627: #4627 (review)

  4. changed the title [-]qdrant, nats: an external release in a tenant without a host fails at the certificate[/-] [+]External release in a tenant without a host: postgres, qdrant, nats and mariadb fail the render, redis, rabbitmq, opensearch and mongodb skip the SAN[/+] on Oct 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/databaseIssues or PRs related to managed databases (postgres, mariadb, redis, etcd, kafka, clickhouse)area/tenantIssues or PRs related to the tenant chart and multi-tenancykind/bugCategorizes issue or PR as related to a bugpriority/backlogGeneral backlog priority. Lower than priority/important-longtermtriage/acceptedIndicates an issue is ready to be actively worked on

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions