stack-orchestrator/stack_orchestrator/deploy
Prathamesh Musale 782c71ae36 feat(k8s): enforce kind extraMount compatibility on cluster reuse
Kind applies extraMounts only at cluster creation. When a deployment joins
an existing shared cluster, any extraMount its kind-config declares that
isn't already active on the running control-plane is silently ignored —
PVs backed by those mounts fall through to the node's overlay filesystem
and lose data on cluster destroy.

Validate this up front in create_cluster():
- On cluster reuse, compare the new deployment's extraMounts against the
  live bind mounts on the control-plane container (via docker inspect).
  Fail with a DeployerException listing every mismatched mount and
  pointing at docs/deployment_patterns.md.
- On first-time cluster creation without a /mnt umbrella mount
  (kind-mount-root unset), print a warning that future stacks may
  require a full recreate to add new host-path mounts.

Document the umbrella-mount convention (kind-mount-root) and the
migration path for existing clusters in docs/deployment_patterns.md.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 09:30:12 +00:00
..
compose so-l2l: in-place stop/restart via label-scoped cleanup (#743) 2026-04-16 12:10:04 +05:30
k8s feat(k8s): enforce kind extraMount compatibility on cluster reuse 2026-04-20 09:30:12 +00:00
webapp Merge wd-a7b: cluster-id/namespace naming, jobs, multi-cert, secrets 2026-04-01 18:22:07 +00:00
__init__.py Rename app -> stack_orchestrator (#625) 2023-11-07 00:06:55 -07:00
deploy.py so-l2l: in-place stop/restart via label-scoped cleanup (#743) 2026-04-16 12:10:04 +05:30
deploy_types.py Add Job and secrets support for k8s-kind deployments (#995) 2026-03-11 03:56:21 +00:00
deploy_util.py Fix pyright type errors across codebase 2026-01-22 01:10:36 -05:00
deployer.py so-l2l: in-place stop/restart via label-scoped cleanup (#743) 2026-04-16 12:10:04 +05:30
deployer_factory.py Add Job and secrets support for k8s-kind deployments (#995) 2026-03-11 03:56:21 +00:00
deployment.py so-l2l: in-place stop/restart via label-scoped cleanup (#743) 2026-04-16 12:10:04 +05:30
deployment_context.py Merge origin/main into multi-port-service 2026-01-24 16:48:11 -05:00
deployment_create.py Fix Kind port mappings and configmap source path resolution (#742) 2026-04-14 17:33:47 +05:30
dns_probe.py feat(deploy): add deployment restart command 2026-02-03 17:15:19 -05:00
images.py Apply pre-commit linting fixes 2026-01-21 20:58:31 -05:00
spec.py Add ip mode to external-services for static IP endpoints (#740) 2026-04-02 17:53:23 +05:30
stack.py Apply pre-commit linting fixes 2026-01-21 20:58:31 -05:00
stack_state.py Rename app -> stack_orchestrator (#625) 2023-11-07 00:06:55 -07:00