Commit Graph

17 Commits

Author SHA1 Message Date
shcizo a8524e5ff4 feat(discovery): add SwarmDiscovery to find opted-in Swarm services by image
Verified the Docker SDK v28.5.2+incompatible ServiceList signature via go doc
before implementing: the options type is swarm.ServiceListOptions, not
types.ServiceListOptions as the brief assumed. Everything else (Service.ID,
Service.Spec via embedded Annotations for Name/Labels, TaskTemplate.ContainerSpec.Image)
matched the brief exactly.

Reuses discovery.ImagesMatch and discovery.HasOptIn rather than duplicating
matching/opt-in logic. Opt-in label is read from the service spec's own
labels since Swarm services have no local compose file to anchor a
STACKS_ROOT path check against (unlike Compose mode).
2026-07-04 20:12:44 +02:00
shcizo 9cf484e164 feat(discovery): add Image and ServiceID fields to Job for swarm support 2026-07-04 20:09:39 +02:00
shcizo 1002bb7b96 feat(config): add MODE env var to select compose or swarm operation 2026-07-04 20:06:50 +02:00
shcizo 3abd1bf9af feat(metrics): wire instrumentation through queue, handlers, middleware 2026-05-22 13:17:09 +02:00
shcizo 952189eb09 feat(metrics): Prometheus collectors and /metrics handler 2026-05-22 12:59:53 +02:00
shcizo e88f105490 feat(selfupdate): defer self-replacement until response flushed 2026-05-22 12:06:07 +02:00
shcizo 857f504d36 feat(api): /update, /healthz, /version handlers 2026-05-22 12:03:56 +02:00
shcizo df2dc30cea feat(api): auth, request_id, and request-logging middleware 2026-05-22 11:59:34 +02:00
shcizo c9b1af42e5 feat(updater): FIFO queue with single worker and per-job results 2026-05-22 11:57:09 +02:00
shcizo a275f208c4 feat(updater): ComposeExecutor shells out to docker compose 2026-05-22 11:54:03 +02:00
shcizo 058b9d8c07 feat(updater): Executor interface 2026-05-22 11:53:42 +02:00
shcizo db784ad303 feat(discovery): orchestrate match, opt-in filter, dedup, path-check 2026-05-22 11:51:07 +02:00
shcizo 897093ed1c feat(discovery): STACKS_ROOT path safety check 2026-05-22 11:45:56 +02:00
shcizo 13ccb79ef5 feat(discovery): parse Compose-managed labels 2026-05-22 11:44:10 +02:00
shcizo cff6c1baff feat(discovery): tag-agnostic image name normalisation 2026-05-22 11:41:33 +02:00
shcizo e665b6cd7e feat(logging): structured JSON logger with request_id context 2026-05-22 11:38:07 +02:00
shcizo 2b7f7d863a feat(config): load and validate env-var config 2026-05-22 11:24:29 +02:00