Skip to content

feat(templates): ministack AWS-emulation engine (provides: aws) - #92

Merged
gustavobertoi merged 1 commit into
mainfrom
feat/ministack-template
Jul 1, 2026
Merged

feat(templates): ministack AWS-emulation engine (provides: aws)#92
gustavobertoi merged 1 commit into
mainfrom
feat/ministack-template

Conversation

@gustavobertoi

Copy link
Copy Markdown
Contributor

What

Adds a new built-in shared-service template for ministack (https://ministack.org), a LocalStack-compatible AWS emulator, mirroring the localstack template shape exactly.

  • schemaVersion: 1, provides: aws, exports: [host, port, endpoint, region], defaultPort: 4566.
  • Params: image (default ministackorg/ministack:latest), services (default s3,sqs,sns for light startup → SERVICES), region (default us-east-1).
  • Service: restart: unless-stopped; env SERVICES/AWS_DEFAULT_REGION/PERSIST_STATE=1/STATE_DIR=/var/lib/ministack; a named volume mounted at /var/lib/ministack; healthcheck curl -sf http://localhost:4566/_ministack/ready (the ministack readiness endpoint: 200 ready / 503 starting) with interval 10s / timeout 5s / retries 8 / start_period 20s.
  • Wired into templates/embed.go go:embed set.
  • Committed rendered templates/ministack/golden.yaml so template test passes.

Why

Second AWS-emulation engine option alongside localstack under spec 28. Resolves through the already-generic endpoint/region sharedAttr cases in internal/generate/resolver.go — no resolver code changes needed.

Image-tag caveat

The default ministackorg/ministack:latest floats across majors. Because shared instances are keyed by (engine, major) in the ledger, users should pin a tag (e.g. ministackorg/ministack:1) via the image param for stable ledger keying; this is noted in the param description.

How tested

  • template lint templates/ministack + template test templates/ministack both pass (golden byte-matches).
  • Added ministack case to TestCloudEngineTemplatesLint (asserts provides=aws, port=4566, _ministack/ready survives into compose) and extended TestSharedAttr_EndpointAndRegion to cover ministack's endpoint/region export.
  • CGO_ENABLED=0 go build ./..., CGO_ENABLED=1 go test ./internal/..., gofmt -l (clean), go vet ./..., and make determinism all green (existing built-ins untouched).

🤖 Generated with Claude Code

Add the ministack (LocalStack-compatible AWS emulator) shared engine
template, mirroring the localstack template shape. provides: aws,
exports host/port/endpoint/region, defaultPort 4566. Uses the ministack
readiness probe (/_ministack/ready) and PERSIST_STATE/STATE_DIR
persistence into a named volume. Wired into the go:embed set with a
rendered golden.yaml and resolver/lint tests.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@gustavobertoi
gustavobertoi merged commit 29604ba into main Jul 1, 2026
4 checks passed
@gustavobertoi
gustavobertoi deleted the feat/ministack-template branch July 1, 2026 12:39
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.

1 participant