0

We are currently using the following approach: Test and develop Cookbooks with test-kitchen, bootstrap a node with knife bootstrap

At the moment I am switching our bootstrap part over to chef-provisioning because we also want to automatically clone VMs prior to bootstrapping and rollout more complicated cluster configurations. And this works fine when rolling out new servers.

But we also want to use the chef-provisioning resources during development and test. We could use chef-client -z for this. But we would loose a lot of convenience that test-kitchen provides. For example setting up a chef-zero with databags and stuff. Using kitchen test for testing. Not having to do a berks vendor prior to testing aso.

Is there a way to configure test-kitchen to not create any machine but to just execute the recipe containing the chef-provisioning resources through chef-client against its chef-zero provider that test-kitchen spins up and configures? So that chef-provisioning creates the machines.

I found kitchen-metal. But since it is unmaintained since 2014 I don't think it is the way to go.

Long story short: I want to test chef-provisioning stuff (like I would do with chef-client -z) but with the convenience of test-kitchen.

How are you guys develop and test this?

Cheers, Stefan

Stefan Marbury
  • 187
  • 1
  • 13

1 Answers1

1

chef-provisioning is, as a project, not recommended for use at this time. See https://coderanger.net/provisioning/ for details. The recommended course of action would probably be to use Terraform and Kitchen-Terraform. I don't think there is a Kitchen driver for SparkleFormation but there could be.

nictrix
  • 1,483
  • 1
  • 17
  • 34
coderanger
  • 52,400
  • 4
  • 52
  • 75
  • Interesting article. I heared different stuff from some Chef internals when I have asked them on how prod ready this feature is. That's why we are using it. And there have been some talks at ChefConf2015 that sounded promising. What do you think about the Policyfile feature that is currently under development regarding timeline? Because we were working towards that feature since it would solve some of our problems. – Stefan Marbury Aug 25 '16 at 09:35