chef 13.11.3 → 13.12.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +4 -3
- data/README.md +35 -40
- data/Rakefile +18 -22
- data/chef-universal-mingw32.gemspec +1 -1
- data/chef.gemspec +3 -3
- data/lib/chef/client.rb +1 -1
- data/lib/chef/mixin/params_validate.rb +3 -1
- data/lib/chef/provider/script.rb +2 -2
- data/lib/chef/version.rb +1 -1
- data/spec/functional/http/simple_spec.rb +12 -6
- data/spec/functional/resource/remote_file_spec.rb +19 -15
- data/spec/support/platform_helpers.rb +2 -1
- data/tasks/announce.rb +1 -1
- data/tasks/dependencies.rb +5 -39
- data/tasks/maintainers.rb +10 -10
- data/tasks/rspec.rb +2 -2
- data/tasks/templates/prerelease.md.erb +11 -2
- data/tasks/templates/release.md.erb +9 -1
- metadata +6 -248
- data/CONTRIBUTING.md +0 -151
- data/VERSION +0 -1
- data/acceptance/.gitignore +0 -3
- data/acceptance/.shared/kitchen_acceptance/.kitchen.digitalocean.yml +0 -33
- data/acceptance/.shared/kitchen_acceptance/.kitchen.ec2.yml +0 -283
- data/acceptance/.shared/kitchen_acceptance/.kitchen.vagrant.yml +0 -59
- data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +0 -68
- data/acceptance/.shared/kitchen_acceptance/metadata.rb +0 -1
- data/acceptance/Gemfile +0 -19
- data/acceptance/Gemfile.lock +0 -266
- data/acceptance/README.md +0 -137
- data/acceptance/basics/.acceptance/acceptance-cookbook/.gitignore +0 -2
- data/acceptance/basics/.acceptance/acceptance-cookbook/metadata.rb +0 -3
- data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
- data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
- data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
- data/acceptance/basics/.kitchen.yml +0 -4
- data/acceptance/basics/test/integration/chef-current-install/serverspec/chef_client_spec.rb +0 -19
- data/acceptance/basics/test/integration/chef-current-install/serverspec/spec_helper.rb +0 -6
- data/acceptance/basics/test/integration/helpers/serverspec/Gemfile +0 -8
- data/acceptance/data-collector/.acceptance/acceptance-cookbook/.gitignore +0 -2
- data/acceptance/data-collector/.acceptance/acceptance-cookbook/metadata.rb +0 -3
- data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -2
- data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -2
- data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -2
- data/acceptance/data-collector/.acceptance/data-collector-test/.gitignore +0 -16
- data/acceptance/data-collector/.acceptance/data-collector-test/Berksfile +0 -3
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/api.rb +0 -101
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/apigemfile +0 -3
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-both-mode.rb +0 -4
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-client-mode.rb +0 -4
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-no-endpoint.rb +0 -2
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-solo-mode.rb +0 -4
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/config.ru +0 -2
- data/acceptance/data-collector/.acceptance/data-collector-test/metadata.rb +0 -7
- data/acceptance/data-collector/.acceptance/data-collector-test/recipes/default.rb +0 -44
- data/acceptance/data-collector/.kitchen.yml +0 -9
- data/acceptance/data-collector/Berksfile +0 -3
- data/acceptance/data-collector/test/integration/default/serverspec/default_spec.rb +0 -208
- data/acceptance/data-collector/test/integration/helpers/serverspec/Gemfile +0 -8
- data/acceptance/omnitruck/.acceptance/acceptance-cookbook/.gitignore +0 -2
- data/acceptance/omnitruck/.acceptance/acceptance-cookbook/metadata.rb +0 -1
- data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
- data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
- data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -61
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/.gitignore +0 -2
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/cookbook_kitchen.rb +0 -43
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/top_cookbooks.rb +0 -41
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/metadata.rb +0 -3
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
- data/acceptance/top-cookbooks/.gitignore +0 -1
- data/acceptance/top-cookbooks/.kitchen.chocolatey.yml +0 -6
- data/acceptance/top-cookbooks/.kitchen.iis.yml +0 -4
- data/acceptance/top-cookbooks/.kitchen.learn-the-basics-rhel.yml +0 -7
- data/acceptance/top-cookbooks/.kitchen.learn-the-basics-ubuntu.yml +0 -7
- data/acceptance/top-cookbooks/.kitchen.learn-the-basics-windows.yml +0 -7
- data/acceptance/top-cookbooks/.kitchen.powershell.yml +0 -4
- data/acceptance/top-cookbooks/.kitchen.sql_server.yml +0 -5
- data/acceptance/top-cookbooks/.kitchen.winbox.yml +0 -8
- data/acceptance/top-cookbooks/.kitchen.windows.yml +0 -38
- data/acceptance/trivial/.acceptance/acceptance-cookbook/.gitignore +0 -2
- data/acceptance/trivial/.acceptance/acceptance-cookbook/metadata.rb +0 -2
- data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
- data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
- data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
- data/acceptance/trivial/.kitchen.yml +0 -7
- data/acceptance/trivial/test/integration/chef-current-install/inspec/chef_client_spec.rb +0 -5
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/.gitignore +0 -2
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/metadata.rb +0 -2
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
- data/acceptance/windows-service/.kitchen.yml +0 -7
- data/acceptance/windows-service/test/integration/chef-windows-service/inspec/chef_windows_service_spec.rb +0 -58
- data/distro/common/html/_sources/ctl_chef_client.txt +0 -36
- data/distro/common/html/_sources/ctl_chef_server.txt +0 -341
- data/distro/common/html/_sources/ctl_chef_shell.txt +0 -15
- data/distro/common/html/_sources/ctl_chef_solo.txt +0 -25
- data/distro/common/html/_sources/index.txt +0 -135
- data/distro/common/html/_sources/knife.txt +0 -74
- data/distro/common/html/_sources/knife_bootstrap.txt +0 -56
- data/distro/common/html/_sources/knife_client.txt +0 -151
- data/distro/common/html/_sources/knife_common_options.txt +0 -6
- data/distro/common/html/_sources/knife_configure.txt +0 -29
- data/distro/common/html/_sources/knife_cookbook.txt +0 -236
- data/distro/common/html/_sources/knife_cookbook_site.txt +0 -157
- data/distro/common/html/_sources/knife_data_bag.txt +0 -160
- data/distro/common/html/_sources/knife_delete.txt +0 -26
- data/distro/common/html/_sources/knife_deps.txt +0 -61
- data/distro/common/html/_sources/knife_diff.txt +0 -34
- data/distro/common/html/_sources/knife_download.txt +0 -44
- data/distro/common/html/_sources/knife_edit.txt +0 -26
- data/distro/common/html/_sources/knife_environment.txt +0 -158
- data/distro/common/html/_sources/knife_exec.txt +0 -47
- data/distro/common/html/_sources/knife_index_rebuild.txt +0 -21
- data/distro/common/html/_sources/knife_list.txt +0 -33
- data/distro/common/html/_sources/knife_node.txt +0 -250
- data/distro/common/html/_sources/knife_raw.txt +0 -35
- data/distro/common/html/_sources/knife_recipe_list.txt +0 -23
- data/distro/common/html/_sources/knife_role.txt +0 -157
- data/distro/common/html/_sources/knife_search.txt +0 -53
- data/distro/common/html/_sources/knife_serve.txt +0 -19
- data/distro/common/html/_sources/knife_show.txt +0 -27
- data/distro/common/html/_sources/knife_ssh.txt +0 -43
- data/distro/common/html/_sources/knife_ssl_check.txt +0 -41
- data/distro/common/html/_sources/knife_ssl_fetch.txt +0 -41
- data/distro/common/html/_sources/knife_status.txt +0 -37
- data/distro/common/html/_sources/knife_tag.txt +0 -69
- data/distro/common/html/_sources/knife_upload.txt +0 -49
- data/distro/common/html/_sources/knife_user.txt +0 -127
- data/distro/common/html/_sources/knife_using.txt +0 -43
- data/distro/common/html/_sources/knife_xargs.txt +0 -30
- data/distro/common/html/_static/ajax-loader.gif +0 -0
- data/distro/common/html/_static/basic.css +0 -537
- data/distro/common/html/_static/chef.ico +0 -0
- data/distro/common/html/_static/chef_html_logo.png +0 -0
- data/distro/common/html/_static/comment-bright.png +0 -0
- data/distro/common/html/_static/comment-close.png +0 -0
- data/distro/common/html/_static/comment.png +0 -0
- data/distro/common/html/_static/contents.png +0 -0
- data/distro/common/html/_static/doctools.js +0 -238
- data/distro/common/html/_static/down-pressed.png +0 -0
- data/distro/common/html/_static/down.png +0 -0
- data/distro/common/html/_static/file.png +0 -0
- data/distro/common/html/_static/guide.css +0 -505
- data/distro/common/html/_static/jquery.js +0 -2
- data/distro/common/html/_static/minus.png +0 -0
- data/distro/common/html/_static/navigation.png +0 -0
- data/distro/common/html/_static/plus.png +0 -0
- data/distro/common/html/_static/pygments.css +0 -62
- data/distro/common/html/_static/searchtools.js +0 -622
- data/distro/common/html/_static/underscore.js +0 -31
- data/distro/common/html/_static/up-pressed.png +0 -0
- data/distro/common/html/_static/up.png +0 -0
- data/distro/common/html/_static/websupport.js +0 -808
- data/distro/common/html/ctl_chef_client.html +0 -270
- data/distro/common/html/ctl_chef_server.html +0 -728
- data/distro/common/html/ctl_chef_shell.html +0 -163
- data/distro/common/html/ctl_chef_solo.html +0 -194
- data/distro/common/html/index.html +0 -202
- data/distro/common/html/knife.html +0 -170
- data/distro/common/html/knife_bootstrap.html +0 -285
- data/distro/common/html/knife_client.html +0 -285
- data/distro/common/html/knife_common_options.html +0 -96
- data/distro/common/html/knife_configure.html +0 -105
- data/distro/common/html/knife_cookbook.html +0 -487
- data/distro/common/html/knife_cookbook_site.html +0 -375
- data/distro/common/html/knife_data_bag.html +0 -374
- data/distro/common/html/knife_delete.html +0 -93
- data/distro/common/html/knife_deps.html +0 -143
- data/distro/common/html/knife_diff.html +0 -123
- data/distro/common/html/knife_download.html +0 -145
- data/distro/common/html/knife_edit.html +0 -89
- data/distro/common/html/knife_environment.html +0 -322
- data/distro/common/html/knife_exec.html +0 -220
- data/distro/common/html/knife_index_rebuild.html +0 -83
- data/distro/common/html/knife_list.html +0 -114
- data/distro/common/html/knife_node.html +0 -458
- data/distro/common/html/knife_raw.html +0 -110
- data/distro/common/html/knife_recipe_list.html +0 -91
- data/distro/common/html/knife_role.html +0 -295
- data/distro/common/html/knife_search.html +0 -203
- data/distro/common/html/knife_serve.html +0 -79
- data/distro/common/html/knife_show.html +0 -104
- data/distro/common/html/knife_ssh.html +0 -177
- data/distro/common/html/knife_ssl_check.html +0 -151
- data/distro/common/html/knife_ssl_fetch.html +0 -151
- data/distro/common/html/knife_status.html +0 -144
- data/distro/common/html/knife_tag.html +0 -138
- data/distro/common/html/knife_upload.html +0 -153
- data/distro/common/html/knife_user.html +0 -242
- data/distro/common/html/knife_using.html +0 -210
- data/distro/common/html/knife_xargs.html +0 -122
- data/distro/common/html/objects.inv +0 -0
- data/distro/common/html/search.html +0 -82
- data/distro/common/html/searchindex.js +0 -1
- data/distro/common/man/man1/README.md +0 -58
- data/distro/common/man/man1/chef-shell.1 +0 -194
- data/distro/common/man/man1/knife-bootstrap.1 +0 -215
- data/distro/common/man/man1/knife-client.1 +0 -443
- data/distro/common/man/man1/knife-configure.1 +0 -161
- data/distro/common/man/man1/knife-cookbook-site.1 +0 -552
- data/distro/common/man/man1/knife-cookbook.1 +0 -770
- data/distro/common/man/man1/knife-data-bag.1 +0 -617
- data/distro/common/man/man1/knife-delete.1 +0 -127
- data/distro/common/man/man1/knife-deps.1 +0 -246
- data/distro/common/man/man1/knife-diff.1 +0 -226
- data/distro/common/man/man1/knife-download.1 +0 -258
- data/distro/common/man/man1/knife-edit.1 +0 -121
- data/distro/common/man/man1/knife-environment.1 +0 -496
- data/distro/common/man/man1/knife-exec.1 +0 -362
- data/distro/common/man/man1/knife-index-rebuild.1 +0 -63
- data/distro/common/man/man1/knife-list.1 +0 -174
- data/distro/common/man/man1/knife-node.1 +0 -716
- data/distro/common/man/man1/knife-raw.1 +0 -172
- data/distro/common/man/man1/knife-recipe-list.1 +0 -85
- data/distro/common/man/man1/knife-role.1 +0 -426
- data/distro/common/man/man1/knife-search.1 +0 -359
- data/distro/common/man/man1/knife-serve.1 +0 -109
- data/distro/common/man/man1/knife-show.1 +0 -160
- data/distro/common/man/man1/knife-ssh.1 +0 -284
- data/distro/common/man/man1/knife-ssl-check.1 +0 -207
- data/distro/common/man/man1/knife-ssl-fetch.1 +0 -207
- data/distro/common/man/man1/knife-status.1 +0 -234
- data/distro/common/man/man1/knife-tag.1 +0 -189
- data/distro/common/man/man1/knife-upload.1 +0 -280
- data/distro/common/man/man1/knife-user.1 +0 -356
- data/distro/common/man/man1/knife-xargs.1 +0 -189
- data/distro/common/man/man1/knife.1 +0 -332
- data/distro/common/man/man8/chef-apply.8 +0 -86
- data/distro/common/man/man8/chef-client.8 +0 -398
- data/distro/common/man/man8/chef-solo.8 +0 -260
- data/distro/common/markdown/README +0 -3
- data/distro/common/markdown/man1/chef-shell.mkd +0 -195
- data/distro/common/markdown/man1/knife-bootstrap.mkd +0 -141
- data/distro/common/markdown/man1/knife-client.mkd +0 -103
- data/distro/common/markdown/man1/knife-configure.mkd +0 -71
- data/distro/common/markdown/man1/knife-cookbook-site.mkd +0 -123
- data/distro/common/markdown/man1/knife-cookbook.mkd +0 -263
- data/distro/common/markdown/man1/knife-data-bag.mkd +0 -121
- data/distro/common/markdown/man1/knife-environment.mkd +0 -151
- data/distro/common/markdown/man1/knife-exec.mkd +0 -42
- data/distro/common/markdown/man1/knife-index.mkd +0 -30
- data/distro/common/markdown/man1/knife-node.mkd +0 -130
- data/distro/common/markdown/man1/knife-role.mkd +0 -85
- data/distro/common/markdown/man1/knife-search.mkd +0 -180
- data/distro/common/markdown/man1/knife-ssh.mkd +0 -69
- data/distro/common/markdown/man1/knife-status.mkd +0 -36
- data/distro/common/markdown/man1/knife-tag.mkd +0 -39
- data/distro/common/markdown/man1/knife.mkd +0 -213
- data/distro/common/markdown/man8/chef-client.mkd +0 -75
- data/distro/common/markdown/man8/chef-expander.mkd +0 -81
- data/distro/common/markdown/man8/chef-expanderctl.mkd +0 -57
- data/distro/common/markdown/man8/chef-server-webui.mkd +0 -121
- data/distro/common/markdown/man8/chef-server.mkd +0 -120
- data/distro/common/markdown/man8/chef-solo.mkd +0 -107
- data/distro/common/markdown/man8/chef-solr.mkd +0 -89
- data/distro/powershell/chef/chef.psm1 +0 -459
- data/tasks/cbgb.rb +0 -84
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7695157c9c19cba7968d427ab11d7e61d5a66419
|
4
|
+
data.tar.gz: a884dce4ff2cb72bf6e2bd10a673620aca1f7f0e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 99a20971bb8aa97e45c5d09ab07ce86f0819349d6a325e6d53530f254f9f5dba2bc0f1cbc5180e543f3cd00b8b9b6a5760f6f63a1fd28ed0ff590db6397c2c7a
|
7
|
+
data.tar.gz: 9572a4f6b5193c39f2774e18f049eb9eae2c747b1cc05101d43140c9f7d620f1613453389f039b24a071ef6fb8d77bc4a40d008dbc40817d4dabb77f4657fb2c
|
data/Gemfile
CHANGED
@@ -49,15 +49,16 @@ group(:ruby_shadow) do
|
|
49
49
|
end
|
50
50
|
|
51
51
|
group(:development, :test) do
|
52
|
-
|
52
|
+
# we pin rake as a copy of rake is installed from the ruby source
|
53
|
+
# if you bump the ruby version you should confirm we don't end up with
|
54
|
+
# two rake gems installed again
|
55
|
+
gem "rake", "<= 12.0.0"
|
53
56
|
gem "simplecov"
|
54
57
|
gem "webmock"
|
55
58
|
gem "chefstyle", "0.6.0"
|
56
59
|
end
|
57
60
|
|
58
61
|
group(:travis) do
|
59
|
-
# See `bundler-audit` in .travis.yml
|
60
|
-
gem "bundler-audit", git: "https://github.com/rubysec/bundler-audit.git"
|
61
62
|
gem "travis"
|
62
63
|
end
|
63
64
|
|
data/README.md
CHANGED
@@ -26,7 +26,7 @@ If you just want to use Chef, check out these resources:
|
|
26
26
|
- [learnchef](https://learn.chef.io): Getting started guide
|
27
27
|
- [docs.chef.io](https://docs.chef.io): Comprehensive User Docs
|
28
28
|
- [Installer Downloads](https://downloads.chef.io/chef/): Install Chef as a complete package
|
29
|
-
- [chef/chef](https://hub.docker.com/r/chef/chef): Docker image for use with [kitchen-dokken](https://github.com/someara/kitchen-dokken)
|
29
|
+
- [chef/chef](https://hub.docker.com/r/chef/chef/): Docker image for use with [kitchen-dokken](https://github.com/someara/kitchen-dokken/)
|
30
30
|
|
31
31
|
## Reporting Issues
|
32
32
|
|
@@ -43,9 +43,9 @@ against the repository you think best fits and it will be directed to the approp
|
|
43
43
|
|
44
44
|
## Installing From Git for Developers
|
45
45
|
|
46
|
-
**NOTE:** As a Chef user, please download the
|
46
|
+
**NOTE:** As a Chef user, please download the [Chef](https://downloads.chef.io/chef) or [Chef-DK](https://downloads.chef.io/chef) packages, which provide Ruby and other necessary libraries for running Chef.
|
47
47
|
|
48
|
-
We do not recommend
|
48
|
+
We do not recommend end users install Chef from gems or build from source. The following instructions apply only to those doing software development on Chef.
|
49
49
|
|
50
50
|
### Prerequisites
|
51
51
|
|
@@ -63,36 +63,31 @@ note about downloading the pre-built omnibus install if you do not understand ho
|
|
63
63
|
|
64
64
|
### Chef Installation
|
65
65
|
|
66
|
-
|
66
|
+
Once you have your development environment configured you can clone the Chef repository and install Chef:
|
67
67
|
|
68
68
|
```bash
|
69
69
|
git clone https://github.com/chef/chef.git
|
70
70
|
cd chef
|
71
71
|
bundle install
|
72
|
-
bundle exec rake gem
|
73
72
|
bundle exec rake install
|
74
73
|
```
|
75
74
|
|
76
75
|
## Contributing/Development
|
77
76
|
|
78
|
-
Please read our [Community Contributions Guidelines](https://docs.chef.io/community_contributions.html), and
|
79
|
-
ensure you are signing all your commits with DCO sign-off.
|
77
|
+
Please read our [Community Contributions Guidelines](https://docs.chef.io/community_contributions.html), and ensure you are signing all your commits with DCO sign-off.
|
80
78
|
|
81
79
|
The general development process is:
|
82
80
|
|
83
81
|
1. Fork this repo and clone it to your workstation.
|
84
82
|
2. Create a feature branch for your change.
|
85
83
|
3. Write code and tests.
|
86
|
-
4. Push your feature branch to
|
84
|
+
4. Push your feature branch to GitHub and open a pull request against master.
|
87
85
|
|
88
|
-
Once your repository is set up, you can start working on the code. We do utilize
|
89
|
-
RSpec for test driven development, so you'll need to get a development
|
90
|
-
environment running. Follow the above procedure ("Installing from Git") to get
|
91
|
-
your local copy of the source running.
|
86
|
+
Once your repository is set up, you can start working on the code. We do utilize RSpec for test driven development, so you'll need to get a development environment running. Follow the above procedure ("Installing from Git") to get your local copy of the source running.
|
92
87
|
|
93
88
|
## Testing
|
94
89
|
|
95
|
-
This repository
|
90
|
+
This repository uses rspec for testing.
|
96
91
|
|
97
92
|
```bash
|
98
93
|
# all tests
|
@@ -105,11 +100,11 @@ bundle exec rspec spec/PATH/TO/FILE_spec.rb
|
|
105
100
|
bundle exec rspec spec/PATH/TO/DIR
|
106
101
|
```
|
107
102
|
|
108
|
-
When you submit a PR rspec tests will run automatically on travis and appveyor.
|
103
|
+
When you submit a PR rspec tests will run automatically on [Travis-CI](https://travis-ci.org/) and [AppVeyor](https://www.appveyor.com/).
|
109
104
|
|
110
105
|
## Building the Full Package
|
111
106
|
|
112
|
-
To build
|
107
|
+
To build Chef as a standalone package, we use the [omnibus](omnibus/README.md) packaging system.
|
113
108
|
|
114
109
|
To build:
|
115
110
|
|
@@ -120,9 +115,7 @@ bundle install
|
|
120
115
|
bundle exec omnibus build chef
|
121
116
|
```
|
122
117
|
|
123
|
-
The prerequisites necessary to run omnibus itself are not documented
|
124
|
-
the [opscode-ci cookbook](https://github.com/chef-cookbooks/opscode-ci) cookbook, which serves as the most
|
125
|
-
current documentation.
|
118
|
+
The prerequisites necessary to run omnibus itself are not documented in this repository. See the [Omnibus repository](https://github.com/chef/omnibus) for additional details.
|
126
119
|
|
127
120
|
## Updating Dependencies
|
128
121
|
|
@@ -134,9 +127,7 @@ If you want to change our constraints (change which packages and versions we acc
|
|
134
127
|
|
135
128
|
In addition there are several places versions are pinned for CI tasks:
|
136
129
|
|
137
|
-
* [acceptance/Gemfile](acceptance/Gemfile) and [acceptance/Gemfile.lock](acceptance/Gemfile.lock): Acceptance tests (internal jenkins)
|
138
130
|
* [kitchen-tests/Gemfile](kitchen-tests/Gemfile) and [kitchen-tests/Gemfile.lock](kitchen-tests/Gemfile.lock): Gems for test-kitchen tests (travis)
|
139
|
-
* [kitchen-tests/Berksfile](kitchen-tests/Berksfile) and [kitchen-tests/Berksfile.lock](kitchen-tests/Berksfile.lock): Cookbooks for test-kitchen tests (travis)
|
140
131
|
|
141
132
|
In order to update everything run `rake dependencies`. Note that the [Gemfile.lock](Gemfile.lock) pins windows platforms and to fully regenerate the lockfile
|
142
133
|
you must use the following commands or run `rake dependencies:update_gemfile_lock`:
|
@@ -153,24 +144,23 @@ Chef is an amalgam of many components. These components update all the time, nec
|
|
153
144
|
|
154
145
|
## Chef Packages
|
155
146
|
|
156
|
-
Chef is distributed as packages for debian, rhel, ubuntu, windows, solaris, aix, and
|
147
|
+
Chef is distributed as packages for debian, rhel, ubuntu, windows, solaris, aix, and macos. It includes a large number of components from various sources, and these are versioned and maintained separately from the chef project, which bundles them all together conveniently for the user.
|
157
148
|
|
158
149
|
These packages go through several milestones:
|
159
|
-
- `master`: When code is checked in to master, the patch version of chef is bumped (e.g.
|
150
|
+
- `master`: When code is checked in to master, the patch version of chef is bumped (e.g. 14.5.1 -> 14.5.2) and a build is kicked off automatically to create and test the packages in Chef's internal CI cluster.
|
160
151
|
- `unstable`: When a package is built, it enters the unstable channel. When all packages for all OS's have successfully built, the test phase is kicked off in Jenkins across all supported OS's. These builds are password-protected and generally only available to the test systems.
|
161
|
-
- `current`: If the packages pass all the tests on all supported OS's, it is promoted as a unit to `current`, and is available
|
162
|
-
- `stable`: Periodically, Chef will pick a release to "bless" for folks who would like a slower update schedule than "every time a build passes the tests." When this happens, it is manually promoted to stable and an announcement is sent to the list. It can be reached at https://downloads.chef.io or installed using the `curl` command without specifying `-c current`. Packages in `stable` are no longer available in `current`.
|
152
|
+
- `current`: If the packages pass all the tests on all supported OS's, it is promoted as a unit to `current`, and is available by running `curl https://www.chef.io/chef/install.sh | sudo bash -s -- -c current -P chef` or at <https://downloads.chef.io/chef/current>
|
153
|
+
- `stable`: Periodically, Chef will pick a release to "bless" for folks who would like a slower update schedule than "every time a build passes the tests." When this happens, it is manually promoted to stable and an announcement is sent to the list. It can be reached at <https://downloads.chef.io> or installed using the `curl` command without specifying `-c current`. Packages in `stable` are no longer available in `current`.
|
163
154
|
|
164
155
|
Additionally, periodically Chef will update the desired versions of chef components and check that in to `master`, triggering a new build with the updated components in it.
|
165
156
|
|
166
157
|
## Automated Version Bumping
|
167
158
|
|
168
|
-
Whenever a change is checked in to `master`, the patch version of `chef` is bumped. To do this, the `
|
159
|
+
Whenever a change is checked in to `master`, the patch version of `chef` is bumped. To do this, the `chef-ci` bot listens to GitHub for merged PRs, and when it finds one, takes these actions:
|
169
160
|
|
170
|
-
1. Bumps the patch version
|
171
|
-
2.
|
172
|
-
3.
|
173
|
-
4. Pushes to `master` and submits a new build to Chef's Jenkins cluster.
|
161
|
+
1. Bumps the patch version (e.g. 14.1.14 -> 14.1.15) by running ./ci/version_bump.sh
|
162
|
+
2. Updates the changelog with the new pull request and current point release
|
163
|
+
3. Pushes to `master` and submits a new build to Chef's Jenkins cluster.
|
174
164
|
|
175
165
|
## Bumping the minor version of Chef
|
176
166
|
|
@@ -180,20 +170,25 @@ After each "official" stable release we need to bump the minor version. To do th
|
|
180
170
|
|
181
171
|
Submit a PR with the changes made by the above.
|
182
172
|
|
183
|
-
##
|
173
|
+
## Branch Structure
|
184
174
|
|
185
|
-
|
175
|
+
We develop and ship the current release of Chef off the master branch of this repository. Our goal is that master should always be in a shipable state. Previous stable releases of Chef are developed on their own branches named by the major version (ex: chef-13 or chef-12). We do not perform direct development on these stable branches except to resolve build failures. Instead we backport fixes from our master branch to these stable branches. Stable branches receive critical bugfixes and security releases and stable Chef releases are made as necessary for security purposes.
|
186
176
|
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
177
|
+
## Backporting Fixes to Stable Releases
|
178
|
+
|
179
|
+
If there is a critical fix you believe should be backported from master to a stable branch please follow these steps to backport your change:
|
180
|
+
|
181
|
+
1. Ask in the #chef-dev channel on [Chef Community Slack](https://community-slack.chef.io/) if this is an appropriate change to backport.
|
182
|
+
3. Inspect the Git history and find the `SHA`(s) associated with the fix.
|
183
|
+
4. Backport the fix to a branch via cherry-pick:
|
184
|
+
1. Check out the stable release branch: `git checkout chef-13`
|
185
|
+
1. Create a branch for your backport: `git checkout -b my_great_bug_packport`
|
192
186
|
2. Cherry Pick the SHA with the fix: `git cherry-pick SHA`
|
193
187
|
3. Address any conflicts (if necessary)
|
194
|
-
|
195
|
-
|
196
|
-
|
188
|
+
5. Push the new branch to your origin: `git push origin`
|
189
|
+
5. Open a PR for your backport
|
190
|
+
1. The PR title should be `Backport: ORIGINAL_PR_TEXT`
|
191
|
+
2. The description should link to the original PR and include a description of why it needs to be backported
|
197
192
|
|
198
193
|
## Component Versions
|
199
194
|
|
@@ -230,7 +225,7 @@ Chef - A configuration management system
|
|
230
225
|
| | |
|
231
226
|
|:---------------------|:-----------------------------------------|
|
232
227
|
| **Author:** | Adam Jacob (<adam@chef.io>)
|
233
|
-
| **Copyright:** | Copyright 2008-
|
228
|
+
| **Copyright:** | Copyright 2008-2018, Chef Software, Inc.
|
234
229
|
| **License:** | Apache License, Version 2.0
|
235
230
|
|
236
231
|
```
|
data/Rakefile
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#
|
2
2
|
# Author:: Adam Jacob (<adam@chef.io>)
|
3
3
|
# Author:: Daniel DeLeo (<dan@chef.io>)
|
4
|
-
# Copyright:: Copyright 2008-
|
4
|
+
# Copyright:: Copyright 2008-2018, Chef Software Inc.
|
5
5
|
# License:: Apache License, Version 2.0
|
6
6
|
#
|
7
7
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -17,24 +17,24 @@
|
|
17
17
|
# limitations under the License.
|
18
18
|
#
|
19
19
|
|
20
|
-
VERSION = IO.read(File.expand_path("../VERSION", __FILE__)).strip
|
21
|
-
|
22
|
-
require "rubygems"
|
23
|
-
require "chef/version"
|
24
|
-
require "chef-config/package_task"
|
25
|
-
require "rdoc/task"
|
26
20
|
require_relative "tasks/rspec"
|
27
21
|
require_relative "tasks/maintainers"
|
28
|
-
require_relative "tasks/cbgb"
|
29
22
|
require_relative "tasks/dependencies"
|
30
23
|
require_relative "tasks/announce"
|
31
24
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
25
|
+
# hack the chef-config install to run before the traditional install task
|
26
|
+
task :super_install do
|
27
|
+
chef_config_path = ::File.join(::File.dirname(__FILE__), "chef-config")
|
28
|
+
Dir.chdir(chef_config_path)
|
29
|
+
sh("rake install")
|
36
30
|
end
|
37
31
|
|
32
|
+
task install: :super_install
|
33
|
+
|
34
|
+
# make sure we build the correct gemspec on windows
|
35
|
+
gemspec = Gem.win_platform? ? "chef-universal-mingw32" : "chef"
|
36
|
+
Bundler::GemHelper.install_tasks name: gemspec
|
37
|
+
|
38
38
|
task :pedant, :chef_zero_spec
|
39
39
|
|
40
40
|
task :build_eventlog do
|
@@ -56,21 +56,17 @@ begin
|
|
56
56
|
task.options += ["--display-cop-names", "--no-color"]
|
57
57
|
end
|
58
58
|
rescue LoadError
|
59
|
-
puts "chefstyle/rubocop is not available.
|
59
|
+
puts "chefstyle/rubocop is not available. bundle install first to make sure all dependencies are installed."
|
60
60
|
end
|
61
61
|
|
62
62
|
begin
|
63
63
|
require "yard"
|
64
|
-
DOC_FILES = [ "
|
65
|
-
namespace :yard do
|
66
|
-
desc "Create YARD documentation"
|
64
|
+
DOC_FILES = [ "spec/tiny_server.rb", "lib/**/*.rb" ].freeze
|
67
65
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
end
|
66
|
+
YARD::Rake::YardocTask.new(:docs) do |t|
|
67
|
+
t.files = DOC_FILES
|
68
|
+
t.options = ["--format", "html"]
|
72
69
|
end
|
73
|
-
|
74
70
|
rescue LoadError
|
75
|
-
puts "yard is not available.
|
71
|
+
puts "yard is not available. bundle install first to make sure all dependencies are installed."
|
76
72
|
end
|
@@ -16,7 +16,7 @@ gemspec.add_dependency "win32-service", "~> 1.0"
|
|
16
16
|
gemspec.add_dependency "windows-api", "~> 0.4.4"
|
17
17
|
gemspec.add_dependency "wmi-lite", "~> 1.0"
|
18
18
|
gemspec.extensions << "ext/win32-eventlog/Rakefile"
|
19
|
-
gemspec.files +=
|
19
|
+
gemspec.files += Dir.glob("{distro,ext}/**/*")
|
20
20
|
|
21
21
|
gemspec.executables += %w{ chef-service-manager chef-windows-service }
|
22
22
|
|
data/chef.gemspec
CHANGED
@@ -5,7 +5,7 @@ Gem::Specification.new do |s|
|
|
5
5
|
s.name = "chef"
|
6
6
|
s.version = Chef::VERSION
|
7
7
|
s.platform = Gem::Platform::RUBY
|
8
|
-
s.extra_rdoc_files = ["README.md", "
|
8
|
+
s.extra_rdoc_files = ["README.md", "LICENSE" ]
|
9
9
|
s.summary = "A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure."
|
10
10
|
s.description = s.summary
|
11
11
|
s.license = "Apache-2.0"
|
@@ -37,7 +37,7 @@ Gem::Specification.new do |s|
|
|
37
37
|
s.add_dependency "plist", "~> 3.2"
|
38
38
|
s.add_dependency "iniparse", "~> 1.4"
|
39
39
|
s.add_dependency "addressable"
|
40
|
-
s.add_dependency "iso8601", "~> 0.
|
40
|
+
s.add_dependency "iso8601", "~> 0.12.1"
|
41
41
|
|
42
42
|
# Audit mode requires these, so they are non-developmental dependencies now
|
43
43
|
%w{rspec-core rspec-expectations rspec-mocks}.each { |gem| s.add_dependency gem, "~> 3.5", "< 3.8" }
|
@@ -58,5 +58,5 @@ Gem::Specification.new do |s|
|
|
58
58
|
s.executables = %w{ chef-client chef-solo knife chef-shell chef-apply }
|
59
59
|
|
60
60
|
s.require_paths = %w{ lib }
|
61
|
-
s.files = %w{Gemfile Rakefile LICENSE README.md
|
61
|
+
s.files = %w{Gemfile Rakefile LICENSE README.md} + Dir.glob("{lib,tasks,spec}/**/*", File::FNM_DOTMATCH).reject { |f| File.directory?(f) } + Dir.glob("*.gemspec")
|
62
62
|
end
|
data/lib/chef/client.rb
CHANGED
@@ -162,7 +162,7 @@ class Chef
|
|
162
162
|
event_handlers += Array(Chef::Config[:event_handlers])
|
163
163
|
|
164
164
|
@events = EventDispatch::Dispatcher.new(*event_handlers)
|
165
|
-
#
|
165
|
+
# @todo it seems like a bad idea to be deletin' other peoples' hashes.
|
166
166
|
@override_runlist = args.delete(:override_runlist)
|
167
167
|
@specific_recipes = args.delete(:specific_recipes)
|
168
168
|
@run_status = Chef::RunStatus.new(nil, events)
|
@@ -178,7 +178,9 @@ class Chef
|
|
178
178
|
to_be.each do |tb|
|
179
179
|
return true if value == tb
|
180
180
|
end
|
181
|
-
|
181
|
+
# Ruby will print :something as something, which confuses users so make sure to print them as symbols
|
182
|
+
# by inspecting the value instead of just printing it
|
183
|
+
raise Exceptions::ValidationFailed, _validation_message(key, "Option #{key} must be equal to one of: #{to_be.map { |v| v.inspect }.join(", ")}! You passed #{value.inspect}.")
|
182
184
|
end
|
183
185
|
end
|
184
186
|
|
data/lib/chef/provider/script.rb
CHANGED
@@ -49,9 +49,9 @@ class Chef
|
|
49
49
|
|
50
50
|
def load_current_resource
|
51
51
|
super
|
52
|
-
# @todo Chef-
|
52
|
+
# @todo Chef-15: change this to an exception
|
53
53
|
if code.nil?
|
54
|
-
Chef::Log.warn "#{new_resource}: No code attribute was given, resource does nothing, this behavior is deprecated and will be removed in Chef
|
54
|
+
Chef::Log.warn "#{new_resource}: No code attribute was given, resource does nothing, this behavior is deprecated and will be removed in Chef 15 (April 2019)"
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
data/lib/chef/version.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#
|
2
2
|
# Author:: Lamont Granquist (<lamont@chef.io>)
|
3
|
-
# Copyright:: Copyright 2014-
|
3
|
+
# Copyright:: Copyright 2014-2018, Chef Software Inc.
|
4
4
|
# License:: Apache License, Version 2.0
|
5
5
|
#
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -24,13 +24,19 @@ describe Chef::HTTP::Simple do
|
|
24
24
|
include ChefHTTPShared
|
25
25
|
|
26
26
|
let(:http_client) { described_class.new(source) }
|
27
|
-
let(:http_client_disable_gzip) { described_class.new(source, { :
|
27
|
+
let(:http_client_disable_gzip) { described_class.new(source, { disable_gzip: true } ) }
|
28
|
+
|
29
|
+
before(:all) do
|
30
|
+
start_tiny_server(RequestTimeout: 1)
|
31
|
+
end
|
28
32
|
|
29
33
|
before(:each) do
|
30
|
-
|
34
|
+
Chef::Config[:rest_timeout] = 2
|
35
|
+
Chef::Config[:http_retry_delay] = 1
|
36
|
+
Chef::Config[:http_retry_count] = 2
|
31
37
|
end
|
32
38
|
|
33
|
-
after(:
|
39
|
+
after(:all) do
|
34
40
|
stop_tiny_server
|
35
41
|
end
|
36
42
|
|
@@ -46,10 +52,10 @@ describe Chef::HTTP::Simple do
|
|
46
52
|
end
|
47
53
|
|
48
54
|
shared_examples_for "validates content length and throws an exception" do
|
49
|
-
it "
|
55
|
+
it "a streaming request throws a content length exception" do
|
50
56
|
expect { http_client.streaming_request(source) }.to raise_error(Chef::Exceptions::ContentLengthMismatch)
|
51
57
|
end
|
52
|
-
it "
|
58
|
+
it "a non-streaming GET request throws a content length exception" do
|
53
59
|
expect { http_client.get(source) }.to raise_error(Chef::Exceptions::ContentLengthMismatch)
|
54
60
|
end
|
55
61
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#
|
2
2
|
# Author:: Seth Chisamore (<schisamo@chef.io>)
|
3
|
-
# Copyright:: Copyright 2011-
|
3
|
+
# Copyright:: Copyright 2011-2018, Chef Software Inc.
|
4
4
|
# License:: Apache License, Version 2.0
|
5
5
|
#
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -28,6 +28,9 @@ describe Chef::Resource::RemoteFile do
|
|
28
28
|
before(:each) do
|
29
29
|
@old_file_cache = Chef::Config[:file_cache_path]
|
30
30
|
Chef::Config[:file_cache_path] = file_cache_path
|
31
|
+
Chef::Config[:rest_timeout] = 2
|
32
|
+
Chef::Config[:http_retry_delay] = 1
|
33
|
+
Chef::Config[:http_retry_count] = 2
|
31
34
|
end
|
32
35
|
|
33
36
|
after(:each) do
|
@@ -55,11 +58,11 @@ describe Chef::Resource::RemoteFile do
|
|
55
58
|
let(:default_mode) { (0666 & ~File.umask).to_s(8) }
|
56
59
|
|
57
60
|
context "when fetching files over HTTP" do
|
58
|
-
before(:
|
59
|
-
start_tiny_server
|
61
|
+
before(:all) do
|
62
|
+
start_tiny_server(RequestTimeout: 1)
|
60
63
|
end
|
61
64
|
|
62
|
-
after(:
|
65
|
+
after(:all) do
|
63
66
|
stop_tiny_server
|
64
67
|
end
|
65
68
|
|
@@ -97,21 +100,22 @@ describe Chef::Resource::RemoteFile do
|
|
97
100
|
|
98
101
|
context "when fetching files over HTTPS" do
|
99
102
|
|
100
|
-
before(:
|
103
|
+
before(:all) do
|
101
104
|
cert_text = File.read(File.expand_path("ssl/chef-rspec.cert", CHEF_SPEC_DATA))
|
102
105
|
cert = OpenSSL::X509::Certificate.new(cert_text)
|
103
106
|
key_text = File.read(File.expand_path("ssl/chef-rspec.key", CHEF_SPEC_DATA))
|
104
107
|
key = OpenSSL::PKey::RSA.new(key_text)
|
105
108
|
|
106
|
-
server_opts = { :
|
107
|
-
:
|
108
|
-
:
|
109
|
-
:
|
109
|
+
server_opts = { SSLEnable: true,
|
110
|
+
SSLVerifyClient: OpenSSL::SSL::VERIFY_NONE,
|
111
|
+
SSLCertificate: cert,
|
112
|
+
SSLPrivateKey: key,
|
113
|
+
RequestTimeout: 1 }
|
110
114
|
|
111
115
|
start_tiny_server(server_opts)
|
112
116
|
end
|
113
117
|
|
114
|
-
after(:
|
118
|
+
after(:all) do
|
115
119
|
stop_tiny_server
|
116
120
|
end
|
117
121
|
|
@@ -295,11 +299,11 @@ describe Chef::Resource::RemoteFile do
|
|
295
299
|
end
|
296
300
|
|
297
301
|
context "when dealing with content length checking" do
|
298
|
-
before(:
|
299
|
-
start_tiny_server
|
302
|
+
before(:all) do
|
303
|
+
start_tiny_server(RequestTimeout: 1)
|
300
304
|
end
|
301
305
|
|
302
|
-
after(:
|
306
|
+
after(:all) do
|
303
307
|
stop_tiny_server
|
304
308
|
end
|
305
309
|
|
@@ -356,7 +360,7 @@ describe Chef::Resource::RemoteFile do
|
|
356
360
|
|
357
361
|
it "should raise ContentLengthMismatch" do
|
358
362
|
expect { resource.run_action(:create) }.to raise_error(Chef::Exceptions::ContentLengthMismatch)
|
359
|
-
#File.should_not exist(path) # XXX: CHEF-5081
|
363
|
+
# File.should_not exist(path) # XXX: CHEF-5081
|
360
364
|
end
|
361
365
|
end
|
362
366
|
|
@@ -369,7 +373,7 @@ describe Chef::Resource::RemoteFile do
|
|
369
373
|
|
370
374
|
it "should raise ContentLengthMismatch" do
|
371
375
|
expect { resource.run_action(:create) }.to raise_error(Chef::Exceptions::ContentLengthMismatch)
|
372
|
-
#File.should_not exist(path) # XXX: CHEF-5081
|
376
|
+
# File.should_not exist(path) # XXX: CHEF-5081
|
373
377
|
end
|
374
378
|
end
|
375
379
|
|