https://blueprints.launchpad.net/fuel/+spec/graph-based-upgrade
This spec aims to improve Octane by making use of Fuel’s graph execution engine to run upgrade-related commands and procedures.
Currently, Octane executes upgrade-related commands on cluster nodes via SSH. This is not the best way to handle upgrades, given the capability to execute custom graphs on both new and old environments. This will allow to enhance upgrade experience in following ways: - More consistent with Fuel way of logging of upgrade commands - Utilization of existing graph execution framework for upgrades - Puppet usage for upgrade tasks (where it is possible to do so)
For each upgrade action, there will be one optional CLI argument: –with-graph, which will enforce graph-based approach to said operation.
Graphs and puppet manifests will be stored in the same repository, in “deployment/” directory (similar to fuel-library).
There will be two types of graphs: “seed” and “orig” for new and old environments respectively.
Graphs will be uploaded during upgrade action execution.
Graphs will be uploaded to concrete environments (similar to fuel2 graph upload –env <id> execution)
None
None
None
None
Stick with current Octane implementation based on existing Python code.
All the changes will be introduced into fuel-octane repo. To make use of this feature, the user will have to run all upgrade actions with “–with-graph” flag.
Graph-based upgrades require that master node has additional directories configured for rsync remote access:
Note: due to the nature of upgrade process, the second directory may contain sensitive data. Contents of this directory are not to be cleaned automatically. It will be operator’s responsibility to remove files with sensitive information from this directory.
E.g. during upgrade-db step, OpenStack database’s contents will be dumped to a file on the original environment’s node, synced to /var/www/nailgun/octane_data on the master node and then synced to the seed environment’s node.
None
During upgrade process, user will have an option to execute upgrades with graphs.
None
None
None
None
Documentation will have to be adjusted to mention new “–with-graph” approach to upgrades.
Implement following commands with graph support:
None
Existing test cases will adopt graph-based CLI workflow.
It is possible to successfully execute the upgrade process using task graphs.
None