Skip to content

Commit 0b72979

Browse files
authored
Add support for Ubuntu24 (#2880)
1 parent c2541d5 commit 0b72979

File tree

11 files changed

+80
-9
lines changed

11 files changed

+80
-9
lines changed

.github/workflows/dokken-system-tests.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ jobs:
3333
- alinux-2023
3434
- ubuntu2004
3535
- ubuntu2204
36+
- ubuntu2404
3637
- rhel8
3738
- rocky8
3839
- rhel9

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ This file is used to list changes made in each version of the AWS ParallelCluste
55

66
3.13.0
77
------
8+
**ENHANCEMENTS**
9+
- Add support for Ubuntu24.
810

911
**CHANGES**
1012
- On Ubuntu 22.04, install the Nvidia driver with the same compiler version used to compile the kernel.

cookbooks/aws-parallelcluster-environment/test/controls/lustre_spec.rb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
end
2828
end
2929

30-
if os_properties.redhat? && inspec.os.release.to_f >= 8.2 && !os_properties.on_docker?
30+
if os_properties.redhat? && inspec.os.release.to_f >= 8.2 && !os_properties.on_docker? && !os_properties.ubuntu2404?
3131
# TODO: restore installation and check on docker when Lustre is available for RH8.9
3232
# See: https://docs.aws.amazon.com/fsx/latest/LustreGuide/install-lustre-client.html
3333
unless inspec.os.release.to_f == 8.7 && (node['cluster']['kernel_release'].include?("4.18.0-425.3.1.el8") || node['cluster']['kernel_release'].include?("4.18.0-425.13.1.el8_7"))
@@ -55,7 +55,7 @@
5555
end
5656
end
5757

58-
if os_properties.debian_family?
58+
if os_properties.debian_family? && !os_properties.ubuntu2404?
5959
describe apt('https://fsx-lustre-client-repo.s3.amazonaws.com/ubuntu') do
6060
it { should exist }
6161
it { should be_enabled }
@@ -89,7 +89,7 @@
8989

9090
control 'tag:install_lustre_lnet_kernel_module_enabled' do
9191
title "Verify that lnet kernel module is enabled"
92-
only_if { !os_properties.on_docker? && !os_properties.alinux? }
92+
only_if { !os_properties.on_docker? && !os_properties.alinux? && !os_properties.ubuntu2404? }
9393
describe kernel_module("lnet") do
9494
it { should be_loaded }
9595
it { should_not be_disabled }
@@ -98,15 +98,15 @@
9898
end
9999

100100
control 'lustre_mounted' do
101-
only_if { !os_properties.on_docker? }
101+
only_if { !os_properties.on_docker? && !os_properties.ubuntu2404? }
102102
describe mount('/shared_dir') do
103103
it { should be_mounted }
104104
its('type') { should eq 'lustre' }
105105
end
106106
end
107107

108108
control 'lustre_unmounted' do
109-
only_if { !os_properties.on_docker? }
109+
only_if { !os_properties.on_docker? && !os_properties.ubuntu2404? }
110110

111111
describe mount('/shared_dir') do
112112
it { should_not be_mounted }

cookbooks/aws-parallelcluster-platform/files/dcv/pcluster_dcv_connect.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ main() {
112112
os=$(< /etc/chef/dna.json jq -r .cluster.base_os)
113113
_log "Input parameters: user: ${user}, OS: ${os}, shared_folder_path: ${shared_folder_path}."
114114

115-
if ! [[ "${os}" =~ ^(alinux2|alinux2023|ubuntu2004|ubuntu2204|rhel8|rocky8|rhel9|rocky9)$ ]]; then
115+
if ! [[ "${os}" =~ ^(alinux2|alinux2023|ubuntu2004|ubuntu2204|ubuntu2404|rhel8|rocky8|rhel9|rocky9)$ ]]; then
116116
_fail "OS not supported."
117117
fi
118118

cookbooks/aws-parallelcluster-platform/resources/arm_pl/arm_pl_ubuntu22.rb renamed to cookbooks/aws-parallelcluster-platform/resources/arm_pl/arm_pl_ubuntu22+.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# See the License for the specific language governing permissions and limitations under the License.
1414

1515
provides :arm_pl, platform: 'ubuntu' do |node|
16-
node['platform_version'].to_i == 22
16+
node['platform_version'].to_i >= 22
1717
end
1818

1919
use 'partial/_arm_pl_common.rb'
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# frozen_string_literal: true
2+
3+
#
4+
# Copyright:: 2025 Amazon.com, Inc. or its affiliates. All Rights Reserved.
5+
#
6+
# Licensed under the Apache License, Version 2.0 (the "License").
7+
# You may not use this file except in compliance with the License.
8+
# A copy of the License is located at
9+
#
10+
# http://aws.amazon.com/apache2.0/
11+
#
12+
# or in the "LICENSE.txt" file accompanying this file.
13+
# This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, express or implied.
14+
# See the License for the specific language governing permissions and limitations under the License
15+
provides :dcv, platform: 'ubuntu' do |node|
16+
node['platform_version'].to_i == 24
17+
end
18+
19+
use 'partial/_dcv_common'
20+
use 'partial/_ubuntu_common'
21+
22+
def dcv_sha256sum
23+
if arm_instance?
24+
'95e4a364a78de6febbdeb877febd998099f59fbb4c4226fe6dd27fa4b5afc809'
25+
else
26+
'2cebf01c1fb5389d349ba22fdd8a85dec179bbf24c86f252535e8da43fb4c705'
27+
end
28+
end
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@
1212
# This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, express or implied.
1313
# See the License for the specific language governing permissions and limitations under the License.
1414

15-
provides :install_packages, platform: 'ubuntu', platform_version: '22.04'
15+
provides :install_packages, platform: 'ubuntu' do |node|
16+
node['platform_version'].to_i >= 22
17+
end
1618
unified_mode true
1719
default_action :setup
1820

cookbooks/aws-parallelcluster-platform/resources/nvidia_driver/nvidia_driver_ubuntu22.rb renamed to cookbooks/aws-parallelcluster-platform/resources/nvidia_driver/nvidia_driver_ubuntu22+.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# See the License for the specific language governing permissions and limitations under the License.
1414

1515
provides :nvidia_driver, platform: 'ubuntu' do |node|
16-
node['platform_version'].to_i == 22
16+
node['platform_version'].to_i >= 22
1717
end
1818

1919
use 'partial/_nvidia_driver_common.rb'

cookbooks/aws-parallelcluster-shared/test/libraries/os_properties.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,10 @@ def ubuntu2204?
7272
inspec.os.name == 'ubuntu' && inspec.os.release == '22.04'
7373
end
7474

75+
def ubuntu2404?
76+
inspec.os.name == 'ubuntu' && inspec.os.release == '24.04'
77+
end
78+
7579
def debian_family?
7680
inspec.os.family == 'debian'
7781
end

kitchen.docker.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,14 @@ platforms:
6060
base_os: ubuntu2204
6161
# Since the kernel version of the docker images is not compatible (6.2.0-1016-azure), set a fake kernel value to permit to install Lustre on docker.
6262
kernel_release: '5.15.0-1028-aws'
63+
- name: ubuntu2404
64+
driver:
65+
image: <% if ENV['KITCHEN_UBUNTU2404_IMAGE'] %> <%= ENV['KITCHEN_UBUNTU2404_IMAGE'] %> <% else %> dokken/ubuntu-24.04 <% end %>
66+
attributes:
67+
cluster:
68+
base_os: ubuntu2404
69+
# Since the kernel version of the docker images is not compatible (6.2.0-1016-azure), set a fake kernel value to permit to install Lustre on docker.
70+
kernel_release: '5.15.0-1028-aws'
6371
- name: rhel8
6472
driver:
6573
image: <% if ENV['KITCHEN_RHEL8_IMAGE'] %> <%= ENV['KITCHEN_RHEL8_IMAGE'] %> <% else %> registry.access.redhat.com/ubi8/ubi <% end %>

0 commit comments

Comments
 (0)