From 464058d0d243bd572c02d5b07eaf46af3dec9a50 Mon Sep 17 00:00:00 2001 From: Marius Cornea Date: Thu, 30 Nov 2017 10:54:38 +0100 Subject: [PATCH] Add the option to remove packages during upgrade This change adds the option to remove the rpm packages for services which are migrated to containers during the upgrade as described in https://bugzilla.redhat.com/show_bug.cgi?id=1470041 Change-Id: Ia0570a44139c6ef3845ddff19e3d80e54603a59b --- defaults/main.yml | 3 +++ infrared_plugin/main.yml | 5 +++++ infrared_plugin/plugin.spec | 4 ++++ tasks/upgrade/create-upgrade-scripts.yaml | 7 +++++++ templates/remove-packages.yaml.j2 | 2 ++ 5 files changed, 21 insertions(+) create mode 100644 templates/remove-packages.yaml.j2 diff --git a/defaults/main.yml b/defaults/main.yml index 45830b08..969407be 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -115,3 +115,6 @@ controller_upgrade_post: false # Provide a custom ssh-config file need_ssh_config: true + +# Remove packages which get migrated to containers during upgrade +upgrade_remove_rpm: false diff --git a/infrared_plugin/main.yml b/infrared_plugin/main.yml index 374b569b..043c46cc 100644 --- a/infrared_plugin/main.yml +++ b/infrared_plugin/main.yml @@ -103,5 +103,10 @@ force_reboot: true when: install.upgrade.reboot.force + - name: Set upgrade remove packages + set_fact: + upgrade_remove_rpm: true + when: install.upgrade.remove.rpm + roles: - tripleo-upgrade diff --git a/infrared_plugin/plugin.spec b/infrared_plugin/plugin.spec index e34bcaf2..6aa20364 100644 --- a/infrared_plugin/plugin.spec +++ b/infrared_plugin/plugin.spec @@ -83,6 +83,10 @@ subparsers: type: Value help: The alternative docker registry to use for deployment. default: 'registry.example.local' + upgrade-remove-rpm: + type: Bool + help: Remove packages which get migrated to containers during upgrade + default: false - title: TripleO Update options: overcloud-update: diff --git a/tasks/upgrade/create-upgrade-scripts.yaml b/tasks/upgrade/create-upgrade-scripts.yaml index 839cfe35..0b606c19 100644 --- a/tasks/upgrade/create-upgrade-scripts.yaml +++ b/tasks/upgrade/create-upgrade-scripts.yaml @@ -140,6 +140,12 @@ register: deployment_with_ha ignore_errors: True +- name: create environment file to remove rpm packages + template: + src: "remove-packages.yaml.j2" + dest: "{{ working_dir }}/remove-packages.yaml" + when: upgrade_remove_rpm|bool + - name: create composable upgrade scripts include: step_upgrade.yml loop_control: @@ -154,6 +160,7 @@ - "{% if ceph_env is defined %}{{ working_dir }}/ceph-ansible-env.yaml{% endif %}" - "{% if not upstream_container_images or (upstream_container_images and use_local_docker_registry) %}{{ containers_default_parameters }}{% endif %}" - "{% if dpdk_env|succeeded %}{{working_dir}}/dpdk-upgrade-env.yaml{% endif %}" + - "{% if upgrade_remove_rpm|bool %}{{ working_dir }}/remove-packages.yaml{% endif %}" - step: "Docker containers converge upgrade" script: "{{ overcloud_converge_upgrade_script }}" environment_file: diff --git a/templates/remove-packages.yaml.j2 b/templates/remove-packages.yaml.j2 new file mode 100644 index 00000000..4db900ee --- /dev/null +++ b/templates/remove-packages.yaml.j2 @@ -0,0 +1,2 @@ +parameter_defaults: + UpgradeRemoveUnusedPackages: true