feat(templates): cloud-emulation engines — localstack, nats, kafka (redpanda), rabbitmq (spec 28) - #86
Merged
Merged
Conversation
…edpanda), rabbitmq (spec 28) Add four net-new shared-engine templates under templates/<name>/template.yaml, each declaring provides:/exports:/defaultPort:/params:/service:/volumes: — the same shared-engine contract postgres/redis/minio satisfy: - localstack provides aws (defaultPort 4566; exports endpoint/region) - nats provides nats (4222 client + 8222 monitor; JetStream -js) - kafka provides kafka (Redpanda single-binary; 9092 + dual listeners) - rabbitmq provides amqp (5672 + 15672 mgmt; secret pass via env.import) Resolver (internal/generate/resolver.go) gains the non-secret AWS-emulation export attrs endpoint (in-network alias URL) and region (param, default us-east-1), plus a per-template export-attr→secondary-port lookup so monitorPort/adminPort/mgmtPort resolve. Secret attrs stay rejected inline. Each template passes `template lint`/`template test` (golden.yaml added) and is embedded via go:embed. Determinism, CGO=0 build, and the four cross-compile targets stay green. ministack deferred (image/port/health unconfirmed offline); noted in the spec open-question. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Spec 28 — four net-new shared-engine templates turn devstack into a local cloud. Built in a worktree, verified locally (
make ci+ determinism green).provides: aws, exports[host,port,endpoint,region], port 4566,SERVICESparam,/_localstack/healthcheck.provides: nats, port 4222 (+8222 monitor), JetStream (-js).provides: kafka, Redpanda default (major-stable tag,image:escape hatch), port 9092, dual advertised listeners,rpk cluster health.provides: amqp, port 5672 (+15672 mgmt),RABBITMQ_DEFAULT_PASSas a valueless secret env key.Each declares the standard
provides:/exports:/defaultPort:/healthcheck:engine contract, is added totemplates/embed.go, and passestemplate lint/template test(golden per dir). ThesharedAttrresolver gains non-secretendpoint/regioncases + a per-template secondary-port lookup (nats monitor / kafka admin / rabbitmq mgmt) so every exported attr resolves.template listshows all four.Determinism green (existing built-ins untouched); CGO-free 4-target cross-build clean; no new Go deps. ministack skipped — its ministack.org image tag/port/SERVICES/health are unconfirmed offline (a deferral note is in the spec); authored as a follow-up once confirmed.
🤖 Generated with Claude Code