Colin,
One thought I have been having about the metadata bits we discussed yesterday in the meeting. What if we didn't have duffy do the metadata, but rather consumed the session values, nodes, etc. from duffy, then allowed the cciskel-duffy to pull in a json file that helped define metadata. I can see that you are doing a small inventory bit in the code, it looks mostly around ansible groups.
Consider the following use case/story. I've requested three nodes from duffy, for an openshift cluster. One will be the master, the other two will be nodes. Putting a custom built RPM repository on one node (not the master), and then installing using the atomic-openshift-installer. a installer.cfg.yml file will need to be created which details these items. Having this in a dynamically-generated inventory from your cciskel-duffy tool seems like a great location, at least until duffy can do this itself.
Thoughts?
herlo