[openstack-dev] [Heat] A concrete proposal for Heat Providers
Clint Byrum
clint at fewbar.com
Mon May 6 20:55:10 UTC 2013
On 2013-05-06 07:38, Zane Bitter wrote:
> On 02/05/13 19:39, Tripp, Travis S wrote:
>> I agree with Clint. This essentially boils down to being able to
>> describe my application(s) and how to deploy them separately from the
>> resources where I want to deploy them. Then based on the target
>> environment, I have a way to deploy my app to different resources
>> without having to modify / copy paste my app model everywhere. In
>> TOSCA terms, this is what the "relationship" concept provides. For
>> example, I can design my application in one template and
>> infrastructure(s) in another template. Then I essentially can have
>> different deployments where I use the relationship to establish a
>> source and a target for these relationship (App part A is associated
>> to Infra part X). I just spoke with Thomas Spatzier and I think he is
>> going to provide a simplified JSON or YAML representation of this
>> concept.
>
> This use case makes complete sense to me.
>
> Here's the part I'm struggling with:
>
>> For example, I can design my application in one template and
>> infrastructure(s) in another template.
>
> So... this exists, right?
>
> We call the first part "configuration management" (Puppet, Chef) and
> the second part "cloud orchestration" (Heat, CloudFormation).
>
As Thomas said, this is not really the case I'm talking about.
Notice here:
https://github.com/openstack-ops/templates/blob/master/heat.yaml
All the things to deploy the Heat engine on one machine, and the API's
all together in a scaling group.
https://github.com/openstack-ops/templates/blob/master/keystone.yaml
All the things to deploy Keystone on an instance group.
You'll notice a complete lack of configuration management there. We use
Metadata to drive os-config-applier and os-refresh-config, which are the
TripleO minimalistic "config management" equivalents.
What I'd like to do is run keystone and heat-api's on a single instance
group which encompass all of my stateless API services. To do that, I
have to duplicate *most* of the templates I've already written, only
with the metadata merged.
So, I submit that there need to be a way to specify an abstract
resource which has the Metadata/Parameters/Relationships needed to
deploy said resource, but does not have the machine placement details.
Those would then be included in the instance groups, something like:
IncludeMetadata:
- HeatAPIMetadata
- KeystoneMetadata
I believe what Thomas is saying is that TOSCA already has sophisticated
ways to express this concept.
More information about the OpenStack-dev
mailing list