feat(builder-images): build natively, off Argo Workflows #128
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/builder-images-native"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Argo Workflows is being removed from this cluster.
builder-imageswas one ofonly three projects that still named the
argo_workflowexecutor, and it is byfar the busiest: 28 of the 37 Workflow objects created in the last 12 hours are
its builds.
Why this is one string
The native path was already complete and unused. Everything needed is in place
on trunk today:
recipes/builder-images/holdsrecipe.json,Dockerfile,build.sh,check.sh,discover.shandfinalize.shProjectRegistry.parse/1has an explicit version-8 clause that accepts"native"for this taxonomy and re-parses it through the v8 validatorProjectRegistry.plan/3routesdockerfile_set + nativetoExecutionPlan.dockerfile_set_native/6Executor.Nativepattern-matches, and it runs the fanout graph
recipe.jsondeclares(
check,discover,build,finalize)The project version stays
8; the plan version is22. The two areindependent, which is why no version bump is needed.
Why the guard pins the whole build object
No recipe block is added, and none may be. The v8 validator calls
exact_keys(build, ~w(executor timeout_ms)), so an extra key is rejectedoutright.
scripts/checktherefore pins the entirebuildobject rather thanjust the executor, so a later well-meant recipe addition fails loudly in the
guard instead of at plan time.
Verification
Red before green: the new assertion fails on the unchanged bundle
(
node image project has no worker deployment targetis the next check in thechain; the builder-images
any(...)is what goes false).make checkpassesafter the change.
Remaining on Argo after this:
hetzner-node-image(arm64 node image) andzot-src(shadow). Both are blocked onReleaseItemPublisherhaving no nativeform —
project_runtime_routes.ex:137-147routesdockerfile_setandnode_imageto the Argo publisher unconditionally. That is a separate change.https://claude.ai/code/session_01KZoQin34jeyt6nDGqvJA76
Argo Workflows is being removed from this cluster. builder-images was one of only three projects that still named the argo_workflow executor, and it is by far the busiest: 28 of the 37 Workflow objects created in the last 12 hours are its builds. The native path was already complete and unused. Everything needed is in place today: * recipes/builder-images/ holds recipe.json, Dockerfile, build.sh, check.sh, discover.sh and finalize.sh * ProjectRegistry.parse/1 has an explicit version-8 clause that accepts "native" for this taxonomy * ProjectRegistry.plan/3 routes dockerfile_set + native to ExecutionPlan.dockerfile_set_native/6 * that emits a version-22 plan, which Executor.Native runs as the fanout graph the recipe declares So this is one string. The project version stays 8; the PLAN version is 22. The two are independent, which is why no version bump is needed. No recipe block is added, and none may be: the v8 validator calls exact_keys(build, ~w(executor timeout_ms)), so an extra key is rejected outright. scripts/check therefore pins the whole build object rather than just the executor, so a later "helpful" recipe addition fails loudly here instead of at plan time. Verified red before green: the new assertion fails on the unchanged bundle. Claude-Session: https://claude.ai/code/session_01KZoQin34jeyt6nDGqvJA76