Skip to content
This repository has been archived by the owner on Jan 21, 2024. It is now read-only.

feat(Linux): switch supported architectures to GA Temurin jdk21 images #436

Conversation

lemeurherve
Copy link
Member

@lemeurherve lemeurherve commented Oct 22, 2023

Follow-up of jenkinsci/docker-agent#521

Needs #437 and the subsequent updatecli PR updating parent image version in Dockerfiles.

EDIT: cherry-picked corresponding changes.

Testing done

https://ci.jenkins.io/job/Packaging/job/docker-inbound-agent/job/PR-436/13/

Submitter checklist

@lemeurherve lemeurherve force-pushed the feat-switch-to-official-ga-jdk21-temurin-images branch from 04fde2c to 9bc125c Compare October 22, 2023 19:33
@lemeurherve lemeurherve marked this pull request as ready for review October 22, 2023 19:36
@lemeurherve lemeurherve requested a review from a team as a code owner October 22, 2023 19:36
@lemeurherve lemeurherve marked this pull request as draft October 22, 2023 19:37
Made with ❤️️ by updatecli, rebased by lemeurherve
@lemeurherve
Copy link
Member Author

lemeurherve commented Oct 22, 2023

Cherry-picked #438 #440

lemeurherve and others added 2 commits October 22, 2023 22:35
…21_preview target in docker-bake so this target is picked up by the Makefile"

This reverts commit 055ae83.
@lemeurherve
Copy link
Member Author

lemeurherve commented Oct 22, 2023

I had to revert 055ae83 as the jdk21-preview parent image doesn't include these architectures: https://hub.docker.com/layers/jenkins/agent/3180.v3dd999d24861-2-jdk21-preview/images/sha256-bede7232308fb7fe5432bc5cf72a58623676b3e01471f5ff965ef1dd3e8109ff?context=explore, which has for immediate result the fact the debian_jdk_21_image target isn't built anymore in this PR.

To build this debian_jdk_21_preview image in builds, more modifications to the Makefile are required to include architectures other than linux/amd64 & linux/arm64. Something like we've already discussed with @dduportal, building each Linux variant on its own agent with corresponding architecture. (somehow like what's done for Windows images)

@lemeurherve
Copy link
Member Author

Another easier (?) solution while we're keeping preview images with EA Temuring binaries would be to trigger another docker-agent release with its debian_jdk21_preview target also containing linux/md64 & linux/arm64 architectures.

@lemeurherve lemeurherve marked this pull request as ready for review October 22, 2023 21:18
@lemeurherve
Copy link
Member Author

Updatecli is failing because of 54b2e12, will be restored when merged.

Copy link
Contributor

@dduportal dduportal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@dduportal
Copy link
Contributor

I had to revert 055ae83 as the jdk21-preview parent image doesn't include these architectures: https://hub.docker.com/layers/jenkins/agent/3180.v3dd999d24861-2-jdk21-preview/images/sha256-bede7232308fb7fe5432bc5cf72a58623676b3e01471f5ff965ef1dd3e8109ff?context=explore, which has for immediate result the fact the debian_jdk_21_image target isn't built anymore in this PR.

To build this debian_jdk_21_preview image in builds, more modifications to the Makefile are required to include architectures other than linux/amd64 & linux/arm64. Something like we've already discussed with @dduportal, building each Linux variant on its own agent with corresponding architecture. (somehow like what's done for Windows images)

I'm not sure to understand what is the need to change Makefile?

As you underlined, the problem come from the parent repository not publishing the linux/amd64 and linux/arm64 21 preview images right?

@dduportal dduportal merged commit 7db9438 into jenkinsci:master Oct 23, 2023
9 of 10 checks passed
@lemeurherve lemeurherve deleted the feat-switch-to-official-ga-jdk21-temurin-images branch October 23, 2023 07:35
@lemeurherve
Copy link
Member Author

I had to revert 055ae83 as the jdk21-preview parent image doesn't include these architectures: https://hub.docker.com/layers/jenkins/agent/3180.v3dd999d24861-2-jdk21-preview/images/sha256-bede7232308fb7fe5432bc5cf72a58623676b3e01471f5ff965ef1dd3e8109ff?context=explore, which has for immediate result the fact the debian_jdk_21_image target isn't built anymore in this PR.
To build this debian_jdk_21_preview image in builds, more modifications to the Makefile are required to include architectures other than linux/amd64 & linux/arm64. Something like we've already discussed with @dduportal, building each Linux variant on its own agent with corresponding architecture. (somehow like what's done for Windows images)

I'm not sure to understand what is the need to change Makefile?

As you underlined, the problem come from the parent repository not publishing the linux/amd64 and linux/arm64 21 preview images right?

In the Makefile the list of images to build is retrieved by https://github.com/jenkinsci/docker-inbound-agent/blob/master/Makefile#L47-L48

This rule excludes the preview image. The easiest solution to build it is to reintroduce amd64/arm64 architectures in debian_jdk_21_preview image of docker-agent, the alternative would be to change this listing (maybe?)

@dduportal
Copy link
Contributor

I had to revert 055ae83 as the jdk21-preview parent image doesn't include these architectures: https://hub.docker.com/layers/jenkins/agent/3180.v3dd999d24861-2-jdk21-preview/images/sha256-bede7232308fb7fe5432bc5cf72a58623676b3e01471f5ff965ef1dd3e8109ff?context=explore, which has for immediate result the fact the debian_jdk_21_image target isn't built anymore in this PR.
To build this debian_jdk_21_preview image in builds, more modifications to the Makefile are required to include architectures other than linux/amd64 & linux/arm64. Something like we've already discussed with @dduportal, building each Linux variant on its own agent with corresponding architecture. (somehow like what's done for Windows images)

I'm not sure to understand what is the need to change Makefile?
As you underlined, the problem come from the parent repository not publishing the linux/amd64 and linux/arm64 21 preview images right?

In the Makefile the list of images to build is retrieved by https://github.com/jenkinsci/docker-inbound-agent/blob/master/Makefile#L47-L48

This rule excludes the preview image. The easiest solution to build it is to reintroduce amd64/arm64 architectures in debian_jdk_21_preview image of docker-agent, the alternative would be to change this listing (maybe?)

As discussed directly:

  • It looks like the docker bake's group linux does NOT have the 21_preview images. This group is used on ci.jenkins.io for the multi-arch "full bake build" (after the linux/amd64 are built and tested by Make) and is used on trusted.ci.jenkins.io for the real-life "build and deploy". It means the latest release might not be published for 21 preview (s390x/ppc/arm32) => fix is required on both jenkinsci/docker-agent and here with new releases.
  • It is absolutely acceptable to define a set of linux-<arch> including amd64 and arm64, and slightly update the Makefile to use them instead of the global linux
  • Long term: I propose that we simplify the equation and see if we can either remove of delete the Makefile in favor of docker buildx bake so that ci.jenkins.io would execute almost the same command as trusted.ci.jenkins.io

lemeurherve added a commit to lemeurherve/docker-agent that referenced this pull request Nov 28, 2023
…meurherve/feat-switch-to-official-ga-jdk21-temurin-images

feat(Linux): switch supported architectures to GA Temurin jdk21 images
lemeurherve added a commit to lemeurherve/docker-agent that referenced this pull request Nov 28, 2023
…meurherve/feat-switch-to-official-ga-jdk21-temurin-images

feat(Linux): switch supported architectures to GA Temurin jdk21 images
lemeurherve added a commit to lemeurherve/docker-agent that referenced this pull request Nov 28, 2023
…meurherve/feat-switch-to-official-ga-jdk21-temurin-images

feat(Linux): switch supported architectures to GA Temurin jdk21 images
lemeurherve added a commit to lemeurherve/docker-agent that referenced this pull request Nov 28, 2023
…meurherve/feat-switch-to-official-ga-jdk21-temurin-images

feat(Linux): switch supported architectures to GA Temurin jdk21 images
lemeurherve added a commit to lemeurherve/docker-agent that referenced this pull request Nov 28, 2023
…meurherve/feat-switch-to-official-ga-jdk21-temurin-images

feat(Linux): switch supported architectures to GA Temurin jdk21 images
lemeurherve added a commit to lemeurherve/docker-agent that referenced this pull request Nov 28, 2023
…meurherve/feat-switch-to-official-ga-jdk21-temurin-images

feat(Linux): switch supported architectures to GA Temurin jdk21 images
lemeurherve pushed a commit to lemeurherve/docker-agent that referenced this pull request Jan 12, 2024
…e/feat-switch-to-official-ga-jdk21-temurin-images

feat(Linux): switch supported architectures to GA Temurin jdk21 images
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants