Hi - is there a good way to terminate current Chef run (within a recipe) after changing chef_environment and restart it from start, taking into account different environment-specific cookbook pinnings or attributes?
I would like to implement recipe that assigns node to specific chef environment (early in compilation phase) selected by external condition (in this case Scalr environment variable APP_ENV) and immediately restart Chef run
Code like this:
if ENV['APP_ENV'] != node['chef_envronment'] node.normal['chef_envronment'] = ENV['APP_ENV'] node.save Chef::Client.new.run end
won’t work as spawned client will see parent and will wait until it exits…