chef-dk 0.15.16 → 0.16.28
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CONTRIBUTING.md +1 -26
- data/Gemfile +10 -4
- data/Gemfile.lock +73 -64
- data/LICENSE +201 -201
- data/README.md +2 -1
- data/acceptance/.shared/kitchen_acceptance/.kitchen.digitalocean.yml +27 -27
- data/acceptance/.shared/kitchen_acceptance/.kitchen.ec2.yml +288 -288
- data/acceptance/.shared/kitchen_acceptance/.kitchen.vagrant.yml +52 -52
- data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +51 -51
- data/acceptance/.shared/kitchen_acceptance/metadata.rb +1 -1
- data/acceptance/Gemfile +3 -0
- data/acceptance/Gemfile.lock +24 -24
- data/acceptance/README.md +132 -132
- data/acceptance/trivial/.acceptance/acceptance-cookbook/.gitignore +2 -2
- data/acceptance/trivial/.acceptance/acceptance-cookbook/metadata.rb +2 -2
- data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -1
- data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/provision.rb +1 -1
- data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/verify.rb +1 -1
- data/acceptance/trivial/.kitchen.yml +7 -7
- data/acceptance/trivial/test/integration/chefdk-current-install/inspec/chef_client_spec.rb +5 -5
- data/bin/chef +25 -25
- data/chef-dk.gemspec +1 -1
- data/lib/chef-dk.rb +19 -19
- data/lib/chef-dk/authenticated_http.rb +40 -40
- data/lib/chef-dk/chef_runner.rb +12 -4
- data/lib/chef-dk/command/base.rb +79 -79
- data/lib/chef-dk/command/clean_policy_cookbooks.rb +116 -116
- data/lib/chef-dk/command/clean_policy_revisions.rb +113 -113
- data/lib/chef-dk/command/delete_policy.rb +122 -122
- data/lib/chef-dk/command/delete_policy_group.rb +122 -122
- data/lib/chef-dk/command/diff.rb +316 -316
- data/lib/chef-dk/command/env.rb +90 -90
- data/lib/chef-dk/command/exec.rb +45 -45
- data/lib/chef-dk/command/gem.rb +47 -47
- data/lib/chef-dk/command/generator_commands/app.rb +107 -107
- data/lib/chef-dk/command/generator_commands/attribute.rb +37 -37
- data/lib/chef-dk/command/generator_commands/base.rb +3 -0
- data/lib/chef-dk/command/generator_commands/build_cookbook.rb +4 -4
- data/lib/chef-dk/command/generator_commands/chef_exts/generator_desc_resource.rb +85 -0
- data/lib/chef-dk/command/generator_commands/chef_exts/quieter_doc_formatter.rb +39 -0
- data/lib/chef-dk/command/generator_commands/chef_exts/recipe_dsl_ext.rb +40 -0
- data/lib/chef-dk/command/generator_commands/cookbook.rb +63 -8
- data/lib/chef-dk/command/generator_commands/cookbook_code_file.rb +100 -100
- data/lib/chef-dk/command/generator_commands/cookbook_file.rb +45 -45
- data/lib/chef-dk/command/generator_commands/generator_generator.rb +177 -177
- data/lib/chef-dk/command/generator_commands/lwrp.rb +36 -36
- data/lib/chef-dk/command/generator_commands/policyfile.rb +127 -127
- data/lib/chef-dk/command/generator_commands/recipe.rb +36 -36
- data/lib/chef-dk/command/generator_commands/repo.rb +125 -125
- data/lib/chef-dk/command/generator_commands/template.rb +46 -46
- data/lib/chef-dk/command/install.rb +121 -121
- data/lib/chef-dk/command/provision.rb +438 -438
- data/lib/chef-dk/command/push.rb +118 -118
- data/lib/chef-dk/command/push_archive.rb +126 -126
- data/lib/chef-dk/command/shell_init.rb +180 -180
- data/lib/chef-dk/command/show_policy.rb +165 -165
- data/lib/chef-dk/command/undelete.rb +155 -155
- data/lib/chef-dk/command/update.rb +148 -148
- data/lib/chef-dk/command/verify.rb +31 -26
- data/lib/chef-dk/completions/bash.sh.erb +5 -5
- data/lib/chef-dk/completions/chef.fish.erb +10 -10
- data/lib/chef-dk/completions/zsh.zsh.erb +21 -21
- data/lib/chef-dk/configurable.rb +69 -69
- data/lib/chef-dk/cookbook_metadata.rb +45 -45
- data/lib/chef-dk/cookbook_omnifetch.rb +32 -32
- data/lib/chef-dk/cookbook_profiler/git.rb +151 -151
- data/lib/chef-dk/cookbook_profiler/identifiers.rb +72 -72
- data/lib/chef-dk/cookbook_profiler/null_scm.rb +32 -32
- data/lib/chef-dk/exceptions.rb +129 -129
- data/lib/chef-dk/helpers.rb +10 -0
- data/lib/chef-dk/pager.rb +106 -106
- data/lib/chef-dk/policyfile/chef_repo_cookbook_source.rb +138 -138
- data/lib/chef-dk/policyfile/chef_server_cookbook_source.rb +54 -54
- data/lib/chef-dk/policyfile/community_cookbook_source.rb +97 -97
- data/lib/chef-dk/policyfile/comparison_base.rb +124 -124
- data/lib/chef-dk/policyfile/cookbook_location_specification.rb +154 -154
- data/lib/chef-dk/policyfile/cookbook_locks.rb +466 -466
- data/lib/chef-dk/policyfile/cookbook_sources.rb +22 -22
- data/lib/chef-dk/policyfile/delivery_supermarket_source.rb +90 -90
- data/lib/chef-dk/policyfile/differ.rb +266 -266
- data/lib/chef-dk/policyfile/dsl.rb +261 -261
- data/lib/chef-dk/policyfile/lister.rb +232 -232
- data/lib/chef-dk/policyfile/null_cookbook_source.rb +45 -45
- data/lib/chef-dk/policyfile/read_cookbook_for_compat_mode_upload.rb +124 -124
- data/lib/chef-dk/policyfile/reports/install.rb +70 -70
- data/lib/chef-dk/policyfile/reports/table_printer.rb +58 -58
- data/lib/chef-dk/policyfile/reports/upload.rb +70 -70
- data/lib/chef-dk/policyfile/solution_dependencies.rb +298 -298
- data/lib/chef-dk/policyfile/storage_config.rb +100 -100
- data/lib/chef-dk/policyfile/undo_record.rb +142 -142
- data/lib/chef-dk/policyfile/undo_stack.rb +130 -130
- data/lib/chef-dk/policyfile/uploader.rb +213 -213
- data/lib/chef-dk/policyfile_compiler.rb +419 -419
- data/lib/chef-dk/policyfile_lock.rb +552 -552
- data/lib/chef-dk/policyfile_services/clean_policies.rb +95 -95
- data/lib/chef-dk/policyfile_services/clean_policy_cookbooks.rb +125 -125
- data/lib/chef-dk/policyfile_services/export_repo.rb +421 -421
- data/lib/chef-dk/policyfile_services/install.rb +126 -126
- data/lib/chef-dk/policyfile_services/push_archive.rb +204 -204
- data/lib/chef-dk/policyfile_services/rm_policy.rb +142 -142
- data/lib/chef-dk/policyfile_services/rm_policy_group.rb +86 -86
- data/lib/chef-dk/policyfile_services/show_policy.rb +237 -237
- data/lib/chef-dk/policyfile_services/undelete.rb +108 -108
- data/lib/chef-dk/policyfile_services/update_attributes.rb +104 -104
- data/lib/chef-dk/service_exception_inspectors.rb +25 -25
- data/lib/chef-dk/service_exception_inspectors/base.rb +40 -40
- data/lib/chef-dk/service_exception_inspectors/http.rb +121 -121
- data/lib/chef-dk/service_exceptions.rb +143 -143
- data/lib/chef-dk/shell_out.rb +36 -36
- data/lib/chef-dk/skeletons/code_generator/files/default/Berksfile +3 -3
- data/lib/chef-dk/skeletons/code_generator/files/default/{build-cookbook → build_cookbook}/.kitchen.yml +2 -2
- data/lib/chef-dk/skeletons/code_generator/files/default/{build-cookbook → build_cookbook}/README.md +11 -11
- data/lib/chef-dk/skeletons/code_generator/files/default/{build-cookbook → build_cookbook}/test-fixture-recipe.rb +0 -0
- data/lib/chef-dk/skeletons/code_generator/files/default/chefignore +102 -102
- data/lib/chef-dk/skeletons/code_generator/files/default/cookbook_readmes/README-policy.md +9 -9
- data/lib/chef-dk/skeletons/code_generator/files/default/cookbook_readmes/README.md +54 -54
- data/lib/chef-dk/skeletons/code_generator/files/default/delivery-config.json +2 -2
- data/lib/chef-dk/skeletons/code_generator/files/default/delivery-project.toml +21 -0
- data/lib/chef-dk/skeletons/code_generator/files/default/gitignore +16 -16
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/README.md +9 -13
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/README.md +5 -5
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/attributes/default.rb +7 -7
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/metadata.rb +3 -3
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/recipes/default.rb +8 -8
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/data_bags/README.md +3 -5
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/data_bags/example/example_item.json +3 -3
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/dot-chef-repo.txt +6 -6
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/environments/README.md +9 -9
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/environments/example.json +12 -12
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/policies/README.md +24 -24
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/roles/README.md +9 -9
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/roles/example.json +12 -12
- data/lib/chef-dk/skeletons/code_generator/files/default/spec_helper.rb +2 -2
- data/lib/chef-dk/skeletons/code_generator/files/default/spec_helper_policyfile.rb +2 -2
- data/lib/chef-dk/skeletons/code_generator/metadata.rb +8 -8
- data/lib/chef-dk/skeletons/code_generator/recipes/app.rb +5 -13
- data/lib/chef-dk/skeletons/code_generator/recipes/attribute.rb +12 -12
- data/lib/chef-dk/skeletons/code_generator/recipes/build_cookbook.rb +30 -7
- data/lib/chef-dk/skeletons/code_generator/recipes/cookbook.rb +12 -14
- data/lib/chef-dk/skeletons/code_generator/recipes/cookbook_file.rb +24 -24
- data/lib/chef-dk/skeletons/code_generator/recipes/lwrp.rb +23 -23
- data/lib/chef-dk/skeletons/code_generator/recipes/policyfile.rb +8 -8
- data/lib/chef-dk/skeletons/code_generator/recipes/recipe.rb +40 -27
- data/lib/chef-dk/skeletons/code_generator/recipes/repo.rb +67 -67
- data/lib/chef-dk/skeletons/code_generator/recipes/template.rb +1 -1
- data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.all_rights.erb +3 -3
- data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.gplv2.erb +339 -339
- data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.gplv3.erb +674 -674
- data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.mit.erb +21 -21
- data/lib/chef-dk/skeletons/code_generator/templates/default/Policyfile.rb.erb +25 -25
- data/lib/chef-dk/skeletons/code_generator/templates/default/README.md.erb +4 -4
- data/lib/chef-dk/skeletons/code_generator/templates/default/{build-cookbook → build_cookbook}/Berksfile.erb +0 -0
- data/lib/chef-dk/skeletons/code_generator/templates/default/{build-cookbook → build_cookbook}/metadata.rb.erb +1 -1
- data/lib/chef-dk/skeletons/code_generator/templates/default/{build-cookbook → build_cookbook}/recipe.rb.erb +1 -1
- data/lib/chef-dk/skeletons/code_generator/templates/default/inspec_default_test.rb.erb +18 -0
- data/lib/chef-dk/skeletons/code_generator/templates/default/kitchen.yml.erb +2 -5
- data/lib/chef-dk/skeletons/code_generator/templates/default/kitchen_policyfile.yml.erb +2 -5
- data/lib/chef-dk/skeletons/code_generator/templates/default/metadata.rb.erb +7 -7
- data/lib/chef-dk/skeletons/code_generator/templates/default/recipe.rb.erb +5 -5
- data/lib/chef-dk/skeletons/code_generator/templates/default/recipe_spec.rb.erb +20 -20
- data/lib/chef-dk/skeletons/code_generator/templates/default/repo/gitignore.erb +11 -11
- data/lib/chef-dk/ui.rb +58 -58
- data/lib/chef-dk/version.rb +1 -1
- data/lib/kitchen/provisioner/policyfile_zero.rb +195 -195
- data/omnibus_overrides.rb +3 -3
- data/spec/shared/a_file_generator.rb +125 -125
- data/spec/shared/a_generated_file.rb +12 -12
- data/spec/shared/command_with_ui_object.rb +11 -11
- data/spec/shared/fixture_cookbook_checksums.rb +47 -47
- data/spec/shared/setup_git_cookbooks.rb +53 -53
- data/spec/spec_helper.rb +51 -51
- data/spec/test_helpers.rb +84 -84
- data/spec/unit/chef_runner_spec.rb +7 -5
- data/spec/unit/command/clean_policy_cookbooks_spec.rb +181 -181
- data/spec/unit/command/clean_policy_revisions_spec.rb +181 -181
- data/spec/unit/command/delete_policy_group_spec.rb +207 -207
- data/spec/unit/command/delete_policy_spec.rb +207 -207
- data/spec/unit/command/diff_spec.rb +312 -312
- data/spec/unit/command/env_spec.rb +52 -52
- data/spec/unit/command/exec_spec.rb +179 -179
- data/spec/unit/command/export_spec.rb +200 -200
- data/spec/unit/command/generate_spec.rb +142 -142
- data/spec/unit/command/generator_commands/app_spec.rb +5 -8
- data/spec/unit/command/generator_commands/attribute_spec.rb +32 -32
- data/spec/unit/command/generator_commands/base_spec.rb +136 -136
- data/spec/unit/command/generator_commands/build_cookbook_spec.rb +9 -9
- data/spec/unit/command/generator_commands/chef_exts/generator_desc_resource_spec.rb +97 -0
- data/spec/unit/command/generator_commands/chef_exts/recipe_dsl_ext_spec.rb +111 -0
- data/spec/unit/command/generator_commands/cookbook_file_spec.rb +32 -32
- data/spec/unit/command/generator_commands/cookbook_spec.rb +291 -111
- data/spec/unit/command/generator_commands/generator_generator_spec.rb +229 -229
- data/spec/unit/command/generator_commands/lwrp_spec.rb +32 -32
- data/spec/unit/command/generator_commands/policyfile_spec.rb +225 -225
- data/spec/unit/command/generator_commands/recipe_spec.rb +36 -34
- data/spec/unit/command/generator_commands/template_spec.rb +1 -1
- data/spec/unit/command/install_spec.rb +179 -179
- data/spec/unit/command/provision_spec.rb +592 -592
- data/spec/unit/command/push_archive_spec.rb +153 -153
- data/spec/unit/command/push_spec.rb +199 -199
- data/spec/unit/command/shell_init_spec.rb +329 -329
- data/spec/unit/command/show_policy_spec.rb +235 -235
- data/spec/unit/command/undelete_spec.rb +246 -246
- data/spec/unit/command/update_spec.rb +275 -275
- data/spec/unit/command/verify_spec.rb +0 -1
- data/spec/unit/commands_map_spec.rb +57 -57
- data/spec/unit/configurable_spec.rb +41 -41
- data/spec/unit/cookbook_metadata_spec.rb +98 -98
- data/spec/unit/cookbook_profiler/git_spec.rb +176 -176
- data/spec/unit/cookbook_profiler/identifiers_spec.rb +83 -83
- data/spec/unit/fixtures/chef-runner-cookbooks/test_cookbook/recipes/recipe_one.rb +9 -9
- data/spec/unit/fixtures/chef-runner-cookbooks/test_cookbook/recipes/recipe_two.rb +9 -9
- data/spec/unit/fixtures/command/cli_test_command.rb +26 -26
- data/spec/unit/fixtures/command/explicit_path_example.rb +7 -7
- data/spec/unit/fixtures/configurable/test_config_loader.rb +5 -5
- data/spec/unit/fixtures/configurable/test_configurable.rb +10 -10
- data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/.kitchen.yml +16 -16
- data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/Berksfile +3 -3
- data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/README.md +4 -4
- data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/chefignore +96 -96
- data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/metadata.rb +8 -8
- data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/recipes/default.rb +8 -8
- data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/.kitchen.yml +16 -16
- data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/Berksfile +3 -3
- data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/README.md +4 -4
- data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/chefignore +96 -96
- data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/metadata.rb +8 -8
- data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/recipes/default.rb +8 -8
- data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/.kitchen.yml +16 -16
- data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/Berksfile +3 -3
- data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/README.md +4 -4
- data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/chefignore +96 -96
- data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/metadata.rb +8 -8
- data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/recipes/default.rb +8 -8
- data/spec/unit/fixtures/cookbooks_api/pruned_small_universe.json +1321 -1321
- data/spec/unit/fixtures/cookbooks_api/small_universe.json +2987 -2987
- data/spec/unit/fixtures/cookbooks_api/universe.json +1 -1
- data/spec/unit/fixtures/cookbooks_api/update_fixtures.rb +36 -36
- data/spec/unit/fixtures/dev_cookbooks/README.md +16 -16
- data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/berkshelf/integration_test +2 -2
- data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/berkshelf/verify_me +5 -5
- data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/chef/verify_me +3 -3
- data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/test-kitchen/verify_me +2 -2
- data/spec/unit/fixtures/example_cookbook/.gitignore +17 -17
- data/spec/unit/fixtures/example_cookbook/.kitchen.yml +16 -16
- data/spec/unit/fixtures/example_cookbook/Berksfile +3 -3
- data/spec/unit/fixtures/example_cookbook/README.md +4 -4
- data/spec/unit/fixtures/example_cookbook/chefignore +96 -96
- data/spec/unit/fixtures/example_cookbook/metadata.rb +8 -8
- data/spec/unit/fixtures/example_cookbook/recipes/default.rb +8 -8
- data/spec/unit/fixtures/example_cookbook_metadata_json_only/.gitignore +17 -17
- data/spec/unit/fixtures/example_cookbook_metadata_json_only/.kitchen.yml +16 -16
- data/spec/unit/fixtures/example_cookbook_metadata_json_only/Berksfile +3 -3
- data/spec/unit/fixtures/example_cookbook_metadata_json_only/README.md +4 -4
- data/spec/unit/fixtures/example_cookbook_metadata_json_only/chefignore +96 -96
- data/spec/unit/fixtures/example_cookbook_metadata_json_only/metadata.json +5 -5
- data/spec/unit/fixtures/example_cookbook_metadata_json_only/recipes/default.rb +8 -8
- data/spec/unit/fixtures/example_cookbook_no_metadata/.gitignore +17 -17
- data/spec/unit/fixtures/example_cookbook_no_metadata/.kitchen.yml +16 -16
- data/spec/unit/fixtures/example_cookbook_no_metadata/Berksfile +3 -3
- data/spec/unit/fixtures/example_cookbook_no_metadata/README.md +4 -4
- data/spec/unit/fixtures/example_cookbook_no_metadata/chefignore +96 -96
- data/spec/unit/fixtures/example_cookbook_no_metadata/recipes/default.rb +8 -8
- data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/README.md +4 -4
- data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/chefignore +96 -96
- data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/metadata.rb +8 -8
- data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/recipes/default.rb +8 -8
- data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/Berksfile +3 -3
- data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/README.md +4 -4
- data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/chefignore +96 -96
- data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/metadata.rb +9 -9
- data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/recipes/default.rb +8 -8
- data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/.kitchen.yml +16 -16
- data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/Berksfile +3 -3
- data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/README.md +4 -4
- data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/chefignore +96 -96
- data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/metadata.rb +8 -8
- data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/recipes/default.rb +8 -8
- data/spec/unit/fixtures/local_path_cookbooks/metadata-missing/README.md +2 -2
- data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/.kitchen.yml +16 -16
- data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/README.md +4 -4
- data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/metadata.rb +8 -8
- data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/recipes/default.rb +8 -8
- data/spec/unit/helpers_spec.rb +14 -5
- data/spec/unit/pager_spec.rb +119 -119
- data/spec/unit/policyfile/chef_repo_cookbook_source_spec.rb +93 -93
- data/spec/unit/policyfile/chef_server_cookbook_source_spec.rb +34 -34
- data/spec/unit/policyfile/community_cookbook_source_spec.rb +84 -84
- data/spec/unit/policyfile/comparison_base_spec.rb +343 -343
- data/spec/unit/policyfile/cookbook_location_specification_spec.rb +277 -277
- data/spec/unit/policyfile/cookbook_locks_spec.rb +529 -529
- data/spec/unit/policyfile/delivery_supermarket_source_spec.rb +130 -130
- data/spec/unit/policyfile/differ_spec.rb +687 -687
- data/spec/unit/policyfile/lister_spec.rb +272 -272
- data/spec/unit/policyfile/null_cookbook_source_spec.rb +35 -35
- data/spec/unit/policyfile/read_cookbook_for_compat_mode_upload_spec.rb +92 -92
- data/spec/unit/policyfile/reports/install_spec.rb +115 -115
- data/spec/unit/policyfile/reports/upload_spec.rb +96 -96
- data/spec/unit/policyfile/solution_dependencies_spec.rb +145 -145
- data/spec/unit/policyfile/storage_config_spec.rb +172 -172
- data/spec/unit/policyfile/undo_record_spec.rb +260 -260
- data/spec/unit/policyfile/undo_stack_spec.rb +266 -266
- data/spec/unit/policyfile/uploader_spec.rb +410 -410
- data/spec/unit/policyfile_demands_spec.rb +1203 -1203
- data/spec/unit/policyfile_evaluation_spec.rb +642 -642
- data/spec/unit/policyfile_lock_build_spec.rb +1056 -1056
- data/spec/unit/policyfile_lock_install_spec.rb +138 -138
- data/spec/unit/policyfile_lock_serialization_spec.rb +425 -425
- data/spec/unit/policyfile_lock_validation_spec.rb +611 -611
- data/spec/unit/policyfile_services/clean_policies_spec.rb +236 -236
- data/spec/unit/policyfile_services/clean_policy_cookbooks_spec.rb +275 -275
- data/spec/unit/policyfile_services/export_repo_spec.rb +481 -481
- data/spec/unit/policyfile_services/install_spec.rb +211 -211
- data/spec/unit/policyfile_services/push_archive_spec.rb +378 -378
- data/spec/unit/policyfile_services/push_spec.rb +233 -233
- data/spec/unit/policyfile_services/rm_policy_group_spec.rb +241 -241
- data/spec/unit/policyfile_services/rm_policy_spec.rb +266 -266
- data/spec/unit/policyfile_services/show_policy_spec.rb +889 -889
- data/spec/unit/policyfile_services/undelete_spec.rb +304 -304
- data/spec/unit/policyfile_services/update_attributes_spec.rb +217 -217
- data/spec/unit/service_exception_inspectors/base_spec.rb +43 -43
- data/spec/unit/service_exception_inspectors/http_spec.rb +140 -140
- data/spec/unit/shell_out_spec.rb +34 -34
- data/tasks/bin/bundle-platform +0 -0
- data/tasks/bin/bundle-platform.bat +0 -0
- data/tasks/bin/create-override-gemfile +0 -0
- data/version_policy.rb +4 -3
- data/warning.txt +9 -9
- metadata +23 -10
- data/lib/chef-dk/skeletons/code_generator/files/default/serverspec_spec_helper.rb +0 -8
- data/lib/chef-dk/skeletons/code_generator/templates/default/serverspec_default_spec.rb.erb +0 -9
@@ -0,0 +1,21 @@
|
|
1
|
+
# Delivery Prototype for Local Phases Execution
|
2
|
+
#
|
3
|
+
# The purpose of this file is to prototype a new way to execute
|
4
|
+
# phases locally on your workstation. The delivery-cli will read
|
5
|
+
# this file and execute the command(s) that are configured for
|
6
|
+
# each phase. You can customize them by just modifying the phase
|
7
|
+
# key on this file.
|
8
|
+
#
|
9
|
+
# By default these phases are configured for Cookbook Workflow only
|
10
|
+
#
|
11
|
+
# As this is still a prototype we are not modifying the current
|
12
|
+
# config.json file and it will continue working as usual.
|
13
|
+
|
14
|
+
[local_phases]
|
15
|
+
unit = "rspec spec/"
|
16
|
+
lint = "cookstyle"
|
17
|
+
syntax = "foodcritic . --exclude spec -f any"
|
18
|
+
provision = "chef exec kitchen create"
|
19
|
+
deploy = "chef exec kitchen converge"
|
20
|
+
smoke = "chef exec kitchen verify"
|
21
|
+
cleanup = "chef exec kitchen destroy"
|
@@ -1,16 +1,16 @@
|
|
1
|
-
.vagrant
|
2
|
-
Berksfile.lock
|
3
|
-
*~
|
4
|
-
*#
|
5
|
-
.#*
|
6
|
-
\#*#
|
7
|
-
.*.sw[a-z]
|
8
|
-
*.un~
|
9
|
-
|
10
|
-
# Bundler
|
11
|
-
Gemfile.lock
|
12
|
-
bin/*
|
13
|
-
.bundle/*
|
14
|
-
|
15
|
-
.kitchen/
|
16
|
-
.kitchen.local.yml
|
1
|
+
.vagrant
|
2
|
+
Berksfile.lock
|
3
|
+
*~
|
4
|
+
*#
|
5
|
+
.#*
|
6
|
+
\#*#
|
7
|
+
.*.sw[a-z]
|
8
|
+
*.un~
|
9
|
+
|
10
|
+
# Bundler
|
11
|
+
Gemfile.lock
|
12
|
+
bin/*
|
13
|
+
.bundle/*
|
14
|
+
|
15
|
+
.kitchen/
|
16
|
+
.kitchen.local.yml
|
@@ -1,28 +1,24 @@
|
|
1
|
-
Overview
|
2
|
-
========
|
1
|
+
# Overview
|
3
2
|
|
4
3
|
Every Chef installation needs a Chef Repository. This is the place where cookbooks, roles, config files and other artifacts for managing systems with Chef will live. We strongly recommend storing this repository in a version control system such as Git and treat it like source code.
|
5
4
|
|
6
5
|
While we prefer Git, and make this repository available via GitHub, you are welcome to download a tar or zip archive and use your favorite version control system to manage the code.
|
7
6
|
|
8
|
-
Repository Directories
|
9
|
-
======================
|
7
|
+
# Repository Directories
|
10
8
|
|
11
9
|
This repository contains several directories, and each directory contains a README file that describes what it is for in greater detail, and how to use it for managing your systems with Chef.
|
12
10
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
11
|
+
- `cookbooks/` - Cookbooks you download or create.
|
12
|
+
- `data_bags/` - Store data bags and items in .json in the repository.
|
13
|
+
- `roles/` - Store roles in .rb or .json in the repository.
|
14
|
+
- `environments/` - Store environments in .rb or .json in the repository.
|
17
15
|
|
18
|
-
Configuration
|
19
|
-
=============
|
16
|
+
# Configuration
|
20
17
|
|
21
18
|
The config file, `.chef/knife.rb` is a repository specific configuration file for knife. If you're using the Chef Platform, you can download one for your organization from the management console. If you're using the Open Source Chef Server, you can generate a new one with `knife configure`. For more information about configuring Knife, see the Knife documentation.
|
22
19
|
|
23
|
-
https://docs.chef.io/knife.html
|
20
|
+
<https://docs.chef.io/knife.html>
|
24
21
|
|
25
|
-
Next Steps
|
26
|
-
==========
|
22
|
+
# Next Steps
|
27
23
|
|
28
24
|
Read the README file in each of the subdirectories for more information about what goes in those directories.
|
@@ -6,22 +6,22 @@ An example cookbook
|
|
6
6
|
|
7
7
|
### Platform:
|
8
8
|
|
9
|
-
|
9
|
+
_No platforms defined_
|
10
10
|
|
11
11
|
### Cookbooks:
|
12
12
|
|
13
|
-
|
13
|
+
_No dependencies defined_
|
14
14
|
|
15
15
|
## Attributes
|
16
16
|
|
17
|
-
|
17
|
+
- `node['example']['name']` - Defaults to `Sam Doe`.
|
18
18
|
|
19
19
|
## Recipes
|
20
20
|
|
21
|
-
|
21
|
+
- example::default
|
22
22
|
|
23
23
|
## License and Maintainer
|
24
24
|
|
25
|
-
Maintainer::
|
25
|
+
Maintainer:: (<>)
|
26
26
|
|
27
27
|
License:: All rights reserved
|
data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/attributes/default.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
# This is a Chef attributes file. It can be used to specify default and override
|
2
|
-
# attributes to be applied to nodes that run this cookbook.
|
3
|
-
|
4
|
-
# Set a default name
|
5
|
-
default["example"]["name"] = "Sam Doe"
|
6
|
-
|
7
|
-
# For further information, see the Chef documentation (https://docs.chef.io/essentials_cookbook_attribute_files.html).
|
1
|
+
# This is a Chef attributes file. It can be used to specify default and override
|
2
|
+
# attributes to be applied to nodes that run this cookbook.
|
3
|
+
|
4
|
+
# Set a default name
|
5
|
+
default["example"]["name"] = "Sam Doe"
|
6
|
+
|
7
|
+
# For further information, see the Chef documentation (https://docs.chef.io/essentials_cookbook_attribute_files.html).
|
@@ -1,3 +1,3 @@
|
|
1
|
-
name 'example'
|
2
|
-
description 'An example cookbook'
|
3
|
-
version '1.0.0'
|
1
|
+
name 'example'
|
2
|
+
description 'An example cookbook'
|
3
|
+
version '1.0.0'
|
data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/recipes/default.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
# This is a Chef recipe file. It can be used to specify resources which will
|
2
|
-
# apply configuration to a server.
|
3
|
-
|
4
|
-
log "Welcome to Chef, #{node["example"]["name"]}!" do
|
5
|
-
level :info
|
6
|
-
end
|
7
|
-
|
8
|
-
# For more information, see the documentation: https://docs.chef.io/essentials_cookbook_recipes.html
|
1
|
+
# This is a Chef recipe file. It can be used to specify resources which will
|
2
|
+
# apply configuration to a server.
|
3
|
+
|
4
|
+
log "Welcome to Chef, #{node["example"]["name"]}!" do
|
5
|
+
level :info
|
6
|
+
end
|
7
|
+
|
8
|
+
# For more information, see the documentation: https://docs.chef.io/essentials_cookbook_recipes.html
|
@@ -1,5 +1,4 @@
|
|
1
|
-
Data Bags
|
2
|
-
---------
|
1
|
+
# Data Bags
|
3
2
|
|
4
3
|
This directory contains directories of the various data bags you create for your infrastructure. Each subdirectory corresponds to a data bag on the Chef Server, and contains JSON files of the items that go in the bag.
|
5
4
|
|
@@ -17,10 +16,9 @@ For more information on data bags, see the Chef wiki page:
|
|
17
16
|
|
18
17
|
https://docs.chef.io/essentials_data_bags.html
|
19
18
|
|
20
|
-
Encrypted Data Bags
|
21
|
-
-------------------
|
19
|
+
# Encrypted Data Bags
|
22
20
|
|
23
|
-
|
21
|
+
Encrypted data bags allow you to encrypt the contents of your data bags. The content of attributes will no longer be searchable. To use encrypted data bags, first you must have or create a secret key.
|
24
22
|
|
25
23
|
openssl rand -base64 512 > secret_key
|
26
24
|
|
data/lib/chef-dk/skeletons/code_generator/files/default/repo/data_bags/example/example_item.json
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
{
|
2
|
-
"id": "example_item",
|
3
|
-
"key": "value"
|
1
|
+
{
|
2
|
+
"id": "example_item",
|
3
|
+
"key": "value"
|
4
4
|
}
|
@@ -1,6 +1,6 @@
|
|
1
|
-
.chef-repo.txt
|
2
|
-
==============
|
3
|
-
|
4
|
-
This file gives ChefDK's generators a hint that you are using a Chef Repo and
|
5
|
-
this is the root directory of your Chef Repo. ChefDK's generators use this to
|
6
|
-
generate code that is designed to work with the Chef Repo workflow.
|
1
|
+
.chef-repo.txt
|
2
|
+
==============
|
3
|
+
|
4
|
+
This file gives ChefDK's generators a hint that you are using a Chef Repo and
|
5
|
+
this is the root directory of your Chef Repo. ChefDK's generators use this to
|
6
|
+
generate code that is designed to work with the Chef Repo workflow.
|
@@ -1,9 +1,9 @@
|
|
1
|
-
Create environments here, in either the Role Ruby DSL (.rb) or JSON (.json) files. To install environments on the server, use knife.
|
2
|
-
|
3
|
-
For example, in this directory you'll find an example environment file called `example.json` which can be uploaded to the Chef Server:
|
4
|
-
|
5
|
-
knife environment from file environments/example.json
|
6
|
-
|
7
|
-
For more information on environments, see the Chef wiki page:
|
8
|
-
|
9
|
-
https://docs.chef.io/environments.html
|
1
|
+
Create environments here, in either the Role Ruby DSL (.rb) or JSON (.json) files. To install environments on the server, use knife.
|
2
|
+
|
3
|
+
For example, in this directory you'll find an example environment file called `example.json` which can be uploaded to the Chef Server:
|
4
|
+
|
5
|
+
knife environment from file environments/example.json
|
6
|
+
|
7
|
+
For more information on environments, see the Chef wiki page:
|
8
|
+
|
9
|
+
https://docs.chef.io/environments.html
|
@@ -1,13 +1,13 @@
|
|
1
|
-
{
|
2
|
-
"name": "example",
|
3
|
-
"description": "This is an example environment defined as JSON",
|
4
|
-
"chef_type": "environment",
|
5
|
-
"json_class": "Chef::Environment",
|
6
|
-
"default_attributes": {
|
7
|
-
},
|
8
|
-
"override_attributes": {
|
9
|
-
},
|
10
|
-
"cookbook_versions": {
|
11
|
-
"example": "= 1.0.0"
|
12
|
-
}
|
1
|
+
{
|
2
|
+
"name": "example",
|
3
|
+
"description": "This is an example environment defined as JSON",
|
4
|
+
"chef_type": "environment",
|
5
|
+
"json_class": "Chef::Environment",
|
6
|
+
"default_attributes": {
|
7
|
+
},
|
8
|
+
"override_attributes": {
|
9
|
+
},
|
10
|
+
"cookbook_versions": {
|
11
|
+
"example": "= 1.0.0"
|
12
|
+
}
|
13
13
|
}
|
@@ -1,24 +1,24 @@
|
|
1
|
-
Create policyfiles here. When using a chef-repo, give your policyfiles
|
2
|
-
the same filename as the name set in the policyfile itself, and use the
|
3
|
-
`.rb` file extension.
|
4
|
-
|
5
|
-
Compile the policy with a command like this:
|
6
|
-
|
7
|
-
```
|
8
|
-
chef install policies/my-app-frontend.rb
|
9
|
-
```
|
10
|
-
|
11
|
-
This will create a lockfile `policies/my-app-frontend.lock.json`.
|
12
|
-
|
13
|
-
To update locked dependencies, run `chef update` like this:
|
14
|
-
|
15
|
-
```
|
16
|
-
chef update policies/my-app-frontend.rb
|
17
|
-
```
|
18
|
-
|
19
|
-
You can upload the policy (with associated cookbooks) to the server
|
20
|
-
using a command like:
|
21
|
-
|
22
|
-
```
|
23
|
-
chef push staging policies/my-app-frontend.rb
|
24
|
-
```
|
1
|
+
Create policyfiles here. When using a chef-repo, give your policyfiles
|
2
|
+
the same filename as the name set in the policyfile itself, and use the
|
3
|
+
`.rb` file extension.
|
4
|
+
|
5
|
+
Compile the policy with a command like this:
|
6
|
+
|
7
|
+
```
|
8
|
+
chef install policies/my-app-frontend.rb
|
9
|
+
```
|
10
|
+
|
11
|
+
This will create a lockfile `policies/my-app-frontend.lock.json`.
|
12
|
+
|
13
|
+
To update locked dependencies, run `chef update` like this:
|
14
|
+
|
15
|
+
```
|
16
|
+
chef update policies/my-app-frontend.rb
|
17
|
+
```
|
18
|
+
|
19
|
+
You can upload the policy (with associated cookbooks) to the server
|
20
|
+
using a command like:
|
21
|
+
|
22
|
+
```
|
23
|
+
chef push staging policies/my-app-frontend.rb
|
24
|
+
```
|
@@ -1,9 +1,9 @@
|
|
1
|
-
Create roles here, in either the Role Ruby DSL (.rb) or JSON (.json) files. To install roles on the server, use knife.
|
2
|
-
|
3
|
-
For example, in this directory you'll find an example role file called `example.json` which can be uploaded to the Chef Server:
|
4
|
-
|
5
|
-
knife role from file roles/example.json
|
6
|
-
|
7
|
-
For more information on roles, see the Chef wiki page:
|
8
|
-
|
9
|
-
https://docs.chef.io/essentials_roles.html
|
1
|
+
Create roles here, in either the Role Ruby DSL (.rb) or JSON (.json) files. To install roles on the server, use knife.
|
2
|
+
|
3
|
+
For example, in this directory you'll find an example role file called `example.json` which can be uploaded to the Chef Server:
|
4
|
+
|
5
|
+
knife role from file roles/example.json
|
6
|
+
|
7
|
+
For more information on roles, see the Chef wiki page:
|
8
|
+
|
9
|
+
https://docs.chef.io/essentials_roles.html
|
@@ -1,13 +1,13 @@
|
|
1
|
-
{
|
2
|
-
"name": "example",
|
3
|
-
"description": "This is an example role defined as JSON",
|
4
|
-
"chef_type": "role",
|
5
|
-
"json_class": "Chef::Role",
|
6
|
-
"default_attributes": {
|
7
|
-
},
|
8
|
-
"override_attributes": {
|
9
|
-
},
|
10
|
-
"run_list": [
|
11
|
-
"recipe[example]"
|
12
|
-
]
|
1
|
+
{
|
2
|
+
"name": "example",
|
3
|
+
"description": "This is an example role defined as JSON",
|
4
|
+
"chef_type": "role",
|
5
|
+
"json_class": "Chef::Role",
|
6
|
+
"default_attributes": {
|
7
|
+
},
|
8
|
+
"override_attributes": {
|
9
|
+
},
|
10
|
+
"run_list": [
|
11
|
+
"recipe[example]"
|
12
|
+
]
|
13
13
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
require 'chefspec'
|
2
|
-
require 'chefspec/berkshelf'
|
1
|
+
require 'chefspec'
|
2
|
+
require 'chefspec/berkshelf'
|
@@ -1,2 +1,2 @@
|
|
1
|
-
require 'chefspec'
|
2
|
-
require 'chefspec/policyfile'
|
1
|
+
require 'chefspec'
|
2
|
+
require 'chefspec/policyfile'
|
@@ -1,8 +1,8 @@
|
|
1
|
-
name 'code_generator'
|
2
|
-
maintainer 'Chef Software, Inc.'
|
3
|
-
maintainer_email 'dev@chef.io'
|
4
|
-
license 'Apache 2 License'
|
5
|
-
description 'Generates Chef code for Chef DK'
|
6
|
-
long_description 'Generates Chef code for Chef DK'
|
7
|
-
version '0.1.0'
|
8
|
-
|
1
|
+
name 'code_generator'
|
2
|
+
maintainer 'Chef Software, Inc.'
|
3
|
+
maintainer_email 'dev@chef.io'
|
4
|
+
license 'Apache 2 License'
|
5
|
+
description 'Generates Chef code for Chef DK'
|
6
|
+
long_description 'Generates Chef code for Chef DK'
|
7
|
+
version '0.1.0'
|
8
|
+
|
@@ -10,27 +10,19 @@ directory app_dir
|
|
10
10
|
|
11
11
|
# Top level files
|
12
12
|
|
13
|
-
#
|
13
|
+
# Test Kitchen
|
14
14
|
template "#{app_dir}/.kitchen.yml" do
|
15
15
|
source 'kitchen.yml.erb'
|
16
16
|
helpers(ChefDK::Generator::TemplateHelper)
|
17
17
|
end
|
18
18
|
|
19
|
-
|
19
|
+
# Inspec
|
20
|
+
directory "#{app_dir}/test/recipes" do
|
20
21
|
recursive true
|
21
22
|
end
|
22
23
|
|
23
|
-
|
24
|
-
|
25
|
-
end
|
26
|
-
|
27
|
-
cookbook_file "#{app_dir}/test/integration/helpers/serverspec/spec_helper.rb" do
|
28
|
-
source 'serverspec_spec_helper.rb'
|
29
|
-
action :create_if_missing
|
30
|
-
end
|
31
|
-
|
32
|
-
template "#{app_dir}/test/integration/default/serverspec/default_spec.rb" do
|
33
|
-
source 'serverspec_default_spec.rb.erb'
|
24
|
+
template "#{app_dir}/test/recipes/default_test.rb" do
|
25
|
+
source 'inspec_default_test.rb.erb'
|
34
26
|
helpers(ChefDK::Generator::TemplateHelper)
|
35
27
|
action :create_if_missing
|
36
28
|
end
|
@@ -1,12 +1,12 @@
|
|
1
|
-
|
2
|
-
context = ChefDK::Generator.context
|
3
|
-
cookbook_dir = File.join(context.cookbook_root, context.cookbook_name)
|
4
|
-
attribute_dir = File.join(cookbook_dir, "attributes")
|
5
|
-
attribute_path = File.join(cookbook_dir, "attributes", "#{context.new_file_basename}.rb")
|
6
|
-
|
7
|
-
directory attribute_dir
|
8
|
-
|
9
|
-
template attribute_path do
|
10
|
-
source "attribute.rb.erb"
|
11
|
-
helpers(ChefDK::Generator::TemplateHelper)
|
12
|
-
end
|
1
|
+
|
2
|
+
context = ChefDK::Generator.context
|
3
|
+
cookbook_dir = File.join(context.cookbook_root, context.cookbook_name)
|
4
|
+
attribute_dir = File.join(cookbook_dir, "attributes")
|
5
|
+
attribute_path = File.join(cookbook_dir, "attributes", "#{context.new_file_basename}.rb")
|
6
|
+
|
7
|
+
directory attribute_dir
|
8
|
+
|
9
|
+
template attribute_path do
|
10
|
+
source "attribute.rb.erb"
|
11
|
+
helpers(ChefDK::Generator::TemplateHelper)
|
12
|
+
end
|