Page MenuHomePhabricator

toolforge: Provide a node 16 image
Closed, ResolvedPublic

Description

Nodejs 12, shipped in Debian Bullseye, went end of life in April 2022. While we still have security support from Debian, many libraries are already dropping support making development rather difficult. Bookworm (bullseye+1) will likely be shipping Nodejs 18, but that's still probably at least a year away. Similar to T306996 I propose creating a Bullseye based image that ships Node 16 from Nodesource. This ensures that once Bookworm is released we'll have an upgrade path to 18 and can start pushing people off the 16 image.

Event Timeline

Change 806266 had a related patch set uploaded (by Majavah; author: Majavah):

[operations/docker-images/toollabs-images@master] Provide a nodejs16 image based on Bullseye and Nodesource

https://gerrit.wikimedia.org/r/806266

Slightly off-topic, but an image with nvm installed would be really nice, and would let end-users select a local Node version?

Slightly off-topic, but an image with nvm installed would be really nice, and would let end-users select a local Node version?

According to k8s-status.t.o it can be achieved. At least one pod does that right now. https://k8s-status.toolforge.org/namespaces/tool-wmgmc/pods/bridge-84cd46597d-shsrx/

Can we target node18 instead? According to https://nodejs.org/en/about/releases/ it will become the active LTS soon, and then end of life in 2025.

Can we target node18 instead? According to https://nodejs.org/en/about/releases/ it will become the active LTS soon, and then end of life in 2025.

As I wrote in the task description, I'd prefer to offer Node 16 with the nodesource repos since those have a much shorter support lifespan than Debian does. This ensures that once Debian 12 comes out we have a new Node version that we can push people off from the 16 nodesource image.

@taavi we discussed this briefly in the weekly team meeting, I'll have a look at this before the end of the week. I might ping you on IRC for more context. :)

@taavi I was thinking of users who will want to remain on bullseye. If I'm understanding you correctly, the intent is to remove bullseye + node16 option once bookworm + node18 is released?

Change 818474 had a related patch set uploaded (by FNegri; author: FNegri):

[operations/docker-images/toollabs-images@master] Add node16 base and web images

https://gerrit.wikimedia.org/r/818474

I attempted a patch, but I'm probably missing a few things on how this all works :)

I went with Node 16 as it means we can reuse the WMF APT packages that were added in https://gerrit.wikimedia.org/r/c/operations/docker-images/production-images/+/790264

Oops completely missed @taavi had already added a patch for this task :facepalm:
If anything the two patches look very similar! 😄

@nskaggs are you ok with merging @taavi's patch, that was also +1'd by @bd808?

Re: Node 16 vs 18, I personally see two reasons to go with 16:

Yes, happy to move forward with 16. I just wanted to understand expectations on bullseye. Thanks!

Yes, happy to move forward with 16.

I will +2 @taavi's patch then, I'll do this on Monday as I'm logging off shortly.

the intent is to remove bullseye + node16 option once bookworm + node18 is released?

This sounds like a good plan to me.

Change 818474 abandoned by FNegri:

[operations/docker-images/toollabs-images@master] Add node16 base and web images

Reason:

There's already a better patch for this

https://gerrit.wikimedia.org/r/818474

Change 806266 merged by jenkins-bot:

[operations/docker-images/toollabs-images@master] Provide a nodejs16 image based on Bullseye and Nodesource

https://gerrit.wikimedia.org/r/806266

Change 819091 had a related patch set uploaded (by FNegri; author: FNegri):

[operations/software/tools-webservice@master] Add new Node16 image

https://gerrit.wikimedia.org/r/819091

Change 819091 merged by jenkins-bot:

[operations/software/tools-webservice@master] Add new Node16 image

https://gerrit.wikimedia.org/r/819091

Change 820078 had a related patch set uploaded (by FNegri; author: FNegri):

[cloud/toolforge/jobs-framework-api@main] Add node16 to jobs-api images

https://gerrit.wikimedia.org/r/820078

Change 820078 merged by jenkins-bot:

[cloud/toolforge/jobs-framework-api@main] Add node16 to jobs-api images

https://gerrit.wikimedia.org/r/820078