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
This commit is contained in:
marios 2017-07-03 19:20:30 +03:00 committed by Marios Andreou
parent e1a9638732
commit ce0ef2fa20
35 changed files with 298 additions and 5 deletions

View File

@ -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]

View File

@ -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}

View File

@ -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}

View File

@ -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}

View File

@ -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]

View File

@ -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}

View File

@ -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}

View File

@ -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}

View File

@ -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}

View File

@ -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:
@ -200,3 +204,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}

View File

@ -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}

View File

@ -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}

View File

@ -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}

View File

@ -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}

View File

@ -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}

View File

@ -54,6 +54,10 @@ parameters:
description: >
NFS mount options for image storage (when GlanceNfsEnabled is true)
type: string
UpgradeRemoveUnusedPackages:
default: false
description: Remove package if the service is being disabled during upgrade
type: boolean
conditions:
@ -216,5 +220,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]

View File

@ -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]

View File

@ -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}

View File

@ -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
tags: step2
file:

View File

@ -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}

View File

@ -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}

View File

@ -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}

View File

@ -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}

View File

@ -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}

View File

@ -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}

View File

@ -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}

View File

@ -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}

View File

@ -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}

View File

@ -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]

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -8,4 +8,4 @@ parameter_defaults:
UpgradeLevelNovaCompute: ''
UpgradeInitCommonCommand: ''
UpgradeInitCommand: ''
MigrationSshPort: 2022
MigrationSshPort: 2022

View File

@ -8,4 +8,4 @@ parameter_defaults:
UpgradeLevelNovaCompute: ''
UpgradeInitCommonCommand: ''
UpgradeInitCommand: ''
MigrationSshPort: 2022
MigrationSshPort: 2022

View File

@ -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.