Repository navigation
feat: --layers-from adds the one layer of your own images (e.g. tunneld), checked like rowdy's - #159
Merged
Merged
Conversation
…final stage Refs #158 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rowdy last Refs #158 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d like rowdy's Refs #158 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… the size rule Blobs of a layers-from source no longer carry the app image's registry credentials. rowdy's own image, built here and re-tagged as :beta, is not checked, so a change to it cannot fail every deploy. The 64 MiB size rule is dropped. Layers Skipped warns only for linux/amd64, the platform Lambda runs. Docs: no Action input yet; tunneld's :latest is now a single scratch layer (tunnel-pizza/tunneld#402). Refs #158 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
21 tasks
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.
Implements Tasks 1–3 of #158:
--layers-from <image>adds the one layer of your own images to the deployed image, next to rowdy's.Input. The flag repeats, or
ROWDY_LAYERS_FROMtakes one image per line or a YAML list. Repeats are added once. Naming rowdy's own image adds nothing.Order. Sources go on in the order given, then rowdy's layer last, so
/usr/local/bin/rowdyis always rowdy's.Hygiene check. Each source must be built like rowdy's final stage. On every platform it publishes, before anything is uploaded, rowdy checks for:
diff_id;COPY/ADD, plus onlyENTRYPOINT,CMDorLABEL;EnvbeyondPATH.A source that breaks a rule fails the deploy, and the error names the image, the platform and the rule. There is no size limit; it was dropped on review.
rowdy's own image (
ghcr.io/scaffoldly/rowdy:beta) is exempt, because this repo builds it and re-tags:betaon every main build. A change to it can't fail every deploy.Credentials. Source blobs are read anonymously, never with the app image's registry credentials. Before this PR they were sent with the app's
Authorizationheader.Missing platforms. A platform a source doesn't publish is copied without it. That logs
WARN Layers Skippedonly forlinux/amd64, the platform Lambda runs; other platforms log at debug.No flag, no change. A deploy without the flag injects rowdy's layer exactly as before.
Commits:
db930dbthe rules and argument parsing (src/api/internal/layers.ts,src/util/list.ts);d0edbcdmulti-source collect/check/inject (Transfer.source,Transfer.collect);a3a6a68the CLI flag,LambdaImageService, and the docs (docs/runtime.md"Your own layers", README);6503a39fixes from the whole-branch review.Tests: unit suite 400 passed. That includes live public-registry tests:
rowdy:betaand tunneld's new single-layer:latest(feat(image): build the container on scratch, one layer tunnel-pizza/tunneld#402) are accepted;nginx:alpineis refused;linux/386is copied unchanged;Not here:
layers-from:input, Task 5 on thegithubbranch, after this ships in a release;Deferred minors from the review:
variant;RUNis refused as|1 in history;withLayersFromdoesn't copy its array.Refs #158
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.