[openstack-dev] [TripleO] Spinning up multinode environments using Heat

James Slagle james.slagle at gmail.com
Mon Feb 27 21:33:43 UTC 2017

I wanted to share some work I've done around setting up multinode environments
and reproducing tripleo-ci jobs on those environments on OpenStack using Heat:


traas is a set of Heat templates and wrapper scripts arond toci_gate_test.sh
mostly. You can think of traas as taking on the role that is done by nodepool
and devstack-gate in CI, but using Heat instead. I'm not *proposing* replacing
either of those tools in our actual CI jobs. traas could just be used when you
have access to an OpenStack cloud with Heat that you want to use for
TripleO development.

The Heat templates are used to bring up a multinode environment, and then
trigger some SoftwareDeployment resources on the undercloud node to
execute a tripleo-ci job.

The main template is:


You can see the resources there for an undercloud node and set of overcloud
nodes, etc.

Once the nodes are up, the main script that is triggered is:


That is a simple wrapper around toci_gate_test.sh. The
$TOCI_JOBTYPE variable (passed in via a Heat parameter) is what drives which job
is executed. So far I've tested with multinode-nonha-oooq and multinode-nonha.
Since it just executes toci_gate_test.sh, what tool tripleo-ci uses for that
jobtype is what tool gets used to execute the job (tripleo-quickstart,
tripleo.sh, etc).

In either case, it executes the ci job end to end and then leaves the
environment up at the end for inspection and/or development.

I should mention that I started with (inspired by) the templates from


which we are already using in CI to bring up OVB environments. The work in
traas takes that a bit further by adding multinode support and actually
triggering the CI job execution. We can integrate the traas work back into
openstack-virtual-baremetal if folks are open to that route.

Long term, I think it would be cool if we had a scenario where someone could
log in to Horizon, go to the Heat interface and just click a button or 2 to
bring up a TripleO multinode environment (with different pre-canned templates
for different releases, configurations, etc). This ought to be achievable
because the cli to start the traas stack is simply:

openstack stack create traas -t traas/templates/traas.yaml \
    -e traas/templates/traas-resource-registry.yaml \
    -e traas/templates/env.yaml

Note that I have found several issues/wrinkles with running toci_gate_test.sh
locally on a clean CentOS environment which I've started addressing in this
branch: https://review.openstack.org/#/q/topic:traas

Any feedback is welcome.

-- James Slagle

More information about the OpenStack-dev mailing list