Previously: T362681: Provide nodejs20 base images for production
Per upstream's release chart, NodeJS 20 is now in maintenance mode; NodeJS 22 is LTS until October.
Would it be possible to provide a nodejs22 production base image?
Previously: T362681: Provide nodejs20 base images for production
Per upstream's release chart, NodeJS 20 is now in maintenance mode; NodeJS 22 is LTS until October.
Would it be possible to provide a nodejs22 production base image?
| Status | Subtype | Assigned | Task | ||
|---|---|---|---|---|---|
| Open | None | T393434 Migrate node-based services in production to node22 | |||
| Resolved | Jdforrester-WMF | T393437 Provide nodejs22 base images for production |
Tagging @MoritzMuehlenhoff as he's listed as maintainer for the nodejs20 image, and this requires adding the third party nodejs22 packages.
I'm probably listed there because I have been handling various security update updates of that image, but I'm hardly the maintainer for these images. This should rather be driven by some Product team which actually uses nodejs-based services (and SRE can handles merges, updates etc).
I'd be happy to take this on. However, given that we have local apt builds for the packages, is it possible for any non-SRE to do this work?
@Jdforrester-WMF @KartikMistry we usually try to use the nodejs version shipped with a certain Debian version, for example node 20 is shipped with Bookworm (that is the base image for the nodejs20 one). As far as I can see Trixie ships with node20 as well, so importing new versions would require to package/import from elsewhere node22 or node24 (and npm), something that we'd rather not do because of the added complexity. As far as I can see node 20 is marked in maintenance mode (critical security bugs and features only) until April 2026, so it should be good for our use cases unless something like LTS is needed. Is there a specific use case to jump to node 22/24 that could warrant importing/building custom nodejs packages?
Change #1182835 had a related patch set uploaded (by Muehlenhoff; author: Muehlenhoff):
[operations/puppet@production] Add repository sync definition for node 22
For the node images we also use the vendor debs, I made a patch at https://gerrit.wikimedia.org/r/c/operations/puppet/+/1182835I'd be happy to take this on.
However, given that we have local apt builds for the packages, is it possible for any non-SRE to do this work?
@Jdforrester-WMF With the update definition above it's mostly a matter of re-importing current binaries after Node security releases. I can take care of this, I'm keeping an eye on these anyway, the issue is rather this needs some involvement by someone who actually uses these images, so that we notice errors etc.
Change #1182837 had a related patch set uploaded (by Jforrester; author: Jforrester):
[operations/docker-images/production-images@master] Provide Node 22 image, using thirdparty/node22
Change #1182835 merged by Muehlenhoff:
[operations/puppet@production] Add repository sync definition for node 22
@Jdforrester-WMF: I've imported the new nodejs deb to the thirdparty/node22 and updated r1182837 to reflect the new apt source base base image. Could you also quickly doublecheck, then'd go ahead and merge and we'll have the new image available on Monday after the weekly rebuild happening Monday night.
Change #1182837 merged by Muehlenhoff:
[operations/docker-images/production-images@master] Provide Node 22 image, using thirdparty/node22, based on Trixie
Change #1194968 had a related patch set uploaded (by Jgiannelos; author: Jgiannelos):
[mediawiki/services/wikifeeds@master] Bump base image to node 22
Change #1194966 had a related patch set uploaded (by Jgiannelos; author: Jgiannelos):
[mediawiki/services/mobileapps@master] Bump base image to node 22
Change #1194965 had a related patch set uploaded (by Jgiannelos; author: Jgiannelos):
[mediawiki/services/chromium-render@master] Bump base image to node 22