[kolla-ansible] Some proposals based on my work with kolla-ansible
HI! 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 community. 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 >> $KOLLA_ANSIBLE/etc/kolla/globals.yml cat $ADD_MODULE/etc/kolla/passwords.yml >> $KOLLA_ANSIBLE/etc/kolla/passwords.yml cat $ADD_MODULE/ansible/group_vars/all.yml >> $KOLLA_ANSIBLE/ansible/group_vars/all.yml cat $ADD_MODULE/ansible/inventory/all-in-one >> $KOLLA_ANSIBLE/ansible/inventory/all-in-one cat $ADD_MODULE/ansible/inventory/multinode >> $KOLLA_ANSIBLE/ansible/inventory/multinode cat $ADD_MODULE/ansible/destroy.yml >> $KOLLA_ANSIBLE/ansible/destroy.yml cat $ADD_MODULE/ansible/kolla-host.yml >> $KOLLA_ANSIBLE/ansible/kolla-host.yml cat $ADD_MODULE/ansible/post-deploy.yml >> $KOLLA_ANSIBLE/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: https://gitlab.com/kemopq/addmodules-kolla-ansible/-/tree/master/ansible <http://gitlab.com/kemopq/addmodules-kolla-ansible/-/tree/master/ansible> 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. Klemen
participants (1)
-
Klemen Pogacnik