<div dir="ltr"><div>Hi everyone,</div><div><br></div><div>During the recent PTG in Dublin, it was decided that we'd prototype a way forward with Ansible tasks in TripleO that adhere to Ansible best practises, creating dedicated roles with unique git repositories and RPM packaging per role.</div><div><br></div><div>With a view to moving in this direction, a couple of us on the TripleO team have begun developing tooling to facilitate this.  Initially we've worked on a tool [0] to extract Ansible tasks lists from tripleo-heat-templates and move them into new formally structured Ansible roles.</div><div><br></div><div>An example with the existing keystone docker service [1]:</div><div><br></div><div>The <font face="monospace, monospace">upgrade_tasks</font> block will become:</div><div><br></div><div><font face="monospace, monospace">```</font></div><div><font face="monospace, monospace">upgrade_tasks:</font></div><div><font face="monospace, monospace">  - import_role:</font></div><div><font face="monospace, monospace">      name: tripleo-role-keystone</font></div><div><font face="monospace, monospace">      tasks_from: upgrade.yaml</font></div><div><font face="monospace, monospace">```</font></div><div><br></div><div>The <font face="monospace, monospace">fast_forward_upgrade_tasks</font> block will become:</div><div><br></div><div><font face="monospace, monospace">```</font></div><div><font face="monospace, monospace">fast_forward_upgrade_tasks:</font></div><div><font face="monospace, monospace">  - import_role:</font></div><div><font face="monospace, monospace">      name: tripleo-role-keystone</font></div><div><font face="monospace, monospace">      tasks_from: fast_forward_upgrade.yaml</font></div><div><font face="monospace, monospace">```</font></div><div><br></div><div>And this role [2] will be structured:</div><div><br></div><div><font face="monospace, monospace">```</font></div><div><div><font face="monospace, monospace">tripleo-role-keystone/</font></div><div><font face="monospace, monospace">└── tasks</font></div><div><font face="monospace, monospace">    ├── fast_forward_upgrade.yaml</font></div><div><font face="monospace, monospace">    ├── main.yaml</font></div><div><font face="monospace, monospace">    └── upgrade.yaml</font></div></div><div><font face="monospace, monospace">```</font></div><div><br></div><div>We'd love to hear any feedback from the community as we move towards this.</div><div><br></div><div>Thank you,</div><div>David Peacock</div><div><br></div><div>[0] <a href="https://github.com/davidjpeacock/openstack-role-extract/blob/master/role-extractor-creator.py">https://github.com/davidjpeacock/openstack-role-extract/blob/master/role-extractor-creator.py</a></div><div>[1] <a href="https://github.com/openstack/tripleo-heat-templates/blob/master/docker/services/keystone.yaml">https://github.com/openstack/tripleo-heat-templates/blob/master/docker/services/keystone.yaml</a></div><div>[2] <a href="https://github.com/davidjpeacock/tripleo-role-keystone">https://github.com/davidjpeacock/tripleo-role-keystone</a></div></div>