Does anyone have any thoughts/objections on the blueprint I posted for allowing clients to pass capability-requests through tags?  I'm planning on starting implementation soon, so if people think this is a bad idea I'd rather know before I start coding!<div>
<br></div><div><meta http-equiv="content-type" content="text/html; charset=utf-8">Blueprint: <a href="https://blueprints.launchpad.net/nova/+spec/use-metadata-tags-for-capabilities">https://blueprints.launchpad.net/nova/+spec/use-metadata-tags-for-capabilities</a></div>
<div><a href="https://blueprints.launchpad.net/nova/+spec/use-metadata-tags-for-capabilities"></a>Wiki: <meta http-equiv="content-type" content="text/html; charset=utf-8"><a href="https://blueprints.launchpad.net/nova/+spec/use-metadata-tags-for-capabilities">https://blueprints.launchpad.net/nova/+spec/use-metadata-tags-for-capabilities</a></div>
<div><br></div><div><a href="https://blueprints.launchpad.net/nova/+spec/use-metadata-tags-for-capabilities"></a>And a quick TLDR:</div><div>API clients need a way to request e.g. placement of machines near each other / near volumes, or that a volume be created with a particular RAID level, or that a machine be created in a HIPAA compliant environment.  (This is complementary to the work on hierarchical zones & URL naming, I believe)</div>
<div><br></div><div>I propose using the instance tags for this, e.g. specifying openstack:near=vol-000001 when creating an instance to request locating the instance 'close to' that volume.</div><div><br></div><div>
By default these requests would be best-effort and ignored-if-unknown; if the client wants to specify that something is required and should fail if not understood or not satisfiable, they could use a "+" e.g. openstack:+location=*.<a href="http://dc1.north.rackspace.com">dc1.north.rackspace.com</a></div>
<div><br></div><div>Controversially (?), this would not be supported for clients using the AWS API, because tags can only be specified once the instance has already been created.</div><div><br></div><div><br></div><div>Feedback appreciated!</div>
<div><br></div><div>Justin<br><br><br><br></div>