Hello,
I'm sending out a Dynflow orchestration draft for proof-of-concept to
start a discussion.
With regards to having it asap I would use:
1. [Dynflow][1] - workflow engine written originally for Katello.
2. [ForemanTasks][2] - Rails engine that adds Dynflow integration with
Foreman.
3. [Astapor manifests][3] - top level classes configuring OpenStack HA
hosts. There is [top-level puppet class][4] for each role.
4. [Puppetrun][5] - to manually trigger puppet run on Foreman host.
## Minimal POC
Minimal POC would be reusing Astapor manifests. There would be dynflow
added to avoid the manual steps between configuring OpenStack hosts
(Controllers then Computes, etc.).
It would start by triggering Dynflow action which would:
1. provision needed number of hosts in parallel.
2. configure all-in-on controller using Astapor class.
- adding the class to the host.
- triggering puppet run.
3. configure nova compute hosts using Astapor class. Same sub-steps.
4. configure additional hosts in right order with neutron, swift, cinder.
(I'll probably start with ยต-POC skipping 1. and 4.)
## Open questions
- Is there a simpler way how to trigger puppet run on a given host?
- From a quick look Astapor modules should work for us, needs to be
verified.
- What would you improve?
- Do you see any compilations?
[1]:
https://github.com/Dynflow/dynflow/
[2]:
https://github.com/inecas/foreman-tasks
[3]:
https://github.com/redhat-openstack/astapor/tree/master/puppet/modules/qu...
[4]:
https://github.com/redhat-openstack/astapor/blob/master/bin/seeds.rb#L323...
[5]:
http://projects.theforeman.org/projects/foreman/wiki/Puppetrun
I'll also send another email describing better solution to support
multiple layouts later this week.
Petr