stack-orchestrator/stack_orchestrator/deploy
A. F. Dudley 2d11ca7bb0 feat: update-in-place deployments with rolling updates
Replace the destroy-and-recreate deployment model with in-place updates.

deploy_k8s.py: All resource creation (Deployment, Service, Ingress,
NodePort, ConfigMap) now uses create-or-update semantics. If a resource
already exists (409 Conflict), it patches instead of failing. For
Deployments, this triggers a k8s rolling update — old pods serve traffic
until new pods pass readiness checks.

deployment.py: restart() no longer calls down(). It just calls up()
which patches existing resources. No namespace deletion, no downtime
gap, no race conditions. k8s handles the rollout.

This gives:
- Zero-downtime deploys (old pods serve during rollout)
- Automatic rollback (if new pods fail readiness, rollout stalls)
- Manual rollback via kubectl rollout undo

Closes so-l2l (parts A and B).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 19:40:20 +00:00
..
compose Fix pyright type errors across codebase 2026-01-22 01:10:36 -05:00
k8s feat: update-in-place deployments with rolling updates 2026-03-18 19:40:20 +00:00
webapp Add Job and secrets support for k8s-kind deployments (#995) 2026-03-11 03:56:21 +00:00
__init__.py Rename app -> stack_orchestrator (#625) 2023-11-07 00:06:55 -07:00
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
deploy.py Add Job and secrets support for k8s-kind deployments (#995) 2026-03-11 03:56:21 +00:00
deployer_factory.py Add Job and secrets support for k8s-kind deployments (#995) 2026-03-11 03:56:21 +00:00
deployer.py Fix pyright type errors across codebase 2026-01-22 01:10:36 -05:00
deployment_context.py Merge origin/main into multi-port-service 2026-01-24 16:48:11 -05:00
deployment_create.py fix: create imagePullSecret in deployment namespace, not default 2026-03-18 19:08:52 +00:00
deployment.py feat: update-in-place deployments with rolling updates 2026-03-18 19:40:20 +00:00
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 init containers, shared namespaces, per-volume sizing, and user/label support (#997) 2026-03-12 10:34:45 +00:00
stack_state.py Rename app -> stack_orchestrator (#625) 2023-11-07 00:06:55 -07:00
stack.py Apply pre-commit linting fixes 2026-01-21 20:58:31 -05:00