[openstack-dev] [TripleO][Heat] Overcloud software updates and ResourceGroups

Zane Bitter zbitter at redhat.com
Mon Apr 6 22:09:47 UTC 2015

On 03/04/15 01:29, Giulio Fidente wrote:
> hi there,
> thanks for sharing this, I have a
> On 04/03/2015 12:31 AM, Zane Bitter wrote:
>> A few of us have been looking for a way to perform software updates to
>> servers in a TripleO Heat/Puppet-based overcloud
> [...]
>> Here's a trivial example of what this deployment might look like:
>>    update_config:
>>      type: OS::Heat::SoftwareConfig
>>      properties:
>>        config: {get_file: do_sw_update.sh}
>>        inputs:
>>          - name: update_after_time
>>            description: Timestamp of the most recent update request
>>    update_deployment:
>>      type: OS::Heat::SoftwareDeployment
>>      properties:
>>        actions:
>>          - UPDATE
>>        config: {get_resource: update_config}
>>        server: {get_resource: my_server}
>>        input_values:
>>          update_after_time: {get_param: update_timestamp}
> [...]
>>    heat stack-update my_overcloud -f $TMPL -P "update_timestamp=$(date)"
> leaving the ResourceGroup/AutoScalingGroup to more knowledgeable people
> on a side and trying instead to translate the templating approach into
> user features, if I read it correctly this would also make it possible to:
> 1. perform a config update without a software update as long as the
> update_timestamp param remains unchanged
> 2. perform software updates of each ResourceGroup independently from the
> others by using as many update_timestamp params
> 3. use different update.sh scripts per ResourceGroup
> are the above correct?

Yes, right on for all 3.

> My single minor concern is about the update script itself which, if not
> left for editing to the user but bundled instead with t-h-t , should be
> clever enough to cope with different distros and distro versions because
> we can't know that from the template ... but this can be achieved by
> abstracting it on top of Puppet itself it seems (or whichever other
> config management tool is deployed)

I picture it as a distro-specific thing that we might configure in the 
Heat environment (maybe using get_file as in the example above). 
Alternatively, I guess we could try to write a multi-platform script, 
but I'm not sure _any_ of the distros would actually thank us ;)

- ZB

More information about the OpenStack-dev mailing list