Skip to content

feat(helm): add iron-proxy Helm chart#185

Open
mslipper wants to merge 4 commits into
mainfrom
feat/helm-chart
Open

feat(helm): add iron-proxy Helm chart#185
mslipper wants to merge 4 commits into
mainfrom
feat/helm-chart

Conversation

@mslipper

Copy link
Copy Markdown
Contributor

Adds a Helm chart under charts/iron-proxy so iron-proxy can be installed with helm install. It supports both standalone (config rendered into a ConfigMap) and managed (control-plane token) run modes, all four CA strategies (generate/existingSecret/inline/none), per-listener Service ports, and flexible secret-backend credential injection via env/envFrom/inline secrets. Defaults to a zero-config working install (ca.mode: generate); README documents switching to a stable CA for production.

Verified with helm lint and helm template across all modes.

mslipper added 3 commits June 10, 2026 12:37
Adds a Helm chart under charts/iron-proxy supporting standalone and managed run modes, all CA strategies (generate/existingSecret/inline/none), configurable listeners, and secret-backend credential injection.
Removes the per-pod CA generation mode, which rotated the CA on every restart and broke client trust. CA must come from an existing Secret (default) or inline PEM. Default install now fails fast telling the user to supply ca.existingSecret.
…d-mode env

Replaces the duplicated service.ports block with a single listeners map. Each enabled listener now drives the Service port, the container port, and the proxy's bind address (merged into the config in standalone mode, emitted as IRON_*_LISTEN env vars in managed mode), so they can never drift.

Managed mode gains a structured managed block (proxyIP, tlsMode, logLevel, upstreamResolver) that renders the IRON_* env vars the proxy needs when there is no config file, plus auto-derived IRON_TLS_CA_CERT/KEY from the CA mount.
The core listen addresses (dns/http/https/tunnel/metrics) are now supplied via IRON_*_LISTEN env vars in standalone mode too, not merged into the config file, giving a single source of truth across both run modes. Setting listeners.dns.enabled=false emits IRON_DNS_ENABLED=false to disable the DNS server (requires the binary's DNS-toggle support).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant