Skip to content

fix(helm): default web.enabled=true; refocus getting-started on Helm deploy#521

Merged
mattrobinsonsre merged 1 commit into
mainfrom
docs/getting-started-deploy-focus
Jun 18, 2026
Merged

fix(helm): default web.enabled=true; refocus getting-started on Helm deploy#521
mattrobinsonsre merged 1 commit into
mainfrom
docs/getting-started-deploy-focus

Conversation

@mattrobinsonsre

Copy link
Copy Markdown
Owner

Why

Getting Started read like a local-dev walkthrough (Tilt, mkcert, make dev) when the actual first-run story is deploy the Helm chart onto a Kubernetes cluster (or a single-node k3s VM). It gave the wrong impression of what Terrapod is and how you run it.

While verifying the documented install command against the chart, I hit a real bug: the chart defaults web.enabled: false while api and listener both default true. Since the web frontend is the BFF — the single ingress entry point that proxies all traffic to the API — any install with ingress.enabled=true failed to template:

Error: Ingress is enabled but web.enabled is false. The Ingress routes to the web frontend...

That includes the "Basic Install" example already in deployment.md. A stock install was never going to render a working stack.

Changes

Fix

  • web.enabled now defaults to true (consistent with api/listener; documents the BFF rationale inline). A stock helm install with an ingress now renders a complete, working stack.
  • Corrected the web.enabled default row in deployment.md.

Docs

  • Rewrote getting-started.md around deploying the Helm chart: prerequisites (k8s 1.27+, external Postgres/Redis), k3s bootstrap for those without a cluster, the verified helm install, ingress/DNS access (+ port-forward fallback), API token, then first workspace + plan/apply.
  • Moved the Tilt / from-source contributor workflow into a new local-development.md, linked from getting-started and index.
  • Updated index.md Quick Start to the Helm one-liner; added the Local Development nav entry (index.md + mkdocs.yml).

Verification

  • helm lint passes on both values.yaml and values-local.yaml.
  • The exact helm install command documented in getting-started renders the web Deployment, Ingress, and bootstrap Job (22 objects).
  • Diff scanned for internal identifiers — clean.

…deploy

The web frontend is the BFF — the single ingress entry point that proxies
all browser, CLI, and listener traffic to the API. Defaulting web.enabled
to false (while api and listener defaulted true) meant any install with
ingress.enabled=true failed to template ("Ingress is enabled but
web.enabled is false"), including the documented basic install. Enable it
by default so a stock install renders a working stack.

Docs:
- Rewrite getting-started.md around deploying the Helm chart onto a
  Kubernetes cluster (or a single-node k3s VM), not the Tilt local-dev
  stack: prerequisites, k3s bootstrap, helm install, ingress/DNS access,
  API token, first workspace + plan/apply. Verified the install command
  renders against the chart.
- Move the Tilt/from-source contributor workflow into a new
  local-development.md, linked from getting-started and index.
- Update index.md Quick Start to the Helm one-liner and add the
  Local Development nav entry (index + mkdocs).
- Correct the web.enabled default row in deployment.md.
@mattrobinsonsre mattrobinsonsre merged commit 43d9ecc into main Jun 18, 2026
51 checks passed
@mattrobinsonsre mattrobinsonsre deleted the docs/getting-started-deploy-focus branch June 18, 2026 20:57
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