--- # 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 }}"