1919use 'partial/_get_package_version_rpm'
2020use 'partial/_common'
2121# use 'partial/_redhat_based'
22- use 'partial/_install_from_tar'
22+ # use 'partial/_install_from_tar'
2323use 'partial/_mount_umount'
2424
2525def 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)
3939def prerequisites
4040 %w( rpm-build make rust cargo openssl-devel )
4141end
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
0 commit comments