Skip to content

Commit 64d64e7

Browse files
waleedlatif1claude
andcommitted
fix(docs): close the remaining placeholder-secret and egress gaps
Review found the Terraform snippet still inherited one placeholder it did not override: values-aws.yaml sets postgresql.auth.password to your-secure-postgres-password, and the chart accepts it. Same class as the app secrets, same consequence — a bundled database with a publicly documented credential. The AWS and GCP example values also enable networkPolicy, whose default egress reaches only the bundled pods and TCP 443. The page told operators to replace Postgres and Redis with managed instances without saying that leaves them unreachable until the egress rules open a path. Pi has its own immutable image and fails closed without it; the Function image cannot satisfy that requirement, so it gets its own row rather than being folded into the sandbox one. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015BwsJTEQRzWJaY4BRCkPZt
1 parent 1063f1c commit 64d64e7

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

apps/docs/content/docs/platform/self-hosting/reference-architectures.mdx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,15 @@ Everything the chart can run itself, it runs by default. That is convenient for
2626
| Ingress | Off | You install the controller; the chart renders the Ingress |
2727
| TLS certificates | Off | You provision them |
2828
| Remote sandbox | Off | Required for Python, Shell, and imported JavaScript — a provider **and** an immutable Function image. See [Security](/platform/self-hosting/security) |
29+
| Pi execution | Off | A separate immutable image from the Function one, pinned with `E2B_PI_TEMPLATE_ID` or `DAYTONA_PI_SNAPSHOT_ID`. Fails closed without it |
2930
| PII redaction, Ollama, telemetry collector | Off | Optional, off unless you enable them |
3031

3132
The bundled Postgres uses a 10 Gi `ReadWriteOnce` volume and is intended for evaluation. Moving to managed Postgres is the single most important production change.
3233

34+
<Callout type="warn">
35+
The AWS and GCP example values set `networkPolicy.enabled: true`, and the chart's default egress allows only the bundled pods and TCP 443. Moving Postgres or Redis outside the cluster without opening a path leaves them unreachable — add the rules to `networkPolicy.egress`, or set `networkPolicy.allowExternalEgress: true`, in the same change that points the app at the managed instance.
36+
</Callout>
37+
3338
## Sizing
3439

3540
| Component | Requests | Limits |
@@ -154,12 +159,15 @@ resource "helm_release" "sim" {
154159
{ name = "app.env.API_ENCRYPTION_KEY", value = var.api_encryption_key },
155160
{ name = "app.env.INTERNAL_API_SECRET", value = var.internal_api_secret },
156161
{ name = "app.env.CRON_SECRET", value = var.cron_secret },
162+
# Only when the bundled Postgres is in use. With managed Postgres, set
163+
# externalDatabase.* and postgresql.enabled=false instead.
164+
{ name = "postgresql.auth.password", value = var.postgres_password },
157165
]
158166
}
159167
```
160168

161169
<Callout type="warn">
162-
The example values files ship literal placeholders such as `your-secure-production-auth-secret-here`. The chart only rejects empty values and its own `CHANGE-ME` strings, so a deployment that inherits those placeholders installs cleanly with a publicly known session-signing secret. Override every secret, or use External Secrets and set none of them inline.
170+
The example values files ship literal placeholders such as `your-secure-production-auth-secret-here`. That includes `postgresql.auth.password`. The chart only rejects empty values and its own `CHANGE-ME` strings, so a deployment that inherits those placeholders installs cleanly with a publicly known session-signing secret and database password. Override every secret, or use External Secrets and set none of them inline.
163171
</Callout>
164172

165173
Because the chart is local, `version` does nothing — what pins it is the git ref you vendor from, and `helm/sim/Chart.yaml` tells you which chart release that ref carries. Pin that ref, and pin the image tags separately, or an unplanned `terraform apply` can move Sim to a new release with new migrations. See [Upgrades](/platform/self-hosting/upgrades).

0 commit comments

Comments
 (0)