Skip to content

Create Network Profile ​

INFO

To learn more, see Network Profiles.

A Network Profile specifies how a Machine attaches to your fabric: which physical interfaces form an Uplink, and which Subnets are configured on it.

Create a Network Profile ​

  1. Navigate to Networking → tab Network Profiles → Create Network Profile.
  2. Provide a name, unique within your organization.
  3. Add an Uplink, as described in Uplinks.
  4. Add a Host Network, as described in Host Networks
  5. Click Create.

TIP

If you don't know the interface names or MAC addresses of your servers, create a Network Profile in mode Auto-detect and boot a server with an Enrollment Image using it. On a server with more than one interface, enrollment fails and the interfaces are printed on the serial console and in the Enrollment Logs:

this machine has:
  eno1  00:1b:21:3c:4d:5e  link up  25000Mb/s
      pci-0000:19:00.0 ixgbe
  eno2  00:1b:21:3c:4d:5f  no link
      pci-0000:19:00.1 ixgbe

Once the profile exists, assign it to a Machine or use it on an Enrollment Image.

Terraform ​

Reference

Auto-detected interface ​

terraform
# single interface, auto-detected
resource "meltcloud_network_profile" "auto" {
  name = "workload"

  uplink {
    name = "workload"
    mode = "auto"

    host_network {
      subnet_id   = meltcloud_subnet.workload_dhcp.id
      vlan_tagged = false
      primary     = true
    }
  }
}

Single-homed, untagged ​

terraform
# single interface named, untagged vlan
resource "meltcloud_network_profile" "single_untagged" {
  name = "workload-single"

  uplink {
    name       = "workload"
    mode       = "single"
    identifier = "kernel_name"
    interfaces = ["eth0"]

    host_network {
      subnet_id   = meltcloud_subnet.workload_dhcp.id
      vlan_tagged = false
      primary     = true
    }
  }
}

Single-homed, tagged ​

terraform
# single interface named, tagged vlan
resource "meltcloud_network_profile" "single_tagged" {
  name = "workload-tagged"

  uplink {
    name       = "workload"
    mode       = "single"
    identifier = "kernel_name"
    interfaces = ["eth0"]

    host_network {
      subnet_id   = meltcloud_subnet.storage_dhcp.id
      vlan_tagged = true
      primary     = true
    }
  }
}

Dual-homed, untagged ​

terraform
# two interfaces bonded, untagged vlan
resource "meltcloud_network_profile" "bonded_untagged" {
  name = "workload-bonded"

  uplink {
    name       = "workload"
    mode       = "bond"
    identifier = "kernel_name"
    interfaces = ["eth0", "eth1"]
    lacp       = true

    host_network {
      subnet_id   = meltcloud_subnet.workload_dhcp.id
      vlan_tagged = false
      primary     = true
    }
  }
}

Dual-homed, tagged ​

terraform
# two interfaces bonded, tagged vlan
resource "meltcloud_network_profile" "bonded_tagged" {
  name = "storage-bonded"

  uplink {
    name       = "storage"
    mode       = "bond"
    identifier = "kernel_name"
    interfaces = ["eth0", "eth1"]
    lacp       = true

    host_network {
      subnet_id   = meltcloud_subnet.storage_dhcp.id
      vlan_tagged = true
      primary     = true
    }
  }
}

Multiple tagged Subnets ​

terraform
# single interface named, multiple subnets, all tagged
resource "meltcloud_network_profile" "single_multiple_tagged" {
  name = "main-single"

  uplink {
    name       = "main"
    mode       = "single"
    identifier = "kernel_name"
    interfaces = ["eth0"]

    host_network {
      subnet_id   = meltcloud_subnet.workload_dhcp.id
      vlan_tagged = true
      primary     = true
    }

    host_network {
      subnet_id   = meltcloud_subnet.storage_dhcp.id
      vlan_tagged = true
      primary     = false
    }
  }
}
terraform
# one bond, multiple subnets, all tagged
resource "meltcloud_network_profile" "bonded_multiple_tagged" {
  name = "main-bonded-tagged"

  uplink {
    name       = "main"
    mode       = "bond"
    identifier = "kernel_name"
    interfaces = ["eth0", "eth1"]
    lacp       = true

    host_network {
      subnet_id   = meltcloud_subnet.workload_dhcp.id
      vlan_tagged = true
      primary     = true
    }

    host_network {
      subnet_id   = meltcloud_subnet.storage_dhcp.id
      vlan_tagged = true
      primary     = false
    }
  }
}

One native and one tagged Subnet ​

terraform
# single interface named, multiple subnets, one native and tagged subnets
resource "meltcloud_network_profile" "single_native_and_tagged" {
  name = "main-single-native"

  uplink {
    name       = "main"
    mode       = "single"
    identifier = "kernel_name"
    interfaces = ["eth0"]

    host_network {
      subnet_id   = meltcloud_subnet.workload_dhcp.id
      vlan_tagged = false
      primary     = true
    }

    host_network {
      subnet_id   = meltcloud_subnet.storage_dhcp.id
      vlan_tagged = true
      primary     = false
    }
  }
}
terraform
# one bond, multiple subnets, one native and tagged subnets
resource "meltcloud_network_profile" "bonded_native_and_tagged" {
  name = "main"

  uplink {
    name       = "main"
    mode       = "bond"
    identifier = "kernel_name"
    interfaces = ["eth0", "eth1"]
    lacp       = true

    host_network {
      subnet_id   = meltcloud_subnet.workload_dhcp.id
      vlan_tagged = false
      primary     = true
    }

    host_network {
      subnet_id   = meltcloud_subnet.storage_dhcp.id
      vlan_tagged = true
      primary     = false
    }
  }
}
terraform
# multiple uplinks with a single interface each
resource "meltcloud_network_profile" "two_uplinks" {
  name = "workload-storage"

  uplink {
    name       = "workload"
    mode       = "single"
    identifier = "kernel_name"
    interfaces = ["eth0"]

    host_network {
      subnet_id   = meltcloud_subnet.workload_dhcp.id
      vlan_tagged = false
      primary     = true
    }
  }

  uplink {
    name       = "storage"
    mode       = "single"
    identifier = "kernel_name"
    interfaces = ["eth1"]

    host_network {
      subnet_id   = meltcloud_subnet.storage_ipam.id
      vlan_tagged = false
      primary     = false
    }
  }
}
terraform
# multiple uplinks with bonds each
resource "meltcloud_network_profile" "two_uplinks_bonded" {
  name = "workload-storage-bonded"

  uplink {
    name       = "workload"
    mode       = "bond"
    identifier = "mac_address"
    interfaces = ["00:1b:21:3c:4d:5e", "00:1b:21:3c:4d:5f"]
    lacp       = true

    host_network {
      subnet_id   = meltcloud_subnet.workload_dhcp.id
      vlan_tagged = false
      primary     = true
    }
  }

  uplink {
    name       = "storage"
    mode       = "bond"
    identifier = "mac_address"
    interfaces = ["00:1b:21:3c:4d:60", "00:1b:21:3c:4d:61"]
    lacp       = true

    host_network {
      subnet_id   = meltcloud_subnet.storage_ipam.id
      vlan_tagged = false
      primary     = false
    }
  }
}