Skip to content

Commit 83c7548

Browse files
Resolve ubuntu2404 agents startup issues on EC2 (#533)
* Resolve ubuntu2404 agents startup issues on EC2 Signed-off-by: Peter Zhu <zhujiaxi@amazon.com> * Resolve ubuntu2404 agents startup issues on EC2 Signed-off-by: Peter Zhu <zhujiaxi@amazon.com> --------- Signed-off-by: Peter Zhu <zhujiaxi@amazon.com>
1 parent acd4205 commit 83c7548

File tree

3 files changed

+29
-20
lines changed

3 files changed

+29
-20
lines changed

lib/compute/agent-nodes.ts

+20-3
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@ export class AgentNodes {
2828

2929
readonly UBUNTU2004_X64_GRADLE_CHECK: AgentNodeProps;
3030

31-
readonly UBUNTU2004_X64_DOCKER_BUILDER: AgentNodeProps;
31+
readonly UBUNTU2404_X64_GRADLE_CHECK: AgentNodeProps;
32+
33+
readonly UBUNTU2404_X64_DOCKER_BUILDER: AgentNodeProps;
3234

3335
readonly MACOS13_X64_MULTI_HOST: AgentNodeProps;
3436

@@ -158,10 +160,25 @@ export class AgentNodes {
158160
+ ' sudo update-alternatives --set "java" "/usr/lib/jvm/temurin-21-jdk-amd64/bin/java" && java -version',
159161
remoteFs: '/var/jenkins',
160162
};
161-
this.UBUNTU2004_X64_DOCKER_BUILDER = {
163+
this.UBUNTU2404_X64_GRADLE_CHECK = {
164+
agentType: 'unix',
165+
customDeviceMapping: '/dev/sda1=:300:true:::encrypted',
166+
workerLabelString: ['Jenkins-Agent-Ubuntu2404-X64-M58xlarge-Single-Host', 'gradle'],
167+
instanceType: 'M58xlarge',
168+
remoteUser: 'ubuntu',
169+
maxTotalUses: 1,
170+
minimumNumberOfSpareInstances: 1,
171+
numExecutors: 1,
172+
amiId: 'ami-0cdc3fd42e6dc728c',
173+
initScript: 'sudo apt-mark hold docker docker.io openssh-server gh grub-efi* shim-signed && docker ps &&'
174+
+ ' sudo apt-get update -y && (sudo killall -9 apt-get apt 2>&1 || echo) && sudo env "DEBIAN_FRONTEND=noninteractive" apt-get upgrade -y &&'
175+
+ ' sudo update-alternatives --set "java" "/usr/lib/jvm/temurin-21-jdk-amd64/bin/java" && java -version',
176+
remoteFs: '/var/jenkins',
177+
};
178+
this.UBUNTU2404_X64_DOCKER_BUILDER = {
162179
agentType: 'unix',
163180
customDeviceMapping: '/dev/sda1=:300:true:::encrypted',
164-
workerLabelString: ['Jenkins-Agent-Ubuntu2004-X64-M52xlarge-Docker-Builder', 'BTR'],
181+
workerLabelString: ['Jenkins-Agent-Ubuntu2404-X64-M52xlarge-Docker-Builder', 'BTR'],
165182
instanceType: 'M52xlarge',
166183
remoteUser: 'ubuntu',
167184
maxTotalUses: 10,

packer/scripts/ubuntu/ubuntu2404-agent-setups.sh

+7-15
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ set -ex
1111
whoami
1212
export DEBIAN_FRONTEND=noninteractive
1313

14-
sudo apt-get update -y && sudo apt-get upgrade -y && sudo apt-get install -y software-properties-common && sudo add-apt-repository ppa:deadsnakes/ppa -y
14+
sudo apt-get update -y && sudo apt-get upgrade -y
1515
sudo apt-get update -y && sudo apt-get install -y binfmt-support qemu-system qemu-system-common qemu-user qemu-user-static
16-
sudo apt-get install -y docker.io=24.0.7* docker-compose ntp curl git gnupg2 tar zip unzip jq pigz
16+
sudo apt-get install -y docker.io=24.0.7* docker-compose ntp curl git gnupg2 tar zip unzip jq pigz python3.12-full python3.12-dev
1717
sudo apt-get install -y build-essential
1818

1919
sudo systemctl restart ntp && sudo systemctl enable ntp && sudo systemctl status ntp
@@ -57,20 +57,12 @@ sudo update-alternatives --set "java" "/usr/lib/jvm/temurin-21-jdk-amd64/bin/jav
5757
sudo update-alternatives --set "javac" "/usr/lib/jvm/temurin-21-jdk-amd64/bin/javac"
5858
java -version
5959

60-
sudo apt-mark hold docker.io openssh-server temurin-8-jdk temurin-11-jdk temurin-17-jdk temurin-21-jdk temurin-23-jdk
61-
sudo apt-get clean -y && sudo apt-get autoremove -y
62-
63-
# Move to bottom as python39 will break apt
6460
sudo apt-get update -y
65-
sudo apt-get install -y python3.9-full python3.9-dev
66-
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.12 1
67-
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.12 1
68-
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 100
69-
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 100
70-
sudo update-alternatives --set python3 /usr/bin/python3.9
71-
sudo update-alternatives --set python /usr/bin/python3.9
72-
curl -SL https://bootstrap.pypa.io/get-pip.py | sudo python3 -
73-
sudo pip3 install awscliv2==2.3.1 pipenv==2023.6.12
61+
sudo apt-get install -y mandoc less python3-pip pipenv
62+
sudo pip3 install awscliv2==2.3.1 --break-system-packages
7463
sudo ln -s `which awsv2` /usr/local/bin/aws
7564
sudo aws --install
7665
aws --install
66+
67+
sudo apt-mark hold docker.io openssh-server gh grub-efi* shim-signed temurin-8-jdk temurin-11-jdk temurin-17-jdk temurin-21-jdk temurin-23-jdk
68+
sudo apt-get clean -y && sudo apt-get autoremove -y

test/ci-stack.test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,7 @@ describe('AgentNodes', () => {
388388

389389
it('should exclude "default" keys when type is "BTR"', () => {
390390
const result = agentNodes.getRequiredAgentNodes('BTR');
391-
expect(result.length).toBe(14);
391+
expect(result.length).toBe(15);
392392
});
393393

394394
it('should return keys containing "benchmark" when type is "benchmark"', () => {
@@ -398,7 +398,7 @@ describe('AgentNodes', () => {
398398

399399
it('should return keys containing "gradle" when type is "gradle"', () => {
400400
const result = agentNodes.getRequiredAgentNodes('gradle');
401-
expect(result).toHaveLength(2);
401+
expect(result).toHaveLength(3);
402402
});
403403

404404
it('should return keys containing "default" when type is "default"', () => {

0 commit comments

Comments
 (0)