diff --git a/deployment/puppet/octane_tasks/graphs/orig/switch-control-1.yaml b/deployment/puppet/octane_tasks/graphs/orig/switch-control-1.yaml index a46788f2..ab72e3e0 100644 --- a/deployment/puppet/octane_tasks/graphs/orig/switch-control-1.yaml +++ b/deployment/puppet/octane_tasks/graphs/orig/switch-control-1.yaml @@ -10,6 +10,18 @@ fault_tolerance: 0 # TASKS +- id: add_hiera_override + type: upload_file + version: 2.1.0 + groups: [primary-controller, controller] + requires: [] + required_for: [] + parameters: + path: /etc/hiera/override/common.yaml + data: + yaql_exp: > + ({"upgrade" => $.upgrade}.toYaml()) + - id: rsync_octane type: sync version: 2.1.0 @@ -25,7 +37,7 @@ type: puppet version: 2.1.0 groups: [primary-controller, controller] - requires: [rsync_octane] + requires: [add_hiera_override, rsync_octane] required_for: [] parameters: puppet_manifest: /etc/fuel/octane/puppet/octane_tasks/modular/kill_cluster.pp diff --git a/deployment/puppet/octane_tasks/graphs/orig/switch-control-2.yaml b/deployment/puppet/octane_tasks/graphs/orig/switch-control-2.yaml index ef8bac7f..d6b5216f 100644 --- a/deployment/puppet/octane_tasks/graphs/orig/switch-control-2.yaml +++ b/deployment/puppet/octane_tasks/graphs/orig/switch-control-2.yaml @@ -32,3 +32,13 @@ puppet_modules: /etc/fuel/octane/puppet:/etc/puppet/modules timeout: 360 + +- id: remove_hiera_override + type: shell + version: 2.1.0 + groups: [primary-controller, controller] + requires: [stop_init_services] + required_for: [] + parameters: + cmd: rm /etc/hiera/override/common.yaml || true + timeout: 60 diff --git a/deployment/puppet/octane_tasks/graphs/seed/switch-control-1.yaml b/deployment/puppet/octane_tasks/graphs/seed/switch-control-1.yaml index 8c841ff8..bb741e2b 100644 --- a/deployment/puppet/octane_tasks/graphs/seed/switch-control-1.yaml +++ b/deployment/puppet/octane_tasks/graphs/seed/switch-control-1.yaml @@ -5,6 +5,18 @@ fault_tolerance: 0 # TASKS +- id: add_hiera_override + type: upload_file + version: 2.1.0 + groups: [primary-controller] + requires: [] + required_for: [] + parameters: + path: /etc/hiera/override/common.yaml + data: + yaql_exp: > + ({"upgrade" => $.upgrade}.toYaml()) + - id: rsync_octane type: sync version: 2.1.0 @@ -20,7 +32,7 @@ type: puppet version: 2.1.0 groups: [primary-controller] - requires: [rsync_octane] + requires: [add_hiera_override, rsync_octane] required_for: [] parameters: puppet_manifest: /etc/fuel/octane/puppet/octane_tasks/modular/start_controller_services.pp diff --git a/deployment/puppet/octane_tasks/graphs/seed/switch-control-2.yaml b/deployment/puppet/octane_tasks/graphs/seed/switch-control-2.yaml index fdfd257d..0d43fcf5 100644 --- a/deployment/puppet/octane_tasks/graphs/seed/switch-control-2.yaml +++ b/deployment/puppet/octane_tasks/graphs/seed/switch-control-2.yaml @@ -28,3 +28,13 @@ timeout: 180 data: yaql_exp: '$.toYaml()' + +- id: remove_hiera_override + type: shell + version: 2.1.0 + groups: [primary-controller] + requires: [upload_configuration] + required_for: [] + parameters: + cmd: rm /etc/hiera/override/common.yaml || true + timeout: 60 diff --git a/octane/commands/upgrade_controlplane.py b/octane/commands/upgrade_controlplane.py index e17d92b5..d3bca738 100644 --- a/octane/commands/upgrade_controlplane.py +++ b/octane/commands/upgrade_controlplane.py @@ -57,11 +57,33 @@ def upgrade_control_plane(orig_id, seed_id): seed_env.delete_facts("deployment") +def add_upgrade_attrs_to_settings(orig_env, seed_env): + upgrade_hash = { + 'relation_info': { + 'orig_cluster_version': orig_env.data['fuel_version'], + 'seed_cluster_version': seed_env.data['fuel_version'] + } + } + + orig_attrs = orig_env.get_settings_data() + orig_upgrade = orig_attrs['editable']['common'].get('upgrade', {}) + orig_upgrade.update(upgrade_hash) + orig_attrs['editable']['common']['upgrade'] = orig_upgrade + orig_env.set_settings_data(orig_attrs) + + seed_attrs = seed_env.get_settings_data() + seed_upgrade = seed_attrs['editable']['common'].get('upgrade', {}) + seed_upgrade.update(upgrade_hash) + seed_attrs['editable']['common']['upgrade'] = seed_upgrade + seed_env.set_settings_data(seed_attrs) + + def upgrade_control_plane_with_graph(orig_id, seed_id): """Switch controlplane using deployment graphs""" orig_env = environment_obj.Environment(orig_id) seed_env = environment_obj.Environment(seed_id) + add_upgrade_attrs_to_settings(orig_env, seed_env) deploy.upload_graphs(orig_id, seed_id)