diff options
author | Davin Taddeo <davin@chef.io> | 2020-06-03 14:15:04 -0400 |
---|---|---|
committer | Davin Taddeo <davin@chef.io> | 2020-06-03 14:15:04 -0400 |
commit | 921c1657abca0fa5661f91314b155c8d97ed954a (patch) | |
tree | 66574a39cdc11e0a2e5e3f96529f4847323cf749 | |
parent | 8d914c9cfa90d7e53207facda47275d3779e859d (diff) | |
parent | cb57400ec0048a162909875b769b7366cdd30204 (diff) | |
download | chef-921c1657abca0fa5661f91314b155c8d97ed954a.tar.gz |
Merge branch 'master' of github.com:chef/chef
19 files changed, 386 insertions, 133 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 51af06b5fb..5043702d28 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,15 +1,17 @@ <!-- usage documentation: http://expeditor-docs.es.chef.io/configuration/changelog/ --> -<!-- latest_release 16.2.8 --> -## [v16.2.8](https://github.com/chef/chef/tree/v16.2.8) (2020-05-29) +<!-- latest_release unreleased --> +## Unreleased #### Merged Pull Requests -- Update chef-telemetry to 1.0.8 and InSpec to 4.19 [#9934](https://github.com/chef/chef/pull/9934) ([tas50](https://github.com/tas50)) +- Add additional testing for macOS hosts [#9939](https://github.com/chef/chef/pull/9939) ([tas50](https://github.com/tas50)) <!-- latest_release --> <!-- release_rollup since=16.1.16 --> ### Changes not yet released to stable #### Merged Pull Requests +- Add additional testing for macOS hosts [#9939](https://github.com/chef/chef/pull/9939) ([tas50](https://github.com/tas50)) <!-- 16.2.9 --> +- Set up CI with Azure Pipelines [#9894](https://github.com/chef/chef/pull/9894) ([btm](https://github.com/btm)) <!-- 16.2.9 --> - Update chef-telemetry to 1.0.8 and InSpec to 4.19 [#9934](https://github.com/chef/chef/pull/9934) ([tas50](https://github.com/tas50)) <!-- 16.2.8 --> - hostname: Improve the windows reboot message [#9927](https://github.com/chef/chef/pull/9927) ([tas50](https://github.com/tas50)) <!-- 16.2.7 --> - hostname: Remove support for Solaris 5.10 [#9928](https://github.com/chef/chef/pull/9928) ([tas50](https://github.com/tas50)) <!-- 16.2.6 --> diff --git a/Gemfile.lock b/Gemfile.lock index 39b3e57d14..54728a14d4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -28,12 +28,12 @@ GIT PATH remote: . specs: - chef (16.2.8) + chef (16.2.9) addressable bcrypt_pbkdf (= 1.1.0.rc1) bundler (>= 1.10) - chef-config (= 16.2.8) - chef-utils (= 16.2.8) + chef-config (= 16.2.9) + chef-utils (= 16.2.9) chef-vault chef-zero (>= 14.0.11) diff-lcs (~> 1.2, >= 1.2.4) @@ -62,12 +62,12 @@ PATH train-winrm (>= 0.2.5) tty-screen (~> 0.6) uuidtools (~> 2.1.5) - chef (16.2.8-universal-mingw32) + chef (16.2.9-universal-mingw32) addressable bcrypt_pbkdf (= 1.1.0.rc1) bundler (>= 1.10) - chef-config (= 16.2.8) - chef-utils (= 16.2.8) + chef-config (= 16.2.9) + chef-utils (= 16.2.9) chef-vault chef-zero (>= 14.0.11) diff-lcs (~> 1.2, >= 1.2.4) @@ -112,15 +112,15 @@ PATH PATH remote: chef-bin specs: - chef-bin (16.2.8) - chef (= 16.2.8) + chef-bin (16.2.9) + chef (= 16.2.9) PATH remote: chef-config specs: - chef-config (16.2.8) + chef-config (16.2.9) addressable - chef-utils (= 16.2.8) + chef-utils (= 16.2.9) fuzzyurl mixlib-config (>= 2.2.12, < 4.0) mixlib-shellout (>= 2.0, < 4.0) @@ -129,7 +129,7 @@ PATH PATH remote: chef-utils specs: - chef-utils (16.2.8) + chef-utils (16.2.9) GEM remote: https://rubygems.org/ @@ -1 +1 @@ -16.2.8
\ No newline at end of file +16.2.9
\ No newline at end of file diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 0000000000..a40fba3f9f --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,87 @@ +# End-to-End Test of Chef in MacOS + +variables: + FORCE_FFI_YAJL: 'ext' + CHEF_LICENSE: 'accept-no-persist' + +trigger: +- master +# TODO: 20190528 - should we be testing end_to_end on chef-15? +#- chef-15 + +pool: + vmImage: $(imageName) + +jobs: + - job: + strategy: + matrix: + ubuntu_kitchen_tests: + imageName: 'ubuntu-latest' + mac_kitchen_tests: + imageName: 'macos-latest' + + steps: + - script: | + curl -L https://omnitruck.chef.io/install.sh | sudo bash -s -- -c current + /opt/chef/bin/chef-client -v + /opt/chef/bin/ohai -v + /opt/chef/embedded/bin/rake --version + /opt/chef/embedded/bin/bundle -v + displayName: 'Install Chef/Ohai from Omnitruck' + + - script: | + OHAI_VERSION=$(sed -n '/ohai .[0-9]/{s/.*(//;s/)//;p;}' Gemfile.lock) + sudo /opt/chef/embedded/bin/gem install appbundler appbundle-updater --no-doc + sudo /opt/chef/embedded/bin/appbundle-updater chef ohai v${OHAI_VERSION} --tarball --github chef/ohai + sudo /opt/chef/embedded/bin/appbundle-updater chef chef $BUILD_SOURCEVERSION --tarball --github chef/chef + echo "Installed Chef / Ohai release:" + /opt/chef/bin/chef-client -v + /opt/chef/bin/ohai -v + displayName: 'Upgrade Chef/Ohai via Appbundler' + + - script: | + cd kitchen-tests + sudo /opt/chef/embedded/bin/bundle config set without 'omnibus_package docgen ruby_prof' + sudo /opt/chef/embedded/bin/bundle install --jobs=3 --retry=3 --path=vendor/bundle + sudo /opt/chef/embedded/bin/gem install berkshelf --no-doc + sudo /opt/chef/embedded/bin/berks vendor cookbooks + sudo /opt/chef/bin/chef-client -z -o end_to_end --chef-license accept-no-persist + displayName: 'Run end_to_end::default recipe' + + - job: + strategy: + matrix: + windows_kitchen_tests: + imageName: 'windows-latest' + + steps: + - powershell: | + . { Invoke-WebRequest -useb https://omnitruck.chef.io/install.ps1 } | Invoke-Expression; Install-Project -project chef -channel current + $env:PATH = "C:\opscode\chef\bin;C:\opscode\chef\embedded\bin;" + $env:PATH + chef-client -v + ohai -v + rake --version + bundle -v + displayName: 'Install Chef/Ohai from Omnitruck' + + - powershell: | + $env:PATH = "C:\opscode\chef\bin;C:\opscode\chef\embedded\bin;" + $env:PATH + $env:OHAI_VERSION = ( Select-String -Path .\Gemfile.lock -Pattern '(?<=ohai \()\d.*(?=\))' | ForEach-Object { $_.Matches[0].Value } ) + gem install appbundler appbundle-updater --no-doc + appbundle-updater chef ohai v$env:OHAI_VERSION --tarball --github chef/ohai + appbundle-updater chef chef $env:BUILD_SOURCEVERSION --tarball --github chef/chef + Write-Output "Installed Chef / Ohai release:" + chef-client -v + ohai -v + displayName: 'Upgrade Chef/Ohai via Appbundler' + + - powershell: | + cd kitchen-tests + $env:PATH = "C:\opscode\chef\bin;C:\opscode\chef\embedded\bin;" + $env:PATH + bundle config set without 'omnibus_package docgen ruby_prof' + bundle install --jobs=3 --retry=3 --path=vendor/bundle + gem install berkshelf --no-doc + berks vendor cookbooks + chef-client -z -o end_to_end --chef-license accept-no-persist + displayName: 'Run end_to_end::default recipe' diff --git a/chef-bin/lib/chef-bin/version.rb b/chef-bin/lib/chef-bin/version.rb index 5730eac4cb..6e685be56a 100644 --- a/chef-bin/lib/chef-bin/version.rb +++ b/chef-bin/lib/chef-bin/version.rb @@ -21,7 +21,7 @@ module ChefBin CHEFBIN_ROOT = File.expand_path("../..", __FILE__) - VERSION = "16.2.8".freeze + VERSION = "16.2.9".freeze end # diff --git a/chef-config/lib/chef-config/version.rb b/chef-config/lib/chef-config/version.rb index 5e66ca664c..96decb5b14 100644 --- a/chef-config/lib/chef-config/version.rb +++ b/chef-config/lib/chef-config/version.rb @@ -15,5 +15,5 @@ module ChefConfig CHEFCONFIG_ROOT = File.expand_path("../..", __FILE__) - VERSION = "16.2.8".freeze + VERSION = "16.2.9".freeze end diff --git a/chef-utils/lib/chef-utils/version.rb b/chef-utils/lib/chef-utils/version.rb index 9f0c2629c3..7326e1e021 100644 --- a/chef-utils/lib/chef-utils/version.rb +++ b/chef-utils/lib/chef-utils/version.rb @@ -15,5 +15,5 @@ module ChefUtils CHEFUTILS_ROOT = File.expand_path("../..", __FILE__) - VERSION = "16.2.8".freeze + VERSION = "16.2.9".freeze end diff --git a/kitchen-tests/cookbooks/end_to_end/attributes/default.rb b/kitchen-tests/cookbooks/end_to_end/attributes/default.rb index 332a3fe462..e910b9e7d4 100644 --- a/kitchen-tests/cookbooks/end_to_end/attributes/default.rb +++ b/kitchen-tests/cookbooks/end_to_end/attributes/default.rb @@ -1,5 +1,7 @@ puts "CHEF UTILS THINKS WE ARE ON UBUNTU" if ubuntu? puts "CHEF UTILS THINKS WE ARE ON RHEL" if rhel? +puts "CHEF UTILS THINKS WE ARE ON MACOS" if macos? +puts "CHEF UTILS THINKS WE ARE ON WINDOWS" if windows? # # ubuntu cookbook overrides diff --git a/kitchen-tests/cookbooks/end_to_end/files/io.chef.testing.fake.plist b/kitchen-tests/cookbooks/end_to_end/files/io.chef.testing.fake.plist new file mode 100644 index 0000000000..570c736041 --- /dev/null +++ b/kitchen-tests/cookbooks/end_to_end/files/io.chef.testing.fake.plist @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> + +<plist version="1.0"> + <dict> + <key>Label</key> + + <string>io.chef.testing.fake</string> + + <key>ProgramArguments</key> + + <array> + <string>/bin/sleep</string> + <string>60</string> + </array> + + <key>StartCalendarInterval</key> + + <dict> + <key>Hour</key> + <integer>1</integer> + </dict> + </dict> +</plist> diff --git a/kitchen-tests/cookbooks/end_to_end/recipes/_cron.rb b/kitchen-tests/cookbooks/end_to_end/recipes/_cron.rb index 545d895869..b2575923ea 100644 --- a/kitchen-tests/cookbooks/end_to_end/recipes/_cron.rb +++ b/kitchen-tests/cookbooks/end_to_end/recipes/_cron.rb @@ -64,4 +64,4 @@ end cron "remove_a_job" do action :delete -end
\ No newline at end of file +end diff --git a/kitchen-tests/cookbooks/end_to_end/recipes/_dmg_package.rb b/kitchen-tests/cookbooks/end_to_end/recipes/_dmg_package.rb new file mode 100644 index 0000000000..27dad15c80 --- /dev/null +++ b/kitchen-tests/cookbooks/end_to_end/recipes/_dmg_package.rb @@ -0,0 +1,21 @@ +# +# Cookbook:: end_to_end +# Recipe:: _dmg_package +# +# Copyright:: Copyright (c) Chef Software Inc. +# + +dmg_package "LittleSecrets" do + source "https://www.mani.de/download/littlesecrets/LittleSecrets1.9.4.dmg" + checksum "8281c1f648c038b296a02940126c29032ff387b90a880d63834e303e1b3a5ff7" + action :install +end + +dmg_package "virtualbox" do + app "virtualbox" + source "http://download.virtualbox.org/virtualbox/6.1.8/VirtualBox-6.1.8-137981-OSX.dmg" + checksum "569e91eb3c7cb002d407b236a7aa71ac610cf2ad1afa03730dab11fbd4b89e7c" + type "pkg" + accept_eula true + allow_untrusted true +end diff --git a/kitchen-tests/cookbooks/end_to_end/recipes/_launchd.rb b/kitchen-tests/cookbooks/end_to_end/recipes/_launchd.rb new file mode 100644 index 0000000000..4a1e910b51 --- /dev/null +++ b/kitchen-tests/cookbooks/end_to_end/recipes/_launchd.rb @@ -0,0 +1,13 @@ +# +# Cookbook:: end_to_end +# Recipe:: launchd +# + +file "/Library/LaunchDaemons/io.chef.testing.fake.plist" do + path "io.chef.testing.fake.plist" + mode "644" +end + +launchd "io.chef.testing.fake" do + source "io.chef.testing.fake" +end diff --git a/kitchen-tests/cookbooks/end_to_end/recipes/_macos_userdefaults.rb b/kitchen-tests/cookbooks/end_to_end/recipes/_macos_userdefaults.rb new file mode 100644 index 0000000000..6fcdd51d10 --- /dev/null +++ b/kitchen-tests/cookbooks/end_to_end/recipes/_macos_userdefaults.rb @@ -0,0 +1,26 @@ +# +# Cookbook:: end_to_end +# Recipe:: _macos_userdefaults +# +# Copyright:: Copyright (c) Chef Software Inc. +# + +mac_os_x_userdefaults "Disable fast user switching" do + domain "/Library/Preferences/.GlobalPreferences" + key "MultipleSessionEnabled" + value 0 +end + +macos_userdefaults "enable macOS firewall" do + domain "/Library/Preferences/com.apple.alf" + key "globalstate" + value "1" + type "int" +end + +macos_userdefaults "set dock size" do + domain "com.apple.dock" + type "integer" + key "tilesize" + value "20" +end diff --git a/kitchen-tests/cookbooks/end_to_end/recipes/_sysctl.rb b/kitchen-tests/cookbooks/end_to_end/recipes/_sysctl.rb index b5943180d0..7bc3ae84d2 100644 --- a/kitchen-tests/cookbooks/end_to_end/recipes/_sysctl.rb +++ b/kitchen-tests/cookbooks/end_to_end/recipes/_sysctl.rb @@ -18,4 +18,4 @@ end sysctl_param "bogus.sysctl_val" do value 9000 action :remove -end
\ No newline at end of file +end diff --git a/kitchen-tests/cookbooks/end_to_end/recipes/_yum.rb b/kitchen-tests/cookbooks/end_to_end/recipes/_yum.rb index f6f48a89c9..af36038ca7 100644 --- a/kitchen-tests/cookbooks/end_to_end/recipes/_yum.rb +++ b/kitchen-tests/cookbooks/end_to_end/recipes/_yum.rb @@ -13,4 +13,4 @@ yum_repository "epel" do gpgcheck true mirrorlist "https://mirrors.fedoraproject.org/metalink?repo=epel-#{node["platform_version"].to_i}&arch=$basearch" only_if { rhel? } -end
\ No newline at end of file +end diff --git a/kitchen-tests/cookbooks/end_to_end/recipes/default.rb b/kitchen-tests/cookbooks/end_to_end/recipes/default.rb index f175474d46..20971a0333 100644 --- a/kitchen-tests/cookbooks/end_to_end/recipes/default.rb +++ b/kitchen-tests/cookbooks/end_to_end/recipes/default.rb @@ -5,114 +5,6 @@ # Copyright:: Copyright (c) Chef Software Inc. # -hostname "chef-bk-ci.chef.io" - -apt_update - -chef_sleep "2" - -execute "sleep 1" - -execute "sleep 1 second" do - command "sleep 1" - live_stream true -end - -execute "sensitive sleep" do - command "sleep 1" - sensitive true -end - -timezone "UTC" - -include_recipe "::_yum" if platform_family?("rhel") - -if platform_family?("rhel", "fedora", "amazon") - include_recipe "selinux::disabled" -end - -build_essential do - raise_if_unsupported true -end - -include_recipe "::_packages" - -include_recipe "ntp" - -include_recipe "resolver" - -users_manage "sysadmin" do - group_id 2300 - action [:create] -end - -ssh_known_hosts_entry "github.com" - -include_recipe "chef-client::delete_validation" -include_recipe "chef-client::config" - -include_recipe "openssh" - -include_recipe "nscd" - -include_recipe "logrotate" - -include_recipe "git" - -# test various archive formats in the archive_file resource -%w{tourism.tar.gz tourism.tar.xz tourism.zip}.each do |archive| - cookbook_file File.join(Chef::Config[:file_cache_path], archive) do - source archive - end - - archive_file archive do - path File.join(Chef::Config[:file_cache_path], archive) - extract_to File.join(Chef::Config[:file_cache_path], archive.tr(".", "_")) - end -end - -user_ulimit "tomcat" do - filehandle_soft_limit 8192 - filehandle_hard_limit 8192 - process_soft_limit 61504 - process_hard_limit 61504 - memory_limit 1024 - core_limit 2048 - core_soft_limit 1024 - core_hard_limit "unlimited" - stack_soft_limit 2048 - stack_hard_limit 2048 - rtprio_soft_limit 60 - rtprio_hard_limit 60 -end - -chef_client_cron "Run chef-client as a cron job" - -chef_client_cron "Run chef-client with base recipe" do - minute 0 - hour "0,12" - job_name "chef-client-base" - log_directory "/var/log/custom_chef_client_dir/" - log_file_name "chef-client-base.log" - daemon_options ["--override-runlist mycorp_base::default"] -end - -chef_client_systemd_timer "Run chef-client as a systemd timer" do - interval "1hr" - only_if { systemd? } -end - -locale "set system locale" do - lang "en_US.UTF-8" - only_if { debian? } -end - -include_recipe "::_apt" if platform_family?("debian") -include_recipe "::_chef-vault" unless includes_recipe?("end_to_end::chef-vault") -include_recipe "::_sudo" -include_recipe "::_sysctl" -include_recipe "::_alternatives" -include_recipe "::_cron" -include_recipe "::_ohai_hint" -include_recipe "::_openssl" -include_recipe "::_tests" +include_recipe "::linux" if linux? +include_recipe "::macos" if macos? +include_recipe "::windows" if windows? diff --git a/kitchen-tests/cookbooks/end_to_end/recipes/linux.rb b/kitchen-tests/cookbooks/end_to_end/recipes/linux.rb new file mode 100644 index 0000000000..b66edb14dd --- /dev/null +++ b/kitchen-tests/cookbooks/end_to_end/recipes/linux.rb @@ -0,0 +1,118 @@ +# +# Cookbook:: end_to_end +# Recipe:: linux +# +# Copyright:: Copyright (c) Chef Software Inc. +# + +hostname "chef-bk-ci.chef.io" + +apt_update + +chef_sleep "2" + +execute "sleep 1" + +execute "sleep 1 second" do + command "sleep 1" + live_stream true +end + +execute "sensitive sleep" do + command "sleep 1" + sensitive true +end + +timezone "UTC" + +include_recipe "::_yum" if platform_family?("rhel") + +if platform_family?("rhel", "fedora", "amazon") + include_recipe "selinux::disabled" +end + +build_essential do + raise_if_unsupported true +end + +include_recipe "::_packages" + +include_recipe "ntp" + +include_recipe "resolver" + +users_manage "sysadmin" do + group_id 2300 + action [:create] +end + +ssh_known_hosts_entry "github.com" + +include_recipe "chef-client::delete_validation" +include_recipe "chef-client::config" + +include_recipe "openssh" + +include_recipe "nscd" + +include_recipe "logrotate" + +include_recipe "git" + +# test various archive formats in the archive_file resource +%w{tourism.tar.gz tourism.tar.xz tourism.zip}.each do |archive| + cookbook_file File.join(Chef::Config[:file_cache_path], archive) do + source archive + end + + archive_file archive do + path File.join(Chef::Config[:file_cache_path], archive) + extract_to File.join(Chef::Config[:file_cache_path], archive.tr(".", "_")) + end +end + +user_ulimit "tomcat" do + filehandle_soft_limit 8192 + filehandle_hard_limit 8192 + process_soft_limit 61504 + process_hard_limit 61504 + memory_limit 1024 + core_limit 2048 + core_soft_limit 1024 + core_hard_limit "unlimited" + stack_soft_limit 2048 + stack_hard_limit 2048 + rtprio_soft_limit 60 + rtprio_hard_limit 60 +end + +chef_client_cron "Run chef-client as a cron job" + +chef_client_cron "Run chef-client with base recipe" do + minute 0 + hour "0,12" + job_name "chef-client-base" + log_directory "/var/log/custom_chef_client_dir/" + log_file_name "chef-client-base.log" + daemon_options ["--override-runlist mycorp_base::default"] +end + +chef_client_systemd_timer "Run chef-client as a systemd timer" do + interval "1hr" + only_if { systemd? } +end + +locale "set system locale" do + lang "en_US.UTF-8" + only_if { debian? } +end + +include_recipe "::_apt" if platform_family?("debian") +include_recipe "::_chef-vault" unless includes_recipe?("end_to_end::chef-vault") +include_recipe "::_sudo" +include_recipe "::_sysctl" +include_recipe "::_alternatives" +include_recipe "::_cron" +include_recipe "::_ohai_hint" +include_recipe "::_openssl" +include_recipe "::_tests" diff --git a/kitchen-tests/cookbooks/end_to_end/recipes/macos.rb b/kitchen-tests/cookbooks/end_to_end/recipes/macos.rb new file mode 100644 index 0000000000..30b674620b --- /dev/null +++ b/kitchen-tests/cookbooks/end_to_end/recipes/macos.rb @@ -0,0 +1,67 @@ +# +# Cookbook:: end_to_end +# Recipe:: macos +# +# Copyright:: Copyright (c) Chef Software Inc. +# + +chef_sleep "2" + +execute "sleep 1" + +execute "sleep 1 second" do + command "sleep 1" + live_stream true +end + +execute "sensitive sleep" do + command "sleep 1" + sensitive true +end + +timezone "GMT" + +include_recipe "ntp" + +include_recipe "resolver" + +users_manage "remove sysadmin" do + group_name "sysadmin" + group_id 2300 + action [:remove] +end + +users_manage "create sysadmin" do + group_name "sysadmin" + group_id 2300 + action [:create] +end + +ssh_known_hosts_entry "github.com" + +include_recipe "chef-client::delete_validation" +include_recipe "chef-client::config" + +include_recipe "git" + +# test various archive formats in the archive_file resource +%w{tourism.tar.gz tourism.tar.xz tourism.zip}.each do |archive| + cookbook_file File.join(Chef::Config[:file_cache_path], archive) do + source archive + end + + archive_file archive do + path File.join(Chef::Config[:file_cache_path], archive) + extract_to File.join(Chef::Config[:file_cache_path], archive.tr(".", "_")) + end +end + +launchd "io.chef.testing.fake" do + source "io.chef.testing.fake.plist" + action "enable" +end + +include_recipe "::_dmg_package" +include_recipe "::_macos_userdefaults" +include_recipe "::_ohai_hint" +include_recipe "::_openssl" diff --git a/lib/chef/version.rb b/lib/chef/version.rb index 575f760cf4..a552d8f23c 100644 --- a/lib/chef/version.rb +++ b/lib/chef/version.rb @@ -23,7 +23,7 @@ require_relative "version_string" class Chef CHEF_ROOT = File.expand_path("../..", __FILE__) - VERSION = Chef::VersionString.new("16.2.8") + VERSION = Chef::VersionString.new("16.2.9") end # |