Skip to content

Add node22 support#1

Merged
tnagorra merged 3 commits into
mainfrom
feat/node22-support
Jul 17, 2026
Merged

Add node22 support#1
tnagorra merged 3 commits into
mainfrom
feat/node22-support

Conversation

@tnagorra

Copy link
Copy Markdown
Member

No description provided.

tnagorra and others added 3 commits July 16, 2026 07:53
Add an operator-managed node22 base image (digest-pinned node:22-alpine +
bash/git/build-base/python3 + corepack with yarn 1.22.22 and pnpm 10.34.5
pre-activated for offline resolution under readOnlyRootFilesystem), selectable
via spec.pipeline.nodeVersion: 22.

Wire it through every consumer the image-set drift guard enforces: images/Makefile
(build target + pinned base digest), the CI docker_build matrix, the release-body
image loop, the chart's operator.nodeImages values, the rendered helm snapshots,
and the check-images drift-test fixture.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
pnpm builds set npm_config_modules_dir=/cache/node_modules, relocating
node_modules onto the cache PVC. But `pnpm exec`/`pnpm run` resolve a command's
bin from <cwd>/node_modules/.bin (cwd-relative), NOT from modules-dir — so any
phase running an installed tool (e.g. `pnpm exec graphql-codegen` in a fetch
codegen step) failed "command not found".

Drop npm_config_modules_dir and keep only the content-addressable store on the
cache PVC (npm_config_store_dir). node_modules now lands on the per-run /work
emptyDir for pnpm too (same as yarn), shared across the pod's init containers, so
cwd-relative bin resolution works in every phase while the store still gives
cross-run install speedup.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…mental builds

The build phase mounted the dataCache read-only, so an app that persists an
incremental-build working tree there (e.g. astro-incremental via a
`build -> /data` symlink) failed `mkdir build/incremental` (EROFS/ENOENT).

Mount the dataCache RW in the build phase so the build can write its cache and
prior output back for reuse across runs, and mount it RO on the copier so it can
follow a symlinked outputDir (build/out -> /data/out) when publishing the bundle.

This does not widen the credential boundary: that invariant is about the fetch
script never writing secrets into the dataCache (readable by build's untrusted
deps), which RW-vs-RO in build does not change.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@tnagorra
tnagorra merged commit 703c6c4 into main Jul 17, 2026
16 checks passed
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.

2 participants