You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(infra): sandbox-runner images as schema defaults (drop ${kedge.*} tokens)
The sandbox-runner template was the lone outlier using ${kedge.*}
env-substitution tokens for its container images (Phase 2a) — every
other template declares configurable images as spec.schema fields with
sane defaults and hardcodes fixed sidecar images. That outlier broke in
practice: an unset KEDGE_SANDBOX_RUNNER_IMAGE substituted to "" and kro
authored a Deployment/Job with `image: ""` (Required value).
Make sandbox-runner follow the same convention as simple-webapp / database
/ redis / application:
- spec.runnerImage is a schema field with a sane default
(ghcr.io/faroshq/kedge-sandbox-runner:dev); the runner Deployment uses
${schema.spec.runnerImage}. Overridable per instance.
- the control-token Job image is hardcoded bitnami/kubectl, like every
other template's control job (tokenGeneratorImage field dropped).
Remove all the now-dead image-token machinery:
- kro backend: drop the sandbox image tokens (only the exposure Gateway
tokens remain).
- infra chart: drop KEDGE_SANDBOX_*_IMAGE env, the install guard, and the
sandboxRunner values block; operator passthrough.
- App Studio: sandboxRunnerValues supplies only {projectRef}; drop the
image env helpers, chart guard/env/values, README rows.
Document the convention so this doesn't recur:
- new providers/infrastructure/docs/template-conventions.md (when to use a
schema default vs a hardcoded literal vs a ${kedge.*} token, with the
failure modes that motivated it).
- AGENTS.md §9 guardrail pointing at it.
Also: dev postgres images default to Google's Docker Hub mirror
(mirror.gcr.io/library/postgres:16-alpine) — Docker Hub has been dropping
pulls with "unexpected EOF".
Preview routing is unchanged (it was already schema-based on main).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|`APP_STUDIO_SANDBOX_RUNNER_IMAGE`| Runner image passed to new `SandboxRunner` resources; use an immutable digest outside local development |
56
-
|`APP_STUDIO_SANDBOX_TOKEN_GENERATOR_IMAGE`| kubectl-capable token-generator image passed to new `SandboxRunner` resources; use an immutable digest outside local development |
57
55
|`APP_STUDIO_PREVIEW_BASE_DOMAIN`| Optional DNS zone for companion Sandbox preview routing. |
58
56
|`APP_STUDIO_PREVIEW_HTTPROUTE_PARENT_GATEWAY_NAME`| Gateway resource name to attach each preview `HTTPRoute` to. |
59
57
|`APP_STUDIO_PREVIEW_HTTPROUTE_PARENT_GATEWAY_NAMESPACE`| Namespace of the parent Gateway (defaults to `kedge-preview`). |
0 commit comments