Class: Kitchen::Provisioner::ChefZeroCapture
- Inherits:
-
ChefZero
- Object
- ChefZero
- Kitchen::Provisioner::ChefZeroCapture
- Defined in:
- lib/kitchen/provisioner/chef_zero_capture.rb
Overview
chef-zero provisioner intended for use with ‘chef capture`.
This provisioner does not do any cookbook dependency resolution and will not pull in external cookbooks. All cookbooks or cookbook artifacts + policy data as captured from the live node and are expected to be available for chef-zero to provide to the client.
Instance Method Summary collapse
- #create_sandbox ⇒ Object
-
#default_config_rb ⇒ Object
Overriding the private ProviderChefZero#default_config_rb so that we can add additional configuration required for chef-zero to be able to locate our policies/, policy groups, and cookbook artifacts at run-time.
-
#load_needed_dependencies! ⇒ Object
This will load policyfile/berkshelf.
Instance Method Details
#create_sandbox ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/kitchen/provisioner/chef_zero_capture.rb', line 59 def create_sandbox # We have to invoke the the true Base create_sandbox because it does setup that # we want. However, we do not want to invoke the create_sandbox inherited from # ChefZero/ChefBase - those will create and populate a ChefCommonSandbox instead # of a ChefZeroCaptureSandbox. m = Base.instance_method(:create_sandbox).bind(self) m.call # These behaviors from super we _do_ want, so we need to copy them here. prepare_validation_pem prepare_config_rb ChefZeroCaptureSandbox.new(config, sandbox_path, instance).populate end |
#default_config_rb ⇒ Object
Overriding the private ProviderChefZero#default_config_rb so that we can add additional configuration required for chef-zero to be able to locate our policies/, policy groups, and cookbook artifacts at run-time.
77 78 79 80 81 82 83 84 85 |
# File 'lib/kitchen/provisioner/chef_zero_capture.rb', line 77 def default_config_rb cfg = super # Need to tell chef-zero about our additional config. root = config[:root_path].gsub("$env:TEMP", "\#{ENV['TEMP']\}") cfg[:policies_path] = remote_path_join(root, config[:policies_path]) cfg[:policy_groups_path] = remote_path_join(root, config[:policy_groups_path]) cfg[:cookbook_artifacts_path] = remote_path_join(root, config[:cookbook_artifacts_path]) cfg end |
#load_needed_dependencies! ⇒ Object
This will load policyfile/berkshelf. We don’t want either - the client resolves all dependencies from chef-zero, exactly as prepped in the captured repository.
57 |
# File 'lib/kitchen/provisioner/chef_zero_capture.rb', line 57 def load_needed_dependencies!; end |