<div dir="ltr"><div>Hi again,</div><div>I redid my deployment from scratch, I reinstalled my undercloud and prepared the network template.</div><div>Then I started the baremetal provisioning again, and I get this error:</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>Deploy attempt failed on node computeHCI0 (UUID 1d536020-50d6-43b6-9be4-1e5f60fa27d4), cleaning up\nTraceback (most recent call last):\n  File \"/usr/lib/python3.6/site-pack<br>ages/metalsmith/_provisioner.py\", line 392, in provision_node\n    nics.validate()\n  File \"/usr/lib/python3.6/site-packages/metalsmith/_nics.py\", line 60, in validate\n    result.append<br>(('network', self._get_network(nic)))\n  File \"/usr/lib/python3.6/site-packages/metalsmith/_nics.py\", line 128, in _get_network\n    '<b>Unexpected fields for a network: %s' % '</b>, '.join(unex<br>pected))\nmetalsmith.exceptions.InvalidNIC: <b>Unexpected fields for a network: subnet</b>\nDeploy attempt failed on node computeHCI2 (UUID 0932aeac-e72c-4047-8c6b-c8fff674b0f3), cleaning up\nTrac<br>eback (most recent call last):\n  File \"/usr/lib/python3.6/site-packages/metalsmith/_provisioner.py\", line 392, in provision_node\n    nics.validate()\n  File \"/usr/lib/python3.6/site-pa<br>ckages/metalsmith/_nics.py\", line 60, in validate\n    result.append(('network', self._get_network(nic)))\n  File \"/usr/lib/python3.6/site-packages/metalsmith/_nics.py\", line 128, in _ge<br>t_network\n    'Unexpected fields for a network: %s' % ', '.join(unexpected))\nmetalsmith.exceptions.InvalidNIC: Unexpected fields for a network: subnet\nDeploy attempt failed on node contr<br>oller1 (UUID 8e4eb00b-6c34-4dcd-a9a5-aef3d9ec6c0a), cleaning up\nTraceback (most recent call last):\n  File \"/usr/lib/python3.6/site-packages/metalsmith/_provisioner.py\", line 392, in pro<br>vision_node\n    nics.validate()\n  File \"/usr/lib/python3.6/site-packages/metalsmith/_nics.py\", line 60, in validate\n    result.append(('network', self._get_network(nic)))\n  File \"/us<br>r/lib/python3.6/site-packages/metalsmith/_nics.py\", line 128, in _get_network\n    'Unexpected fields for a network: %s' % ', '.join(unexpected))\nmetalsmith.exceptions.InvalidNIC: Unexpec<br>ted fields for a network: subnet\nDeploy attempt failed on node controller0 (UUID 8f794261-53c1-4516-aa51-11bee6d887e8), cleaning up\nTraceback (most recent call last):\n  File \"/usr/lib/p<br>ython3.6/site-packages/metalsmith/_provisioner.py\", line 392, in provision_node\n    nics.validate()\n  File \"/usr/lib/python3.6/site-packages/metalsmith/_nics.py\", line 60, in validate\<br>n    result.append(('network', self._get_network(nic)))\n  File \"/usr/lib/python3.6/site-packages/metalsmith/_nics.py\", line 128, in _get_network\n    'Unexpected fields for a network: %s<br>' % ', '.join(unexpected))\nmetalsmith.exceptions.InvalidNIC: Unexpected fields for a network: subnet\nDeploy attempt failed on node controller2 (UUID 32e591a3-d598-43aa-ac05-b646eecef073),<br> cleaning up\nTraceback (most recent call last):\n  File \"/usr/lib/python3.6/site-packages/metalsmith/_provisioner.py\", line 392, in provision_node\n    nics.validate()\n  File \"/usr/lib<br>/python3.6/site-packages/metalsmith/_nics.py\", line 60, in validate\n    result.append(('network', self._get_network(nic)))\n  File \"/usr/lib/python3.6/site-packages/metalsmith/_nics.py\"<br>, line 128, in _get_network\n    'Unexpected fields for a network: %s' % ', '.join(unexpected))\nmetalsmith.exceptions.InvalidNIC: Unexpected fields for a network: subnet\nDeploy attempt fa<br>iled on node computeHCI1 (UUID bf283f08-bef1-4f63-8bcd-d3c518c22e36), cleaning up\nTraceback (most recent call last):\n  File \"/usr/lib/python3.6/site-packages/metalsmith/_provisioner.py\"<br>, line 392, in provision_node\n    nics.validate()\n  File \"/usr/lib/python3.6/site-packages/metalsmith/_nics.py\", line 60, in validate\n    result.append(('network', self._get_network(ni<br>c)))\n  File \"/usr/lib/python3.6/site-packages/metalsmith/_nics.py\", line 128, in _get_network\n    'Unexpected fields for a network: %s' % ', '.join(unexpected))\nmetalsmith.exceptions.I<br>nvalidNIC: Unexpected fields for a network: subnet\n",                                                                                                                                       <br>    "msg": "Unexpected fields for a network: subnet"</div></blockquote><div><br></div><div>Here is my modified bonds_vlan.j2 file</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><span style="font-family:monospace"><span style="color:rgb(0,0,0);background-color:rgb(255,255,255)">---
</span><br>{% set mtu_ctlplane_list = [ctlplane_mtu] %}
<br>{% set mtu_dataplane_list = [] %}
<br>{% for network in role_networks %}
<br>{% if network.startswith('Tenant') %}
<br>{{ mtu_dataplane_list.append(lookup('vars', networks_lower[network] ~ '_mtu')) }}
<br>{% else %}
<br>{{ mtu_ctlplane_list.append(lookup('vars', networks_lower[network] ~ '_mtu')) }}
<br>{%- endif %}
<br>{%- endfor %}
<br>{% set min_viable_mtu_ctlplane = mtu_ctlplane_list | max %}
<br>{% set min_viable_mtu_dataplane = mtu_dataplane_list | max %}
<br>network_config:
<br>- type: interface
<br>  name: nic1
<br>  mtu: {{ ctlplane_mtu }}
<br>  use_dhcp: false
<br>  addresses:
<br>  - ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_subnet_cidr }}
<br>  routes: {{ ctlplane_host_routes }}
<br>- type: ovs_bridge
<br>  name: br1str
<br>  dns_servers: {{ ctlplane_dns_nameservers }}
<br>  domain: {{ dns_search_domains }}
<br>  members:
<br>  - type: ovs_bond
<br>    name: bond-str
<br>    mtu: {{ min_viable_mtu_dataplane }}
<br>    bonding_options: {{ bond_interface_ovs_options }}
<br>    members:
<br>    - type: interface
<br>      name: nic2
<br>      mtu: {{ min_viable_mtu_dataplane }}
<br>      primary: true
<br>    - type: interface
<br>      name: nic3
<br>      mtu: {{ min_viable_mtu_dataplane }}
<br>{% for network in role_networks if network<b> not in ["External", "Tenant", "InternalApi"] %}
</b><br>  - type: vlan
<br>    device: bond-str
<br>    mtu: {{ lookup('vars', networks_lower[network] ~ '_mtu') }}
<br>    vlan_id: {{ lookup('vars', networks_lower[network] ~ '_vlan_id') }}
<br>    addresses:
<br>    - ip_netmask: {{ lookup('vars', networks_lower[network] ~ '_ip') }}/{{ lookup('vars', networks_lower[network] ~ '_cidr') }}
<br>    routes: {{ lookup('vars', networks_lower[network] ~ '_host_routes') }}
<br>{% endfor %}
<br>- type: ovs_bridge
<br>  name: {{ neutron_physical_bridge_name }}
<br>  dns_servers: {{ ctlplane_dns_nameservers }}
<br>  members:
<br>  - type: ovs_bond
<br>    name: bond-data
<br>    mtu: {{ min_viable_mtu_dataplane }}
<br>    bonding_options: {{ bond_interface_ovs_options }}
<br>    members:
<br>    - type: interface
<br>      name: nic4
<br>      mtu: {{ min_viable_mtu_dataplane }}
<br>      primary: true
<br>    - type: interface
<br>      name: nic5
<br>      mtu: {{ min_viable_mtu_dataplane }}
<br>{% for network in role_networks if network <b>in ["External", "Tenant", "InternalApi"]  %}</b>
<br>  - type: vlan
<br>    device: bond-data
<br>    mtu: {{ lookup('vars', networks_lower[network] ~ '_mtu') }}
<br>    vlan_id: {{ lookup('vars', networks_lower[network] ~ '_vlan_id') }}
<br>    addresses:
<br>    - ip_netmask: {{ lookup('vars', networks_lower[network] ~ '_ip') }}/{{ lookup('vars', networks_lower[network] ~ '_cidr') }}
<br>    routes: {{ lookup('vars', networks_lower[network] ~ '_host_routes') }}
<br>{%- endfor %}<br>
<br><br></span></div></blockquote><div><br></div><div>Could someone help me understand where have I made mistakes?  In my setup I use 5 nics :</div><div>- 1 nic for provisioning <br></div><div>- nic 2 and 3 : bonded for storage and storage management</div><div>- nic 4 and 5 : bonded for tenant, api and external</div><div><br></div><div>Here is my baremetal file</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><span style="font-family:monospace"><span style="color:rgb(0,0,0);background-color:rgb(255,255,255)">- name: Controller
</span><br>  count: 3
<br>  defaults:
<br>    networks:
<br>    - network: ctlplane
<br>      subnet: ctlplane_subnet
<br>      vif: true
<br>    - network: external
<br>      subnet: external_subnet
<br>    - network: internal_api
<br>      subnet: internal_api_subnet
<br>    - network: storage
<br>      subnet: storage_subnet
<br>    - network: storage_mgmt
<br>      subnet: storage_mgmt_subnet
<br>    - network: tenant
<br>      subnet: tenant_subnet
<br>    network_config:
<br>      template: /home/stack/templates/nic-configs/bonds_vlans.j2
<br>      bond_interface_ovs_options: bond_mode=active-backup
<br>      default_route_network:
<br>      - external
<br>- name: ComputeHCI
<br>  count: 3
<br>  defaults:
<br>    networks:
<br>    - network: ctlplane
<br>      subnet: ctlplane_subnet
<br>      vif: true
<br>    - network: external
<br>      subnet: external_subnet
<br>    - network: internal_api
<br>      subnet: internal_api_subnet
<br>    - network: storage
<br>      subnet: storage_subnet
<br>    - network: storage_mgmt
<br>      subnet: storage_mgmt_subnet
<br>    - network: tenant
<br>      subnet: tenant_subnet
<br>    network_config:
<br>      template: /home/stack/templates/nic-configs/bonds_vlans.j2
<br>      bond_interface_ovs_options: bond_mode=active-backup
<br>      default_route_network:
<br>      - external<br></span></div></blockquote><div><br></div><div>And here is my network_data file</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><span style="font-family:monospace"><span style="color:rgb(0,0,0);background-color:rgb(255,255,255)">- name: Storage
</span><br>  name_lower: storage
<br>  vip: true
<br>  mtu: 1500
<br>  subnets:
<br>    storage_subnet:
<br>      ip_subnet: <a href="http://10.100.8.0/24">10.100.8.0/24</a>
<br>      allocation_pools:
<br>        - start: 10.100.8.150
<br>          end: 10.100.8.250
<br>      vlan: 1108
<br>- name: StorageMgmt
<br>  name_lower: storage_mgmt
<br>  vip: true
<br>  mtu: 1500
<br>  subnets:
<br>    storage_mgmt_subnet:
<br>      ip_subnet: <a href="http://10.100.7.0/24">10.100.7.0/24</a>
<br>      allocation_pools:
<br>        - start: 10.100.7.150
<br>          end: 10.100.7.250
<br>      vlan: 1107
<br>- name: InternalApi
<br>  name_lower: internal_api
<br>  vip: true
<br>  mtu: 1500
<br>  subnets:
<br>    internal_api_subnet:
<br>      ip_subnet: <a href="http://10.100.5.0/24">10.100.5.0/24</a>
<br>      allocation_pools:
<br>        - start: 10.100.5.150
<br>          end: 10.100.5.250
<br>      vlan: 1105
<br>- name: Tenant
<br>  vip: false  # Tenant network does not use VIPs
<br>  mtu: 1500
<br>  name_lower: tenant
<br>  subnets:
<br>    tenant_subnet:
<br>      ip_subnet: <a href="http://10.100.6.0/24">10.100.6.0/24</a>
<br>      allocation_pools:
<br>        - start: 10.100.6.150
<br>          end: 10.100.6.250
<br>      vlan: 1106
<br>- name: External
<br>  name_lower: external
<br>  vip: true
<br>  mtu: 1500
<br>  subnets:
<br>    external_subnet:
<br>      ip_subnet: <a href="http://10.1.0.0/24">10.1.0.0/24</a>
<br>      allocation_pools:
<br>        - start: 10.1.0.10
<br>          end: 10.1.0.200
<br>      gateway_ip: 10.1.0.1
<br>      vlan: 2100<br></span> </div></blockquote><div> </div><div>Thanks in advance<br></div><div><br></div><div>Regards.<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le mer. 25 août 2021 à 13:38, wodel youchi <<a href="mailto:wodel.youchi@gmail.com">wodel.youchi@gmail.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hi and thanks</div><div><br></div><div>I disabled the hide variable, and executed the command again, and this is the result :</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>2021-08-25 13:27:21.834140 | 52540075-9baf-e9c1-3396-0000000000a0 |      FATAL | Render network_config from template | computehci-1 | error={                                               <br>    "changed": false,                                                                                                                                                                       <br>   <b> "msg": "AnsibleUndefinedVariable: 'bond_interface_ovs_options' is undefined" </b>                                                                                                              <br>}  <br></div></blockquote><div><br></div><div>I understand that this is a variable, but I don't see where it is being loaded from.</div><div>I have a <b>network-environment-overrides.yaml</b> file which contains this :<br></div><div><br></div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">parameter_defaults:<br>  ControllerNetworkConfigTemplate: '/home/stack/templates/nic-configs/bonds_vlans.j2'<br>  CephStorageNetworkConfigTemplate: '/home/stack/templates/nic-configs/bonds_vlans.j2'<br>  ComputeNetworkConfigTemplate: '/home/stack/templates/nic-configs/bonds_vlans.j2'<br><br>  NeutronNetworkVLANRanges: 'datacentre:1:100,provider:400:1000'<br>  NeutronExternalNetworkBridge: "''"<br>  NeutronNetworkType: 'vlan,flat'<br>  <b>BondInterfaceOvsOptions: "bond_mode=active-backup"</b><br></blockquote><br></div><div>But I don't see how to connect them?</div><div><br></div><div><br></div><div>Regards.<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le mer. 25 août 2021 à 09:08, Harald Jensas <<a href="mailto:hjensas@redhat.com" target="_blank">hjensas@redhat.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 8/24/21 7:07 PM, wodel youchi wrote:<br>
>     *2021-08-24 18:01:18.371725 | 52540075-9baf-8232-d4fa-0000000000a0 |<br>
>           FATAL | Render network_config from template | computehci-1 |<br>
>     error={<br>
>          "censored": "the output has been hidden due to the fact that<br>
>     'no_log: true' was specified for this result",<br>
>          "changed": false<br>
>     }<br>
<br>
This looks like a problem with your nic config template, <br>
/home/stack/templates/nic-configs/bonds_vlans.j2. To debug disable <br>
"hideing" of sensitive logs.<br>
<br>
sudo sed -i 's/tripleo_network_config_hide_sensitive_logs: <br>
true/tripleo_network_config_hide_sensitive_logs: false/g' <br>
/usr/share/ansible/roles/tripleo-network-config/defaults/main.yml<br>
<br>
<br>
--<br>
Harald<br>
<br>
<br>
</blockquote></div>
</blockquote></div>