26c55d15cd
In last step of FFU we need to swich repos before running upgrade. We do so by introducing post FFU steps and running the switch in them. We also update heat agents and os-collect-config on nodes. Change-Id: I649afc6fa384ae21edc5bc917f8bb586350e5d47
143 lines
5.6 KiB
YAML
143 lines
5.6 KiB
YAML
heat_template_version: queens
|
|
|
|
description: >
|
|
TripleO Package installation settings
|
|
|
|
parameters:
|
|
ServiceData:
|
|
default: {}
|
|
description: Dictionary packing service data
|
|
type: json
|
|
ServiceNetMap:
|
|
default: {}
|
|
description: Mapping of service_name -> network name. Typically set
|
|
via parameter_defaults in the resource registry. This
|
|
mapping overrides those in ServiceNetMapDefaults.
|
|
type: json
|
|
DefaultPasswords:
|
|
default: {}
|
|
type: json
|
|
RoleName:
|
|
default: ''
|
|
description: Role name on which the service is applied
|
|
type: string
|
|
RoleParameters:
|
|
default: {}
|
|
description: Parameters specific to the role
|
|
type: json
|
|
EndpointMap:
|
|
default: {}
|
|
description: Mapping of service endpoint -> protocol. Typically set
|
|
via parameter_defaults in the resource registry.
|
|
type: json
|
|
EnablePackageInstall:
|
|
default: 'false'
|
|
description: Set to true to enable package installation at deploy time
|
|
type: boolean
|
|
FastForwardRepoType:
|
|
default: 'tripleo-repos'
|
|
type: string
|
|
FastForwardRepoArgs:
|
|
default: {'tripleo_repos': {'ocata': '-b ocata current', 'pike': '-b pike current', 'queens': '-b queens current'}}
|
|
type: json
|
|
|
|
outputs:
|
|
role_data:
|
|
description: Role data for the TripleO package settings
|
|
value:
|
|
service_name: tripleo_packages
|
|
config_settings:
|
|
tripleo::packages::enable_install: {get_param: EnablePackageInstall}
|
|
step_config: |
|
|
include ::tripleo::packages
|
|
upgrade_tasks:
|
|
- name: Check yum for rpm-python present
|
|
when: step|int == 0
|
|
yum: "name=rpm-python state=present"
|
|
register: rpm_python_check
|
|
- name: Fail when rpm-python wasn't present
|
|
fail: msg="rpm-python package was not present before this run! Check environment before re-running"
|
|
when:
|
|
- step|int == 0
|
|
- rpm_python_check.changed != false
|
|
- name: Check for os-net-config upgrade
|
|
shell: "yum check-upgrade | awk '/os-net-config/{print}'"
|
|
register: os_net_config_need_upgrade
|
|
when: step|int == 3
|
|
- name: Check that os-net-config has configuration
|
|
shell: test -s /etc/os-net-config/config.json
|
|
register: os_net_config_has_config
|
|
ignore_errors: True
|
|
when: step|int == 3
|
|
- block:
|
|
- name: Upgrade os-net-config
|
|
yum: name=os-net-config state=latest
|
|
- name: take new os-net-config parameters into account now
|
|
command: os-net-config --no-activate -c /etc/os-net-config/config.json -v --detailed-exit-codes
|
|
register: os_net_config_upgrade
|
|
failed_when: os_net_config_upgrade.rc not in [0,2]
|
|
changed_when: os_net_config_upgrade.rc == 2
|
|
when:
|
|
- step|int == 3
|
|
- os_net_config_need_upgrade.stdout
|
|
- os_net_config_has_config.rc == 0
|
|
- name: Update all packages
|
|
when: step|int == 3
|
|
yum: name=* state=latest
|
|
update_tasks:
|
|
- name: Check for existing yum.pid
|
|
stat: path=/var/run/yum.pid
|
|
register: yum_pid_file
|
|
when: step|int == 0 or step|int == 3
|
|
- name: Exit if existing yum process
|
|
fail: msg="ERROR existing yum.pid detected - can't continue! Please ensure there is no other package update process for the duration of the minor update worfklow. Exiting."
|
|
when: (step|int == 0 or step|int == 3) and yum_pid_file.stat.exists
|
|
- name: Update all packages
|
|
yum: name=* state=latest update_cache=yes # cache for tripleo/+bug/1703830
|
|
when: step == "3"
|
|
fast_forward_upgrade_tasks:
|
|
- name: Register repo type and args
|
|
set_fact:
|
|
fast_forward_repo_type: {get_param: FastForwardRepoType}
|
|
fast_forward_repo_args: {get_param: FastForwardRepoArgs}
|
|
when: step|int == 3
|
|
- debug:
|
|
msg: "fast_forward_repo_type: {{ fast_forward_repo_type }} fast_forward_repo_args: {{ fast_forward_repo_args }}"
|
|
when: step|int == 3
|
|
- block:
|
|
- name: clone tripleo-repos
|
|
git:
|
|
repo: https://github.com/openstack/tripleo-repos.git
|
|
dest: /home/stack/tripleo-repos/
|
|
- name: install tripleo-repos
|
|
command: python setup.py install
|
|
args:
|
|
chdir: /home/stack/tripleo-repos/
|
|
- name: Enable tripleo-repos
|
|
command: "tripleo-repos {{ fast_forward_repo_args.tripleo_repos[release] }}"
|
|
when:
|
|
- step|int == 3
|
|
- ffu_packages_apply|bool
|
|
- fast_forward_repo_type == 'tripleo-repos'
|
|
fast_forward_post_upgrade_tasks:
|
|
- name: Register repo type and args
|
|
set_fact:
|
|
fast_forward_repo_type: {get_param: FastForwardRepoType}
|
|
fast_forward_repo_args: {get_param: FastForwardRepoArgs}
|
|
- debug:
|
|
msg: "fast_forward_repo_type: {{ fast_forward_repo_type }} fast_forward_repo_args: {{ fast_forward_repo_args }}"
|
|
- block:
|
|
- name: clone tripleo-repos
|
|
git:
|
|
repo: https://github.com/openstack/tripleo-repos.git
|
|
dest: /home/stack/tripleo-repos/
|
|
- name: install tripleo-repos
|
|
command: python setup.py install
|
|
args:
|
|
chdir: /home/stack/tripleo-repos/
|
|
- name: Enable tripleo-repos
|
|
command: "tripleo-repos {{ fast_forward_repo_args.tripleo_repos[release] }}"
|
|
when:
|
|
- ffu_packages_apply|bool
|
|
- fast_forward_repo_type == 'tripleo-repos'
|