aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarios <marios@redhat.com>2017-07-03 19:20:30 +0300
committerEmilien Macchi <emilien@redhat.com>2017-10-09 11:06:26 -0700
commit6d150b03cff457bf43e8c2b55ba03ace20d6c244 (patch)
tree8489116731b0f053970c02af600e8f796152c2a9
parentc4bd0a3468af429abfbbcea634ee1023f95778c9 (diff)
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)
-rw-r--r--docker/services/aodh-api.yaml9
-rw-r--r--docker/services/aodh-evaluator.yaml9
-rw-r--r--docker/services/aodh-listener.yaml9
-rw-r--r--docker/services/aodh-notifier.yaml9
-rw-r--r--docker/services/barbican-api.yaml9
-rw-r--r--docker/services/ceilometer-agent-central.yaml10
-rw-r--r--docker/services/ceilometer-agent-compute.yaml14
-rw-r--r--docker/services/ceilometer-agent-ipmi.yaml9
-rw-r--r--docker/services/ceilometer-agent-notification.yaml9
-rw-r--r--docker/services/cinder-api.yaml9
-rw-r--r--docker/services/cinder-backup.yaml10
-rw-r--r--docker/services/cinder-scheduler.yaml9
-rw-r--r--docker/services/cinder-volume.yaml9
-rw-r--r--docker/services/collectd.yaml10
-rw-r--r--docker/services/congress.yaml9
-rw-r--r--docker/services/glance-api.yaml9
-rw-r--r--docker/services/neutron-api.yaml9
-rw-r--r--docker/services/neutron-ovs-agent.yaml9
-rw-r--r--docker/services/nova-api.yaml9
-rw-r--r--docker/services/nova-compute.yaml9
-rw-r--r--docker/services/nova-conductor.yaml10
-rw-r--r--docker/services/nova-consoleauth.yaml9
-rw-r--r--docker/services/nova-placement.yaml10
-rw-r--r--docker/services/nova-scheduler.yaml9
-rw-r--r--docker/services/nova-vnc-proxy.yaml9
-rw-r--r--docker/services/octavia-health-manager.yaml9
-rw-r--r--docker/services/sahara-api.yaml9
-rw-r--r--docker/services/sahara-engine.yaml9
-rw-r--r--docker/services/swift-proxy.yaml9
-rw-r--r--docker/services/swift-storage.yaml14
-rw-r--r--environments/major-upgrade-composable-steps-docker.yaml1
-rw-r--r--environments/major-upgrade-composable-steps.yaml1
-rw-r--r--releasenotes/notes/add-option-remove-unused-packages-on-upgrade-5a469428a6948148.yaml12
33 files changed, 296 insertions, 3 deletions
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.