diff --git a/tripleo_ansible/roles/tripleo_network_config/defaults/main.yml b/tripleo_ansible/roles/tripleo_network_config/defaults/main.yml index a9b655619..826e11285 100644 --- a/tripleo_ansible/roles/tripleo_network_config/defaults/main.yml +++ b/tripleo_ansible/roles/tripleo_network_config/defaults/main.yml @@ -30,3 +30,5 @@ tripleo_network_config_manage_service: true tripleo_network_config_network_deployment_actions: [] tripleo_network_config_os_net_config_mappings: {} tripleo_network_config_safe_defaults: true +tripleo_network_config_with_ansible: false +tripleo_network_config_template: templates/single_nic_vlan.j2 diff --git a/tripleo_ansible/roles/tripleo_network_config/tasks/os_net_config.yml b/tripleo_ansible/roles/tripleo_network_config/tasks/os_net_config.yml index 0cea10dbf..d71d2c42d 100644 --- a/tripleo_ansible/roles/tripleo_network_config/tasks/os_net_config.yml +++ b/tripleo_ansible/roles/tripleo_network_config/tasks/os_net_config.yml @@ -20,16 +20,28 @@ - name: Apply os-net-config configuration become: true block: + - name: Set nic_config_file fact + set_fact: + nic_config_file: "{{ (tripleo_network_config_with_ansible|bool) | ternary('/etc/os-net-config/config.yaml', '/etc/os-net-config/config.json') }}" - name: Render network_config no_log: "{{ tripleo_network_config_hide_sensitive_logs | bool }}" template: src: "{{ tripleo_network_config_script_path }}" - dest: /etc/os-net-config/config.json + dest: "{{ nic_config_file }}" mode: 0600 backup: true + when: not tripleo_network_config_with_ansible|bool + - name: Render network_config from template + no_log: "{{ tripleo_network_config_hide_sensitive_logs | bool }}" + template: + src: "{{ tripleo_network_config_template }}" + dest: "{{ nic_config_file }}" + mode: 0600 + backup: true + when: tripleo_network_config_with_ansible|bool - name: Run tripleo_os_net_config_module with network_config tripleo_os_net_config: - config_file: /etc/os-net-config/config.json + config_file: "{{ nic_config_file }}" debug: "{{ tripleo_network_config_debug|bool }}" detailed_exit_codes: true safe_defaults: "{{ tripleo_network_config_safe_defaults | bool }}" diff --git a/tripleo_ansible/roles/tripleo_network_config/templates/standalone.j2 b/tripleo_ansible/roles/tripleo_network_config/templates/standalone.j2 new file mode 100644 index 000000000..9e964f780 --- /dev/null +++ b/tripleo_ansible/roles/tripleo_network_config/templates/standalone.j2 @@ -0,0 +1,32 @@ +--- +{% set control_virtual_ip = deployed_server_port_map.control_virtual_ip.fixed_ips[0].ip_address %} +{% set public_virtual_ip = deployed_server_port_map.public_virtual_ip.fixed_ips[0].ip_address %} +{% if ':' in control_virtual_ip %} +{% set control_virtual_cidr = 128 %} +{% else %} +{% set control_virtual_cidr = 32 %} +{% endif %} +{% if ':' in public_virtual_ip %} +{% set public_virtual_cidr = 128 %} +{% else %} +{% set public_virtual_cidr = 32 %} +{% endif %} +network_config: +- type: ovs_bridge + name: br-ctlplane + use_dhcp: false + mtu: {{ local_mtu }} + ovs_extra: + - br-set-external-id br-ctlplane bridge-id br-ctlplane + addresses: + - ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_subnet_cidr }} + - ip_netmask: {{ control_virtual_ip}}/{{ control_virtual_cidr }} + - ip_netmask: {{ public_virtual_ip}}/{{ public_virtual_cidr }} + routes: {{ ctlplane_static_routes }} + dns_servers: {{ dns_nameservers }} + domain: {{ dns_search_domains }} + members: + - type: interface + name: {{ neutron_public_interface }} + primary: true + mtu: {{ local_mtu }} diff --git a/tripleo_ansible/roles/tripleo_network_config/templates/undercloud.j2 b/tripleo_ansible/roles/tripleo_network_config/templates/undercloud.j2 new file mode 100644 index 000000000..a0b5a1b4f --- /dev/null +++ b/tripleo_ansible/roles/tripleo_network_config/templates/undercloud.j2 @@ -0,0 +1,31 @@ +--- +{% set control_virtual_ip = deployed_server_port_map.control_virtual_ip.fixed_ips[0].ip_address %} +{% set public_virtual_ip = deployed_server_port_map.public_virtual_ip.fixed_ips[0].ip_address %} +{% if ':' in control_virtual_ip %} +{% set control_virtual_cidr = 128 %} +{% else %} +{% set control_virtual_cidr = 32 %} +{% endif %} +{% if ':' in public_virtual_ip %} +{% set public_virtual_cidr = 128 %} +{% else %} +{% set public_virtual_cidr = 32 %} +{% endif %} +network_config: +- type: ovs_bridge + name: br-ctlplane + use_dhcp: false + ovs_extra: + - br-set-external-id br-ctlplane bridge-id br-ctlplane + addresses: + - ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_subnet_cidr }} + - ip_netmask: {{ control_virtual_ip}}/{{ control_virtual_cidr }} + - ip_netmask: {{ public_virtual_ip}}/{{ public_virtual_cidr }} + routes: {{ ctlplane_static_routes }} + dns_servers: {{ dns_nameservers }} + domain: {{ dns_search_domains }} + members: + - type: interface + name: {{ neutron_public_interface }} + primary: true + mtu: {{ local_mtu }}