Add high availability support to the deployment architecture
At the moment the configuration files are read via file://. If the filesystem dies, the entire deployment configuration is lost (unless backed up). There is still an unavailability window where deployment updates couldn't be done in this condition.
What would make more sense is 2 or 3 nodes which replicate the /etc/kolla directory contents to a backend that was a multi-node data store. Since Ansible gets all state of the current system during the runtime, it doesn't need any more storage then a) whether a deployment operation is in progress and b) the configuration of the deployment.
I propose modifying the merge file script to read from configurable data stores. We would also add an Ansible script which read the contents of /etc/kolla and loaded it into a configurable data store. Finally there would be a "deployment_active" flag which would prevent new deployments unless the operator manually killed the flag (because they were aware of a lights out situation during a deploy which would result in the deployment_active flag not being removed from the data store.
I'd like the loading versioned, so for example there is a:
/0/etc/kolla representing the first load of the configuration
/1/etc/kolla representing the second load of the configuration
etc...
Blueprint information
- Status:
- Complete
- Approver:
- None
- Priority:
- Undefined
- Drafter:
- Steven Dake
- Direction:
- Needs approval
- Assignee:
- None
- Definition:
- Obsolete
- Series goal:
- None
- Implementation:
- Not started
- Milestone target:
- None
- Started by
- Completed by
- Mark Goddard
Related branches
Related bugs
Sprints
Whiteboard
Agree on versioning /0/etc/kolla ... - vbel
To me, this is outside the scope of Kolla. A document explaining how some of this can be done is a great idea, but i'm not sure I agree with expanding Kolla like this. As discussed when you first purposed this sdake, it is not possible to do this the way you describe in your blueprint. Additionally, this does feel like the appropriate time to add a spec rather than a blueprint, though I know how much you dislike those. --SamYaple
Work Items
Dependency tree
* Blueprints in grey have been implemented.