49f91043c6
Fix a logic issue when seed SNAT is not enabled. In this circumstance Bifrost was generating ConfigDrive data with the default gateway unset even when one is available on the admin network. This regression was introduced in Ib847d3420dee374cec067cd8af519b510be04120 [1]. [1] https://review.opendev.org/c/openstack/kayobe/+/898434 Closes-Bug: #2045926 Change-Id: Ifd9f9cd389ac09448fc91dba74f8f09595698b55
56 lines
2.5 KiB
YAML
56 lines
2.5 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
|
|
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 }}"
|