cozystack/packages
Aleksei Sviridkin b719cf67e3
feat(tenant,harbor,bucket): wire per-tenant apps through the tenant Gateway
Tenants can now opt their own apps into Gateway API without touching
the publishing tenant. The mechanism mirrors the existing
_namespace.ingress contract exactly.

packages/apps/tenant/templates/namespace.yaml:

- Compute a new $gateway value: if the tenant sets .Values.gateway
  it becomes the tenant's own namespace, otherwise it inherits from
  the parent namespace (empty means no Gateway anywhere in the chain).
- Ship $gateway out through the cozystack-values Secret under
  _namespace.gateway and through a namespace label
  namespace.cozystack.io/gateway.

packages/apps/harbor and packages/system/bucket:

- Existing Ingress wrapped in '{{ if not $gateway }}' so it only
  renders when no Gateway is attached anywhere up the tenant chain.
- New templates/httproute.yaml render when $gateway is non-empty:
  apiVersion gateway.networking.k8s.io/v1 HTTPRoute, parentRef to
  the 'cozystack' Gateway in whichever namespace $gateway points
  at, hostname <release>.<host> (harbor) or <bucketName>.<host>
  (bucket), backendRef to the existing Service on its current port.

Per-tenant resolution: a tenant with .Values.gateway=true gets its
own Gateway in its own namespace, and harbor/bucket deployed inside
that tenant attach to that namespace's Gateway — no cross-namespace
references, no coupling to the publishing tenant.

Default remains ingress-nginx: tenants that do not opt in keep
rendering Ingress verbatim.

Assisted-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>
2026-04-24 17:03:58 +03:00
..
apps feat(tenant,harbor,bucket): wire per-tenant apps through the tenant Gateway 2026-04-24 17:03:58 +03:00
core docs(gateway): document security model, Let's Encrypt rate limits, known gaps 2026-04-24 17:03:58 +03:00
extra feat(gateway): TLSRoute for TLS-passthrough services (cozystack-api, vm-exportproxy, cdi-uploadproxy) 2026-04-24 17:03:58 +03:00
library [cozy-lib] Add a hexToInt helper 2026-03-19 07:29:50 +03:00
system feat(tenant,harbor,bucket): wire per-tenant apps through the tenant Gateway 2026-04-24 17:03:58 +03:00
tests/cozy-lib-tests refactor: replace Helm lookup with valuesFrom mechanism 2026-01-05 16:10:55 +01:00