So, I have a blueprint that i want to have 2 NICs. The default NIC needs to be on our internal network, and the second NIC needs to be on a heartbeat network. My YAML code looks like this:
networks:
# - network: ${resource.Network_Traffic.id}
- network: ${resource.Network_Heartbeat.id}
- assignment: static
deviceIndex: 0
...
Network_Heartbeat:
type: Cloud.vSphere.Network
count: 1
properties:
networkType: existing
deviceIndex: 1
constraints:
- tag: ${to_lower(input.datacenter) + "-heartbeat"}
Issue I'm having is the default NIC gets assigned to the correct network, but it does not get an IP address from the Infoblox integration.
Google hasn't turned up much other than examples for dynamic NIC selection. What am i missing here?
So after some trial and error, i figured this out. Posting incase any one else has a need for this setup.
YAML Code for each NIC:
Internal_Network:
type: Cloud.vSphere.Network
properties:
networkType: existing
constraints:
- tag: network-tag-generic
- tag: network-tag-specific-internal
Heartbeat_Network:
type: Cloud.vSphere.Network
properties:
networkType: existing
constraints:
- tag: network-tag-generic
- tag: network-tag-specific-heartbeat
YAML Code for NICs on VM:
networks:
- network: ${resource.Internal_Network.id}
deviceIndex: 0
assignment: static
- network: ${resource.Heartbeat_Network.id}
deviceIndex: 1
assignment: static
What I have as for as network profiles, is the network-tag-generic is defined at the top level of the network profile on the summary page. The network-tag-specific-internal and heartbeat tags are only on the specific networks that i want to place on these NICS on the Networks page of the network profile. As well, I needed to place the deviceIndex and assignment on each network on the vm so that it would only create the 2 networks and grab a static assignment from Infoblox for each NIC in the proper subnets. I would assume this would work for as many NICs as you want on the VM, but i've only tested with 2 NICs.
So after some trial and error, i figured this out. Posting incase any one else has a need for this setup.
YAML Code for each NIC:
Internal_Network:
type: Cloud.vSphere.Network
properties:
networkType: existing
constraints:
- tag: network-tag-generic
- tag: network-tag-specific-internal
Heartbeat_Network:
type: Cloud.vSphere.Network
properties:
networkType: existing
constraints:
- tag: network-tag-generic
- tag: network-tag-specific-heartbeat
YAML Code for NICs on VM:
networks:
- network: ${resource.Internal_Network.id}
deviceIndex: 0
assignment: static
- network: ${resource.Heartbeat_Network.id}
deviceIndex: 1
assignment: static
What I have as for as network profiles, is the network-tag-generic is defined at the top level of the network profile on the summary page. The network-tag-specific-internal and heartbeat tags are only on the specific networks that i want to place on these NICS on the Networks page of the network profile. As well, I needed to place the deviceIndex and assignment on each network on the vm so that it would only create the 2 networks and grab a static assignment from Infoblox for each NIC in the proper subnets. I would assume this would work for as many NICs as you want on the VM, but i've only tested with 2 NICs.