Skip to content

Commit 38a7577

Browse files
committed
[Isolated] Install new node pypi dependencies and move efs-proxy installation
1 parent fc056aa commit 38a7577

File tree

4 files changed

+81
-30
lines changed

4 files changed

+81
-30
lines changed

cookbooks/aws-parallelcluster-computefleet/recipes/install/custom_parallelcluster_node.rb

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,16 @@
2525
command = "pip install ."
2626
end
2727

28-
if aws_region.start_with?("us-iso") && platform?('amazon') && node['platform_version'] == "2"
28+
if aws_region.start_with?("us-iso")
29+
dependency_package_name = "pypi-node-dependencies-#{node['cluster']['python-major-minor-version']}-#{node['kernel']['machine']}"
30+
dependency_folder_name = dependency_package_name
31+
if platform?('amazon') && node['platform_version'] == "2"
32+
dependency_package_name = "node-dependencies"
33+
dependency_folder_name = "node"
34+
end
35+
2936
remote_file "#{node['cluster']['base_dir']}/node-dependencies.tgz" do
30-
source "#{node['cluster']['artifacts_s3_url']}/dependencies/PyPi/#{node['kernel']['machine']}/node-dependencies.tgz"
37+
source "#{node['cluster']['artifacts_s3_url']}/dependencies/PyPi/#{node['kernel']['machine']}/#{dependency_package_name}.tgz"
3138
mode '0644'
3239
retries 3
3340
retry_delay 5
@@ -41,7 +48,7 @@
4148
code <<-REQ
4249
set -e
4350
tar xzf node-dependencies.tgz
44-
cd node
51+
cd #{dependency_folder_name}
4552
#{node_virtualenv_path}/bin/pip install * -f ./ --no-index
4653
REQ
4754
end

cookbooks/aws-parallelcluster-environment/resources/efs/efs_redhat8.rb

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
use 'partial/_get_package_version_rpm'
2020
use 'partial/_common'
2121
# use 'partial/_redhat_based'
22-
use 'partial/_install_from_tar'
22+
# use 'partial/_install_from_tar'
2323
use 'partial/_mount_umount'
2424

2525
def install_script_code(efs_utils_tarball, efs_utils_package, efs_utils_version)
@@ -39,3 +39,59 @@ def install_script_code(efs_utils_tarball, efs_utils_package, efs_utils_version)
3939
def prerequisites
4040
%w(rpm-build make rust cargo openssl-devel)
4141
end
42+
43+
action :install_utils do
44+
package_repos 'update package repositories' do
45+
action :update
46+
end
47+
48+
package prerequisites do
49+
retries 3
50+
retry_delay 5
51+
end
52+
53+
directory node['cluster']['sources_dir'] do
54+
recursive true
55+
end
56+
57+
return if redhat_on_docker?
58+
59+
package_name = "amazon-efs-utils"
60+
package_version = new_resource.efs_utils_version
61+
efs_utils_tarball = "#{node['cluster']['sources_dir']}/efs-utils-#{package_version}.tar.gz"
62+
efs_utils_url = "#{node['cluster']['artifacts_s3_url']}/dependencies/efs/v#{package_version}.tar.gz"
63+
64+
# Do not install efs-utils if a same or newer version is already installed.
65+
return if already_installed?(package_name, package_version)
66+
67+
# On all OSes but Amazon Linux 2, amazon-efs-utils and stunnel are installed from source,
68+
# because their OS repos do not have amazon-efs-utils and new stunnel
69+
70+
# Get EFS Utils tarball
71+
remote_file efs_utils_tarball do
72+
source efs_utils_url
73+
mode '0644'
74+
retries 3
75+
retry_delay 5
76+
checksum new_resource.efs_utils_checksum
77+
action :create_if_missing
78+
end
79+
80+
efs_proxy_deps = "efs-proxy-dependencies-#{package_version}.tar.gz"
81+
efs_proxy_deps_tarball = "#{node['cluster']['sources_dir']}/#{efs_proxy_deps}"
82+
efs_proxy_deps_url = "#{node['cluster']['artifacts_s3_url']}/dependencies/efs/#{efs_proxy_deps}"
83+
remote_file efs_proxy_deps_tarball do
84+
source efs_proxy_deps_url
85+
mode '0644'
86+
retries 3
87+
retry_delay 5
88+
action :create_if_missing
89+
end
90+
91+
# Install EFS Utils following https://docs.aws.amazon.com/efs/latest/ug/installing-amazon-efs-utils.html
92+
bash "install efs utils" do
93+
cwd node['cluster']['sources_dir']
94+
code install_script_code(efs_utils_tarball, package_name, package_version)
95+
end
96+
action_increase_poll_interval
97+
end

cookbooks/aws-parallelcluster-environment/resources/efs/partial/_install_from_tar.rb

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -50,20 +50,6 @@
5050
action :create_if_missing
5151
end
5252

53-
if aws_region.start_with?("us-iso") && platform?('redhat') && node['platform_version'] == "8"
54-
efs_proxy_deps = "efs-proxy-dependencies-#{package_version}.tar.gz"
55-
efs_proxy_deps_tarball = "#{node['cluster']['sources_dir']}/#{efs_proxy_deps}"
56-
efs_proxy_deps_url = "#{node['cluster']['artifacts_s3_url']}/dependencies/efs/#{efs_proxy_deps}"
57-
remote_file efs_proxy_deps_tarball do
58-
source efs_proxy_deps_url
59-
mode '0644'
60-
retries 3
61-
retry_delay 5
62-
checksum new_resource.efs_utils_checksum
63-
action :create_if_missing
64-
end
65-
end
66-
6753
# Install EFS Utils following https://docs.aws.amazon.com/efs/latest/ug/installing-amazon-efs-utils.html
6854
bash "install efs utils" do
6955
cwd node['cluster']['sources_dir']

cookbooks/aws-parallelcluster-platform/recipes/install/cookbook_virtualenv.rb

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -33,22 +33,24 @@
3333
not_if { ::File.exist?("#{cookbook_virtualenv_path}/bin/activate") }
3434
end
3535

36-
remote_file "#{node['cluster']['base_dir']}/cookbook-dependencies.tgz" do
37-
source pypi_s3_uri
38-
mode '0644'
39-
retries 3
40-
retry_delay 5
41-
action :create_if_missing
42-
end
36+
if aws_region.start_with?("us-iso")
37+
remote_file "#{node['cluster']['base_dir']}/cookbook-dependencies.tgz" do
38+
source pypi_s3_uri
39+
mode '0644'
40+
retries 3
41+
retry_delay 5
42+
action :create_if_missing
43+
end
4344

44-
bash 'pip install' do
45-
user 'root'
46-
group 'root'
47-
cwd "#{node['cluster']['base_dir']}"
48-
code <<-REQ
45+
bash 'pip install' do
46+
user 'root'
47+
group 'root'
48+
cwd "#{node['cluster']['base_dir']}"
49+
code <<-REQ
4950
set -e
5051
tar xzf cookbook-dependencies.tgz
5152
cd #{dependency_package_name}
5253
#{virtualenv_path}/bin/pip install * -f ./ --no-index
5354
REQ
55+
end
5456
end

0 commit comments

Comments
 (0)