Merge "Run online migrations via "external-upgrade run""
This commit is contained in:
commit
bd71a857c3
@ -178,26 +178,6 @@ outputs:
|
||||
- ''
|
||||
environment:
|
||||
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
|
||||
step_5:
|
||||
cinder_api_online_migrations:
|
||||
start_order: 2
|
||||
image: *cinder_api_image
|
||||
net: host
|
||||
privileged: false
|
||||
detach: false
|
||||
user: root
|
||||
volumes:
|
||||
list_concat:
|
||||
- {get_attr: [ContainersCommon, volumes]}
|
||||
-
|
||||
- /var/lib/config-data/cinder/etc/my.cnf.d/tripleo.cnf:/etc/my.cnf.d/tripleo.cnf:ro
|
||||
- /var/lib/config-data/cinder/etc/cinder/:/etc/cinder/:ro
|
||||
- /var/log/containers/cinder:/var/log/cinder
|
||||
- /var/log/containers/httpd/cinder-api:/var/log/httpd
|
||||
command:
|
||||
- '/usr/bin/bootstrap_host_exec'
|
||||
- 'cinder_api'
|
||||
- "su cinder -s /bin/bash -c 'cinder-manage db online_data_migrations'"
|
||||
cinder_api_cron:
|
||||
image: *cinder_api_image
|
||||
net: host
|
||||
@ -257,31 +237,35 @@ outputs:
|
||||
- name: Set fact cinder_api_enabled
|
||||
set_fact:
|
||||
cinder_api_enabled: "{{ cinder_api_enabled_result.rc == 0 }}"
|
||||
- name: Check if httpd service is running
|
||||
command: systemctl is-active --quiet httpd
|
||||
ignore_errors: True
|
||||
register: httpd_running_result
|
||||
when: httpd_running is undefined
|
||||
- name: Set fact httpd_running
|
||||
set_fact:
|
||||
httpd_running: "{{ httpd_running_result.rc == 0 }}"
|
||||
when: httpd_running is undefined
|
||||
- name: check for cinder_api running under apache (post upgrade)
|
||||
shell: "httpd -t -D DUMP_VHOSTS | grep -q cinder"
|
||||
register: cinder_api_apache
|
||||
ignore_errors: true
|
||||
- name: "PreUpgrade step0,validation: Check service openstack-cinder-api is running"
|
||||
shell: systemctl is-active --quiet openstack-cinder-api
|
||||
when: cinder_api_enabled|bool
|
||||
tags: validation
|
||||
# NOTE: In puppet service variant, we ran release N online
|
||||
# migrations before upgrade to release N+1. In docker
|
||||
# service variant, we run release N online migrations
|
||||
# after upgrade to release N. This means that during
|
||||
# switch from non-containerized to containerized, we need
|
||||
# to run both of these.
|
||||
- name: Online data migration for Cinder before switching to containers
|
||||
- name: Ensure all online data migrations for Cinder have been applied
|
||||
command: docker exec cinder_api cinder-manage db online_data_migrations
|
||||
tags: pre-upgrade
|
||||
when:
|
||||
- is_bootstrap_node|bool
|
||||
- cinder_api_enabled|bool
|
||||
command: cinder-manage db online_data_migrations
|
||||
- not (cinder_api_apache|bool and httpd_running|bool)
|
||||
- not cinder_api_enabled|bool
|
||||
- when: step|int == 2
|
||||
block:
|
||||
- name: Stop and disable cinder_api service (pre-upgrade not under httpd)
|
||||
service: name=openstack-cinder-api state=stopped enabled=no
|
||||
when: cinder_api_enabled|bool
|
||||
- name: check for cinder_api running under apache (post upgrade)
|
||||
shell: "httpd -t -D DUMP_VHOSTS | grep -q cinder"
|
||||
register: cinder_api_apache
|
||||
ignore_errors: true
|
||||
- name: Stop and disable cinder_api service
|
||||
service: name=httpd state=stopped enabled=no
|
||||
when: cinder_api_apache.rc == 0
|
||||
@ -298,6 +282,16 @@ outputs:
|
||||
package: name=httpd state=removed
|
||||
ignore_errors: True
|
||||
when: remove_httpd_package|bool
|
||||
external_upgrade_tasks:
|
||||
- when: step|int == 1
|
||||
block:
|
||||
- name: Online data migration for Cinder
|
||||
command: docker exec cinder_api cinder-manage db online_data_migrations
|
||||
delegate_to: "{{ groups['cinder_api'][0] }}"
|
||||
become: true
|
||||
tags:
|
||||
- online_upgrade
|
||||
- online_upgrade_cinder
|
||||
fast_forward_upgrade_tasks:
|
||||
- when:
|
||||
- step|int == 0
|
||||
|
@ -137,22 +137,6 @@ outputs:
|
||||
- /var/log/containers/httpd/ironic-api:/var/log/httpd
|
||||
environment:
|
||||
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
|
||||
step_5:
|
||||
ironic_online_migrations:
|
||||
start_order: 2
|
||||
image: *ironic_api_image
|
||||
net: host
|
||||
privileged: false
|
||||
detach: false
|
||||
user: root
|
||||
volumes:
|
||||
list_concat:
|
||||
- {get_attr: [ContainersCommon, volumes]}
|
||||
-
|
||||
- /var/lib/config-data/ironic_api/etc/ironic:/etc/ironic:ro
|
||||
- /var/log/containers/ironic:/var/log/ironic
|
||||
- /var/log/containers/httpd/ironic-api:/var/log/httpd
|
||||
command: "/usr/bin/bootstrap_host_exec ironic_api su ironic -s /bin/bash -c 'ironic-dbsync --config-file /etc/ironic/ironic.conf online_data_migrations'"
|
||||
host_prep_tasks:
|
||||
- name: create persistent logs directory
|
||||
file:
|
||||
@ -209,18 +193,13 @@ outputs:
|
||||
when:
|
||||
- ironic_httpd_enabled|bool
|
||||
- httpd_running|bool
|
||||
# NOTE: In puppet service variant, we ran release N online
|
||||
# migrations before upgrade to release N+1. In docker
|
||||
# service variant, we run release N online migrations
|
||||
# after upgrade to release N. This means that during
|
||||
# switch from non-containerized to containerized, we need
|
||||
# to run both of these.
|
||||
- name: Online data migration for Ironic before switching to containers
|
||||
- name: Ensure all online data migrations for Ironic have been applied
|
||||
command: docker exec ironic_api ironic-dbsync --config-file /etc/ironic/ironic.conf online_data_migrations
|
||||
tags: pre-upgrade
|
||||
when:
|
||||
- is_bootstrap_node|bool
|
||||
- (ironic_httpd_enabled|bool and httpd_running|bool) or ironic_api_enabled|bool
|
||||
command: ironic-dbsync --config-file /etc/ironic/ironic.conf online_data_migrations
|
||||
- not (ironic_httpd_enabled|bool and httpd_running|bool)
|
||||
- not ironic_api_enabled|bool
|
||||
- when: step|int == 2
|
||||
block:
|
||||
- name: Stop and disable ironic_api service
|
||||
@ -241,6 +220,16 @@ outputs:
|
||||
package: name=openstack-ironic-api state=removed
|
||||
ignore_errors: True
|
||||
when: remove_ironic_api_package|bool
|
||||
external_upgrade_tasks:
|
||||
- when: step|int == 1
|
||||
block:
|
||||
- name: Online data migration for Ironic
|
||||
command: docker exec ironic_api ironic-dbsync --config-file /etc/ironic/ironic.conf online_data_migrations
|
||||
delegate_to: "{{ groups['ironic_api'][0] }}"
|
||||
become: true
|
||||
tags:
|
||||
- online_upgrade
|
||||
- online_upgrade_ironic
|
||||
fast_forward_upgrade_tasks:
|
||||
- when:
|
||||
- step|int == 0
|
||||
|
@ -319,14 +319,6 @@ outputs:
|
||||
- ''
|
||||
- - 'TRIPLEO_DEPLOY_IDENTIFIER='
|
||||
- {get_param: DeployIdentifier}
|
||||
nova_online_migrations:
|
||||
start_order: 2
|
||||
image: *nova_api_image
|
||||
net: host
|
||||
detach: false
|
||||
volumes: *nova_api_bootstrap_volumes
|
||||
user: root
|
||||
command: "/usr/bin/bootstrap_host_exec nova_api su nova -s /bin/bash -c '/usr/bin/nova-manage db online_data_migrations'"
|
||||
metadata_settings:
|
||||
get_attr: [NovaApiBase, role_data, metadata_settings]
|
||||
host_prep_tasks: {get_attr: [NovaApiLogging, host_prep_tasks]}
|
||||
@ -367,18 +359,13 @@ outputs:
|
||||
when:
|
||||
- nova_api_httpd_enabled|bool
|
||||
- httpd_running|bool
|
||||
# NOTE: In puppet service variant, we ran release N online
|
||||
# migrations before upgrade to release N+1. In docker
|
||||
# service variant, we run release N online migrations
|
||||
# after upgrade to release N. This means that during
|
||||
# switch from non-containerized to containerized, we need
|
||||
# to run both of these.
|
||||
- name: Online data migration for Nova before switching to containers
|
||||
- name: Ensure all online data migrations for Nova have been applied
|
||||
command: docker exec nova_api nova-manage db online_data_migrations
|
||||
tags: pre-upgrade
|
||||
when:
|
||||
- is_bootstrap_node|bool
|
||||
- (nova_api_httpd_enabled|bool and httpd_running|bool) or nova_api_enabled|bool
|
||||
command: nova-manage db online_data_migrations
|
||||
- not (nova_api_httpd_enabled|bool and httpd_running|bool)
|
||||
- not nova_api_enabled|bool
|
||||
- when: step|int == 2
|
||||
block:
|
||||
- name: Stop and disable nova_api service
|
||||
@ -404,6 +391,16 @@ outputs:
|
||||
file:
|
||||
path: /var/spool/cron/nova
|
||||
state: absent
|
||||
external_upgrade_tasks:
|
||||
- when: step|int == 1
|
||||
block:
|
||||
- name: Online data migration for Nova
|
||||
command: docker exec nova_api nova-manage db online_data_migrations
|
||||
delegate_to: "{{ groups['nova_api'][0] }}"
|
||||
become: true
|
||||
tags:
|
||||
- online_upgrade
|
||||
- online_upgrade_nova
|
||||
fast_forward_upgrade_tasks:
|
||||
- when:
|
||||
- step|int == 0
|
||||
|
@ -0,0 +1,16 @@
|
||||
---
|
||||
upgrade:
|
||||
- |
|
||||
The online part of the service upgrades (online data migrations)
|
||||
is now run using::
|
||||
|
||||
openstack overcloud external-upgrade run --tags online_upgrade
|
||||
|
||||
or per-service like::
|
||||
|
||||
openstack overcloud external-upgrade run --tags online_upgrade_nova
|
||||
openstack overcloud external-upgrade run --tags online_upgrade_cinder
|
||||
openstack overcloud external-upgrade run --tags online_upgrade_ironic
|
||||
|
||||
Consult the upgrade documentation regarding the full upgrade
|
||||
workflow.
|
Loading…
Reference in New Issue
Block a user