[openstack-dev] [puppet] Support for atomic classes orchestration actions

Bogdan Dobrelya bdobrelia at mirantis.com
Mon Aug 31 13:00:16 UTC 2015

I'd like to propose a change to the puppet openstack (PO) modules'
classes to support an 'atomic' runs, which is without parametrized
dependency classes, like init.pp, additionally compiled into the
catalog. Here is the usecase below.

The deployment graph produced by a composition layer is usually a
complex and requires consequent operations specific to nodes' roles. An
example for a Neutron deployment:
A) On a network node:
::neutron -> ( neutron plugins) -> ::neutron::server -> ( n-agents )
B) on a computes:
::neutron -> ::neutron::*(plugins) -> ( optional n-agents )

Atomicity concept assumes each separate step should include only
related single class call. Without dependency classes, like ::neutron or
::neutron::server, to be included into the catalog each time. This also
applies to dependency packages/services created from these classes, like
Package['neutron'] or Service['neutron-server'].

Ideally, each atomic orchestration action should only:
* provide a single puppet class parameters to be fed into the KVS, like
* include non-parametrized classes, like ::foo:params
* issue a single puppet class invocation.

Please review the blueprint [0] (related bug [1]), patches [2], [3].
The idea is to follow the same approach for the rest of the PO modules
to make them deployable on class level.

[0] https://blueprints.launchpad.net/puppet-neutron/+spec/atomic-
[1] https://bugs.launchpad.net/puppet-neutron/+bug/1489897
[2] https://review.openstack.org/218825
[3] https://review.openstack.org/218797
Best regards,
Bogdan Dobrelya,
Irc #bogdando

More information about the OpenStack-dev mailing list