chef-dk 2.4.17 → 2.5.3
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 +5 -5
- data/Gemfile +121 -119
- data/Gemfile.lock +802 -817
- data/LICENSE +201 -201
- data/README.md +333 -333
- data/Rakefile +74 -74
- data/acceptance/.shared/kitchen_acceptance/.kitchen.digitalocean.yml +27 -27
- data/acceptance/.shared/kitchen_acceptance/.kitchen.ec2.yml +287 -287
- 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 +21 -20
- data/acceptance/Gemfile.lock +334 -334
- 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 +60 -60
- data/lib/chef-dk.rb +19 -19
- data/lib/chef-dk/authenticated_http.rb +22 -22
- data/lib/chef-dk/builtin_commands.rb +59 -59
- data/lib/chef-dk/chef_runner.rb +114 -114
- data/lib/chef-dk/chef_server_api_multi.rb +73 -73
- data/lib/chef-dk/cli.rb +201 -201
- data/lib/chef-dk/command/base.rb +79 -79
- data/lib/chef-dk/command/clean_policy_cookbooks.rb +114 -114
- data/lib/chef-dk/command/clean_policy_revisions.rb +111 -111
- data/lib/chef-dk/command/delete_policy.rb +120 -120
- data/lib/chef-dk/command/delete_policy_group.rb +120 -120
- data/lib/chef-dk/command/diff.rb +315 -315
- data/lib/chef-dk/command/env.rb +89 -89
- data/lib/chef-dk/command/exec.rb +44 -44
- data/lib/chef-dk/command/export.rb +155 -155
- data/lib/chef-dk/command/gem.rb +47 -47
- data/lib/chef-dk/command/generate.rb +125 -125
- data/lib/chef-dk/command/generator_commands.rb +83 -83
- data/lib/chef-dk/command/generator_commands/app.rb +106 -106
- data/lib/chef-dk/command/generator_commands/attribute.rb +36 -36
- data/lib/chef-dk/command/generator_commands/base.rb +157 -157
- data/lib/chef-dk/command/generator_commands/build_cookbook.rb +125 -125
- data/lib/chef-dk/command/generator_commands/chef_exts/generator_desc_resource.rb +85 -85
- data/lib/chef-dk/command/generator_commands/chef_exts/quieter_doc_formatter.rb +38 -38
- data/lib/chef-dk/command/generator_commands/chef_exts/recipe_dsl_ext.rb +39 -39
- data/lib/chef-dk/command/generator_commands/cookbook.rb +241 -241
- 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 +174 -174
- data/lib/chef-dk/command/generator_commands/helpers.rb +36 -36
- data/lib/chef-dk/command/generator_commands/policyfile.rb +126 -126
- data/lib/chef-dk/command/generator_commands/recipe.rb +36 -36
- data/lib/chef-dk/command/generator_commands/repo.rb +123 -123
- data/lib/chef-dk/command/generator_commands/resource.rb +36 -36
- data/lib/chef-dk/command/generator_commands/template.rb +46 -46
- data/lib/chef-dk/command/install.rb +120 -120
- data/lib/chef-dk/command/provision.rb +436 -436
- data/lib/chef-dk/command/push.rb +117 -117
- data/lib/chef-dk/command/push_archive.rb +125 -125
- data/lib/chef-dk/command/shell_init.rb +179 -179
- data/lib/chef-dk/command/show_policy.rb +163 -163
- data/lib/chef-dk/command/undelete.rb +154 -154
- data/lib/chef-dk/command/update.rb +133 -133
- data/lib/chef-dk/command/verify.rb +629 -629
- data/lib/chef-dk/commands_map.rb +113 -113
- 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/component_test.rb +227 -227
- data/lib/chef-dk/configurable.rb +88 -88
- 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 +31 -31
- data/lib/chef-dk/exceptions.rb +150 -150
- data/lib/chef-dk/generator.rb +165 -165
- data/lib/chef-dk/helpers.rb +176 -176
- data/lib/chef-dk/pager.rb +105 -105
- data/lib/chef-dk/policyfile/artifactory_cookbook_source.rb +102 -102
- data/lib/chef-dk/policyfile/attribute_merge_checker.rb +110 -110
- data/lib/chef-dk/policyfile/chef_repo_cookbook_source.rb +138 -138
- data/lib/chef-dk/policyfile/chef_server_cookbook_source.rb +99 -99
- data/lib/chef-dk/policyfile/chef_server_lock_fetcher.rb +164 -164
- data/lib/chef-dk/policyfile/community_cookbook_source.rb +95 -95
- data/lib/chef-dk/policyfile/comparison_base.rb +123 -123
- 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 +23 -23
- data/lib/chef-dk/policyfile/delivery_supermarket_source.rb +89 -89
- data/lib/chef-dk/policyfile/differ.rb +263 -263
- data/lib/chef-dk/policyfile/dsl.rb +288 -288
- data/lib/chef-dk/policyfile/included_policies_cookbook_source.rb +156 -156
- data/lib/chef-dk/policyfile/lister.rb +229 -229
- data/lib/chef-dk/policyfile/local_lock_fetcher.rb +123 -122
- data/lib/chef-dk/policyfile/lock_applier.rb +80 -80
- data/lib/chef-dk/policyfile/null_cookbook_source.rb +49 -49
- data/lib/chef-dk/policyfile/policyfile_location_specification.rb +122 -122
- data/lib/chef-dk/policyfile/read_cookbook_for_compat_mode_upload.rb +124 -124
- data/lib/chef-dk/policyfile/reports/install.rb +69 -69
- data/lib/chef-dk/policyfile/reports/table_printer.rb +57 -57
- data/lib/chef-dk/policyfile/reports/upload.rb +70 -70
- data/lib/chef-dk/policyfile/solution_dependencies.rb +312 -312
- data/lib/chef-dk/policyfile/source_uri.rb +57 -57
- data/lib/chef-dk/policyfile/storage_config.rb +102 -102
- data/lib/chef-dk/policyfile/undo_record.rb +139 -139
- data/lib/chef-dk/policyfile/undo_stack.rb +128 -128
- data/lib/chef-dk/policyfile/uploader.rb +213 -213
- data/lib/chef-dk/policyfile_compiler.rb +528 -528
- data/lib/chef-dk/policyfile_lock.rb +581 -581
- data/lib/chef-dk/policyfile_services/clean_policies.rb +95 -95
- data/lib/chef-dk/policyfile_services/clean_policy_cookbooks.rb +123 -123
- data/lib/chef-dk/policyfile_services/export_repo.rb +420 -420
- data/lib/chef-dk/policyfile_services/install.rb +162 -162
- data/lib/chef-dk/policyfile_services/push.rb +112 -112
- data/lib/chef-dk/policyfile_services/push_archive.rb +200 -200
- data/lib/chef-dk/policyfile_services/rm_policy.rb +141 -141
- data/lib/chef-dk/policyfile_services/rm_policy_group.rb +85 -85
- data/lib/chef-dk/policyfile_services/show_policy.rb +236 -236
- data/lib/chef-dk/policyfile_services/undelete.rb +108 -108
- data/lib/chef-dk/policyfile_services/update_attributes.rb +110 -110
- data/lib/chef-dk/service_exception_inspectors.rb +24 -24
- data/lib/chef-dk/service_exception_inspectors/base.rb +39 -39
- data/lib/chef-dk/service_exception_inspectors/http.rb +119 -119
- data/lib/chef-dk/service_exceptions.rb +142 -142
- data/lib/chef-dk/shell_out.rb +36 -36
- data/lib/chef-dk/skeletons/code_generator/files/default/Berksfile +4 -4
- data/lib/chef-dk/skeletons/code_generator/files/default/build_cookbook/.kitchen.yml +21 -21
- data/lib/chef-dk/skeletons/code_generator/files/default/build_cookbook/README.md +146 -146
- data/lib/chef-dk/skeletons/code_generator/files/default/build_cookbook/test-fixture-recipe.rb +9 -9
- data/lib/chef-dk/skeletons/code_generator/files/default/chefignore +107 -107
- 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 +17 -17
- data/lib/chef-dk/skeletons/code_generator/files/default/delivery-project.toml +36 -36
- data/lib/chef-dk/skeletons/code_generator/files/default/gitignore +22 -22
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/README.md +24 -24
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/README.md +27 -27
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/attributes/default.rb +8 -8
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/metadata.rb +7 -7
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/recipes/default.rb +9 -9
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/data_bags/README.md +56 -56
- 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 +3 -3
- data/lib/chef-dk/skeletons/code_generator/files/default/spec_helper_policyfile.rb +3 -3
- data/lib/chef-dk/skeletons/code_generator/metadata.rb +8 -8
- data/lib/chef-dk/skeletons/code_generator/recipes/app.rb +89 -89
- data/lib/chef-dk/skeletons/code_generator/recipes/attribute.rb +13 -13
- data/lib/chef-dk/skeletons/code_generator/recipes/build_cookbook.rb +177 -177
- data/lib/chef-dk/skeletons/code_generator/recipes/cookbook.rb +152 -152
- data/lib/chef-dk/skeletons/code_generator/recipes/cookbook_file.rb +25 -25
- data/lib/chef-dk/skeletons/code_generator/recipes/helpers.rb +21 -21
- data/lib/chef-dk/skeletons/code_generator/recipes/policyfile.rb +9 -9
- data/lib/chef-dk/skeletons/code_generator/recipes/recipe.rb +52 -52
- data/lib/chef-dk/skeletons/code_generator/recipes/repo.rb +68 -68
- data/lib/chef-dk/skeletons/code_generator/recipes/resource.rb +13 -13
- data/lib/chef-dk/skeletons/code_generator/recipes/template.rb +32 -32
- 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.apachev2.erb +201 -201
- 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/Berksfile.erb +7 -7
- data/lib/chef-dk/skeletons/code_generator/templates/default/build_cookbook/metadata.rb.erb +10 -10
- data/lib/chef-dk/skeletons/code_generator/templates/default/build_cookbook/recipe.rb.erb +8 -8
- data/lib/chef-dk/skeletons/code_generator/templates/default/helpers.rb.erb +39 -39
- data/lib/chef-dk/skeletons/code_generator/templates/default/inspec_default_test.rb.erb +18 -18
- data/lib/chef-dk/skeletons/code_generator/templates/default/kitchen.yml.erb +26 -26
- data/lib/chef-dk/skeletons/code_generator/templates/default/kitchen_policyfile.yml.erb +33 -33
- data/lib/chef-dk/skeletons/code_generator/templates/default/metadata.rb.erb +20 -20
- 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 +35 -35
- data/lib/chef-dk/skeletons/code_generator/templates/default/repo/gitignore.erb +128 -128
- data/lib/chef-dk/skeletons/code_generator/templates/default/resource.rb.erb +1 -1
- data/lib/chef-dk/ui.rb +57 -57
- data/lib/chef-dk/version.rb +20 -20
- data/lib/kitchen/provisioner/policyfile_zero.rb +195 -195
- data/omnibus_overrides.rb +22 -22
- 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/custom_generator_cookbook.rb +136 -136
- data/spec/shared/fixture_cookbook_checksums.rb +46 -46
- data/spec/shared/setup_git_committer_config.rb +54 -54
- 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 +139 -139
- data/spec/unit/chef_server_api_multi_spec.rb +120 -120
- data/spec/unit/cli_spec.rb +377 -377
- data/spec/unit/command/base_spec.rb +172 -172
- data/spec/unit/command/clean_policy_cookbooks_spec.rb +180 -180
- data/spec/unit/command/clean_policy_revisions_spec.rb +180 -180
- data/spec/unit/command/delete_policy_group_spec.rb +206 -206
- data/spec/unit/command/delete_policy_spec.rb +206 -206
- data/spec/unit/command/diff_spec.rb +311 -311
- data/spec/unit/command/env_spec.rb +52 -52
- data/spec/unit/command/exec_spec.rb +178 -178
- data/spec/unit/command/export_spec.rb +199 -199
- data/spec/unit/command/generate_spec.rb +142 -142
- data/spec/unit/command/generator_commands/app_spec.rb +166 -166
- data/spec/unit/command/generator_commands/attribute_spec.rb +31 -31
- data/spec/unit/command/generator_commands/base_spec.rb +181 -181
- data/spec/unit/command/generator_commands/build_cookbook_spec.rb +377 -377
- data/spec/unit/command/generator_commands/chef_exts/generator_desc_resource_spec.rb +97 -97
- data/spec/unit/command/generator_commands/chef_exts/recipe_dsl_ext_spec.rb +111 -111
- data/spec/unit/command/generator_commands/cookbook_file_spec.rb +31 -31
- data/spec/unit/command/generator_commands/cookbook_spec.rb +756 -756
- data/spec/unit/command/generator_commands/generator_generator_spec.rb +227 -227
- data/spec/unit/command/generator_commands/helpers_spec.rb +31 -31
- data/spec/unit/command/generator_commands/policyfile_spec.rb +223 -223
- data/spec/unit/command/generator_commands/recipe_spec.rb +37 -37
- data/spec/unit/command/generator_commands/repo_spec.rb +374 -374
- data/spec/unit/command/generator_commands/resource_spec.rb +31 -31
- data/spec/unit/command/generator_commands/template_spec.rb +31 -31
- data/spec/unit/command/install_spec.rb +179 -179
- data/spec/unit/command/provision_spec.rb +589 -589
- data/spec/unit/command/push_archive_spec.rb +153 -153
- data/spec/unit/command/push_spec.rb +198 -198
- data/spec/unit/command/shell_init_spec.rb +339 -339
- data/spec/unit/command/show_policy_spec.rb +234 -234
- data/spec/unit/command/undelete_spec.rb +244 -244
- data/spec/unit/command/update_spec.rb +283 -283
- data/spec/unit/command/verify_spec.rb +341 -341
- data/spec/unit/commands_map_spec.rb +57 -57
- data/spec/unit/component_test_spec.rb +128 -128
- data/spec/unit/configurable_spec.rb +68 -68
- data/spec/unit/cookbook_metadata_spec.rb +96 -96
- data/spec/unit/cookbook_profiler/git_spec.rb +176 -176
- data/spec/unit/cookbook_profiler/identifiers_spec.rb +81 -81
- 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/chef_server_universe.json +56 -56
- data/spec/unit/fixtures/cookbooks_api/pruned_chef_server_universe.json +30 -30
- 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 +33 -33
- 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/generator_spec.rb +119 -119
- data/spec/unit/pager_spec.rb +117 -117
- data/spec/unit/policyfile/artifactory_cookbook_source_spec.rb +59 -59
- data/spec/unit/policyfile/attribute_merge_checker_spec.rb +80 -80
- data/spec/unit/policyfile/chef_repo_cookbook_source_spec.rb +93 -93
- data/spec/unit/policyfile/chef_server_cookbook_source_spec.rb +55 -55
- data/spec/unit/policyfile/chef_server_lock_fetcher_spec.rb +161 -161
- data/spec/unit/policyfile/community_cookbook_source_spec.rb +83 -83
- data/spec/unit/policyfile/comparison_base_spec.rb +340 -340
- data/spec/unit/policyfile/cookbook_location_specification_spec.rb +347 -347
- data/spec/unit/policyfile/cookbook_locks_spec.rb +527 -527
- data/spec/unit/policyfile/delivery_supermarket_source_spec.rb +129 -129
- data/spec/unit/policyfile/differ_spec.rb +686 -686
- data/spec/unit/policyfile/included_policies_cookbook_source_spec.rb +242 -242
- data/spec/unit/policyfile/lister_spec.rb +268 -268
- data/spec/unit/policyfile/local_lock_fetcher_spec.rb +173 -161
- data/spec/unit/policyfile/lock_applier_spec.rb +100 -100
- data/spec/unit/policyfile/null_cookbook_source_spec.rb +34 -34
- data/spec/unit/policyfile/read_cookbook_for_compat_mode_upload_spec.rb +92 -92
- data/spec/unit/policyfile/reports/install_spec.rb +114 -114
- data/spec/unit/policyfile/reports/upload_spec.rb +94 -94
- data/spec/unit/policyfile/solution_dependencies_spec.rb +170 -170
- data/spec/unit/policyfile/source_uri_spec.rb +36 -36
- data/spec/unit/policyfile/storage_config_spec.rb +180 -180
- data/spec/unit/policyfile/undo_record_spec.rb +258 -258
- data/spec/unit/policyfile/undo_stack_spec.rb +265 -265
- data/spec/unit/policyfile/uploader_spec.rb +409 -409
- data/spec/unit/policyfile_demands_spec.rb +1197 -1197
- data/spec/unit/policyfile_evaluation_spec.rb +638 -638
- data/spec/unit/policyfile_includes_dsl_spec.rb +159 -159
- data/spec/unit/policyfile_includes_spec.rb +720 -720
- data/spec/unit/policyfile_install_with_includes_spec.rb +232 -232
- data/spec/unit/policyfile_lock_build_spec.rb +1065 -1065
- data/spec/unit/policyfile_lock_install_spec.rb +137 -137
- data/spec/unit/policyfile_lock_serialization_spec.rb +424 -424
- data/spec/unit/policyfile_lock_validation_spec.rb +608 -608
- data/spec/unit/policyfile_services/clean_policies_spec.rb +236 -236
- data/spec/unit/policyfile_services/clean_policy_cookbooks_spec.rb +272 -272
- data/spec/unit/policyfile_services/export_repo_spec.rb +478 -478
- data/spec/unit/policyfile_services/install_spec.rb +209 -209
- data/spec/unit/policyfile_services/push_archive_spec.rb +374 -374
- data/spec/unit/policyfile_services/push_spec.rb +249 -249
- data/spec/unit/policyfile_services/rm_policy_group_spec.rb +237 -237
- data/spec/unit/policyfile_services/rm_policy_spec.rb +263 -263
- data/spec/unit/policyfile_services/show_policy_spec.rb +887 -887
- data/spec/unit/policyfile_services/undelete_spec.rb +302 -302
- data/spec/unit/policyfile_services/update_attributes_spec.rb +229 -229
- data/spec/unit/policyfile_services/update_spec.rb +140 -140
- data/spec/unit/service_exception_inspectors/base_spec.rb +41 -41
- data/spec/unit/service_exception_inspectors/http_spec.rb +138 -138
- data/spec/unit/shell_out_spec.rb +34 -34
- data/tasks/announce.rb +57 -57
- data/tasks/bin/bundle-platform.bat +2 -2
- data/tasks/dependencies.rb +89 -89
- data/tasks/templates/prerelease.md.erb +35 -35
- data/tasks/templates/release.md.erb +34 -34
- data/warning.txt +9 -9
- metadata +5 -5
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/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/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,3 +1,3 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
require 'chefspec'
|
|
3
|
-
require 'chefspec/berkshelf'
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'chefspec'
|
|
3
|
+
require 'chefspec/berkshelf'
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
require 'chefspec'
|
|
3
|
-
require 'chefspec/policyfile'
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'chefspec'
|
|
3
|
+
require 'chefspec/policyfile'
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
name 'code_generator'
|
|
3
|
-
maintainer 'Chef Software, Inc.'
|
|
4
|
-
maintainer_email 'dev@chef.io'
|
|
5
|
-
license 'Apache-2.0'
|
|
6
|
-
description 'Generates Chef code for Chef DK'
|
|
7
|
-
version '0.1.0'
|
|
8
|
-
chef_version '>= 12.0'
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
name 'code_generator'
|
|
3
|
+
maintainer 'Chef Software, Inc.'
|
|
4
|
+
maintainer_email 'dev@chef.io'
|
|
5
|
+
license 'Apache-2.0'
|
|
6
|
+
description 'Generates Chef code for Chef DK'
|
|
7
|
+
version '0.1.0'
|
|
8
|
+
chef_version '>= 12.0'
|
|
@@ -1,89 +1,89 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
context = ChefDK::Generator.context
|
|
4
|
-
app_dir = File.join(context.app_root, context.app_name)
|
|
5
|
-
cookbooks_dir = context.cookbook_root
|
|
6
|
-
cookbook_dir = File.join(cookbooks_dir, context.cookbook_name)
|
|
7
|
-
|
|
8
|
-
# app root dir
|
|
9
|
-
directory app_dir
|
|
10
|
-
|
|
11
|
-
# Top level files
|
|
12
|
-
|
|
13
|
-
# Test Kitchen
|
|
14
|
-
template "#{app_dir}/.kitchen.yml" do
|
|
15
|
-
source 'kitchen.yml.erb'
|
|
16
|
-
helpers(ChefDK::Generator::TemplateHelper)
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
# Inspec
|
|
20
|
-
directory "#{app_dir}/test/
|
|
21
|
-
recursive true
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
template "#{app_dir}/test/
|
|
25
|
-
source 'inspec_default_test.rb.erb'
|
|
26
|
-
helpers(ChefDK::Generator::TemplateHelper)
|
|
27
|
-
action :create_if_missing
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
# README
|
|
31
|
-
template "#{app_dir}/README.md" do
|
|
32
|
-
helpers(ChefDK::Generator::TemplateHelper)
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
# Generated Cookbook:
|
|
36
|
-
|
|
37
|
-
# cookbook collection dir
|
|
38
|
-
directory cookbooks_dir
|
|
39
|
-
|
|
40
|
-
# cookbook collection dir
|
|
41
|
-
directory cookbook_dir
|
|
42
|
-
|
|
43
|
-
# metadata.rb
|
|
44
|
-
template "#{cookbook_dir}/metadata.rb" do
|
|
45
|
-
helpers(ChefDK::Generator::TemplateHelper)
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
# chefignore
|
|
49
|
-
cookbook_file "#{cookbook_dir}/chefignore"
|
|
50
|
-
|
|
51
|
-
# Berks
|
|
52
|
-
cookbook_file "#{cookbook_dir}/Berksfile"
|
|
53
|
-
|
|
54
|
-
# Recipes
|
|
55
|
-
|
|
56
|
-
directory "#{cookbook_dir}/recipes"
|
|
57
|
-
|
|
58
|
-
template "#{cookbook_dir}/recipes/default.rb" do
|
|
59
|
-
source 'recipe.rb.erb'
|
|
60
|
-
helpers(ChefDK::Generator::TemplateHelper)
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
# Chefspec
|
|
64
|
-
directory "#{cookbook_dir}/spec/unit/recipes" do
|
|
65
|
-
recursive true
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
cookbook_file "#{cookbook_dir}/spec/spec_helper.rb" do
|
|
69
|
-
action :create_if_missing
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
template "#{cookbook_dir}/spec/unit/recipes/default_spec.rb" do
|
|
73
|
-
source 'recipe_spec.rb.erb'
|
|
74
|
-
helpers(ChefDK::Generator::TemplateHelper)
|
|
75
|
-
action :create_if_missing
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
# git
|
|
79
|
-
if context.have_git
|
|
80
|
-
unless context.skip_git_init
|
|
81
|
-
execute('initialize-git') do
|
|
82
|
-
command('git init .')
|
|
83
|
-
cwd app_dir
|
|
84
|
-
end
|
|
85
|
-
end
|
|
86
|
-
cookbook_file "#{app_dir}/.gitignore" do
|
|
87
|
-
source 'gitignore'
|
|
88
|
-
end
|
|
89
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
context = ChefDK::Generator.context
|
|
4
|
+
app_dir = File.join(context.app_root, context.app_name)
|
|
5
|
+
cookbooks_dir = context.cookbook_root
|
|
6
|
+
cookbook_dir = File.join(cookbooks_dir, context.cookbook_name)
|
|
7
|
+
|
|
8
|
+
# app root dir
|
|
9
|
+
directory app_dir
|
|
10
|
+
|
|
11
|
+
# Top level files
|
|
12
|
+
|
|
13
|
+
# Test Kitchen
|
|
14
|
+
template "#{app_dir}/.kitchen.yml" do
|
|
15
|
+
source 'kitchen.yml.erb'
|
|
16
|
+
helpers(ChefDK::Generator::TemplateHelper)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Inspec
|
|
20
|
+
directory "#{app_dir}/test/integration/default" do
|
|
21
|
+
recursive true
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
template "#{app_dir}/test/integration/default/default_test.rb" do
|
|
25
|
+
source 'inspec_default_test.rb.erb'
|
|
26
|
+
helpers(ChefDK::Generator::TemplateHelper)
|
|
27
|
+
action :create_if_missing
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# README
|
|
31
|
+
template "#{app_dir}/README.md" do
|
|
32
|
+
helpers(ChefDK::Generator::TemplateHelper)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Generated Cookbook:
|
|
36
|
+
|
|
37
|
+
# cookbook collection dir
|
|
38
|
+
directory cookbooks_dir
|
|
39
|
+
|
|
40
|
+
# cookbook collection dir
|
|
41
|
+
directory cookbook_dir
|
|
42
|
+
|
|
43
|
+
# metadata.rb
|
|
44
|
+
template "#{cookbook_dir}/metadata.rb" do
|
|
45
|
+
helpers(ChefDK::Generator::TemplateHelper)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# chefignore
|
|
49
|
+
cookbook_file "#{cookbook_dir}/chefignore"
|
|
50
|
+
|
|
51
|
+
# Berks
|
|
52
|
+
cookbook_file "#{cookbook_dir}/Berksfile"
|
|
53
|
+
|
|
54
|
+
# Recipes
|
|
55
|
+
|
|
56
|
+
directory "#{cookbook_dir}/recipes"
|
|
57
|
+
|
|
58
|
+
template "#{cookbook_dir}/recipes/default.rb" do
|
|
59
|
+
source 'recipe.rb.erb'
|
|
60
|
+
helpers(ChefDK::Generator::TemplateHelper)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# Chefspec
|
|
64
|
+
directory "#{cookbook_dir}/spec/unit/recipes" do
|
|
65
|
+
recursive true
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
cookbook_file "#{cookbook_dir}/spec/spec_helper.rb" do
|
|
69
|
+
action :create_if_missing
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
template "#{cookbook_dir}/spec/unit/recipes/default_spec.rb" do
|
|
73
|
+
source 'recipe_spec.rb.erb'
|
|
74
|
+
helpers(ChefDK::Generator::TemplateHelper)
|
|
75
|
+
action :create_if_missing
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# git
|
|
79
|
+
if context.have_git
|
|
80
|
+
unless context.skip_git_init
|
|
81
|
+
execute('initialize-git') do
|
|
82
|
+
command('git init .')
|
|
83
|
+
cwd app_dir
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
cookbook_file "#{app_dir}/.gitignore" do
|
|
87
|
+
source 'gitignore'
|
|
88
|
+
end
|
|
89
|
+
end
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
context = ChefDK::Generator.context
|
|
4
|
-
cookbook_dir = File.join(context.cookbook_root, context.cookbook_name)
|
|
5
|
-
attribute_dir = File.join(cookbook_dir, 'attributes')
|
|
6
|
-
attribute_path = File.join(cookbook_dir, 'attributes', "#{context.new_file_basename}.rb")
|
|
7
|
-
|
|
8
|
-
directory attribute_dir
|
|
9
|
-
|
|
10
|
-
template attribute_path do
|
|
11
|
-
source 'attribute.rb.erb'
|
|
12
|
-
helpers(ChefDK::Generator::TemplateHelper)
|
|
13
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
context = ChefDK::Generator.context
|
|
4
|
+
cookbook_dir = File.join(context.cookbook_root, context.cookbook_name)
|
|
5
|
+
attribute_dir = File.join(cookbook_dir, 'attributes')
|
|
6
|
+
attribute_path = File.join(cookbook_dir, 'attributes', "#{context.new_file_basename}.rb")
|
|
7
|
+
|
|
8
|
+
directory attribute_dir
|
|
9
|
+
|
|
10
|
+
template attribute_path do
|
|
11
|
+
source 'attribute.rb.erb'
|
|
12
|
+
helpers(ChefDK::Generator::TemplateHelper)
|
|
13
|
+
end
|
|
@@ -1,177 +1,177 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
context = ChefDK::Generator.context
|
|
4
|
-
delivery_project_dir = context.delivery_project_dir
|
|
5
|
-
pipeline = context.pipeline
|
|
6
|
-
dot_delivery_dir = File.join(delivery_project_dir, '.delivery')
|
|
7
|
-
config_json = File.join(dot_delivery_dir, 'config.json')
|
|
8
|
-
project_toml = File.join(dot_delivery_dir, 'project.toml')
|
|
9
|
-
|
|
10
|
-
generator_desc('Ensuring delivery configuration')
|
|
11
|
-
|
|
12
|
-
directory dot_delivery_dir
|
|
13
|
-
|
|
14
|
-
cookbook_file config_json do
|
|
15
|
-
source 'delivery-config.json'
|
|
16
|
-
not_if { File.exist?(config_json) }
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
# Adding a new prototype file for delivery-cli local commands
|
|
20
|
-
cookbook_file project_toml do
|
|
21
|
-
source 'delivery-project.toml'
|
|
22
|
-
not_if { File.exist?(project_toml) }
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
generator_desc('Ensuring correct delivery build cookbook content')
|
|
26
|
-
|
|
27
|
-
build_cookbook_dir = File.join(dot_delivery_dir, 'build_cookbook')
|
|
28
|
-
|
|
29
|
-
# cookbook root dir
|
|
30
|
-
directory build_cookbook_dir
|
|
31
|
-
|
|
32
|
-
# metadata.rb
|
|
33
|
-
template "#{build_cookbook_dir}/metadata.rb" do
|
|
34
|
-
source 'build_cookbook/metadata.rb.erb'
|
|
35
|
-
helpers(ChefDK::Generator::TemplateHelper)
|
|
36
|
-
action :create_if_missing
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
# README
|
|
40
|
-
cookbook_file "#{build_cookbook_dir}/README.md" do
|
|
41
|
-
source 'build_cookbook/README.md'
|
|
42
|
-
action :create_if_missing
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
# LICENSE
|
|
46
|
-
template "#{build_cookbook_dir}/LICENSE" do
|
|
47
|
-
source "LICENSE.#{context.license}.erb"
|
|
48
|
-
helpers(ChefDK::Generator::TemplateHelper)
|
|
49
|
-
action :create_if_missing
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
# chefignore
|
|
53
|
-
cookbook_file "#{build_cookbook_dir}/chefignore"
|
|
54
|
-
|
|
55
|
-
# Berksfile
|
|
56
|
-
template "#{build_cookbook_dir}/Berksfile" do
|
|
57
|
-
source 'build_cookbook/Berksfile.erb'
|
|
58
|
-
helpers(ChefDK::Generator::TemplateHelper)
|
|
59
|
-
action :create_if_missing
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
# Recipes
|
|
63
|
-
directory "#{build_cookbook_dir}/recipes"
|
|
64
|
-
|
|
65
|
-
%w(default deploy functional lint provision publish quality security smoke syntax unit).each do |phase|
|
|
66
|
-
template "#{build_cookbook_dir}/recipes/#{phase}.rb" do
|
|
67
|
-
source 'build_cookbook/recipe.rb.erb'
|
|
68
|
-
helpers(ChefDK::Generator::TemplateHelper)
|
|
69
|
-
variables phase: phase
|
|
70
|
-
action :create_if_missing
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
# Test Kitchen build node
|
|
75
|
-
cookbook_file "#{build_cookbook_dir}/.kitchen.yml" do
|
|
76
|
-
source 'build_cookbook/.kitchen.yml'
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
directory "#{build_cookbook_dir}/data_bags/keys" do
|
|
80
|
-
recursive true
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
file "#{build_cookbook_dir}/data_bags/keys/delivery_builder_keys.json" do
|
|
84
|
-
content '{"id": "delivery_builder_keys"}'
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
directory "#{build_cookbook_dir}/secrets"
|
|
88
|
-
|
|
89
|
-
file "#{build_cookbook_dir}/secrets/fakey-mcfakerton"
|
|
90
|
-
|
|
91
|
-
directory "#{build_cookbook_dir}/test/fixtures/cookbooks/test/recipes" do
|
|
92
|
-
recursive true
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
file "#{build_cookbook_dir}/test/fixtures/cookbooks/test/metadata.rb" do
|
|
96
|
-
content %(name 'test'
|
|
97
|
-
version '0.1.0')
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
cookbook_file "#{build_cookbook_dir}/test/fixtures/cookbooks/test/recipes/default.rb" do
|
|
101
|
-
source 'build_cookbook/test-fixture-recipe.rb'
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
# Construct git history as if we did all the work in a feature branch which we
|
|
105
|
-
# merged into master at the end, which looks like this:
|
|
106
|
-
#
|
|
107
|
-
# ```
|
|
108
|
-
# git log --graph --oneline
|
|
109
|
-
# * 5fec5bd Merge branch 'add-delivery-configuration'
|
|
110
|
-
# |\
|
|
111
|
-
# | * 967bb9f Add generated delivery build cookbook
|
|
112
|
-
# | * 1558e0a Add generated delivery configuration
|
|
113
|
-
# |/
|
|
114
|
-
# * db22790 Add generated cookbook content
|
|
115
|
-
# ```
|
|
116
|
-
#
|
|
117
|
-
if context.have_git && context.delivery_project_git_initialized && !context.skip_git_init
|
|
118
|
-
|
|
119
|
-
generator_desc('Adding delivery configuration to feature branch')
|
|
120
|
-
|
|
121
|
-
execute('git-create-feature-branch') do
|
|
122
|
-
command('git checkout -t -b add-delivery-configuration')
|
|
123
|
-
cwd delivery_project_dir
|
|
124
|
-
not_if { shell_out('git branch', cwd: delivery_project_dir).stdout.match(/add-delivery-configuration/) }
|
|
125
|
-
end
|
|
126
|
-
|
|
127
|
-
execute('git-add-delivery-config-json') do
|
|
128
|
-
command('git add .delivery/config.json')
|
|
129
|
-
cwd delivery_project_dir
|
|
130
|
-
only_if { shell_out('git status -u --porcelain', cwd: delivery_project_dir).stdout.match(%r{.delivery/config.json}) }
|
|
131
|
-
end
|
|
132
|
-
|
|
133
|
-
# Adding the new prototype file to the feature branch
|
|
134
|
-
# so it gets checked in with the delivery config commit
|
|
135
|
-
execute('git-add-delivery-project-toml') do
|
|
136
|
-
command('git add .delivery/project.toml')
|
|
137
|
-
cwd delivery_project_dir
|
|
138
|
-
only_if { shell_out('git status -u --porcelain', cwd: delivery_project_dir).stdout.match(%r{.delivery/project.toml}) }
|
|
139
|
-
end
|
|
140
|
-
|
|
141
|
-
execute('git-commit-delivery-config') do
|
|
142
|
-
command('git commit -m "Add generated delivery configuration"')
|
|
143
|
-
cwd delivery_project_dir
|
|
144
|
-
only_if { shell_out('git status -u --porcelain', cwd: delivery_project_dir).stdout.match(/config\.json|project\.toml/) }
|
|
145
|
-
end
|
|
146
|
-
|
|
147
|
-
generator_desc('Adding build cookbook to feature branch')
|
|
148
|
-
|
|
149
|
-
execute('git-add-delivery-build-cookbook-files') do
|
|
150
|
-
command('git add .delivery')
|
|
151
|
-
cwd delivery_project_dir
|
|
152
|
-
only_if { shell_out('git status -u --porcelain', cwd: delivery_project_dir).stdout.match(/\.delivery/) }
|
|
153
|
-
end
|
|
154
|
-
|
|
155
|
-
execute('git-commit-delivery-build-cookbook') do
|
|
156
|
-
command('git commit -m "Add generated delivery build cookbook"')
|
|
157
|
-
cwd delivery_project_dir
|
|
158
|
-
only_if { shell_out('git status -u --porcelain', cwd: delivery_project_dir).stdout.match(/\.delivery/) }
|
|
159
|
-
end
|
|
160
|
-
|
|
161
|
-
execute("git-return-to-#{pipeline}-branch") do
|
|
162
|
-
command("git checkout #{pipeline}")
|
|
163
|
-
cwd delivery_project_dir
|
|
164
|
-
end
|
|
165
|
-
|
|
166
|
-
generator_desc('Merging delivery content feature branch to master')
|
|
167
|
-
|
|
168
|
-
execute('git-merge-delivery-config-branch') do
|
|
169
|
-
command('git merge --no-ff add-delivery-configuration')
|
|
170
|
-
cwd delivery_project_dir
|
|
171
|
-
end
|
|
172
|
-
|
|
173
|
-
execute('git-remove-delivery-config-branch') do
|
|
174
|
-
command('git branch -D add-delivery-configuration')
|
|
175
|
-
cwd delivery_project_dir
|
|
176
|
-
end
|
|
177
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
context = ChefDK::Generator.context
|
|
4
|
+
delivery_project_dir = context.delivery_project_dir
|
|
5
|
+
pipeline = context.pipeline
|
|
6
|
+
dot_delivery_dir = File.join(delivery_project_dir, '.delivery')
|
|
7
|
+
config_json = File.join(dot_delivery_dir, 'config.json')
|
|
8
|
+
project_toml = File.join(dot_delivery_dir, 'project.toml')
|
|
9
|
+
|
|
10
|
+
generator_desc('Ensuring delivery configuration')
|
|
11
|
+
|
|
12
|
+
directory dot_delivery_dir
|
|
13
|
+
|
|
14
|
+
cookbook_file config_json do
|
|
15
|
+
source 'delivery-config.json'
|
|
16
|
+
not_if { File.exist?(config_json) }
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Adding a new prototype file for delivery-cli local commands
|
|
20
|
+
cookbook_file project_toml do
|
|
21
|
+
source 'delivery-project.toml'
|
|
22
|
+
not_if { File.exist?(project_toml) }
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
generator_desc('Ensuring correct delivery build cookbook content')
|
|
26
|
+
|
|
27
|
+
build_cookbook_dir = File.join(dot_delivery_dir, 'build_cookbook')
|
|
28
|
+
|
|
29
|
+
# cookbook root dir
|
|
30
|
+
directory build_cookbook_dir
|
|
31
|
+
|
|
32
|
+
# metadata.rb
|
|
33
|
+
template "#{build_cookbook_dir}/metadata.rb" do
|
|
34
|
+
source 'build_cookbook/metadata.rb.erb'
|
|
35
|
+
helpers(ChefDK::Generator::TemplateHelper)
|
|
36
|
+
action :create_if_missing
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# README
|
|
40
|
+
cookbook_file "#{build_cookbook_dir}/README.md" do
|
|
41
|
+
source 'build_cookbook/README.md'
|
|
42
|
+
action :create_if_missing
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# LICENSE
|
|
46
|
+
template "#{build_cookbook_dir}/LICENSE" do
|
|
47
|
+
source "LICENSE.#{context.license}.erb"
|
|
48
|
+
helpers(ChefDK::Generator::TemplateHelper)
|
|
49
|
+
action :create_if_missing
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# chefignore
|
|
53
|
+
cookbook_file "#{build_cookbook_dir}/chefignore"
|
|
54
|
+
|
|
55
|
+
# Berksfile
|
|
56
|
+
template "#{build_cookbook_dir}/Berksfile" do
|
|
57
|
+
source 'build_cookbook/Berksfile.erb'
|
|
58
|
+
helpers(ChefDK::Generator::TemplateHelper)
|
|
59
|
+
action :create_if_missing
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# Recipes
|
|
63
|
+
directory "#{build_cookbook_dir}/recipes"
|
|
64
|
+
|
|
65
|
+
%w(default deploy functional lint provision publish quality security smoke syntax unit).each do |phase|
|
|
66
|
+
template "#{build_cookbook_dir}/recipes/#{phase}.rb" do
|
|
67
|
+
source 'build_cookbook/recipe.rb.erb'
|
|
68
|
+
helpers(ChefDK::Generator::TemplateHelper)
|
|
69
|
+
variables phase: phase
|
|
70
|
+
action :create_if_missing
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# Test Kitchen build node
|
|
75
|
+
cookbook_file "#{build_cookbook_dir}/.kitchen.yml" do
|
|
76
|
+
source 'build_cookbook/.kitchen.yml'
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
directory "#{build_cookbook_dir}/data_bags/keys" do
|
|
80
|
+
recursive true
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
file "#{build_cookbook_dir}/data_bags/keys/delivery_builder_keys.json" do
|
|
84
|
+
content '{"id": "delivery_builder_keys"}'
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
directory "#{build_cookbook_dir}/secrets"
|
|
88
|
+
|
|
89
|
+
file "#{build_cookbook_dir}/secrets/fakey-mcfakerton"
|
|
90
|
+
|
|
91
|
+
directory "#{build_cookbook_dir}/test/fixtures/cookbooks/test/recipes" do
|
|
92
|
+
recursive true
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
file "#{build_cookbook_dir}/test/fixtures/cookbooks/test/metadata.rb" do
|
|
96
|
+
content %(name 'test'
|
|
97
|
+
version '0.1.0')
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
cookbook_file "#{build_cookbook_dir}/test/fixtures/cookbooks/test/recipes/default.rb" do
|
|
101
|
+
source 'build_cookbook/test-fixture-recipe.rb'
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
# Construct git history as if we did all the work in a feature branch which we
|
|
105
|
+
# merged into master at the end, which looks like this:
|
|
106
|
+
#
|
|
107
|
+
# ```
|
|
108
|
+
# git log --graph --oneline
|
|
109
|
+
# * 5fec5bd Merge branch 'add-delivery-configuration'
|
|
110
|
+
# |\
|
|
111
|
+
# | * 967bb9f Add generated delivery build cookbook
|
|
112
|
+
# | * 1558e0a Add generated delivery configuration
|
|
113
|
+
# |/
|
|
114
|
+
# * db22790 Add generated cookbook content
|
|
115
|
+
# ```
|
|
116
|
+
#
|
|
117
|
+
if context.have_git && context.delivery_project_git_initialized && !context.skip_git_init
|
|
118
|
+
|
|
119
|
+
generator_desc('Adding delivery configuration to feature branch')
|
|
120
|
+
|
|
121
|
+
execute('git-create-feature-branch') do
|
|
122
|
+
command('git checkout -t -b add-delivery-configuration')
|
|
123
|
+
cwd delivery_project_dir
|
|
124
|
+
not_if { shell_out('git branch', cwd: delivery_project_dir).stdout.match(/add-delivery-configuration/) }
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
execute('git-add-delivery-config-json') do
|
|
128
|
+
command('git add .delivery/config.json')
|
|
129
|
+
cwd delivery_project_dir
|
|
130
|
+
only_if { shell_out('git status -u --porcelain', cwd: delivery_project_dir).stdout.match(%r{.delivery/config.json}) }
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
# Adding the new prototype file to the feature branch
|
|
134
|
+
# so it gets checked in with the delivery config commit
|
|
135
|
+
execute('git-add-delivery-project-toml') do
|
|
136
|
+
command('git add .delivery/project.toml')
|
|
137
|
+
cwd delivery_project_dir
|
|
138
|
+
only_if { shell_out('git status -u --porcelain', cwd: delivery_project_dir).stdout.match(%r{.delivery/project.toml}) }
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
execute('git-commit-delivery-config') do
|
|
142
|
+
command('git commit -m "Add generated delivery configuration"')
|
|
143
|
+
cwd delivery_project_dir
|
|
144
|
+
only_if { shell_out('git status -u --porcelain', cwd: delivery_project_dir).stdout.match(/config\.json|project\.toml/) }
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
generator_desc('Adding build cookbook to feature branch')
|
|
148
|
+
|
|
149
|
+
execute('git-add-delivery-build-cookbook-files') do
|
|
150
|
+
command('git add .delivery')
|
|
151
|
+
cwd delivery_project_dir
|
|
152
|
+
only_if { shell_out('git status -u --porcelain', cwd: delivery_project_dir).stdout.match(/\.delivery/) }
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
execute('git-commit-delivery-build-cookbook') do
|
|
156
|
+
command('git commit -m "Add generated delivery build cookbook"')
|
|
157
|
+
cwd delivery_project_dir
|
|
158
|
+
only_if { shell_out('git status -u --porcelain', cwd: delivery_project_dir).stdout.match(/\.delivery/) }
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
execute("git-return-to-#{pipeline}-branch") do
|
|
162
|
+
command("git checkout #{pipeline}")
|
|
163
|
+
cwd delivery_project_dir
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
generator_desc('Merging delivery content feature branch to master')
|
|
167
|
+
|
|
168
|
+
execute('git-merge-delivery-config-branch') do
|
|
169
|
+
command('git merge --no-ff add-delivery-configuration')
|
|
170
|
+
cwd delivery_project_dir
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
execute('git-remove-delivery-config-branch') do
|
|
174
|
+
command('git branch -D add-delivery-configuration')
|
|
175
|
+
cwd delivery_project_dir
|
|
176
|
+
end
|
|
177
|
+
end
|