Re: [Openstack] Anyone using instance metadata?

2012-07-08 Thread Jay Pipes
On 07/04/2012 06:20 PM, Steve Baker wrote:
snip

 To fix this semantic clash I would advocate adopting Amazon's Tags
 terminology but I won't be pushing this too hard since I'm new here ;)

rant

I've been saying this for years now. Metadata is absolutely used
incorrectly in the Compute and Images APIs. Metadata is data *about*
data. For example, the length of a string is metadata. The contents of
the string is the data. The length is data about that data.

/rant

Tags are a more appropriate term for strings attached to a resource. I
still don't particularly understand the incessant need for key/value
pairs, frankly. There's nothing that searching an architecture key for
the value x86_64 gets you over searching a tags collection for
x86_64 other than perhaps easier aggregation and grouping on a key.
But for this kind of stuff, I just don't see the point of the
more-complicated key/value pairs over a collection of string tags.

Best,
-jay

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Anyone using instance metadata?

2012-07-04 Thread Mitchell Broome
We are using metadata tags to maintain assorted information about
instances that doesn't have to be provided to the instance it's self.
Things like letting users assign notes to their instances which
shouldn't be exposed as userdata (which we use to configure the
machines).  It would be really nice to have metadata exposed via the
ec2 compatibility api with create_tags() and the like as right now, I
have to create an exception to set tags on instances differently when
they are created in openstack vs amazon.

On Tue, Jul 3, 2012 at 6:10 PM, Steve Baker st...@stevebaker.org wrote:
 Hi Vish

 On Wed, Jul 4, 2012 at 6:28 AM, Vishvananda Ishaya
 vishvana...@gmail.com wrote:
 Metadata is supposed to be user tags that are associated with a guest
 that are available via the api. We discussed displaying these tags inside
 the guest as well.

 I've just been looking into what is already in place to implement the
 CreateTags, DeleteTags, DescribeTags API and I also came across the
 *_instance_metadata compute API.

 http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/Using_Tags.html#Using_Tags_API

 The tags API can add tags to a number of resource types, but currently
 there only seems to be a metadata tables for instances and volumes.

 Would there be interest in me working on a change to implement
 CreateTags, DeleteTags, DescribeTags for instances and volumes?

 Later changes could add new metadata tables for the other taggable
 resource types.

 cheers

 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Anyone using instance metadata?

2012-07-04 Thread Steve Baker
On Thu, Jul 5, 2012 at 1:11 AM, Day, Phil philip@hp.com wrote:
 I'm getting lost in the naming of things here,  it seems like we're saying:
  user-data is per instance data defined by the system and make accessible by 
 the metadata service
 and
 meta-data is per instance data defined by the user via the API and injected 
 into the instance or made available by the config drive
 Something in those definitions of meta-data and user-data just seems 
 confusing to me ;-)

Actually its worse than that, instance metadata is currently the
label for two completely unrelated things in OpenStack, and knowing
which one is being referred to seems to depend entirely on the context
:)

user-data is a chunk of data that can be set when an instance is not
running and is accessible from within the instance when it is running.
It could be used to store configuration, a script, or anything the
tenant wants.

In Nova, instance meta-data is a collection of key/value pairs
associated to an instance. They can be read and written to at any time
during the instance lifetime, from inside and outside the instance
using the nova compute API (and eventually EC2 API, Horizon, etc). A
snapshot of the instance meta-data at instance startup is made
available by the config drive (but maybe it shouldn't?).  Amazon calls
this feature Tags; EC2 can associate tags to a number of resource
types including instances.
http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/Using_Tags.html#Using_Tags_API

Here is where it gets confusing, the Metadata service gives a running
instance a convenient way of fetching the user-data, plus other meta
data about the current running instance.  People often also refer to
this as instance meta-data, but you cannot query the instance
associated key/value pairs via the metadata service.
http://docs.openstack.org/essex/openstack-compute/admin/content/metadata-service.html

To fix this semantic clash I would advocate adopting Amazon's Tags
terminology but I won't be pushing this too hard since I'm new here ;)

cheers

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


[Openstack] Anyone using instance metadata?

2012-07-03 Thread Scott Moser
Hi,
I'm looking at nova, and the compute API has 3 methods:
   delete_instance_metadata
   update_instance_metadata
   get_instance_metadata

I know that
 * python nova client has
   * the ability to specify --meta=KEY=VALUE on instance creation
   * a top level subcommand 'meta' which allows set and delete of
 metadata keys (but no support for querying current value).
 * content specified on instance creation is injected into the
   instance's root filesystem at '/meta.js'.  Or, if config_drive
   is given the config drive will have /meta.js

What I'm missing is:
 * There is an 'update' for this content, implying that it is at least
   partially dynamic in intent, but the filesystem data passing mechanism
   is clearly *not* dynamic.
 * This data is not made available in the metadata server
   (http://169.254.169.254) where it *could* be dynamic.

So, I'm confused on the intent of this metadata.  I can't decide if it is
really just supposed to be tags or more of a user-data replacement.

In EC2, you can store arbitrary key/value pairs on an instance-id,
ami-id, or anything else, but those values are not readable without
credentials.  Here, they're readable inside the instance from the
filesystem.

Anyone able to comment on the original intent of 'metadata'?
It seems to me that if we expose this in the metadata server, then it will
be a very useful feature, but one that overlaps confusingly with
user-data.

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Anyone using instance metadata?

2012-07-03 Thread Vishvananda Ishaya
Metadata is supposed to be user tags that are associated with a guest
that are available via the api. We discussed displaying these tags inside
the guest as well.

The main difference between user-data and metadata is that metadata is
available to the api, whereas user-data is only available in the guest.

Vish

On Jul 3, 2012, at 10:05 AM, Scott Moser wrote:

 Hi,
 I'm looking at nova, and the compute API has 3 methods:
   delete_instance_metadata
   update_instance_metadata
   get_instance_metadata
 
 I know that
 * python nova client has
   * the ability to specify --meta=KEY=VALUE on instance creation
   * a top level subcommand 'meta' which allows set and delete of
 metadata keys (but no support for querying current value).
 * content specified on instance creation is injected into the
   instance's root filesystem at '/meta.js'.  Or, if config_drive
   is given the config drive will have /meta.js
 
 What I'm missing is:
 * There is an 'update' for this content, implying that it is at least
   partially dynamic in intent, but the filesystem data passing mechanism
   is clearly *not* dynamic.
 * This data is not made available in the metadata server
   (http://169.254.169.254) where it *could* be dynamic.
 
 So, I'm confused on the intent of this metadata.  I can't decide if it is
 really just supposed to be tags or more of a user-data replacement.
 
 In EC2, you can store arbitrary key/value pairs on an instance-id,
 ami-id, or anything else, but those values are not readable without
 credentials.  Here, they're readable inside the instance from the
 filesystem.
 
 Anyone able to comment on the original intent of 'metadata'?
 It seems to me that if we expose this in the metadata server, then it will
 be a very useful feature, but one that overlaps confusingly with
 user-data.
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp


___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Anyone using instance metadata?

2012-07-03 Thread Scott Moser
On Tue, 3 Jul 2012, Vishvananda Ishaya wrote:

 Metadata is supposed to be user tags that are associated with a guest
 that are available via the api. We discussed displaying these tags inside
 the guest as well.

Am I reading it wrong? It seems like it *is* available inside the guest.
At very least with config drive on i know it is.

 The main difference between user-data and metadata is that metadata is
 available to the api, whereas user-data is only available in the guest.

So to avoid confusion, if the intent was tags, I think we should disable
the 'meta.js' file injection, and get over the screams now.

half and half is just confusing.

Thoughts?

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Anyone using instance metadata?

2012-07-03 Thread Scott Moser
On Tue, 3 Jul 2012, Vishvananda Ishaya wrote:


 The config drive was a later addition because we thought it might be useful.
 The plan was to add it to the metadata server once we had a /openstack 
 available.
 
  The main difference between user-data and metadata is that metadata is
  available to the api, whereas user-data is only available in the guest.
 
  So to avoid confusion, if the intent was tags, I think we should disable
  the 'meta.js' file injection, and get over the screams now.
 
  half and half is just confusing.
 
  Thoughts?

 Seems much more useful in metadata server than in config drive, but we should
 probably keep the same semantics we have been discussing

 i.e. the same values are in both places. Config drive is information as it 
 was during
 launch and metadata is current information.

That does make sense.  The only thing that is confusing is its similarity to
user-data.

putting it in the MD then leads us to the other thread/request
([Openstack] Setting VM passwords when not running on Xen) of having
it be writable from the instance.



___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Anyone using instance metadata?

2012-07-03 Thread Joshua Harlow
+1 for getting over screams earlier rather than later

On 7/3/12 11:51 AM, Scott Moser smo...@ubuntu.com wrote:

On Tue, 3 Jul 2012, Vishvananda Ishaya wrote:

 Metadata is supposed to be user tags that are associated with a guest
 that are available via the api. We discussed displaying these tags inside
 the guest as well.

Am I reading it wrong? It seems like it *is* available inside the guest.
At very least with config drive on i know it is.

 The main difference between user-data and metadata is that metadata is
 available to the api, whereas user-data is only available in the guest.

So to avoid confusion, if the intent was tags, I think we should disable
the 'meta.js' file injection, and get over the screams now.

half and half is just confusing.

Thoughts?

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Anyone using instance metadata?

2012-07-03 Thread Steve Baker
Hi Vish

On Wed, Jul 4, 2012 at 6:28 AM, Vishvananda Ishaya
vishvana...@gmail.com wrote:
 Metadata is supposed to be user tags that are associated with a guest
 that are available via the api. We discussed displaying these tags inside
 the guest as well.

I've just been looking into what is already in place to implement the
CreateTags, DeleteTags, DescribeTags API and I also came across the
*_instance_metadata compute API.

http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/Using_Tags.html#Using_Tags_API

The tags API can add tags to a number of resource types, but currently
there only seems to be a metadata tables for instances and volumes.

Would there be interest in me working on a change to implement
CreateTags, DeleteTags, DescribeTags for instances and volumes?

Later changes could add new metadata tables for the other taggable
resource types.

cheers

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Anyone using instance metadata?

2012-07-03 Thread Matt Joyce
It might be nice to set it up so that openstack admins can add metadata
values to the metadata server for installation wide use.

-Matt

On Tue, Jul 3, 2012 at 3:10 PM, Steve Baker st...@stevebaker.org wrote:

 Hi Vish

 On Wed, Jul 4, 2012 at 6:28 AM, Vishvananda Ishaya
 vishvana...@gmail.com wrote:
  Metadata is supposed to be user tags that are associated with a guest
  that are available via the api. We discussed displaying these tags inside
  the guest as well.

 I've just been looking into what is already in place to implement the
 CreateTags, DeleteTags, DescribeTags API and I also came across the
 *_instance_metadata compute API.


 http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/Using_Tags.html#Using_Tags_API

 The tags API can add tags to a number of resource types, but currently
 there only seems to be a metadata tables for instances and volumes.

 Would there be interest in me working on a change to implement
 CreateTags, DeleteTags, DescribeTags for instances and volumes?

 Later changes could add new metadata tables for the other taggable
 resource types.

 cheers

 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp