Skip to content

feat(swarm): establish safe stack-native foundation - #317

Draft
cbnsndwch wants to merge 85 commits into
oblien:mainfrom
cbnsndwch:feat/docker-swarm
Draft

feat(swarm): establish safe stack-native foundation#317
cbnsndwch wants to merge 85 commits into
oblien:mainfrom
cbnsndwch:feat/docker-swarm

Conversation

@cbnsndwch

Copy link
Copy Markdown

Summary

Introduces the first safe, gated Docker Swarm implementation slice.

  • Adds an off-by-default OPENSHIP_EXPERIMENTAL_SWARM capability and disposable manager/worker test lab.
  • Classifies Swarm task ownership from Docker labels and excludes task containers from standalone migration/adoption.
  • Detects Swarm ingress ownership of Edge ports and refuses legacy container-level takeover before issuing a Docker mutation.
  • Includes real Swarm and ordinary Compose Traefik fixtures so the ownership boundary is reproducible.

Why

Stopping a Swarm task only causes the scheduler to replace it. The Edge migration path must name the owning service and require service/stack-level management instead.

Validation

  • bun --cwd packages/adapters vitest run src/runtime/swarm/ownership.test.ts test/docker-container-status.test.ts src/system/proxy/detect.test.ts
  • bun --cwd apps/api vitest run test/modules/migration/docker-inspect.test.ts
  • bun run --cwd packages/adapters lint
  • bun run --cwd apps/api lint
  • bunx tsc --noEmit -p apps/dashboard/tsconfig.json
  • Full isolated lab: manager + worker, Swarm Traefik ingress task, ordinary Compose Traefik fixture, scoped cleanup.

Follow-up

Tracks #316 and addresses the safe refusal path for #311. Later slices add the durable orchestration model and stack/service runtime lifecycle.

@Hydralerne

Copy link
Copy Markdown
Member

Amazing work, fr. Keep cooking,

cbnsndwch added 29 commits July 30, 2026 13:52
@cbnsndwch
cbnsndwch force-pushed the feat/docker-swarm branch from bb8b00f to ce1ca69 Compare July 30, 2026 13:59
@Hydralerne

Copy link
Copy Markdown
Member

Sorry about the conflicts, I hope they're easy to resolve

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants