As Chef Metal approaches 1.0, we've landed a huge configuration and driver interface improvement intended to enable:
- A standard way to specify credentials and keys that keeps them out of recipes and allows them to be used in multiple places
- External commands (like "metal execute") that can look up information and manage a node independent of the original Metal recipe
- Environmental and directory-specific configuration
- Make the drivers easily usable in test-kitchen and knife
Herein I want to talk about the Driver interface and how it is used by provisioning programs like the machine resource or kitchen, and driver implementors.