l3montree-dev / l3montree-dev/devguard
`PDF_GENERATION_API` is hardcoded to a l3montree cloud endpoint; `INSTANCE_DOMAIN` falls back to the in-cluster URL when the API ingress is disabled
@seb-kw is already working on this.
Since Sep 17, 2026.
- Dominant language
- Go
- Stars
- 161
- Forks
- 43
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 37
Description
Summary
Two env vars on the API deployment can't be set through values, which matters for self-hosted installs that (a) must not call external services and (b) expose the API through something other than an Ingress (Gateway API HTTPRoute, OpenShift Route, a mesh, …).
Chart version: 1.13.2 (main @ 0f0c3e7).
1. PDF_GENERATION_API hardcoded
- name: PDF_GENERATION_API
value: https://dwt-api.dev-l3montree.cloud/pdf
Every self-hosted instance sends report data to a l3montree-operated endpoint by default, and there is no value to change or disable it. The application itself treats it as configuration (.env.example has PDF_GENERATION_API=), so the chart should too.
The only workaround today is api.additionalEnvs, which appends a second PDF_GENERATION_API entry after the hardcoded one and relies on Kubernetes keeping the last duplicate it works, but the API server warns about duplicate env names and it's not something operators should have to know.
Proposal:
api:
pdfGenerationApi: "" # empty = feature disabled / no external call
2. INSTANCE_DOMAIN when api.ingress.enabled=false
- name: INSTANCE_DOMAIN
{{- if .Values.api.ingress.enabled }}
value: {{ printf "%s://%s" $apiProtocol $apiHost }}
{{- else }}
value: http://devguard-api-service.{{ .Release.Namespace }}.svc.cluster.local:8080
{{- end }}
api.ingress.host / api.ingress.tls must still be set even with the ingress disabled (the devguard.apiHost helper fails otherwise), but they are then ignored for INSTANCE_DOMAIN. When the API is published by an HTTPRoute instead of an Ingress, the instance advertises an unreachable in-cluster URL.
Proposal: derive INSTANCE_DOMAIN from api.ingress.host/tls whenever a host is set, regardless of api.ingress.enabled (mirroring how FRONTEND_URL is already derived from web.ingress.host unconditionally), or add an explicit api.publicUrl value.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.