Using search() with test-kitchen and chef-zero
September, 23 2014 @ 10:16:41
When using test-kitchen for testing Chef cookbooks you may run into the following error:
I cannot read /tmp/kitchen/client.pem, which you told me to use to sign requests!
This results from using the chef-solo
provisioner and having a search()
function call in your recipe. test-kitchen
is trying to reach the Chef server but it can’t since it doesn’t exist. Switch over to using chef-zero
and put node JSON data in test/integration/nodes
that can be searched against.
However, if your recipe is searching for a node based on a recipe, test-kitchen doesn’t properly return the nodes so you may need to detect if you’re running in a different environment within your cookbook and react accordingly.