chef-dk 3.3.23 → 3.4.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +7 -7
- data/Gemfile.lock +91 -82
- data/lib/chef-dk/cli.rb +13 -13
- data/lib/chef-dk/command/base.rb +8 -8
- data/lib/chef-dk/command/clean_policy_cookbooks.rb +10 -10
- data/lib/chef-dk/command/clean_policy_revisions.rb +9 -9
- data/lib/chef-dk/command/delete_policy.rb +9 -9
- data/lib/chef-dk/command/delete_policy_group.rb +9 -9
- data/lib/chef-dk/command/diff.rb +35 -35
- data/lib/chef-dk/command/export.rb +11 -11
- data/lib/chef-dk/command/generate.rb +3 -3
- data/lib/chef-dk/command/generator_commands.rb +24 -24
- data/lib/chef-dk/command/generator_commands/build_cookbook.rb +3 -3
- data/lib/chef-dk/command/generator_commands/chef_exts/generator_desc_resource.rb +1 -1
- data/lib/chef-dk/command/generator_commands/cookbook.rb +3 -3
- data/lib/chef-dk/command/generator_commands/cookbook_file.rb +3 -3
- data/lib/chef-dk/command/generator_commands/generator_generator.rb +5 -5
- data/lib/chef-dk/command/generator_commands/template.rb +3 -3
- data/lib/chef-dk/command/install.rb +11 -11
- data/lib/chef-dk/command/provision.rb +32 -32
- data/lib/chef-dk/command/push.rb +9 -9
- data/lib/chef-dk/command/push_archive.rb +9 -9
- data/lib/chef-dk/command/shell_init.rb +21 -21
- data/lib/chef-dk/command/show_policy.rb +11 -11
- data/lib/chef-dk/command/undelete.rb +17 -17
- data/lib/chef-dk/command/update.rb +12 -12
- data/lib/chef-dk/command/verify.rb +63 -63
- data/lib/chef-dk/component_test.rb +3 -3
- data/lib/chef-dk/exceptions.rb +5 -5
- data/lib/chef-dk/generator.rb +61 -61
- data/lib/chef-dk/helpers.rb +1 -1
- data/lib/chef-dk/policyfile/cookbook_location_specification.rb +1 -1
- data/lib/chef-dk/policyfile/cookbook_locks.rb +1 -1
- data/lib/chef-dk/policyfile/git_lock_fetcher.rb +7 -7
- data/lib/chef-dk/policyfile/policyfile_location_specification.rb +1 -1
- data/lib/chef-dk/policyfile/uploader.rb +4 -4
- data/lib/chef-dk/policyfile_compiler.rb +1 -1
- data/lib/chef-dk/policyfile_services/export_repo.rb +49 -49
- data/lib/chef-dk/policyfile_services/install.rb +3 -3
- data/lib/chef-dk/policyfile_services/push_archive.rb +5 -5
- data/lib/chef-dk/policyfile_services/rm_policy_group.rb +1 -1
- data/lib/chef-dk/policyfile_services/update_attributes.rb +2 -2
- data/lib/chef-dk/service_exception_inspectors/http.rb +9 -9
- data/lib/chef-dk/skeletons/code_generator/recipes/recipe.rb +6 -6
- data/lib/chef-dk/version.rb +1 -1
- data/lib/kitchen/provisioner/policyfile_zero.rb +9 -9
- data/omnibus_overrides.rb +1 -1
- data/spec/spec_helper.rb +3 -3
- data/spec/unit/cli_spec.rb +9 -9
- data/spec/unit/command/base_spec.rb +25 -25
- data/spec/unit/command/clean_policy_cookbooks_spec.rb +6 -6
- data/spec/unit/command/clean_policy_revisions_spec.rb +6 -6
- data/spec/unit/command/delete_policy_group_spec.rb +6 -6
- data/spec/unit/command/delete_policy_spec.rb +6 -6
- data/spec/unit/command/export_spec.rb +10 -10
- data/spec/unit/command/generate_spec.rb +5 -5
- data/spec/unit/command/generator_commands/build_cookbook_spec.rb +15 -15
- data/spec/unit/command/generator_commands/cookbook_spec.rb +174 -174
- data/spec/unit/command/generator_commands/generator_generator_spec.rb +5 -5
- data/spec/unit/command/generator_commands/policyfile_spec.rb +15 -15
- data/spec/unit/command/generator_commands/repo_spec.rb +16 -16
- data/spec/unit/command/install_spec.rb +15 -15
- data/spec/unit/command/provision_spec.rb +25 -25
- data/spec/unit/command/push_spec.rb +12 -12
- data/spec/unit/command/shell_init_spec.rb +59 -59
- data/spec/unit/command/show_policy_spec.rb +6 -6
- data/spec/unit/command/undelete_spec.rb +6 -6
- data/spec/unit/command/update_spec.rb +30 -30
- data/spec/unit/fixtures/command/cli_test_command.rb +1 -1
- data/spec/unit/policyfile/chef_server_lock_fetcher_spec.rb +41 -41
- data/spec/unit/policyfile/comparison_base_spec.rb +38 -38
- data/spec/unit/policyfile/cookbook_locks_spec.rb +3 -3
- data/spec/unit/policyfile/differ_spec.rb +361 -361
- data/spec/unit/policyfile/git_lock_fetcher_spec.rb +34 -34
- data/spec/unit/policyfile/included_policies_cookbook_source_spec.rb +6 -6
- data/spec/unit/policyfile/local_lock_fetcher_spec.rb +35 -35
- data/spec/unit/policyfile/lock_applier_spec.rb +6 -6
- data/spec/unit/policyfile/reports/upload_spec.rb +5 -5
- data/spec/unit/policyfile/uploader_spec.rb +27 -27
- data/spec/unit/policyfile_demands_spec.rb +84 -84
- data/spec/unit/policyfile_evaluation_spec.rb +14 -14
- data/spec/unit/policyfile_includes_spec.rb +1 -1
- data/spec/unit/policyfile_install_with_includes_spec.rb +3 -3
- data/spec/unit/policyfile_lock_build_spec.rb +58 -58
- data/spec/unit/policyfile_lock_validation_spec.rb +108 -108
- data/spec/unit/policyfile_services/clean_policies_spec.rb +12 -12
- data/spec/unit/policyfile_services/clean_policy_cookbooks_spec.rb +9 -9
- data/spec/unit/policyfile_services/export_repo_spec.rb +64 -64
- data/spec/unit/policyfile_services/install_spec.rb +4 -4
- data/spec/unit/policyfile_services/push_archive_spec.rb +41 -41
- data/spec/unit/policyfile_services/push_spec.rb +38 -38
- data/spec/unit/policyfile_services/rm_policy_group_spec.rb +12 -12
- data/spec/unit/policyfile_services/rm_policy_spec.rb +6 -6
- data/spec/unit/policyfile_services/show_policy_spec.rb +161 -161
- data/spec/unit/policyfile_services/undelete_spec.rb +13 -13
- data/spec/unit/policyfile_services/update_attributes_spec.rb +6 -6
- data/spec/unit/policyfile_services/update_spec.rb +7 -7
- data/spec/unit/service_exception_inspectors/http_spec.rb +12 -12
- metadata +2 -2
|
@@ -27,21 +27,21 @@ module ChefDK
|
|
|
27
27
|
|
|
28
28
|
include Configurable
|
|
29
29
|
|
|
30
|
-
banner(
|
|
31
|
-
Usage: chef install [ POLICY_FILE ] [options]
|
|
30
|
+
banner(<<~E)
|
|
31
|
+
Usage: chef install [ POLICY_FILE ] [options]
|
|
32
32
|
|
|
33
|
-
`chef install` evaluates a `Policyfile.rb` to find a compatible set of
|
|
34
|
-
cookbooks for the policy's run_list and caches them locally. It emits a
|
|
35
|
-
Policyfile.lock.json describing the locked cookbook set. You can use the
|
|
36
|
-
lockfile to install the locked cookbooks on another machine. You can also push
|
|
37
|
-
the lockfile to a "policy group" on a Chef Server and apply that exact set of
|
|
38
|
-
cookbooks to nodes in your infrastructure.
|
|
33
|
+
`chef install` evaluates a `Policyfile.rb` to find a compatible set of
|
|
34
|
+
cookbooks for the policy's run_list and caches them locally. It emits a
|
|
35
|
+
Policyfile.lock.json describing the locked cookbook set. You can use the
|
|
36
|
+
lockfile to install the locked cookbooks on another machine. You can also push
|
|
37
|
+
the lockfile to a "policy group" on a Chef Server and apply that exact set of
|
|
38
|
+
cookbooks to nodes in your infrastructure.
|
|
39
39
|
|
|
40
|
-
See our detailed README for more information:
|
|
40
|
+
See our detailed README for more information:
|
|
41
41
|
|
|
42
|
-
https://docs.chef.io/policyfile.html
|
|
42
|
+
https://docs.chef.io/policyfile.html
|
|
43
43
|
|
|
44
|
-
Options:
|
|
44
|
+
Options:
|
|
45
45
|
|
|
46
46
|
E
|
|
47
47
|
|
|
@@ -71,19 +71,19 @@ module ChefDK
|
|
|
71
71
|
end
|
|
72
72
|
|
|
73
73
|
def chef_config
|
|
74
|
-
config =
|
|
75
|
-
# SSL Settings:
|
|
76
|
-
ssl_verify_mode #{Chef::Config.ssl_verify_mode.inspect}
|
|
74
|
+
config = <<~CONFIG
|
|
75
|
+
# SSL Settings:
|
|
76
|
+
ssl_verify_mode #{Chef::Config.ssl_verify_mode.inspect}
|
|
77
77
|
|
|
78
78
|
CONFIG
|
|
79
79
|
if enable_policyfile
|
|
80
|
-
policyfile_config =
|
|
81
|
-
# Policyfile Settings:
|
|
82
|
-
use_policyfile true
|
|
83
|
-
policy_document_native_api true
|
|
80
|
+
policyfile_config = <<~CONFIG
|
|
81
|
+
# Policyfile Settings:
|
|
82
|
+
use_policyfile true
|
|
83
|
+
policy_document_native_api true
|
|
84
84
|
|
|
85
|
-
policy_group "#{policy_group}"
|
|
86
|
-
policy_name "#{policy_name}"
|
|
85
|
+
policy_group "#{policy_group}"
|
|
86
|
+
policy_name "#{policy_name}"
|
|
87
87
|
|
|
88
88
|
CONFIG
|
|
89
89
|
config << policyfile_config
|
|
@@ -100,39 +100,39 @@ CONFIG
|
|
|
100
100
|
|
|
101
101
|
class Provision < Base
|
|
102
102
|
|
|
103
|
-
banner(
|
|
104
|
-
Usage: chef provision POLICY_GROUP --policy-name POLICY_NAME [options]
|
|
105
|
-
|
|
106
|
-
|
|
103
|
+
banner(<<~E)
|
|
104
|
+
Usage: chef provision POLICY_GROUP --policy-name POLICY_NAME [options]
|
|
105
|
+
chef provision POLICY_GROUP --sync [POLICYFILE_PATH] [options]
|
|
106
|
+
chef provision --no-policy [options]
|
|
107
107
|
|
|
108
|
-
`chef provision` invokes an embedded chef-client run to provision machines
|
|
109
|
-
using Chef Provisioning. If not otherwise specified, `chef provision` will
|
|
110
|
-
expect to find a cookbook named 'provision' in the current working directory.
|
|
111
|
-
It runs a recipe in this cookbook which should use Chef Provisioning to create
|
|
112
|
-
one or more machines (or other infrastructure).
|
|
108
|
+
`chef provision` invokes an embedded chef-client run to provision machines
|
|
109
|
+
using Chef Provisioning. If not otherwise specified, `chef provision` will
|
|
110
|
+
expect to find a cookbook named 'provision' in the current working directory.
|
|
111
|
+
It runs a recipe in this cookbook which should use Chef Provisioning to create
|
|
112
|
+
one or more machines (or other infrastructure).
|
|
113
113
|
|
|
114
|
-
`chef provision` provides three forms of operation:
|
|
114
|
+
`chef provision` provides three forms of operation:
|
|
115
115
|
|
|
116
|
-
### chef provision POLICY_GROUP --policy-name POLICY_NAME
|
|
116
|
+
### chef provision POLICY_GROUP --policy-name POLICY_NAME
|
|
117
117
|
|
|
118
|
-
In the first form of the command, `chef provision` creates machines that will
|
|
119
|
-
operate in policyfile mode. The chef configuration passed to the cookbook will
|
|
120
|
-
set the policy group and policy name as given.
|
|
118
|
+
In the first form of the command, `chef provision` creates machines that will
|
|
119
|
+
operate in policyfile mode. The chef configuration passed to the cookbook will
|
|
120
|
+
set the policy group and policy name as given.
|
|
121
121
|
|
|
122
|
-
### chef provision POLICY_GROUP --sync [POLICYFILE_PATH] [options]
|
|
122
|
+
### chef provision POLICY_GROUP --sync [POLICYFILE_PATH] [options]
|
|
123
123
|
|
|
124
|
-
In the second form of the command, `chef provision` create machines that will
|
|
125
|
-
operate in policyfile mode and syncronizes a local policyfile to the server
|
|
126
|
-
before converging the machine(s) defined in the provision cookbook.
|
|
124
|
+
In the second form of the command, `chef provision` create machines that will
|
|
125
|
+
operate in policyfile mode and syncronizes a local policyfile to the server
|
|
126
|
+
before converging the machine(s) defined in the provision cookbook.
|
|
127
127
|
|
|
128
|
-
### chef provision --no-policy [options]
|
|
128
|
+
### chef provision --no-policy [options]
|
|
129
129
|
|
|
130
|
-
In the third form of the command, `chef provision` expects to create machines
|
|
131
|
-
that will not operate in policyfile mode.
|
|
130
|
+
In the third form of the command, `chef provision` expects to create machines
|
|
131
|
+
that will not operate in policyfile mode.
|
|
132
132
|
|
|
133
|
-
Chef Provisioning is documented at https://docs.chef.io/provisioning.html
|
|
133
|
+
Chef Provisioning is documented at https://docs.chef.io/provisioning.html
|
|
134
134
|
|
|
135
|
-
Options:
|
|
135
|
+
Options:
|
|
136
136
|
|
|
137
137
|
E
|
|
138
138
|
include Configurable
|
data/lib/chef-dk/command/push.rb
CHANGED
|
@@ -27,19 +27,19 @@ module ChefDK
|
|
|
27
27
|
|
|
28
28
|
include Configurable
|
|
29
29
|
|
|
30
|
-
banner(
|
|
31
|
-
Usage: chef push POLICY_GROUP [ POLICY_FILE ] [options]
|
|
30
|
+
banner(<<~E)
|
|
31
|
+
Usage: chef push POLICY_GROUP [ POLICY_FILE ] [options]
|
|
32
32
|
|
|
33
|
-
`chef push` Uploads an existing Policyfile.lock.json to a Chef Server, along
|
|
34
|
-
with all the cookbooks contained in the policy lock. The policy lock is applied
|
|
35
|
-
to a specific POLICY_GROUP, which is a set of nodes that share the same
|
|
36
|
-
run_list and cookbooks.
|
|
33
|
+
`chef push` Uploads an existing Policyfile.lock.json to a Chef Server, along
|
|
34
|
+
with all the cookbooks contained in the policy lock. The policy lock is applied
|
|
35
|
+
to a specific POLICY_GROUP, which is a set of nodes that share the same
|
|
36
|
+
run_list and cookbooks.
|
|
37
37
|
|
|
38
|
-
See our detailed README for more information:
|
|
38
|
+
See our detailed README for more information:
|
|
39
39
|
|
|
40
|
-
https://docs.chef.io/policyfile.html
|
|
40
|
+
https://docs.chef.io/policyfile.html
|
|
41
41
|
|
|
42
|
-
Options:
|
|
42
|
+
Options:
|
|
43
43
|
|
|
44
44
|
E
|
|
45
45
|
|
|
@@ -27,19 +27,19 @@ module ChefDK
|
|
|
27
27
|
|
|
28
28
|
include Configurable
|
|
29
29
|
|
|
30
|
-
banner(
|
|
31
|
-
Usage: chef push-archive POLICY_GROUP ARCHIVE_FILE [options]
|
|
30
|
+
banner(<<~E)
|
|
31
|
+
Usage: chef push-archive POLICY_GROUP ARCHIVE_FILE [options]
|
|
32
32
|
|
|
33
|
-
`chef push-archive` publishes a policy archive to a Chef Server. Policy
|
|
34
|
-
archives can be created with `chef export -a`. The policy will be applied to
|
|
35
|
-
the given POLICY_GROUP, which is a set of nodes that share the same
|
|
36
|
-
run_list and cookbooks.
|
|
33
|
+
`chef push-archive` publishes a policy archive to a Chef Server. Policy
|
|
34
|
+
archives can be created with `chef export -a`. The policy will be applied to
|
|
35
|
+
the given POLICY_GROUP, which is a set of nodes that share the same
|
|
36
|
+
run_list and cookbooks.
|
|
37
37
|
|
|
38
|
-
For more information about Policyfiles, see our detailed README:
|
|
38
|
+
For more information about Policyfiles, see our detailed README:
|
|
39
39
|
|
|
40
|
-
https://docs.chef.io/policyfile.html
|
|
40
|
+
https://docs.chef.io/policyfile.html
|
|
41
41
|
|
|
42
|
-
Options:
|
|
42
|
+
Options:
|
|
43
43
|
E
|
|
44
44
|
|
|
45
45
|
option :config_file,
|
|
@@ -43,37 +43,37 @@ module ChefDK
|
|
|
43
43
|
|
|
44
44
|
SUPPORTED_SHELLS = %w{ bash fish zsh sh powershell posh}.map(&:freeze).freeze
|
|
45
45
|
|
|
46
|
-
banner(
|
|
47
|
-
Usage: chef shell-init
|
|
46
|
+
banner(<<~HELP)
|
|
47
|
+
Usage: chef shell-init
|
|
48
48
|
|
|
49
|
-
`chef shell-init` modifies your shell environment to make ChefDK your default
|
|
50
|
-
ruby.
|
|
49
|
+
`chef shell-init` modifies your shell environment to make ChefDK your default
|
|
50
|
+
ruby.
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
To enable for just the current shell session:
|
|
53
53
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
54
|
+
In sh, bash, and zsh:
|
|
55
|
+
eval "$(chef shell-init SHELL_NAME)"
|
|
56
|
+
In fish:
|
|
57
|
+
eval (chef shell-init fish)
|
|
58
|
+
In Powershell:
|
|
59
|
+
chef shell-init powershell | Invoke-Expression
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
To permanently enable:
|
|
62
62
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
63
|
+
In sh, bash, and zsh:
|
|
64
|
+
echo 'eval "$(chef shell-init SHELL_NAME)"' >> ~/.YOUR_SHELL_RC_FILE
|
|
65
|
+
In fish:
|
|
66
|
+
echo 'eval (chef shell-init SHELL_NAME)' >> ~/.config/fish/config.fish
|
|
67
|
+
In Powershell
|
|
68
|
+
"chef shell-init powershell | Invoke-Expression" >> $PROFILE
|
|
69
69
|
|
|
70
|
-
OPTIONS:
|
|
70
|
+
OPTIONS:
|
|
71
71
|
|
|
72
72
|
HELP
|
|
73
73
|
|
|
74
74
|
option :omnibus_dir,
|
|
75
|
-
:
|
|
76
|
-
:
|
|
75
|
+
long: "--omnibus-dir OMNIBUS_DIR",
|
|
76
|
+
description: "Alternate path to omnibus install (used for testing)"
|
|
77
77
|
|
|
78
78
|
def initialize
|
|
79
79
|
super
|
|
@@ -26,22 +26,22 @@ module ChefDK
|
|
|
26
26
|
|
|
27
27
|
class ShowPolicy < Base
|
|
28
28
|
|
|
29
|
-
banner(
|
|
30
|
-
Usage: chef show-policy [POLICY_NAME [POLICY_GROUP]] [options]
|
|
29
|
+
banner(<<~BANNER)
|
|
30
|
+
Usage: chef show-policy [POLICY_NAME [POLICY_GROUP]] [options]
|
|
31
31
|
|
|
32
|
-
`chef show-policy` Displays the revisions of policyfiles on the server. By
|
|
33
|
-
default, only active policy revisions are shown. Use the `--orphans` options to
|
|
34
|
-
show policy revisions that are not assigned to any policy group.
|
|
32
|
+
`chef show-policy` Displays the revisions of policyfiles on the server. By
|
|
33
|
+
default, only active policy revisions are shown. Use the `--orphans` options to
|
|
34
|
+
show policy revisions that are not assigned to any policy group.
|
|
35
35
|
|
|
36
|
-
When both POLICY_NAME and POLICY_GROUP are given, the command shows the content
|
|
37
|
-
of a the active policyfile lock for the given POLICY_GROUP. See also the `diff`
|
|
38
|
-
command.
|
|
36
|
+
When both POLICY_NAME and POLICY_GROUP are given, the command shows the content
|
|
37
|
+
of a the active policyfile lock for the given POLICY_GROUP. See also the `diff`
|
|
38
|
+
command.
|
|
39
39
|
|
|
40
|
-
See our detailed README for more information:
|
|
40
|
+
See our detailed README for more information:
|
|
41
41
|
|
|
42
|
-
https://docs.chef.io/policyfile.html
|
|
42
|
+
https://docs.chef.io/policyfile.html
|
|
43
43
|
|
|
44
|
-
Options:
|
|
44
|
+
Options:
|
|
45
45
|
|
|
46
46
|
BANNER
|
|
47
47
|
|
|
@@ -25,30 +25,30 @@ module ChefDK
|
|
|
25
25
|
|
|
26
26
|
class Undelete < Base
|
|
27
27
|
|
|
28
|
-
banner(
|
|
29
|
-
Usage: chef undelete [--list | --id ID] [options]
|
|
28
|
+
banner(<<~BANNER)
|
|
29
|
+
Usage: chef undelete [--list | --id ID] [options]
|
|
30
30
|
|
|
31
|
-
`chef undelete` helps you recover quickly if you've deleted a policy or policy
|
|
32
|
-
group in error. When run with no arguements, it lists the available undo
|
|
33
|
-
operations. To undo the last delete operation, use `chef undelete --last`.
|
|
31
|
+
`chef undelete` helps you recover quickly if you've deleted a policy or policy
|
|
32
|
+
group in error. When run with no arguements, it lists the available undo
|
|
33
|
+
operations. To undo the last delete operation, use `chef undelete --last`.
|
|
34
34
|
|
|
35
|
-
CAVEATS:
|
|
36
|
-
`chef undelete` doesn't detect conflicts. If a deleted item has been recreated,
|
|
37
|
-
running `chef undelete` will overwrite it.
|
|
35
|
+
CAVEATS:
|
|
36
|
+
`chef undelete` doesn't detect conflicts. If a deleted item has been recreated,
|
|
37
|
+
running `chef undelete` will overwrite it.
|
|
38
38
|
|
|
39
|
-
Undo information does not include cookbooks that might be referenced by
|
|
40
|
-
policies. If you have cleaned the policy cookbooks after the delete operation
|
|
41
|
-
you want to reverse, `chef undelete` may not be able to fully restore the
|
|
42
|
-
previous state.
|
|
39
|
+
Undo information does not include cookbooks that might be referenced by
|
|
40
|
+
policies. If you have cleaned the policy cookbooks after the delete operation
|
|
41
|
+
you want to reverse, `chef undelete` may not be able to fully restore the
|
|
42
|
+
previous state.
|
|
43
43
|
|
|
44
|
-
The delete commands also do not store access control data, so you may have to
|
|
45
|
-
manually reapply any ACL customizations you have made.
|
|
44
|
+
The delete commands also do not store access control data, so you may have to
|
|
45
|
+
manually reapply any ACL customizations you have made.
|
|
46
46
|
|
|
47
|
-
See our detailed README for more information:
|
|
47
|
+
See our detailed README for more information:
|
|
48
48
|
|
|
49
|
-
https://docs.chef.io/policyfile.html
|
|
49
|
+
https://docs.chef.io/policyfile.html
|
|
50
50
|
|
|
51
|
-
Options:
|
|
51
|
+
Options:
|
|
52
52
|
|
|
53
53
|
BANNER
|
|
54
54
|
|
|
@@ -28,23 +28,23 @@ module ChefDK
|
|
|
28
28
|
|
|
29
29
|
include Configurable
|
|
30
30
|
|
|
31
|
-
banner(
|
|
32
|
-
Usage: chef update [ POLICY_FILE ] [options] [cookbook_1] [...]
|
|
31
|
+
banner(<<~BANNER)
|
|
32
|
+
Usage: chef update [ POLICY_FILE ] [options] [cookbook_1] [...]
|
|
33
33
|
|
|
34
|
-
`chef update` reads your `Policyfile.rb`, applies any changes, re-solves the
|
|
35
|
-
dependencies and emits an updated `Policyfile.lock.json`. The new locked policy
|
|
36
|
-
will reflect any changes to the `run_list` and pull in any cookbook updates
|
|
37
|
-
that are compatible with the version constraints stated in your `Policyfile.rb`.
|
|
34
|
+
`chef update` reads your `Policyfile.rb`, applies any changes, re-solves the
|
|
35
|
+
dependencies and emits an updated `Policyfile.lock.json`. The new locked policy
|
|
36
|
+
will reflect any changes to the `run_list` and pull in any cookbook updates
|
|
37
|
+
that are compatible with the version constraints stated in your `Policyfile.rb`.
|
|
38
38
|
|
|
39
|
-
Individual dependent cookbooks (and their dependencies) may be updated by
|
|
40
|
-
passing their names after the POLICY_FILE. The POLICY_FILE parameter is
|
|
41
|
-
mandatory if you want to update individual cookbooks.
|
|
39
|
+
Individual dependent cookbooks (and their dependencies) may be updated by
|
|
40
|
+
passing their names after the POLICY_FILE. The POLICY_FILE parameter is
|
|
41
|
+
mandatory if you want to update individual cookbooks.
|
|
42
42
|
|
|
43
|
-
See our detailed README for more information:
|
|
43
|
+
See our detailed README for more information:
|
|
44
44
|
|
|
45
|
-
https://docs.chef.io/policyfile.html
|
|
45
|
+
https://docs.chef.io/policyfile.html
|
|
46
46
|
|
|
47
|
-
Options:
|
|
47
|
+
Options:
|
|
48
48
|
|
|
49
49
|
BANNER
|
|
50
50
|
|
|
@@ -28,25 +28,25 @@ module ChefDK
|
|
|
28
28
|
banner "Usage: chef verify [component, ...] [options]"
|
|
29
29
|
|
|
30
30
|
option :omnibus_dir,
|
|
31
|
-
:
|
|
32
|
-
:
|
|
31
|
+
long: "--omnibus-dir OMNIBUS_DIR",
|
|
32
|
+
description: "Alternate path to omnibus install (used for testing)"
|
|
33
33
|
|
|
34
34
|
option :unit,
|
|
35
|
-
:
|
|
36
|
-
:
|
|
35
|
+
long: "--unit",
|
|
36
|
+
description: "Run bundled app unit tests (only smoke tests run by default)"
|
|
37
37
|
|
|
38
38
|
option :integration,
|
|
39
|
-
:
|
|
40
|
-
:
|
|
39
|
+
long: "--integration",
|
|
40
|
+
description: "Run integration tests. Possibly dangerous, for development systems only"
|
|
41
41
|
|
|
42
42
|
option :verbose,
|
|
43
|
-
:
|
|
44
|
-
:
|
|
43
|
+
long: "--verbose",
|
|
44
|
+
description: "Display all test output, not just failing tests"
|
|
45
45
|
|
|
46
46
|
class << self
|
|
47
47
|
def add_component(name, _delete_me = nil)
|
|
48
48
|
component = ComponentTest.new(name)
|
|
49
|
-
yield component if block_given? #delete this conditional
|
|
49
|
+
yield component if block_given? # delete this conditional
|
|
50
50
|
component_map[name] = component
|
|
51
51
|
end
|
|
52
52
|
|
|
@@ -124,25 +124,25 @@ module ChefDK
|
|
|
124
124
|
c.smoke_test do
|
|
125
125
|
tmpdir do |cwd|
|
|
126
126
|
File.open(File.join(cwd, ".kitchen.yml"), "w+") do |f|
|
|
127
|
-
f.print(
|
|
128
|
-
---
|
|
129
|
-
driver:
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
provisioner:
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
platforms:
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
suites:
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
127
|
+
f.print(<<~KITCHEN_YML)
|
|
128
|
+
---
|
|
129
|
+
driver:
|
|
130
|
+
name: dummy
|
|
131
|
+
network:
|
|
132
|
+
- ["forwarded_port", {guest: 80, host: 8080}]
|
|
133
|
+
|
|
134
|
+
provisioner:
|
|
135
|
+
name: policyfile_zero
|
|
136
|
+
require_chef_omnibus: 12.3.0
|
|
137
|
+
|
|
138
|
+
platforms:
|
|
139
|
+
- name: ubuntu-14.04
|
|
140
|
+
|
|
141
|
+
suites:
|
|
142
|
+
- name: default
|
|
143
|
+
run_list:
|
|
144
|
+
- recipe[aar::default]
|
|
145
|
+
attributes:
|
|
146
146
|
|
|
147
147
|
KITCHEN_YML
|
|
148
148
|
end
|
|
@@ -186,10 +186,10 @@ KITCHEN_YML
|
|
|
186
186
|
|
|
187
187
|
add_component "chef-apply" do |c|
|
|
188
188
|
c.gem_base_dir = "chef-apply"
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
189
|
+
# c.unit_test do
|
|
190
|
+
# bundle_install_mutex.synchronize { sh("#{embedded_bin("bundle")} install") }
|
|
191
|
+
# sh("#{embedded_bin("bundle")} exec rspec")
|
|
192
|
+
# end
|
|
193
193
|
c.smoke_test { sh("#{bin("chef-run")} -v") }
|
|
194
194
|
end
|
|
195
195
|
|
|
@@ -206,13 +206,13 @@ KITCHEN_YML
|
|
|
206
206
|
|
|
207
207
|
# construct a hash of { driver_name => [version1, version2, ...]}
|
|
208
208
|
driver_versions = {}
|
|
209
|
-
Gem::Specification.all.map { |gs| [gs.name, gs.version] }
|
|
210
|
-
select { |n| n[0] =~ /^chef-provisioning-/ }
|
|
211
|
-
each { |gem, version| (driver_versions[gem] ||= []) << version }
|
|
209
|
+
Gem::Specification.all.map { |gs| [gs.name, gs.version] }
|
|
210
|
+
.select { |n| n[0] =~ /^chef-provisioning-/ }
|
|
211
|
+
.each { |gem, version| (driver_versions[gem] ||= []) << version }
|
|
212
212
|
|
|
213
|
-
drivers = Gem::Specification.all.map { |gs| gs.name }
|
|
214
|
-
select { |n| n =~ /^chef-provisioning-/ }
|
|
215
|
-
uniq
|
|
213
|
+
drivers = Gem::Specification.all.map { |gs| gs.name }
|
|
214
|
+
.select { |n| n =~ /^chef-provisioning-/ }
|
|
215
|
+
.uniq
|
|
216
216
|
|
|
217
217
|
versions = Gem::Specification.find_all_by_name("chef-provisioning").map { |s| s.version }
|
|
218
218
|
$VERBOSE = verbose
|
|
@@ -222,9 +222,9 @@ KITCHEN_YML
|
|
|
222
222
|
# ------------
|
|
223
223
|
# fail the verify if we have more than one version of chef-provisioning or any of its drivers.
|
|
224
224
|
def format_gem_failure(name, versions)
|
|
225
|
-
|
|
226
|
-
#{name} has multiple versions installed:
|
|
227
|
-
#{versions.sort.map { |gv| " #{gv}" }.join("\n")}
|
|
225
|
+
<<~EOS
|
|
226
|
+
#{name} has multiple versions installed:
|
|
227
|
+
#{versions.sort.map { |gv| " #{gv}" }.join("\n")}
|
|
228
228
|
EOS
|
|
229
229
|
end
|
|
230
230
|
|
|
@@ -236,10 +236,10 @@ KITCHEN_YML
|
|
|
236
236
|
end
|
|
237
237
|
|
|
238
238
|
if failures.size > 0
|
|
239
|
-
failures <<
|
|
239
|
+
failures << <<~EOS
|
|
240
240
|
|
|
241
|
-
Some applications may need or prefer different versions of the chef-provisioning gem or its drivers, so
|
|
242
|
-
this multiple-version check can fail if a user has installed new versions of those libraries.
|
|
241
|
+
Some applications may need or prefer different versions of the chef-provisioning gem or its drivers, so
|
|
242
|
+
this multiple-version check can fail if a user has installed new versions of those libraries.
|
|
243
243
|
EOS
|
|
244
244
|
end
|
|
245
245
|
|
|
@@ -300,20 +300,20 @@ EOS
|
|
|
300
300
|
tmpdir do |cwd|
|
|
301
301
|
FileUtils.mkdir(File.join(cwd, "spec"))
|
|
302
302
|
with_file(File.join(cwd, "spec", "spec_helper.rb")) do |f|
|
|
303
|
-
f.write
|
|
304
|
-
require 'chefspec'
|
|
305
|
-
require 'chefspec/berkshelf'
|
|
306
|
-
require 'chefspec/cacher'
|
|
303
|
+
f.write <<~EOF
|
|
304
|
+
require 'chefspec'
|
|
305
|
+
require 'chefspec/berkshelf'
|
|
306
|
+
require 'chefspec/cacher'
|
|
307
307
|
|
|
308
|
-
RSpec.configure do |config|
|
|
309
|
-
|
|
310
|
-
end
|
|
308
|
+
RSpec.configure do |config|
|
|
309
|
+
config.expect_with(:rspec) { |c| c.syntax = :expect }
|
|
310
|
+
end
|
|
311
311
|
EOF
|
|
312
312
|
end
|
|
313
313
|
FileUtils.touch(File.join(cwd, "Berksfile"))
|
|
314
314
|
with_file(File.join(cwd, "spec", "foo_spec.rb")) do |f|
|
|
315
|
-
f.write
|
|
316
|
-
require 'spec_helper'
|
|
315
|
+
f.write <<~EOF
|
|
316
|
+
require 'spec_helper'
|
|
317
317
|
EOF
|
|
318
318
|
end
|
|
319
319
|
sh(embedded_bin("rspec"), cwd: cwd)
|
|
@@ -418,9 +418,9 @@ require 'spec_helper'
|
|
|
418
418
|
|
|
419
419
|
# Commenting out the unit and integration tests for now until we figure
|
|
420
420
|
# out the bundler error
|
|
421
|
-
#c.unit_test { sh("#{embedded_bin("bundle")} exec rake test:isolated") }
|
|
421
|
+
# c.unit_test { sh("#{embedded_bin("bundle")} exec rake test:isolated") }
|
|
422
422
|
# This runs Test Kitchen (using kitchen-inspec) with some inspec tests
|
|
423
|
-
#c.integration_test { sh("#{embedded_bin("bundle")} exec rake test:vm") }
|
|
423
|
+
# c.integration_test { sh("#{embedded_bin("bundle")} exec rake test:vm") }
|
|
424
424
|
|
|
425
425
|
# It would be nice to use a chef generator to create these specs, but
|
|
426
426
|
# we dont have that yet. So we do it manually.
|
|
@@ -513,11 +513,11 @@ require 'spec_helper'
|
|
|
513
513
|
c.smoke_test do
|
|
514
514
|
tmpdir do |cwd|
|
|
515
515
|
with_file(File.join(cwd, "foo.rb")) do |f|
|
|
516
|
-
f.write
|
|
517
|
-
require 'chef/sugar'
|
|
518
|
-
log 'something' do
|
|
519
|
-
|
|
520
|
-
end
|
|
516
|
+
f.write <<~EOF
|
|
517
|
+
require 'chef/sugar'
|
|
518
|
+
log 'something' do
|
|
519
|
+
not_if { _64_bit? }
|
|
520
|
+
end
|
|
521
521
|
EOF
|
|
522
522
|
end
|
|
523
523
|
sh("chef-apply foo.rb", cwd: cwd)
|
|
@@ -594,9 +594,9 @@ end
|
|
|
594
594
|
end
|
|
595
595
|
|
|
596
596
|
{
|
|
597
|
-
:
|
|
598
|
-
:
|
|
599
|
-
:
|
|
597
|
+
component: component,
|
|
598
|
+
results: results,
|
|
599
|
+
component_status: component_status,
|
|
600
600
|
}
|
|
601
601
|
end
|
|
602
602
|
|