Koschei: Add full update playbook
This commit is contained in:
parent
bdc999f4a9
commit
08405d960f
1 changed files with 54 additions and 0 deletions
54
playbooks/manual/upgrade/koschei-full.yml
Normal file
54
playbooks/manual/upgrade/koschei-full.yml
Normal file
|
@ -0,0 +1,54 @@
|
|||
# This playbook can be used to update running Koschei instance to
|
||||
# latest upstream version. It causes user-visible downtime, but
|
||||
# unlike koschei-rolling.yml, it works even in case when there are
|
||||
# database migrations to apply.
|
||||
|
||||
- name: Perform full Koschei update
|
||||
hosts: os_control[0]:os_control_stg[0]
|
||||
user: root
|
||||
vars_files:
|
||||
- /srv/web/infra/ansible/vars/global.yml
|
||||
- /srv/private/ansible/vars.yml
|
||||
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
|
||||
- /srv/web/infra/ansible/roles/openshift-apps/koschei/vars/main.yml
|
||||
- /srv/web/infra/ansible/roles/openshift-apps/koschei/vars/{{ env }}.yml
|
||||
handlers:
|
||||
- import_tasks: "{{ handlers_path }}/restart_services.yml"
|
||||
|
||||
tasks:
|
||||
- name: Stop backend services
|
||||
shell: oc -n koschei scale dc/{{item.name}} --replicas=0
|
||||
with_items: "{{ koschei_backend_services }}"
|
||||
loop_control:
|
||||
label: "{{ item.name }}"
|
||||
|
||||
- name: Stop frontend
|
||||
shell: oc -n koschei scale dc/frontend --replicas=0
|
||||
|
||||
- name: Import upstream image into OpenShift
|
||||
include_role: name=openshift/import-image
|
||||
vars:
|
||||
imagestreamname: koschei
|
||||
|
||||
- name: Run database migrations
|
||||
include_role: name=openshift-apps/koschei/job
|
||||
vars:
|
||||
name: db-migrate
|
||||
command: "koschei-admin alembic upgrade head"
|
||||
|
||||
# Since everything is stopped and users are seeing downtime anyway,
|
||||
# we may as well want to vacuum the DB to improve performance.
|
||||
- name: Vacuum database
|
||||
include_role: name=openshift-apps/koschei/job
|
||||
vars:
|
||||
name: db-vacuum
|
||||
command: "koschei-admin psql <<<'VACUUM FULL ANALYZE'"
|
||||
|
||||
- name: Start frontend
|
||||
shell: oc -n koschei scale dc/frontend --replicas={{koschei_frontend_replicas}}
|
||||
|
||||
- name: Start backend services
|
||||
shell: oc -n koschei scale dc/{{item.name}} --replicas=1
|
||||
with_items: "{{ koschei_backend_services }}"
|
||||
loop_control:
|
||||
label: "{{ item.name }}"
|
Loading…
Add table
Add a link
Reference in a new issue