From 5aaebee0c82b09649e37fdaafd6ef5bdb212a41e Mon Sep 17 00:00:00 2001 From: Ryan Anderson Date: Wed, 15 Jan 2025 16:35:51 -0500 Subject: [PATCH] Use the latest version of amazon-efs-utils and move to 2.x --- .github/workflows/ci.yml | 4 ---- CHANGELOG.md | 1 + .../resources/efs/efs_alinux2.rb | 4 ++-- .../resources/efs/efs_alinux2023.rb | 2 +- .../resources/efs/efs_redhat8.rb | 4 ---- .../resources/efs/efs_rocky8.rb | 4 ---- .../resources/efs/partial/_common.rb | 4 ++-- .../resources/efs/partial/_debian.rb | 2 +- .../resources/efs/partial/_redhat_based.rb | 4 ++++ .../spec/unit/resources/efs_spec.rb | 8 ++++---- .../test/controls/efs_spec.rb | 4 ++-- kitchen.ec2.yml | 4 ++-- 12 files changed, 19 insertions(+), 26 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6a9b7c216f..9c7a153467 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -47,16 +47,12 @@ jobs: matrix: os: [ubuntu-latest] name: - - Python 3.7 Tests - Python 3.8 Tests - Python 3.9 Tests - Python 3.10 Tests - Python 3.10 Tests Coverage - Code Checks include: - - name: Python 3.7 Tests - python: 3.7 - toxenv: py37-nocov - name: Python 3.8 Tests python: 3.8 toxenv: py38-nocov diff --git a/CHANGELOG.md b/CHANGELOG.md index 3664fc0f0b..706f0b382c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ This file is used to list changes made in each version of the AWS ParallelCluste **CHANGES** - On Ubuntu 22.04, install the Nvidia driver with the same compiler version used to compile the kernel. - Upgrade `aws-cfn-bootstrap` to version 2.0-32. +- Upgrade amazon-efs-utils to version 2.1.0. 3.12.0 ------ diff --git a/cookbooks/aws-parallelcluster-environment/resources/efs/efs_alinux2.rb b/cookbooks/aws-parallelcluster-environment/resources/efs/efs_alinux2.rb index 718cc45e13..d2508a6ebc 100644 --- a/cookbooks/aws-parallelcluster-environment/resources/efs/efs_alinux2.rb +++ b/cookbooks/aws-parallelcluster-environment/resources/efs/efs_alinux2.rb @@ -20,12 +20,12 @@ action :install_utils do package_name = "amazon-efs-utils" - + full_package = "#{package_name}-#{new_resource.efs_utils_version}" # Do not install efs-utils if a same or newer version is already installed. return if already_installed?(package_name, new_resource.efs_utils_version) # On Amazon Linux 2, amazon-efs-utils and stunnel are installed from OS repo. - package package_name do + package full_package do retries 3 retry_delay 5 end diff --git a/cookbooks/aws-parallelcluster-environment/resources/efs/efs_alinux2023.rb b/cookbooks/aws-parallelcluster-environment/resources/efs/efs_alinux2023.rb index fbc5baa354..e09e7d0114 100644 --- a/cookbooks/aws-parallelcluster-environment/resources/efs/efs_alinux2023.rb +++ b/cookbooks/aws-parallelcluster-environment/resources/efs/efs_alinux2023.rb @@ -21,7 +21,7 @@ use 'partial/_mount_umount' action :install_utils do - package_name = "amazon-efs-utils" + package_name = "amazon-efs-utils-#{new_resource.efs_utils_version}" # Do not install efs-utils if a same or newer version is already installed. return if already_installed?(package_name, new_resource.efs_utils_version) diff --git a/cookbooks/aws-parallelcluster-environment/resources/efs/efs_redhat8.rb b/cookbooks/aws-parallelcluster-environment/resources/efs/efs_redhat8.rb index a0a905a3ae..b2ab45bc1b 100644 --- a/cookbooks/aws-parallelcluster-environment/resources/efs/efs_redhat8.rb +++ b/cookbooks/aws-parallelcluster-environment/resources/efs/efs_redhat8.rb @@ -21,7 +21,3 @@ use 'partial/_redhat_based' use 'partial/_install_from_tar' use 'partial/_mount_umount' - -def prerequisites - %w(rpm-build make) -end diff --git a/cookbooks/aws-parallelcluster-environment/resources/efs/efs_rocky8.rb b/cookbooks/aws-parallelcluster-environment/resources/efs/efs_rocky8.rb index 2924ff4fc7..992a34f932 100644 --- a/cookbooks/aws-parallelcluster-environment/resources/efs/efs_rocky8.rb +++ b/cookbooks/aws-parallelcluster-environment/resources/efs/efs_rocky8.rb @@ -21,7 +21,3 @@ use 'partial/_redhat_based' use 'partial/_install_from_tar' use 'partial/_mount_umount' - -def prerequisites - %w(rpm-build make) -end diff --git a/cookbooks/aws-parallelcluster-environment/resources/efs/partial/_common.rb b/cookbooks/aws-parallelcluster-environment/resources/efs/partial/_common.rb index 0fda17c5d7..368cfb383d 100644 --- a/cookbooks/aws-parallelcluster-environment/resources/efs/partial/_common.rb +++ b/cookbooks/aws-parallelcluster-environment/resources/efs/partial/_common.rb @@ -2,8 +2,8 @@ default_action :install_utils -property :efs_utils_version, String, default: '1.34.1' -property :efs_utils_checksum, String, default: '69d0d8effca3b58ccaf4b814960ec1d16263807e508b908975c2627988c7eb6c' +property :efs_utils_version, String, default: '2.1.0' +property :efs_utils_checksum, String, default: '2996bdd5387131d302310812fa1e07e1be00f80814a580f5dfeb27d68519fd24' def already_installed?(package_name, expected_version) Gem::Version.new(get_package_version(package_name)) >= Gem::Version.new(expected_version) diff --git a/cookbooks/aws-parallelcluster-environment/resources/efs/partial/_debian.rb b/cookbooks/aws-parallelcluster-environment/resources/efs/partial/_debian.rb index 192ea2a83a..4af4e52ddc 100644 --- a/cookbooks/aws-parallelcluster-environment/resources/efs/partial/_debian.rb +++ b/cookbooks/aws-parallelcluster-environment/resources/efs/partial/_debian.rb @@ -24,5 +24,5 @@ def install_script_code(efs_utils_tarball, efs_utils_package, efs_utils_version) end def prerequisites - %w(dkms) + %w(dkms pkg-config libssl-dev rustc cargo ) end diff --git a/cookbooks/aws-parallelcluster-environment/resources/efs/partial/_redhat_based.rb b/cookbooks/aws-parallelcluster-environment/resources/efs/partial/_redhat_based.rb index 205ef2e9e4..bc7887a5a7 100644 --- a/cookbooks/aws-parallelcluster-environment/resources/efs/partial/_redhat_based.rb +++ b/cookbooks/aws-parallelcluster-environment/resources/efs/partial/_redhat_based.rb @@ -22,3 +22,7 @@ def install_script_code(efs_utils_tarball, efs_utils_package, efs_utils_version) yum -y install ./build/#{efs_utils_package}*rpm EFSUTILSINSTALL end + +def prerequisites + %w(rpm-build make rust cargo openssl-devel) +end diff --git a/cookbooks/aws-parallelcluster-environment/spec/unit/resources/efs_spec.rb b/cookbooks/aws-parallelcluster-environment/spec/unit/resources/efs_spec.rb index db71009123..f1ef2048ef 100644 --- a/cookbooks/aws-parallelcluster-environment/spec/unit/resources/efs_spec.rb +++ b/cookbooks/aws-parallelcluster-environment/spec/unit/resources/efs_spec.rb @@ -62,7 +62,7 @@ def mock_already_installed(package, expected_version, installed) it 'installs amazon-efs-utils' do is_expected.to install_utils_efs('install_utils') - is_expected.to install_package('amazon-efs-utils').with(retries: 3).with(retry_delay: 5) + is_expected.to install_package('amazon-efs-utils-1.2.3').with(retries: 3).with(retry_delay: 5) end end @@ -73,7 +73,7 @@ def mock_already_installed(package, expected_version, installed) end it 'installs amazon-efs-utils' do - is_expected.to install_package('amazon-efs-utils').with(retries: 3).with(retry_delay: 5) + is_expected.to install_package('amazon-efs-utils-1.2.3').with(retries: 3).with(retry_delay: 5) end end end @@ -179,8 +179,8 @@ def mock_already_installed(package, expected_version, installed) end cached(:required_packages) do { - "redhat" => %w(rpm-build make), - "rocky" => %w(rpm-build make), + "redhat" => %w(rpm-build make rust cargo openssl-devel), + "rocky" => %w(rpm-build make rust cargo openssl-devel), } end diff --git a/cookbooks/aws-parallelcluster-environment/test/controls/efs_spec.rb b/cookbooks/aws-parallelcluster-environment/test/controls/efs_spec.rb index 4c0d905503..b6732d0086 100644 --- a/cookbooks/aws-parallelcluster-environment/test/controls/efs_spec.rb +++ b/cookbooks/aws-parallelcluster-environment/test/controls/efs_spec.rb @@ -4,9 +4,9 @@ only_if { !os_properties.redhat_on_docker? } - describe file("#{node['cluster']['sources_dir']}/efs-utils-1.34.1.tar.gz") do + describe file("#{node['cluster']['sources_dir']}/efs-utils-2.1.0.tar.gz") do it { should exist } - its('sha256sum') { should eq '69d0d8effca3b58ccaf4b814960ec1d16263807e508b908975c2627988c7eb6c' } + its('sha256sum') { should eq '2996bdd5387131d302310812fa1e07e1be00f80814a580f5dfeb27d68519fd24' } its('owner') { should eq 'root' } its('group') { should eq 'root' } its('mode') { should cmp '0644' } diff --git a/kitchen.ec2.yml b/kitchen.ec2.yml index 6e0df779b4..4e9b4eebce 100644 --- a/kitchen.ec2.yml +++ b/kitchen.ec2.yml @@ -245,7 +245,7 @@ platforms: image_id: <%= ENV['KITCHEN_UBUNTU2004_AMI'] %> <% else %> image_search: - name: <% if ENV['KITCHEN_PHASE']=='install' %>ubuntu/images/hvm-ssd/ubuntu-focal-20.04-<% if ENV['KITCHEN_ARCHITECTURE'] == 'x86_64' %>amd64<% else %>arm64<% end %>-server-20230112<% else %><%= pcluster_prefix %>-ubuntu-2004-lts-hvm-*<% end %> + name: <% if ENV['KITCHEN_PHASE']=='install' %>ubuntu/images/hvm-ssd/ubuntu-focal-20.04-<% if ENV['KITCHEN_ARCHITECTURE'] == 'x86_64' %>amd64<% else %>arm64<% end %>-server-<% else %><%= pcluster_prefix %>-ubuntu-2004-lts-hvm-*<% end %> architecture: <%= ENV['KITCHEN_ARCHITECTURE'] %> <% end %> block_device_mappings: @@ -271,7 +271,7 @@ platforms: image_id: <%= ENV['KITCHEN_UBUNTU2204_AMI'] %> <% else %> image_search: - name: <% if ENV['KITCHEN_PHASE']=='install' %>ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-<% if ENV['KITCHEN_ARCHITECTURE'] == 'x86_64' %>amd64<% else %>arm64<% end %>-server-20230106<% else %><%= pcluster_prefix %>-ubuntu-2204-lts-hvm-*<% end %> + name: <% if ENV['KITCHEN_PHASE']=='install' %>ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-<% if ENV['KITCHEN_ARCHITECTURE'] == 'x86_64' %>amd64<% else %>arm64<% end %>-server-<% else %><%= pcluster_prefix %>-ubuntu-2204-lts-hvm-*<% end %> architecture: <%= ENV['KITCHEN_ARCHITECTURE'] %> <% end %> block_device_mappings: