44ef2a3ec1
The new master branch should point now to rocky. So, HOT templates should specify that they might contain features for rocky release [1] Also, this submission updates the yaml validation to use only latest heat_version alias. There are cases in which we will need to set the version for specific templates i.e. mixed versions, so there is added a variable to assign specific templates to specific heat_version aliases, avoiding the introductions of error by bulk replacing the the old version in new releases. [1]: https://docs.openstack.org/heat/latest/template_guide/hot_spec.html#rocky Change-Id: Ib17526d9cc453516d99d4659ee5fa51a5aa7fb4b
178 lines
7.0 KiB
YAML
178 lines
7.0 KiB
YAML
heat_template_version: rocky
|
|
|
|
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
|
|
constraints:
|
|
- allowed_values: ['tripleo-repos', 'custom-script']
|
|
FastForwardRepoArgs:
|
|
default: {'tripleo_repos': {'ocata': '-b ocata current', 'pike': '-b pike current', 'queens': '-b queens current'}}
|
|
type: json
|
|
FastForwardCustomRepoScriptContent:
|
|
default: |
|
|
#!/bin/bash
|
|
set -e
|
|
echo "If you use FastForwardRepoType 'custom-script' you have to provide the upgrade repo script content."
|
|
echo "It will be installed as /root/ffu_upgrade_repo.sh on the node"
|
|
echo "and passed the upstream name (ocata, pike, queens) of the release as first argument"
|
|
exit 1
|
|
type: string
|
|
|
|
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'
|
|
- block:
|
|
- name: Create custom Script for upgrading repo.
|
|
copy:
|
|
dest: /root/ffu_update_repo.sh
|
|
content: {get_param: FastForwardCustomRepoScriptContent}
|
|
mode: 0700
|
|
- name: Execute custom script for upgrading repo.
|
|
shell: "/root/ffu_update_repo.sh {{release}}"
|
|
when:
|
|
- step|int == 3
|
|
- ffu_packages_apply|bool
|
|
- fast_forward_repo_type == 'custom-script'
|
|
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'
|
|
|
|
- block:
|
|
- name: Create custom Script for upgrading repo.
|
|
copy:
|
|
dest: /root/ffu_update_repo.sh
|
|
content: {get_param: FastForwardCustomRepoScriptContent}
|
|
mode: 0700
|
|
- name: Execute custom script for upgrading repo.
|
|
shell: "/root/ffu_update_repo.sh {{release}}"
|
|
when:
|
|
- ffu_packages_apply|bool
|
|
- fast_forward_repo_type == 'custom-script'
|