stack-orchestrator/docs
Prathamesh Musale a6d54c7bf8 feat(k8s): manage Caddy ingress image lifecycle via spec (so-p3p)
The Caddy ingress image was hardcoded in the component manifest and
had no update path shy of cluster recreate or manual kubectl patch.
That forced woodburn to run an out-of-band ansible playbook to bump
Caddy, and broke the "spec.yml is source of truth" model.

Changes:

- spec.yml: new `caddy-ingress-image` key (default
  `ghcr.io/laconicnetwork/caddy-ingress:latest`).
- Deployment manifest: `strategy: Recreate` on the Caddy Deployment
  — required because the pod binds hostPort 80/443, which prevents
  any rolling update from completing (new pod hangs Pending forever
  waiting for old pod to release the ports).
- install_ingress_for_kind: accepts caddy_image and templates the
  manifest before applying, same pattern as the existing acme-email
  templating.
- update_caddy_ingress_image: patches the running Caddy Deployment
  when the spec image differs from the live image. No-op if they
  match. Returns True if a patch was applied so the caller can wait
  for the rollout.
- deploy_k8s._setup_cluster: on cluster reuse (ingress already up),
  reconcile the running image against the spec. Installs path
  unchanged; only the "already running, maybe needs update" branch
  is new.

Cluster-scoped caveat: caddy-system is shared by every deployment on
the cluster, so the spec value in any one deployment rolls Caddy for
all of them — last `deployment start` wins. Documented in
deployment_patterns.md alongside the other cluster-scoped concerns
(kind-mount-root, namespace ownership).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 06:51:53 +00:00
..
images stack diagram: fix diagram & compress img 2023-01-20 11:04:24 -05:00
CONTRIBUTING.md Migrate canonical source from Gitea to GitHub (#738) 2026-04-02 10:58:14 +05:30
README.md Gitea x Laconicd + some doc updates (#549) 2023-09-27 17:36:12 -04:00
adding-a-new-stack.md Update links from github.com to git.vdb.to (#732) 2024-02-06 22:42:44 +00:00
cli.md Add Job and secrets support for k8s-kind deployments (#995) 2026-03-11 03:56:21 +00:00
deployment_patterns.md feat(k8s): manage Caddy ingress image lifecycle via spec (so-p3p) 2026-04-21 06:51:53 +00:00
docker-compose-deployment.md Add Docker Compose deployment guide 2026-01-17 18:17:01 -05:00
fetching-containers.md Apply pre-commit linting fixes 2026-01-20 23:16:44 -05:00
gitea-with-laconicd-fixturenet.md Apply pre-commit linting fixes 2026-01-20 23:16:44 -05:00
helm-chart-generation.md Add support for generating Helm charts when creating a deployment (#974) 2025-11-27 06:43:07 +00:00
k8s-deployment-enhancements.md Apply pre-commit linting fixes 2026-01-20 23:16:44 -05:00
laconicd-with-console.md Update fixturenet-laconicd stack for renaming changes (#891) 2024-07-25 08:50:15 +00:00
release-process.md Apply pre-commit linting fixes 2026-01-20 23:16:44 -05:00
spec.md Apply pre-commit linting fixes 2026-01-20 23:16:44 -05:00
webapp.md Apply pre-commit linting fixes 2026-01-20 23:16:44 -05:00

README.md

Stack Orchestrator

Here you will find information about the design of stack orchestrator, contributing to it, and deploying services/applications that combine two or more "stacks".

Most "stacks" contain their own README which has plenty of information on deploying, but stacks can be combined in a variety of ways which are document here, for example: