6c54ce4d3b
This allows us to continue execution until a certain proportion of hosts fail. This can be useful at scale, where failures are common, and restarting a deployment is time-consuming. The default max failure percentage is 100, keeping the default behaviour. A global max failure percentage may be set via kayobe_max_fail_percentage, and individual playbooks may define a max failure percentage via <playbook>_max_fail_percentage. Related Kolla Ansible patch: https://review.opendev.org/c/openstack/kolla-ansible/+/805598 Change-Id: Ib81c72b63be5765cca664c38141ffc769640cf07
60 lines
2.6 KiB
YAML
60 lines
2.6 KiB
YAML
---
|
|
# Update the Bifrost inventory with the IP allocation and other variables.
|
|
|
|
- name: Ensure the Bifrost overcloud inventory is populated
|
|
hosts: overcloud
|
|
gather_facts: no
|
|
max_fail_percentage: >-
|
|
{{ kolla_bifrost_hostvars_max_fail_percentage |
|
|
default(kayobe_max_fail_percentage) |
|
|
default(100) }}
|
|
tags:
|
|
- kolla-bifrost-hostvars
|
|
become: true
|
|
vars:
|
|
seed_host: "{{ groups['seed'][0] }}"
|
|
# NOTE: Without this, the seed's ansible_host variable will not be
|
|
# respected when using delegate_to.
|
|
ansible_host: "{{ hostvars[seed_host].ansible_host | default(seed_host) }}"
|
|
bifrost_hostvars:
|
|
addressing_mode: static
|
|
deploy_image_filename: "{{ kolla_bifrost_deploy_image_filename }}"
|
|
deploy_image_rootfs: "{{ kolla_bifrost_deploy_image_rootfs | default(omit, true) }}"
|
|
ipv4_interface_mac: "{% raw %}{{ extra.pxe_interface_mac | default }}{% endraw %}"
|
|
ipv4_address: "{{ admin_oc_net_name | net_ip }}"
|
|
ipv4_subnet_mask: "{{ admin_oc_net_name | net_mask }}"
|
|
# If the admin network does not have a gateway defined and seed SNAT is
|
|
# enabled, use the seed as a gateway to allow external access until other
|
|
# networks have been configured. Otherwise, do not set any gateway.
|
|
ipv4_gateway: "{{ (admin_oc_net_name | net_gateway) or (admin_oc_net_name | net_ip(seed_host) if seed_enable_snat | bool) }}"
|
|
ipv4_nameserver: "{{ resolv_nameservers }}"
|
|
network_mtu: "{{ admin_oc_net_name | net_mtu or '1500' }}"
|
|
vlan_id: "{{ '' if admin_oc_net_name == provision_oc_net_name else (admin_oc_net_name | net_vlan) }}"
|
|
user_data_content: "{{ kolla_bifrost_deploy_image_user_data_content }}"
|
|
tasks:
|
|
- block:
|
|
- name: Ensure the Bifrost host variables directory exists
|
|
file:
|
|
path: "/etc/kolla/bifrost/inventory/host_vars"
|
|
state: directory
|
|
run_once: true
|
|
|
|
- name: Ensure the Bifrost inventory exists
|
|
file:
|
|
path: "/etc/kolla/bifrost/inventory/bifrost_inventory.py"
|
|
src: "/bifrost/playbooks/inventory/bifrost_inventory.py"
|
|
state: link
|
|
# This file should only exist within the bifrost_deploy container.
|
|
force: True
|
|
run_once: true
|
|
|
|
- name: Ensure the Bifrost host variable files exist
|
|
copy:
|
|
content: |
|
|
---
|
|
# This file is managed via Ansible. Do not edit.
|
|
# Bifrost host variables for {{ inventory_hostname }}
|
|
{{ bifrost_hostvars | to_nice_yaml }}
|
|
dest: "/etc/kolla/bifrost/inventory/host_vars/{{ inventory_hostname }}"
|
|
delegate_to: "{{ seed_host }}"
|