[kolla-ansible] Some proposals based on my work with kolla-ansible

Klemen Pogacnik klemen at psi-net.si
Wed Jun 10 13:05:29 UTC 2020

I’ve worked with kolla-ansible for over the year, currently on rocky
version. I’ve done some work which can maybe be intersting to community.

1. Proposal - Adding additional functionality to kolla-ansible playbook
For functionalities which are not officially supported by kolla-ansible
group, but are done by any individual or a group and are interesting for a

Each additional functionality has its own GIT project. It consists of one
or more ansible roles. The structure of project  is very similar to the
kolla-ansible project.

addfunct-name / README.md
                         / etc / kolla / globals.yml
                                           / passwords.yml
                         / ansible / inventory / all-in-one
                                                         / multinode
                                        / group_vars / all.yml
                                        / roles / addmodule_role1 / …
                                                   / addmodule_role2 / …
                                        / destroy.yml
                                        / kolla-host.yml
                                        / post-deploy.yml
                                        / site.yml
                                        / stop.yml

Configuration parameters of functionality are put to globals.yml and
all.yml. Passwords are put to passwords.yml.
Inventory data are added to all-in-one and multinode files.
Roles variables, tasks, handlers, templates are added to ansible/roles.
Activation of roles are included to destroy.yml, kolla-host.yml,
post-deploy.yml, stop.yml and/or site.yml.
Not all steps are compulsory.

Merging additional module project to kolla-ansible is quite simple with
basic shell commands:
cat $ADD_MODULE/etc/kolla/globals.yml >>
cat $ADD_MODULE/etc/kolla/passwords.yml >>
cat $ADD_MODULE/ansible/group_vars/all.yml >>
cat $ADD_MODULE/ansible/inventory/all-in-one >>
cat $ADD_MODULE/ansible/inventory/multinode >>
cat $ADD_MODULE/ansible/destroy.yml >> $KOLLA_ANSIBLE/ansible/destroy.yml
cat $ADD_MODULE/ansible/kolla-host.yml >>
cat $ADD_MODULE/ansible/post-deploy.yml >>
cat $ADD_MODULE/ansible/site.yml >> $KOLLA_ANSIBLE/ansible/site.yml
cat $ADD_MODULE/ansible/stop.yml >> $KOLLA_ANSIBLE/ansible/stop.yml
cp -r $ADD_MODULE/ansible/roles/* >> $KOLLA_ANSIBLE/ansible/roles

That way additional roles are executed together with other kolla-ansible
roles on hosts which are specified in a common inventory. Tasks can use all
available kolla-ansible variables, tools, ansible modules.

2. Proposal – building kolla-ansible container image
kolla-ansible can be run in a container. Image is built together with other
kolla containers and is available on docker hub. That way it would be
easier for somebody to try kolla.
It is also possible to build images, which have some interesting additional
functionalities included.

3. Proposal – adding ceph as an additional functionality described in
previous proposals
Ansible roles are developed for external ceph deployment. Cephadm,
kolla-ceph or any other tool can be used in role’s plays. Has somebody have
a suggestion, what to use?
A special kolla-ansible container image is built with included ceph roles.
Merging is specified in Dockerfile.

I’ve already included three additional functionalities:
- docker_settings (docker_bip network is configurable)
- resource_reservation (resources – cpu cores and memory can be limited for
openstack services)
- freeipa_client_install (freeipa client installation – done by my
colleague, not finished yet)
They are now all included in the same project and can be viewed on:

I’m building kolla-ansible container with those functioanlities included
and running kolla-ansible playbook in container. I’m planing to do external
Ceph deployment that way in next weeks.

I’m open to suggestions how this concept can be improved.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-discuss/attachments/20200610/65e2b47b/attachment-0001.html>

More information about the openstack-discuss mailing list