kolla multicloud command line tool

Registered by bjolo on 2016-10-24

Problem Description

Kolla consist of 3 components. a) build system b) openstack services configuration customization c) deployement and execution management system (kolla-ansible tool and some other standalone scripts).

Up til this point, the kolla-ansible tool is primariy dealing with cloud deployements. It does have a few commands for actual operations of a cloud like mariadb_recovery and recently there has emerged a few PS suggesting to add functionality to the operators "command" set. One can easily imagine that the number of feature requests and mgmt functionality will increase as kolla gets used by more and more operators.

Proposed Solution

Before an increasing number of disparate operations commands are added to kolla, it would probably be good to gather them all up under a unified command line tool. The proposal is to create a kolla cli that has full coverage of the different commands needed by operators. By setting the framework and commands it should support, it makes it easier for developers to implement the parts.

Much of this is inspired by Oracle and the kolla CLI they have developed.
http://docs.oracle.com/cd/E64747_01/E64749/html/osusg-kollacli-getting-help.html
http://docs.oracle.com/cd/E64747_01/E64749/html/osusg-kollacli-using.html

Example of command structure (not complete or accurate by any means)
Kolla cloud list | create | destroy
Kolla <cloud> node list | add | remove | setup
Kolla <cloud> group create | delete | addhost | delhost | list hosts
Kolla <cloud> database galeracheck | backup | restore | list-backups
Kolla <cloud> rabbitmq status | cluster status
Kolla <cloud> service <service name> list | start | stop | restart | status
Kolla <cloud> deploy <service> | <node-group> | <host>
Kolla <cloud> upgrade <service> | <node-group> | <host>
Kolla <cloud> destroy <service> | <node-group> | <host>
And more…

Multicloud support is also quite doable by using a docker container as execution space. On kolla master, one config dir per cloud
/etc/kolla/cloud-1/
  - Globals.yml
  - Inventory file
  - Config dir
  - Git source tree
/etc/kolla/cloud-2/
  - Globals.yml
  - Inventory file
  - Config dir
  - Git source tree

To execute a command in cloud-1
Docker run -it -v /etc/kolla/cloud-1: /etc/kolla -v /etc/kolla/cloud-1/gitsrc:/src --name cloud-1 alpine:latest pip install -r /src/requirements.txt
Docker run -it -v /etc/kolla/cloud-1: /etc/kolla -v /etc/kolla/cloud-1/gitsrc:/src cloud-1 /src/tools/kolla-ansible deploy

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
bjolo
Direction:
Needs approval
Assignee:
None
Definition:
Approved
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.