docs(adr): propose Monk kit for Live deployment and packaging - #63
Conversation
f1fa975 to
0e9550f
Compare
|
There is a PoC implementation of this ADR on a separate branch (Monk Kit + in-cluster bootstrap image, DigitalOcean Live deploy with Supabase + Modal): https://github.com/nooga/tripwire/tree/feat/monk-live-supabase-modal-kit Happy to open a follow-up PR against |
There was a problem hiding this comment.
Thanks for creating this PR and the Change request @nooga
I'm going to run a quick docs related check on this but overall seems good
Except I see a few things missing, so after my review we can decide the next steps.
We can surely consider this but I need to generate a plan on the back of the ADR unless the ADR is sufficient and then align it with the changes made, so lets keep discussing and bring this together, this is a great start! Im eager to see how this will look like once we have bridged the gaps! |
|
@nooga when you get a chance can you pls rebase your branch with main from remote - I have pushed some CI/CD related fixes |
|
Thanks @nooga — the direction is good, and this pull request can stay Proposed and documentation-only. It is not yet the minimum record we need before writing implementation slices under Please add (minimum)
A one-line definition of Monk is enough (a packaging and deploy runtime that consumes a Kit: manifest, templates, and secrets). Please also rebase this branch onto current Please do not addProof-of-concept implementation detail, a specific cloud region or provider, architecture diagram rewrites, or slice specifications. Those belong in follow-up work after this ADR lands. Once the five items above are in the ADR, we can merge it as Proposed and start slice creation under |
The things we are ommiting/removing from the ADR will be implemented/written into the slice plan coming up next. |
Adds ADR-0001 recording Monk Kit as the intended hosted Live deploy/packaging path. Status stays Proposed and documentation-only. Addresses review feedback on PR neomatrix369#63: - Keeps current Live (operator workstation flow) and intended Live visibly separate; no claim that Tripwire is deployable via Monk today - States the five-vendor Live baseline (Supabase, Modal, Snyk, Cisco, Tessl) as required, not optional - Splits in-cluster (bootstrap, dashboard, HTTPS ingress) from SaaS (Supabase/PostgREST, Modal, scanner engines) - Defines when Kit v1 is done, with missing scanner credentials as an incomplete deploy - Records coexistence with today's docs and an explicit not-decided-here list Unreserves 0001 in the ADR catalog and logs a DECISIONS row. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
0e9550f to
def79b0
Compare
|
Rebased onto current The five items:
No PoC detail, no cloud provider/region, no diagram changes, no slice specs. Also unreserved 0001 in Two things I'd like you to rule on: Ossprey. Your five-vendor list predates the Ossprey adapter landing (2026-08-25). It's credential-gated, RESEARCH-labeled, and access provisioning is still open (slice 35 🔴), so I kept the baseline at five and added one sentence putting Ossprey explicitly outside Kit v1 rather than quietly making it six. Shout if you'd rather it be in. Five vendors vs Minimum Viable Live. The CI and Code Review Graph runs are sitting at |
code-review-graph reviewOverall risk: 0.00 (LOW) — 0 changed function(s)/class(es), 0 affected flow(s), 0 test gap(s) Token savings: this graph-backed report used ~31,572 fewer tokens (~100%) than reading every changed file in full (estimated, chars/4 approximation). Powered by code-review-graph — local-first analysis; no code leaves the CI runner. |
|
@nooga mostly looks good, thanks for the updated PR
What does "Modal explicitly not a cluster workload." mean? It will still be configured for the system to reach out and spin off sandboxes?
Lets make the API key for OSSPREY available, we can tweak this later on but thats the simple minimum and should not be too much effort.
Can we aim for MVL also we are missing two more vendors SIE (Superlinked) and Ali Baba Cloud -- just env variables are enough for both, we dont need provisioning/cluster stuff |
- Clarify that "Modal is not a cluster workload" means no Modal container runs in-cluster, not that Modal is unconfigured: the cluster reaches out to Modal, which spins the sandboxes - Kit collects OSSPREY_API_KEY as an optional pass-through secret; Ossprey stays out of the required baseline while access provisioning is open - Promote isolated ephemeral environments into the Decision as a co-equal motivation, with the mechanism named (separate Kit deploy, isolated credentials, configured by the Monk agent from one template) - Add Alternative C comparing Helm, Kustomize, and Terraform, and say what Monk gives that they do not - Note that Monk's CI/CD generation is an existing capability, while Tripwire's adoption of it is follow-up work - DECISIONS row uses the branch name in the second column Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Thanks — addressed six of the seven; the vendor-tier one I'd like you to confirm first. Pushed on top of your Modal. Yes, exactly that. Poor wording on my part — "not a cluster workload" only meant no Modal container runs inside the cluster. Modal is fully configured: the Kit holds the tokens and deploys the Modal app at bootstrap, and at scan time the cluster reaches out to Modal, which spins the sandboxes on its own infra. Reworded in the ADR. Ossprey. Done — the Kit collects Ephemeral environments. Promoted into the Decision as a co-equal motivation, using your phrasing — each ephemeral instance is a separate Kit deploy with isolated credentials, configured by the Monk agent from the single in-repo template. Monk-generated CI/CD. Good catch to ask. It's an existing Monk capability, not aspirational — but Tripwire doesn't use it, so I've said both: the feature exists, our adoption of it is follow-up work. Helm / Kustomize / Terraform. Added as Alternative C: secrets first-class (including provisioning-generated ones like the Supabase service-role key), Monk provisions the managed service rather than templating a reference to one, versioned Kit + registry, ephemeral envs from one template. Noted that Terraform can provision — the issue is you then need three tools where the Kit is one. DECISIONS column. Fixed to the branch name. Now the one I need you on — MVL + SIE + Model Studio. Happy to add both; the PoC Kit already plumbs Snyk/Tessl/Cisco through the same three places ( But this reverses item #2 from your original review, which said scanner creds are required and a missing scanner key isn't an acceptable Live outcome. Proposed structure:
Kit v1 "done" then gets defined at two levels — MVL-complete and full-coverage-complete — instead of one. Confirm that supersedes item #2 and I'll rewrite the Decision section to match. |
|
@nooga — confirmed. The 3-tier model supersedes item #2 from the earlier comment:
Please rewrite the Decision section of ADR-0001 to reflect this tiering. We can revisit both the tier boundaries and the Monk Kit specifics once the actual Monk config lands in the repo — this ADR is the intent record, not the implementation contract. |
Summary
docs/adr/and ADR-0001 proposing Monk as the hosted Live packaging/deploy path (publishable Kit: Supabase entity + bootstrap + dashboard; Modal stays SaaS).docs/ARCHITECTURE.md,docs/README.md, and aDECISIONS.mdrow.Test plan
Checklist
./scripts/quality-gates.shpasses locally