From 6d150b03cff457bf43e8c2b55ba03ace20d6c244 Mon Sep 17 00:00:00 2001 From: marios Date: Mon, 3 Jul 2017 19:20:30 +0300 Subject: Remove package if service stopped and disabled Adds a UpgradeRemoveUnusedPackages param to use in the ansible when conditional for the removal Adds package removal to step2 right after a service is stopped and disabled on step2. Package updates happen in step3 so ideally remove before that. The package removal task has ignore_errors true so dependencies or other issue removing packages will not fail the upgrade workflow. Also adds this to the upgrade environment files for visibility and defaulting false Change-Id: Ie4e4a2d41f7752c5a13507a7c15c6f68e203cfca Related-Bug: 1701501 (cherry picked from commit ce0ef2fa207698c1ae61c1620fe3c5e8d1c7bfca) --- docker/services/aodh-api.yaml | 9 +++++++++ docker/services/aodh-evaluator.yaml | 9 +++++++++ docker/services/aodh-listener.yaml | 9 +++++++++ docker/services/aodh-notifier.yaml | 9 +++++++++ docker/services/barbican-api.yaml | 9 +++++++++ docker/services/ceilometer-agent-central.yaml | 10 ++++++++++ docker/services/ceilometer-agent-compute.yaml | 14 ++++++++++++++ docker/services/ceilometer-agent-ipmi.yaml | 9 +++++++++ docker/services/ceilometer-agent-notification.yaml | 9 +++++++++ docker/services/cinder-api.yaml | 9 +++++++++ docker/services/cinder-backup.yaml | 10 +++++++++- docker/services/cinder-scheduler.yaml | 9 +++++++++ docker/services/cinder-volume.yaml | 9 +++++++++ docker/services/collectd.yaml | 10 +++++++++- docker/services/congress.yaml | 9 +++++++++ docker/services/glance-api.yaml | 9 +++++++++ docker/services/neutron-api.yaml | 9 +++++++++ docker/services/neutron-ovs-agent.yaml | 9 +++++++++ docker/services/nova-api.yaml | 9 +++++++++ docker/services/nova-compute.yaml | 9 +++++++++ docker/services/nova-conductor.yaml | 10 ++++++++++ docker/services/nova-consoleauth.yaml | 9 +++++++++ docker/services/nova-placement.yaml | 10 ++++++++++ docker/services/nova-scheduler.yaml | 9 +++++++++ docker/services/nova-vnc-proxy.yaml | 9 +++++++++ docker/services/octavia-health-manager.yaml | 9 +++++++++ docker/services/sahara-api.yaml | 9 +++++++++ docker/services/sahara-engine.yaml | 9 +++++++++ docker/services/swift-proxy.yaml | 9 +++++++++ docker/services/swift-storage.yaml | 14 +++++++++++++- environments/major-upgrade-composable-steps-docker.yaml | 1 + environments/major-upgrade-composable-steps.yaml | 1 + ...remove-unused-packages-on-upgrade-5a469428a6948148.yaml | 12 ++++++++++++ 33 files changed, 296 insertions(+), 3 deletions(-) create mode 100644 releasenotes/notes/add-option-remove-unused-packages-on-upgrade-5a469428a6948148.yaml diff --git a/docker/services/aodh-api.yaml b/docker/services/aodh-api.yaml index 18068c85..9445069b 100644 --- a/docker/services/aodh-api.yaml +++ b/docker/services/aodh-api.yaml @@ -39,6 +39,10 @@ parameters: EnableInternalTLS: type: boolean default: false + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean conditions: @@ -160,5 +164,10 @@ outputs: - name: Stop and disable aodh service (running under httpd) tags: step2 service: name=httpd state=stopped enabled=no + - name: Remove openstack-aodh-api package if operator requests it + yum: name=openstack-aodh-api state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} metadata_settings: get_attr: [AodhApiPuppetBase, role_data, metadata_settings] diff --git a/docker/services/aodh-evaluator.yaml b/docker/services/aodh-evaluator.yaml index 077ad46e..fda6faa2 100644 --- a/docker/services/aodh-evaluator.yaml +++ b/docker/services/aodh-evaluator.yaml @@ -36,6 +36,10 @@ parameters: default: {} description: Parameters specific to the role type: json + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean resources: @@ -114,3 +118,8 @@ outputs: - name: Stop and disable openstack-aodh-evaluator service tags: step2 service: name=openstack-aodh-evaluator.service state=stopped enabled=no + - name: Remove openstack-aodh-evaluator package if operator requests it + yum: name=openstack-aodh-evaluator state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} diff --git a/docker/services/aodh-listener.yaml b/docker/services/aodh-listener.yaml index 4471884b..fbe86d3b 100644 --- a/docker/services/aodh-listener.yaml +++ b/docker/services/aodh-listener.yaml @@ -36,6 +36,10 @@ parameters: default: {} description: Parameters specific to the role type: json + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean resources: @@ -114,3 +118,8 @@ outputs: - name: Stop and disable openstack-aodh-listener service tags: step2 service: name=openstack-aodh-listener.service state=stopped enabled=no + - name: Remove openstack-aodh-listener package if operator requests it + yum: name=openstack-aodh-listener state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} diff --git a/docker/services/aodh-notifier.yaml b/docker/services/aodh-notifier.yaml index ffed5afa..d9081d54 100644 --- a/docker/services/aodh-notifier.yaml +++ b/docker/services/aodh-notifier.yaml @@ -36,6 +36,10 @@ parameters: default: {} description: Parameters specific to the role type: json + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean resources: @@ -114,3 +118,8 @@ outputs: - name: Stop and disable openstack-aodh-notifier service tags: step2 service: name=openstack-aodh-notifier.service state=stopped enabled=no + - name: Remove openstack-aodh-notifier package if operator requests it + yum: name=openstack-aodh-notifier state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} diff --git a/docker/services/barbican-api.yaml b/docker/services/barbican-api.yaml index 1aa000b6..af528f79 100644 --- a/docker/services/barbican-api.yaml +++ b/docker/services/barbican-api.yaml @@ -39,6 +39,10 @@ parameters: EnableInternalTLS: type: boolean default: false + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean conditions: @@ -152,5 +156,10 @@ outputs: - name: Stop and disable barbican_api service tags: step2 service: name=openstack-barbican-api state=stopped enabled=no + - name: Remove openstack-barbican-api package if operator requests it + yum: name=openstack-barbican-api state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} metadata_settings: get_attr: [BarbicanApiBase, role_data, metadata_settings] diff --git a/docker/services/ceilometer-agent-central.yaml b/docker/services/ceilometer-agent-central.yaml index 7033e0b0..6342c82e 100644 --- a/docker/services/ceilometer-agent-central.yaml +++ b/docker/services/ceilometer-agent-central.yaml @@ -36,6 +36,11 @@ parameters: default: {} description: Parameters specific to the role type: json + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean + resources: ContainersCommon: @@ -126,3 +131,8 @@ outputs: - name: Stop and disable ceilometer agent central service tags: step2 service: name=openstack-ceilometer-central state=stopped enabled=no + - name: Remove openstack-ceilometer-central package if operator requests it + yum: name=openstack-ceilometer-central state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} diff --git a/docker/services/ceilometer-agent-compute.yaml b/docker/services/ceilometer-agent-compute.yaml index ccde928c..1ee9f492 100644 --- a/docker/services/ceilometer-agent-compute.yaml +++ b/docker/services/ceilometer-agent-compute.yaml @@ -36,6 +36,10 @@ parameters: default: {} description: Parameters specific to the role type: json + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean resources: @@ -118,3 +122,13 @@ outputs: tags: step2 service: name=openstack-ceilometer-polling state=stopped enabled=no when: openstack_ceilometer_polling_enabled.rc|default('') == 0 + - name: Remove openstack-ceilometer-compute package if operator requests it + yum: name=openstack-ceilometer-compute state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} + - name: Remove openstack-ceilometer-polling package if operator requests it + yum: name=openstack-ceilometer-polling state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} diff --git a/docker/services/ceilometer-agent-ipmi.yaml b/docker/services/ceilometer-agent-ipmi.yaml index a139f29f..9df93aaa 100644 --- a/docker/services/ceilometer-agent-ipmi.yaml +++ b/docker/services/ceilometer-agent-ipmi.yaml @@ -36,6 +36,10 @@ parameters: default: {} description: Parameters specific to the role type: json + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean resources: @@ -104,3 +108,8 @@ outputs: - name: Stop and disable ceilometer agent ipmi service tags: step2 service: name=openstack-ceilometer-agent-ipmi state=stopped enabled=no + - name: Remove openstack-ceilometer-ipmi package if operator requests it + yum: name=openstack-ceilometer-ipmi state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} diff --git a/docker/services/ceilometer-agent-notification.yaml b/docker/services/ceilometer-agent-notification.yaml index 6c495131..de1d2e72 100644 --- a/docker/services/ceilometer-agent-notification.yaml +++ b/docker/services/ceilometer-agent-notification.yaml @@ -36,6 +36,10 @@ parameters: default: {} description: Parameters specific to the role type: json + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean resources: @@ -119,3 +123,8 @@ outputs: - name: Stop and disable ceilometer agent notification service tags: step2 service: name=openstack-ceilometer-notification state=stopped enabled=no + - name: Remove openstack-ceilometer-notification package if operator requests it + yum: name=openstack-ceilometer-notification state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} diff --git a/docker/services/cinder-api.yaml b/docker/services/cinder-api.yaml index 93890d02..25390c63 100644 --- a/docker/services/cinder-api.yaml +++ b/docker/services/cinder-api.yaml @@ -39,6 +39,10 @@ parameters: EnableInternalTLS: type: boolean default: false + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean conditions: @@ -199,3 +203,8 @@ outputs: file: path: /var/spool/cron/cinder state: absent + - name: Remove httpd package if operator requests it + yum: name=httpd state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} diff --git a/docker/services/cinder-backup.yaml b/docker/services/cinder-backup.yaml index 53febdb5..66877b5f 100644 --- a/docker/services/cinder-backup.yaml +++ b/docker/services/cinder-backup.yaml @@ -36,7 +36,10 @@ parameters: default: {} description: Parameters specific to the role type: json - + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean resources: @@ -147,3 +150,8 @@ outputs: - name: Stop and disable cinder_backup service tags: step2 service: name=openstack-cinder-backup state=stopped enabled=no + - name: Remove openstack-cinder package if operator requests it + yum: name=openstack-cinder state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} diff --git a/docker/services/cinder-scheduler.yaml b/docker/services/cinder-scheduler.yaml index fa9d2418..1772f9e9 100644 --- a/docker/services/cinder-scheduler.yaml +++ b/docker/services/cinder-scheduler.yaml @@ -36,6 +36,10 @@ parameters: default: {} description: Parameters specific to the role type: json + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean resources: @@ -122,3 +126,8 @@ outputs: - name: Stop and disable cinder_scheduler service tags: step2 service: name=openstack-cinder-scheduler state=stopped enabled=no + - name: Remove openstack-cinder package if operator requests it + yum: name=openstack-cinder state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} diff --git a/docker/services/cinder-volume.yaml b/docker/services/cinder-volume.yaml index 88e7712f..d8a93b13 100644 --- a/docker/services/cinder-volume.yaml +++ b/docker/services/cinder-volume.yaml @@ -45,6 +45,10 @@ parameters: default: 10280 description: The size of the loopback file used by the cinder LVM driver. type: number + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean resources: @@ -187,3 +191,8 @@ outputs: - name: Stop and disable cinder_volume service tags: step2 service: name=openstack-cinder-volume state=stopped enabled=no + - name: Remove openstack-cinder package if operator requests it + yum: name=openstack-cinder state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} diff --git a/docker/services/collectd.yaml b/docker/services/collectd.yaml index ef7ddc52..2ab020c7 100644 --- a/docker/services/collectd.yaml +++ b/docker/services/collectd.yaml @@ -36,7 +36,10 @@ parameters: default: {} description: Parameters specific to the role type: json - + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean resources: @@ -113,3 +116,8 @@ outputs: - name: Stop and disable collectd service tags: step2 service: name=collectd.service state=stopped enabled=no + - name: Remove collectd package if operator requests it + yum: name=collectd state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} diff --git a/docker/services/congress.yaml b/docker/services/congress.yaml index ba899b81..eb287d54 100644 --- a/docker/services/congress.yaml +++ b/docker/services/congress.yaml @@ -36,6 +36,10 @@ parameters: default: {} description: Parameters specific to the role type: json + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean resources: @@ -141,3 +145,8 @@ outputs: - name: Stop and disable congress_api service tags: step2 service: name=openstack-congress-server state=stopped enabled=no + - name: Remove openstack-congress package if operator requests it + yum: name=openstack-congress state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} diff --git a/docker/services/glance-api.yaml b/docker/services/glance-api.yaml index f23ec357..e1a3827a 100644 --- a/docker/services/glance-api.yaml +++ b/docker/services/glance-api.yaml @@ -44,6 +44,10 @@ parameters: description: > When using GlanceBackend 'file', mount NFS share for image storage. type: boolean + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean conditions: @@ -193,5 +197,10 @@ outputs: - name: Stop and disable glance_api service tags: step2 service: name=openstack-glance-api state=stopped enabled=no + - name: Remove openstack-glance package if operator requests it + yum: name=openstack-glance state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} metadata_settings: get_attr: [GlanceApiPuppetBase, role_data, metadata_settings] diff --git a/docker/services/neutron-api.yaml b/docker/services/neutron-api.yaml index 11ab93be..34d70ff0 100644 --- a/docker/services/neutron-api.yaml +++ b/docker/services/neutron-api.yaml @@ -39,6 +39,10 @@ parameters: EnableInternalTLS: type: boolean default: false + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean conditions: @@ -191,5 +195,10 @@ outputs: tags: step2 when: neutron_server_enabled.rc == 0 service: name=neutron-server state=stopped enabled=no + - name: Remove openstack-neutron package if operator requests it + yum: name=openstack-neutron state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} metadata_settings: get_attr: [NeutronBase, role_data, metadata_settings] diff --git a/docker/services/neutron-ovs-agent.yaml b/docker/services/neutron-ovs-agent.yaml index 246008c5..e6faf34d 100644 --- a/docker/services/neutron-ovs-agent.yaml +++ b/docker/services/neutron-ovs-agent.yaml @@ -36,6 +36,10 @@ parameters: description: Mapping of service endpoint -> protocol. Typically set via parameter_defaults in the resource registry. type: json + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean resources: @@ -138,3 +142,8 @@ outputs: - name: Stop and disable neutron_ovs_agent service tags: step2 service: name=neutron-openvswitch-agent state=stopped enabled=no + - name: Remove openstack-neutron-openvswitch package if operator requests it + yum: name=openstack-neutron-openvswitch state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} diff --git a/docker/services/nova-api.yaml b/docker/services/nova-api.yaml index ed4a6175..f262bcb1 100644 --- a/docker/services/nova-api.yaml +++ b/docker/services/nova-api.yaml @@ -39,6 +39,10 @@ parameters: EnableInternalTLS: type: boolean default: false + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean conditions: @@ -236,6 +240,11 @@ outputs: - name: Stop and disable nova_api service tags: step2 service: name=openstack-nova-api state=stopped enabled=no + - name: Remove openstack-nova-api package if operator requests it + yum: name=openstack-nova-api state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} - name: remove old nova cron jobs file: path: /var/spool/cron/nova diff --git a/docker/services/nova-compute.yaml b/docker/services/nova-compute.yaml index c4846713..883f438b 100644 --- a/docker/services/nova-compute.yaml +++ b/docker/services/nova-compute.yaml @@ -45,6 +45,10 @@ parameters: type: string description: Nova Compute upgrade level default: '' + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean resources: @@ -157,3 +161,8 @@ outputs: - name: Stop and disable nova-compute service tags: step2 service: name=openstack-nova-compute state=stopped enabled=no + - name: Remove openstack-nova-compute package if operator requests it + yum: name=openstack-nova-compute state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} diff --git a/docker/services/nova-conductor.yaml b/docker/services/nova-conductor.yaml index 56275b02..f15c3a68 100644 --- a/docker/services/nova-conductor.yaml +++ b/docker/services/nova-conductor.yaml @@ -40,6 +40,11 @@ parameters: type: string description: Nova Compute upgrade level default: '' + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean + resources: @@ -123,3 +128,8 @@ outputs: - name: Stop and disable nova_conductor service tags: step2 service: name=openstack-nova-conductor state=stopped enabled=no + - name: Remove openstack-nova-conductor package if operator requests it + yum: name=openstack-nova-conductor state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} diff --git a/docker/services/nova-consoleauth.yaml b/docker/services/nova-consoleauth.yaml index 85078f14..069b09bc 100644 --- a/docker/services/nova-consoleauth.yaml +++ b/docker/services/nova-consoleauth.yaml @@ -36,6 +36,10 @@ parameters: default: {} description: Parameters specific to the role type: json + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean resources: @@ -112,3 +116,8 @@ outputs: - name: Stop and disable nova_consoleauth service tags: step2 service: name=openstack-nova-consoleauth state=stopped enabled=no + - name: Remove openstack-nova-console package if operator requests it + yum: name=openstack-nova-console state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} diff --git a/docker/services/nova-placement.yaml b/docker/services/nova-placement.yaml index 8015071b..bd5ae731 100644 --- a/docker/services/nova-placement.yaml +++ b/docker/services/nova-placement.yaml @@ -39,6 +39,10 @@ parameters: EnableInternalTLS: type: boolean default: false + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean conditions: @@ -140,3 +144,9 @@ outputs: - name: Stop and disable nova_placement service (running under httpd) tags: step2 service: name=httpd state=stopped enabled=no + - name: Remove httpd package if operator requests it + yum: name=httpd state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} + diff --git a/docker/services/nova-scheduler.yaml b/docker/services/nova-scheduler.yaml index e75df942..f8109b96 100644 --- a/docker/services/nova-scheduler.yaml +++ b/docker/services/nova-scheduler.yaml @@ -36,6 +36,10 @@ parameters: default: {} description: Parameters specific to the role type: json + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean resources: @@ -113,3 +117,8 @@ outputs: - name: Stop and disable nova_scheduler service tags: step2 service: name=openstack-nova-scheduler state=stopped enabled=no + - name: Remove openstack-nova-scheduler package if operator requests it + yum: name=openstack-nova-scheduler state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} diff --git a/docker/services/nova-vnc-proxy.yaml b/docker/services/nova-vnc-proxy.yaml index f1bb0eba..b1da294b 100644 --- a/docker/services/nova-vnc-proxy.yaml +++ b/docker/services/nova-vnc-proxy.yaml @@ -36,6 +36,10 @@ parameters: default: {} description: Parameters specific to the role type: json + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean resources: @@ -112,3 +116,8 @@ outputs: - name: Stop and disable nova_vnc_proxy service tags: step2 service: name=openstack-nova-novncproxy state=stopped enabled=no + - name: Remove openstack-nova-novncproxy package if operator requests it + yum: name=openstack-nova-novncproxy state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} diff --git a/docker/services/octavia-health-manager.yaml b/docker/services/octavia-health-manager.yaml index 38c4faf0..5180e416 100644 --- a/docker/services/octavia-health-manager.yaml +++ b/docker/services/octavia-health-manager.yaml @@ -36,6 +36,10 @@ parameters: default: {} description: Parameters specific to the role type: json + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean resources: @@ -116,3 +120,8 @@ outputs: - name: Stop and disable octavia_health_manager service tags: step2 service: name=openstack-octavia-health-manager state=stopped enabled=no + - name: Remove openstack-octavia-health-manager package if operator requests it + yum: name=openstack-octavia-health-manager state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} diff --git a/docker/services/sahara-api.yaml b/docker/services/sahara-api.yaml index ab8cef12..cf7eae85 100644 --- a/docker/services/sahara-api.yaml +++ b/docker/services/sahara-api.yaml @@ -36,6 +36,10 @@ parameters: default: {} description: Parameters specific to the role type: json + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean resources: @@ -138,3 +142,8 @@ outputs: - name: Stop and disable sahara_api service tags: step2 service: name=openstack-sahara-api state=stopped enabled=no + - name: Remove openstack-sahara-api package if operator requests it + yum: name=openstack-sahara-api state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} diff --git a/docker/services/sahara-engine.yaml b/docker/services/sahara-engine.yaml index 08841160..0a061bd3 100644 --- a/docker/services/sahara-engine.yaml +++ b/docker/services/sahara-engine.yaml @@ -36,6 +36,10 @@ parameters: default: {} description: Parameters specific to the role type: json + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean resources: @@ -121,3 +125,8 @@ outputs: - name: Stop and disable sahara_engine service tags: step2 service: name=openstack-sahara-engine state=stopped enabled=no + - name: Remove openstack-sahara-engine package if operator requests it + yum: name=openstack-sahara-engine state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} diff --git a/docker/services/swift-proxy.yaml b/docker/services/swift-proxy.yaml index 2d745f7b..3a27ab85 100644 --- a/docker/services/swift-proxy.yaml +++ b/docker/services/swift-proxy.yaml @@ -39,6 +39,10 @@ parameters: EnableInternalTLS: type: boolean default: false + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean conditions: @@ -147,5 +151,10 @@ outputs: - name: Stop and disable swift_proxy service tags: step2 service: name=openstack-swift-proxy state=stopped enabled=no + - name: Remove openstack-swift-proxy package if operator requests it + yum: name=openstack-swift-proxy state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} metadata_settings: get_attr: [SwiftProxyBase, role_data, metadata_settings] diff --git a/docker/services/swift-storage.yaml b/docker/services/swift-storage.yaml index 108a0368..e0c1194a 100644 --- a/docker/services/swift-storage.yaml +++ b/docker/services/swift-storage.yaml @@ -50,7 +50,10 @@ parameters: default: {} description: 'A hash of additional raw devices to use as Swift backend (eg. {sdb: {}})' type: json - + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean resources: @@ -468,3 +471,12 @@ outputs: - openstack-swift-object-replicator - openstack-swift-object-updater - openstack-swift-object + - name: Remove openstack-swift-container,object,account packages if operator requests it + yum: name={{ item }} state=removed + tags: step2 + ignore_errors: True + when: {get_param: UpgradeRemoveUnusedPackages} + with_items: + - openstack-swift-container + - openstack-swift-object + - openstack-swift-account diff --git a/environments/major-upgrade-composable-steps-docker.yaml b/environments/major-upgrade-composable-steps-docker.yaml index 1b7f17e0..1f45d025 100644 --- a/environments/major-upgrade-composable-steps-docker.yaml +++ b/environments/major-upgrade-composable-steps-docker.yaml @@ -10,3 +10,4 @@ parameter_defaults: # Ocata to Pike, put any needed host-level workarounds here yum install -y ansible-pacemaker MigrationSshPort: 22 + UpgradeRemoveUnusedPackages: false \ No newline at end of file diff --git a/environments/major-upgrade-composable-steps.yaml b/environments/major-upgrade-composable-steps.yaml index 5433572c..e8a00740 100644 --- a/environments/major-upgrade-composable-steps.yaml +++ b/environments/major-upgrade-composable-steps.yaml @@ -15,3 +15,4 @@ parameter_defaults: rm -f /usr/libexec/os-refresh-config/configure.d/40-hiera-datafiles rm -f /etc/puppet/hieradata/*.yaml MigrationSshPort: 22 + UpgradeRemoveUnusedPackages: false \ No newline at end of file diff --git a/releasenotes/notes/add-option-remove-unused-packages-on-upgrade-5a469428a6948148.yaml b/releasenotes/notes/add-option-remove-unused-packages-on-upgrade-5a469428a6948148.yaml new file mode 100644 index 00000000..dbb7af1f --- /dev/null +++ b/releasenotes/notes/add-option-remove-unused-packages-on-upgrade-5a469428a6948148.yaml @@ -0,0 +1,12 @@ +--- +upgrade: + - Adds a new UpgradeRemoveUnusedPackages parameter (default False) and some + service upgrade_tasks that use this parameter to remove any unused + packages. "Unused" is those services that are being stopped and disabled + from starting on boot (because they are being containerized). Note that + ignore_errors is set on all the package removal ansible tasks so any + issues removing a given package will not fail the upgrade workflow. + + For clarity, setting UpgradeRemoveUnusedPackages to True in your deployment + environment file(s) will result in the REMOVAL of packages for stopped + and disabled services, during the upgrade. -- cgit 1.2.3-korg