Until now we used to think that the best practices would be to define the attributes in the cookbook and then if those needs to be overwritten, to do that using environment attributes.
But as I started be more involved in cookbook development, I started refactor some old cookbooks and I found that it’s easier for some cookbooks to use in recipe search for nodes, thus means that instead of having attributes in environment, they should be on nodes. But that prevents having an environment defining all the application deployment on the same. What I’m trying to say is that before I started refactoring cookbooks, all the attributes from cookbooks, if they were needed to be overwritten, they were using environment attributes and so all the machines from that env could had been replaced at once, because they would contain no other information than OHAI attributes and run list.
Any thoughts on that approach?