Skip to content

Provisioning an infrastructure

The previous steps created the logical networks and endpoints on MetalSoft, but the switches have no actual configuration yet. The following steps configure the switches.

Create an infrastructure for a tenant.

  1. Go to the upper right corner of the admin and click on the circle with the user’s initials. Select Infrastructure Designer (or go to the “burger” menu next to the logo on the left). The Infrastructure Designer appears. If there is no infrastructure, the system prompts you to create one:
gns3 environment
  1. Name the infrastructure tenant01-infra01.
  2. Select the site in which to create the infrastructure.
  1. Click Add element.
  2. Select Endpoint.
  3. Input the name of the endpoint added: Server01, label server01.
  4. Select the server from the dropdown of the endpoint.
adding an endpoint
  1. Repeat the steps above and add the rest of the endpoints.
endpoints created

Add the logical networks to the Infrastructure Designer.

  1. Click Add element.
  2. Select pre-created network.
  3. Select the network that you created before.
  1. Select Tagged.
  2. Select Access mode Layer 2.
  3. Select Redundancy: Active-Active.
  4. Select Implementation: Distributed Link Aggregation.
adding an endpoint
  1. Click Deploy.
  2. Leave all options as they are.
  3. Click Deploy.
adding an endpoint

Wait for the infrastructure to finish deploying. By the end of the deployment, MetalSoft updates all of the switches with the configuration required to connect the endpoints to the logical network.

The following are the options available for connections.

  • Tagged — If enabled, MetalSoft sends traffic to (and expects it from) the server tagged with the VLAN allocated for the respective logical network. If unchecked, MetalSoft sends traffic untagged.
  • Access mode — Only Layer 2 is currently supported.
  • Redundancy mode:
    • active-backup — One link is active, the other is standby. Traffic fails over if the active link goes down.
    • active-active — All links are active simultaneously, providing increased bandwidth and redundancy.
  • Implementation type (when redundancy is enabled):
    • link-aggregation — Bundles multiple links on the same switch using LACP.
    • distributed-link-aggregation — Bundles links across a switch pair (MLAG/VLT/VPC). Requires a switch pair.
    • ecmp — Uses Equal-Cost Multi-Path routing across multiple links.
  • MTU — Maximum Transmission Unit. Set to override the default configured on the Network Profile or logical network. MetalSoft uses the largest value.
  • Disable auto IP allocation — By default, each endpoint connection to a logical network will receive an IP from each of the subnets listed in the IP allocation strategy.

The following options are available only for servers:

  • Provides the default route - If the server is connected to more than two logical networks, and the logical network has a subnet configured in the IP allocation strategy that has a Gateway set, MetalSoft sets that IP as the default gateway in the operating system.
  • Provision Instance DNS records - If the system has a DNS extension registered, MetalSoft invokes it to configure the DNS records for the instances of this instance array for all associated IPs created from the subnets configured on the logical network.
  • Provision Load Balancing DNS records - If the system has a DNS extension registered, MetalSoft invokes it to configure a load-balancing DNS record for all the associated IPs created from the subnets configured on the logical network. You can use this to provide DNS-based load-balancing.
Terminal window
curl -X POST "https://<your-server>/api/v2/infrastructures" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <API_KEY>" \
-d '{
"siteId": 1,
"label": "tenant01-infra01"
}'

Creating an endpoint instance group in an infrastructure

Section titled “Creating an endpoint instance group in an infrastructure”
Terminal window
curl -X POST "https://<your-server>/api/v2/infrastructures/{infrastructureId}/endpoint-instance-groups" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <API_KEY>" \
-d '{
"endpointGroupName": "web-servers"
}'
Terminal window
curl -X POST "https://<your-server>/api/v2/endpoint-instances" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <API_KEY>" \
-d '{
"groupId": 1,
"endpointId": 10
}'
Terminal window
curl -X POST "https://<your-server>/api/v2/endpoint-instance-groups/{endpointInstanceGroupId}/config/networking/connections" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <API_KEY>" \
-d '{
"logicalNetworkId": 5,
"tagged": true,
"redundancy": {
"mode": "active-active",
"implementationType": "distributed-link-aggregation"
}
}'
Terminal window
curl -X POST "https://<your-server>/api/v2/infrastructures/{infrastructureId}/actions/deploy" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <API_KEY>" \
-d '{
"allowDataLoss": false,
"shutdownOptions": {
"attemptSoftShutdown": true,
"softShutdownTimeoutSeconds": 180
}
}'
Terminal window
curl "https://<your-server>/api/v2/infrastructures" \
-H "Authorization: Bearer <API_KEY>"