From: Tom Hughes Date: Tue, 28 Nov 2023 10:20:02 +0000 (+0000) Subject: Merge remote-tracking branch 'github/pull/641' X-Git-Url: https://git.openstreetmap.org./chef.git/commitdiff_plain/e7687ba5011277801d8f0bc433fe192ba9c69ccc?hp=f94d1315455b16eb09dcb36b72ca4ef5a3ca686c Merge remote-tracking branch 'github/pull/641' --- diff --git a/.github/workflows/test-kitchen.yml b/.github/workflows/test-kitchen.yml index 1b8541af5..12502a628 100644 --- a/.github/workflows/test-kitchen.yml +++ b/.github/workflows/test-kitchen.yml @@ -25,6 +25,7 @@ jobs: - bind - blog - blogs + - chef - civicrm - clamav - community diff --git a/.kitchen.yml b/.kitchen.yml index 8fdc7b781..cb1c2ffde 100644 --- a/.kitchen.yml +++ b/.kitchen.yml @@ -86,6 +86,9 @@ suites: - name: blogs run_list: - recipe[blogs::default] + - name: chef + run_list: + - recipe[chef::default] - name: civicrm run_list: - recipe[civicrm::default] diff --git a/cookbooks/chef/recipes/default.rb b/cookbooks/chef/recipes/default.rb index 99f665541..60511bf16 100644 --- a/cookbooks/chef/recipes/default.rb +++ b/cookbooks/chef/recipes/default.rb @@ -33,6 +33,18 @@ chef_arch = if arm? "amd64" end +os_release = if platform?("debian") && node[:lsb][:release].to_f > 11 + 11 + else + node[:lsb][:release] + end + +# Chef is currently not available for Debian 11 on arm64. +if chef_platform == "debian" && os_release == 11 && chef_arch == "arm64" + chef_platform = "ubuntu" + os_release = "22.04" +end + chef_package = "chef_#{chef_version}-1_#{chef_arch}.deb" directory "/var/cache/chef" do @@ -49,12 +61,6 @@ Dir.glob("#{cache_dir}/chef_*.deb").each do |deb| end end -os_release = if platform?("debian") && node[:lsb][:release].to_f > 11 - 11 - else - node[:lsb][:release] - end - remote_file "#{cache_dir}/#{chef_package}" do source "https://packages.chef.io/files/stable/chef/#{chef_version}/#{chef_platform}/#{os_release}/#{chef_package}" owner "root" diff --git a/test/integration/chef/inspec/chef_spec.rb b/test/integration/chef/inspec/chef_spec.rb new file mode 100644 index 000000000..b1abdc0e7 --- /dev/null +++ b/test/integration/chef/inspec/chef_spec.rb @@ -0,0 +1,17 @@ +describe package("chef") do + it { should be_installed } +end + +describe systemd_service("chef-client") do + it { should be_installed } +end + +describe systemd_service("chef-client.timer") do + it { should be_installed } + it { should be_enabled } +end + +describe command("chef-client --version") do + its("exit_status") { should eq 0 } + its("stdout") { should match /Chef Infra Client/ } +end