Skip to content

refactor(deploy)!: rename mesh to studio in helm, compose and images#4655

Open
viktormarinho wants to merge 1 commit into
mainfrom
chore/demesh-09-deploy-infra
Open

refactor(deploy)!: rename mesh to studio in helm, compose and images#4655
viktormarinho wants to merge 1 commit into
mainfrom
chore/demesh-09-deploy-infra

Conversation

@viktormarinho

@viktormarinho viktormarinho commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Summary

De-mesh task 09 (deploy / infra). The chart name (chart-deco-studio) and image names (ghcr.io/decocms/studio/*) were already renamed in the repo-rename pass, so this PR finishes the remaining "mesh" identifiers in deploy/, tests/multi-pod and the CI wiring that references them.

Out of scope (owned by other open de-mesh PRs / task 10): apps/mesh directory paths, MESH_* env vars in tests/resilience (#4645), @decocms/mesh npm package + release-mesh.yaml / publish-mesh-sdk-npm.yaml workflow names (#4653 / task 10).

External-contract renames — ops coordination required

Contract Old New Coordination requirement
chart-deco-studio values key configMap.meshConfig configMap.studioConfig Breaking. Rename the key in every environment values file before upgrading to chart 0.13.0. A template fail-guard rejects the old key with an explicit message, so an un-migrated upgrade fails loudly at render time instead of shipping an empty ConfigMap.
chart-deco-studio dispatch-role env MESH_DISPATCH_ROLE STUDIO_DISPATCH_ROLE (canonical) + MESH_DISPATCH_ROLE kept as alias None yet — deliberately dual-set. The chart sets both names to the same value, so it works with images both before and after #4645 (the STUDIO_* fallback). No image/chart ordering constraint. Follow-up: drop the MESH_ alias once all deployed images read STUDIO_*. Both names are now reserved (chart rejects them in env / worker.env).
sandbox-env values block mesh.* (mesh.namespace, mesh.serviceAccountName, mesh.serviceName, mesh.servicePort, mesh.podSelectorLabels) studio.* Breaking. Update values files / --set mesh.* flags to studio.* before upgrading to chart 0.10.0. Fail-guard rejects the old block. The release-sandbox-charts.yaml install snippet now prints --set studio.*.
sqlite volume path /app/data/mesh.db unchanged Intentionally kept: it is a persisted file on existing volumes; renaming it would orphan data on running single-node deployments. A template comment documents this.
Chart names / release names / image names chart-deco-studio, ghcr.io/decocms/studio/{studio,studio-nginx,s3-sync} unchanged Already renamed in a previous pass — no action.
multi-pod compose services mesh-1/2/3 studio-1/2/3 Test-infra only, no running-cluster impact.

Chart version bumps: chart-deco-studio 0.12.2 → 0.13.0, sandbox-env 0.9.5 → 0.10.0 (both breaking-values releases).

Changes

  • deploy/helm/studio: meshConfigstudioConfig across values/templates/README; dual STUDIO_DISPATCH_ROLE/MESH_DISPATCH_ROLE env in API + worker deployments; reserved-var validation covers both names; fail-guard for the old values key.
  • deploy/helm/sandbox-env: mesh.*studio.* values block (+ fail-guard); prose/comments de-meshed in templates, values, README, examples, housekeeper script; Chart description updated.
  • deploy/helm/sandbox-operator: README prose.
  • tests/multi-pod: compose services/anchors/POD_NAME mesh-Nstudio-N; PODS.MESH_NPODS.STUDIO_N, PodName type and scenario literals renamed (lexicographic leader ordering studio-1 < studio-2 < studio-3 is preserved, so projector-parity assumptions hold).
  • .github/workflows: multi-pod.yml log-dump service names; release-sandbox-charts.yaml install snippet.
  • tests/resilience needed no changes (its compose has no mesh service names; MESH_CLUSTER_URL there belongs to refactor: rename MESH_* env vars to STUDIO_* with fallback #4645).

Testing

  • helm lint + helm template on both charts (default, postgres, and examples/values-kind.yaml values) — render OK; both fail-guards and the reserved-var check verified to fail with the intended messages; rendered manifests show both dispatch-role vars.
  • docker compose -f tests/multi-pod/docker-compose.yml config -q and ... tests/resilience/docker-compose.yml config -q — OK.
  • bun run fmt (clean), bun run lint (0 errors), bun run check (all workspaces pass).
  • Multi-pod/resilience docker suites not run locally (Docker-compose build of the full app); the renames there are mechanical and covered by CI's multi-pod job.

🤖 Generated with Claude Code


Summary by cubic

Renamed remaining "mesh" identifiers to "studio" across Helm charts, Docker Compose (multi-pod), and CI. Bumps chart-deco-studio to 0.13.0 and sandbox-env to 0.10.0 with fail-guards; update values before upgrading.

  • Migration

    • chart-deco-studio: rename configMap.meshConfigconfigMap.studioConfig (templates hard-fail on the old key). Chart sets both STUDIO_DISPATCH_ROLE (canonical) and MESH_DISPATCH_ROLE (alias); both names are reserved in env and worker.env. SQLite path stays /app/data/mesh.db.
    • sandbox-env: rename mesh.*studio.* (namespace, serviceAccountName, serviceName, servicePort) before upgrading; the chart fails if mesh.* is present. Release snippet now prints --set studio.*.
    • Scripts/ops: multi-pod services are now studio-1/2/3.
  • Refactors

    • deploy/helm/studio: values/README/templates moved to studioConfig; explicit fail on configMap.meshConfig; API and worker deployments set STUDIO_DISPATCH_ROLE + MESH_DISPATCH_ROLE; reserved-var checks updated.
    • deploy/helm/sandbox-env: prose/comments de-meshed across templates, values, README, examples, housekeeper; RBAC adds a fail-guard if .Values.mesh is set; preview Gateway docs clarified.
    • CI/tests: mesh-1/2/3studio-1/2/3 in compose, constants, scenarios; workflow log-dump targets updated.

Written for commit c35dc4d. Summary will update on new commits.

Review in cubic

@viktormarinho
viktormarinho force-pushed the chore/demesh-09-deploy-infra branch from 723850b to 0f5c31c Compare July 20, 2026 14:45
De-mesh task 09 (deploy/infra). Renames the remaining "mesh" identifiers
in deploy/, tests/multi-pod and the CI wiring that references them:

- chart-deco-studio: configMap.meshConfig -> configMap.studioConfig
  (breaking for values files; a fail-guard rejects the old key with a
  clear message). Chart 0.12.2 -> 0.13.0.
- Dispatch role env: the chart now sets STUDIO_DISPATCH_ROLE as the
  canonical variable and keeps MESH_DISPATCH_ROLE as an alias so both
  pre- and post-#4645 images work; both names are reserved.
- sandbox-env: mesh.* values block -> studio.* (breaking for values /
  --set flags; fail-guard on the old key). Chart 0.9.5 -> 0.10.0.
  Prose/comments de-meshed across templates, README, examples and the
  housekeeper script; release-sandbox-charts.yaml install snippet
  updated to --set studio.*.
- tests/multi-pod: compose services mesh-1/2/3 -> studio-1/2/3 (and
  POD_NAME, YAML anchors), with the PODS constants, PodName type and
  scenario literals renamed to match; multi-pod.yml log dump updated.
- /app/data/mesh.db is intentionally KEPT: it is a persisted sqlite
  file on existing volumes and renaming it would orphan data.

apps/mesh directory paths, MESH_* env vars in tests/resilience
(PR #4645), and the @decocms/mesh package/workflow names are out of
scope here (tasks 10 / other open de-mesh PRs).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@viktormarinho
viktormarinho force-pushed the chore/demesh-09-deploy-infra branch from 0f5c31c to c35dc4d Compare July 21, 2026 15:44
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