Skip to content

feat(deploy): git-push deploy — the Vercel/Heroku ergonomic, sovereign (Cloud Native Buildpacks) - #33

Merged
mdheller merged 1 commit into
mainfrom
feat/buildpack-deploy
Aug 4, 2026
Merged

feat(deploy): git-push deploy — the Vercel/Heroku ergonomic, sovereign (Cloud Native Buildpacks)#33
mdheller merged 1 commit into
mainfrom
feat/buildpack-deploy

Conversation

@mdheller

@mdheller mdheller commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Vercel and Heroku are the same move — detect the app from source, build it into a runnable image without a Dockerfile, deploy it, preview per branch. This delivers that ergonomic sovereign and open, via Cloud Native Buildpacks / Paketo.

tools/buildpack.py: detect (no Dockerfile) → build_plan (pack build, reproducible content-addressed OCI image + Procfile-style process types, fail-closed on no match) → deploy_workload (the built image → an executor workload; sandbox = per-branch preview; promotion gate = dev→prod). Verified the built image flows into the k8s manifest.

docs/BUILD_DEPLOY.md maps the whole thing: buildpack + slug=data sphere + Procfile=process_types + dyno=executor + preview=Signadot sandbox + pipeline=promotion gate + tiers=admission. The sovereign version — reproducible+attestable build, our runtime (incl. sovereign GPU inference), our residency-fenced data.

162 tools tests green. Only the push trigger (webhook) remains.

…n (Cloud Native Buildpacks)

Vercel and Heroku are the same move: detect the app from source, build it into a runnable image
WITHOUT a Dockerfile, deploy it, preview per branch. This delivers that sovereign + open.

tools/buildpack.py:
  - detect(): which Paketo buildpack matches the source (requirements.txt/package.json/go.mod/
    Cargo.toml/index.html) — no Dockerfile.
  - build_plan(): CNB `pack build` model — detect -> reproducible OCI image (content-addressed over
    source+buildpack; same source -> same image) + Procfile-style process_types + the real pack
    command. Fail-closed: no match -> refuse, don't guess.
  - deploy_workload(): the built image -> a workload the executor dispatches (service=Deployment,
    worker=Job); the sandbox is the per-branch preview, the promotion gate is dev->prod. Verified the
    built image flows into the k8s manifest.

docs/BUILD_DEPLOY.md articulates the full Vercel/Heroku -> continuum mapping: buildpack (this) + slug
= data sphere + Procfile = process_types + dyno = executor + preview = Signadot sandbox + pipeline =
promotion gate + tiers = admission. The sovereign version: reproducible+attestable build, OUR runtime
(incl. sovereign GPU inference), OUR residency-fenced data. capd/git-push-deploy.mesh.capd.json.

Tests: +5 = 162 tools tests green. The only remaining piece is the push trigger (webhook).
@mdheller
mdheller merged commit 82fd0cd into main Aug 4, 2026
1 check passed
@mdheller
mdheller deleted the feat/buildpack-deploy branch August 4, 2026 06:11
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