From c7161deecd4d77059d146d92b6cdd6864e84568f Mon Sep 17 00:00:00 2001 From: Prathamesh Musale Date: Wed, 8 Apr 2026 06:50:24 +0000 Subject: [PATCH] file so-5cd: compose deployer ignores image_overrides --- .gitignore | 1 + .pebbles/events.jsonl | 1 + .pebbles/pebbles.db | Bin 36864 -> 0 bytes 3 files changed, 2 insertions(+) delete mode 100644 .pebbles/pebbles.db diff --git a/.gitignore b/.gitignore index 6abbf941..4fb29b8b 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ package stack_orchestrator/data/build_tag.txt /build .worktrees +.pebbles/pebbles.db diff --git a/.pebbles/events.jsonl b/.pebbles/events.jsonl index d9ac495f..aa9c3613 100644 --- a/.pebbles/events.jsonl +++ b/.pebbles/events.jsonl @@ -23,3 +23,4 @@ {"type": "create", "timestamp": "2026-03-20T23:05:00.000000Z", "issue_id": "so-n1n", "payload": {"title": "Merge kind-mount-propagation branch — HostToContainer propagation for extraMounts", "type": "feature", "priority": "2", "description": "The kind-mount-root feature was cherry-picked to main (commit 8d03083d) but the mount propagation fix (commit 929bdab8 on branch enya-ac868cc4-kind-mount-propagation-fix) adds HostToContainer propagation so host submounts propagate into the Kind node. This is needed for ZFS child datasets and tmpfs mounts under the root. Cherry-pick 929bdab8 to main."}} {"type": "create", "timestamp": "2026-03-20T23:05:00.000000Z", "issue_id": "so-o2o", "payload": {"title": "etcd cert backup not persisting across cluster deletion", "type": "bug", "priority": "1", "description": "The extraMount for etcd at data/cluster-backups//etcd is configured but after cluster deletion the directory is empty. Caddy TLS certificates stored in etcd are lost. Either etcd isn't writing to the host mount, or the cleanup code is deleting the backup. Investigate _clean_etcd_keeping_certs in helpers.py."}} {"type": "create", "timestamp": "2026-03-21T00:20:00.000000Z", "issue_id": "so-p3p", "payload": {"title": "laconic-so should manage Caddy ingress image lifecycle", "type": "feature", "priority": "2", "description": "The Caddy ingress controller image is hardcoded in ingress-caddy-kind-deploy.yaml. There's no mechanism to update it without manual kubectl commands or cluster recreation. laconic-so should: 1) Allow spec.yml to specify a custom Caddy image, 2) Support updating the Caddy image as part of deployment restart, 3) Set strategy: Recreate on the Caddy Deployment (hostPort pods can't do RollingUpdate). This would let cryovial or similar tooling trigger Caddy updates through the normal deployment pipeline."}} +{"type":"create","timestamp":"2026-04-08T05:51:31.557582604Z","issue_id":"so-5cd","payload":{"description":"The DockerDeployer.up() in stack_orchestrator/deploy/compose/deploy_docker.py accepts image_overrides as a parameter but silently drops it — only k8s mode (deploy_k8s.py) actually applies overrides.\n\nImpact: the --image container=image CLI flag on 'laconic-so deployment start' is a no-op for compose-mode deployments. Spec-level image-overrides: keys are also ignored in compose mode (they reach up() via deployment.py but are never applied).\n\nUse case: gorchain-stacks test scripts build :local images via build-containers, but compose files reference ghcr.io/gorbagana-dev/*:latest (so prod pulls work). Without image override support in compose mode, tests either need to docker tag the builds or the compose file needs to be rewritten before start — both ugly workarounds for what should be a first-class mechanism.\n\nFix sketch: in DockerDeployer.up(), when image_overrides is non-empty, write a temporary docker-compose.override.yml with {services: {name: {image: ref}}} and construct a new DockerClient with compose_files + [override_path]. Keeps k8s path untouched, reuses existing --image CLI flag and spec-level image-overrides: plumbing.","priority":"2","title":"Compose deployer ignores image_overrides","type":"bug"}} diff --git a/.pebbles/pebbles.db b/.pebbles/pebbles.db deleted file mode 100644 index f158782563f349b288777d54814029657c3a1174..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36864 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 JZ-*WY_#cZcYbgK#