Permit a reconfiguration of the services

Registered by Steven Dake

We want a new action called reconfig. The new action should reconfigure the containers on all nodes if the configuration has changed on the deployment host node contained in /etc/kolla.

If the CONFIG_STRATEGY is COPY_ONCE, the containers require a removal and recreate if the master configuration has changed.
If the CONFIG_STRATEGY is COPY_ALWAYS, the containers require a kill/start if the config is changed.

kolla-ansible should take a reconfig action and do the right thing with it.

It would be helpful if no action was taken on the existing containers if the configuration hasn't changed but not a mandatory requirement for mitaka-3.

Testing instructions:
https://etherpad.openstack.org/p/kolla-mitaka-testing-reconfigure

Blueprint information

Status:
Complete
Approver:
Steven Dake
Priority:
Essential
Drafter:
Steven Dake
Direction:
Approved
Assignee:
Jeffrey Zhang
Definition:
Approved
Series goal:
Accepted for mitaka
Implementation:
Implemented
Milestone target:
milestone icon mitaka-3
Started by
Steven Dake
Completed by
Jeffrey Zhang

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/kolla-reconfig,n,z

Addressed by: https://review.openstack.org/281380
    [WIP] Reconfigure keystone service

Addressed by: https://review.openstack.org/283551
    Add the default empty reconfig.yml file to all roles

Addressed by: https://review.openstack.org/284507
    Import module rather than funciton in the set_configs.py file

Addressed by: https://review.openstack.org/285873
    Reconfigure glance service

Addressed by: https://review.openstack.org/285877
    Run the keystone reconfigure only on keystone group host

Addressed by: https://review.openstack.org/285875
    Revert "Modify a hard-code keystone username in neutron and heat."

Addressed by: https://review.openstack.org/285755
    Use kolla_internal_vip_address for kolla_internal_fqdn

Addressed by: https://review.openstack.org/285625
    Use keystone-manage bootstrap to init database

Addressed by: https://review.openstack.org/286050
    Reconfigure cinder service

Addressed by: https://review.openstack.org/286570
    Add kolla_docker action for reconfigure

Addressed by: https://review.openstack.org/287490
    Reconfigure for Heat

Addressed by: https://review.openstack.org/287489
    Reconfigure for Magnum

Addressed by: https://review.openstack.org/287550
    Add reconfigure for manila

Addressed by: https://review.openstack.org/287651
    Reconfigure neutron service

Addressed by: https://review.openstack.org/287740
    Add reconfigure for heka

Addressed by: https://review.openstack.org/287760
    Reconfigure Ironic

Addressed by: https://review.openstack.org/288059
    Reconfigure for Swift

Addressed by: https://review.openstack.org/288146
    Reconfigure nova service

Addressed by: https://review.openstack.org/288196
    Reconfigure for Memcached

Addressed by: https://review.openstack.org/288239
    WIP: Reconfigure for Murano

Addressed by: https://review.openstack.org/288245
    WIP:Reconfigure for ceph

Addressed by: https://review.openstack.org/288248
    WIP: Reconfigure for haproxy

Addressed by: https://review.openstack.org/288252
    Reconfigure ceph service

Addressed by: https://review.openstack.org/288281
    Reconfigure mistral service

Addressed by: https://review.openstack.org/288824
    Partially-Implements: blueprint kolla-reconfig

(?)

Work Items

Work items:
(jeffrey4l): base: DONE
(unassigned) ceilometer: POSTPONED
(vhosakot) ceph: DONE
(jeffrey4l) cinder: DONE
(unassigned) designate: POSTPONED
(unassigned) dind: POSTPONED
(jeffrey4l) glance: DONE
(unassigned) gnocchi: POSTPONED
(mdnadeem) haproxy: INPROGRESS
(elemoine) heka: DONE
(sdake) heat: DONE
(vhosakot) horizon: TODO
(rhallisey) ironic: DONE
(unassigned) keepalived: TODO
(jeffrey4l) keystone: DONE
(sbezverk) magnum: DONE
(unassigned) mariadb: TODO
(nkorabli) memcached: DONE
(unassigned) mongodb: TODO
(mdnadeem) murano: DONE
(mdnadeem) mistral: DONE
(vhosakot) neutron: DONE
(vhosakot) nova: DONE
(mdnadeem) rabbitmq: TODO
(sbezverk) swift: DONE
(unassigned) zaqar: POSTPONED
(unassigned) manilla: TODO

This blueprint contains Public information 
Everyone can see this information.