- From:
- To:
- Subject: [chef] Antwort: Re: Testing idempotence of chef cookbooks
- Date: Thu, 21 May 2015 17:01:32 +0200
Isn't your way the same as running the
converge command twice and looking at the last line of the chef-client
output? If so, this way sounds a little bit easier for me.
Chef
Client finished, 45/61 resources updated in 16.28070151 seconds
If so, what is really the goal of testing
idempotence? Should I really have a "0 resources updated"?
By the way, what do the two numbers
mean actually?
regards,
Johannes
Von:
Roland Moriz <
>
An:
Datum:
20.05.2015 13:10
Betreff:
[chef] Re: Testing
idempotence of chef cookbooks
Hi,
Am 20.05.2015 um 10:21 schrieb
">
:
Hi,
is there a general way or best practice for testing idempotence of chef
cookbooks?
An approach might be to use test-kitchen + duplicate suite
names + a custom chef-handler that writes the number of updated resources
to disk + serverspec to verify it.
e.g. .kitchen.yaml
-8<---
suites:
- name: default
run_list:
- recipe[chef-handler]
- recipe[build-essential]
attributes:
- name: default
run_list:
- recipe[chef-handler]
- recipe[build-essential]
attributes:
-8<---
this will converge the node twice on „kitchen converge“.
An example for a simple chef handler: https://github.com/jtimberman/chef-handler-updated-resources/blob/master/lib/chef/handler/updated_resources.rb
- use https://supermarket.chef.io/cookbooks/chef_handler
to deploy the handler to your testing node.
Instead of logging to Chef::Log you could just write the
number of updated resources to a log file e.g. /tmp/updated_resources and
use http://serverspec.org/resource_types.html#file
to verify.
hth
best regards
Roland
Archive powered by MHonArc 2.6.16.