Jump to: navigation, search

Talk:Heat/Providers

< Talk:Heat
Revision as of 09:13, 23 May 2013 by Asalkeld (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

asalkeld

I don't think we should limit the providers to nested templates to me is should be any resource
as some might be provided even by us (native openstack/hp/rack) but user providers could be only nested stacks
the other issue we are going to come up against is what format to go with
I'd suggest not supporting multiple AWS style resources
only native openstack style resources
else we are encouraging the wrong thing
the other thing is we probably want provider to be of the form "cloud::resource_type"
so a user can just say I want to use all "Dreamhost" resources
and not have to specify all resource types they want over the defaults

shardy

asalkeld: So yes, any resource, but expressed as a template right?
I just chose the RDS one as an example
I don't really see why we should mandate a particular template language, considering we'll have to support more than one internally anyway
but I guess maybe it makes sense to start with one (ie what we have)

asalkeld

so I think we also support multiple internal instances
we an issue is the properties
and the naming

shardy

asalkeld: so allow multiple resource plugins for the same type?

asalkeld

yea, that's the whole point
user provided ones are nested stacks

shardy

asalkeld: I mean multiple python plugins, not just via the providers API

asalkeld

yea python plugins too

shardy

how do we tell which one is the default for the python plugins?

asalkeld

I think default to upstream openstack 

shardy

asalkeld: ah, well we already support that right, it's not multiple resource of the exact same type, because the namespaces are different

shardy

to me that is a separate thing from the providers API

asalkeld

 well there are 2 things:
1 what I implement
2 what my provider name is
I implement OS::bla and my provider name is "RACKSPACE::bla"

shardy

which is about overriding the default cloud-provider resource
It could just be the namespace is the user (or tenant) ID
and we provide an intrinsic to get that data, so you have providers-API created stuff being
{"Fn::OS::User"}::Nova::Instance or something

asalkeld

I am also having misgivings with "OS::<project>::<resource>" , I think this should probably be "OS::<endpoint>::<resource>"
so OS::volume... I think that makes it easer to have different providers
so you could have cinder/nova providers for volume
(just thinking aloud)

shardy

kk, sounds reasonable Yeah, I guess exposing the codename of the project providing the resource is not really that useful
unless, as you say, there is more than one, then you need to distinguish which one you want (possibly)
or you manage that outside the template via priorities/defaults
e.g bit like the examle I put in the wiki of imaginary cli workflow example

asalkeld

yea but you don't want "OS::cinder" in the template and find you are getting something else
doesn't really make sense