nic

Description

A network interface card, or nic. This is the device installed into a compute resource that allows it to communicate. Venues allow this device to have one or more public and private addresses, with a firewall that filters the traffic flowing through it.

Required Properties

ips (list of dict)

A list of private and optional public IP addresses attached to each. The first entry in the list is always considered to be the primary address for the nic.

private (dict)

IP address information for the IP address visible to the attached device.

dns (dict)

The DNS configuration for this IP address.

domain (▶ networking.dns)

The DNS domain where the DNS entry will be added for this IP address.

hostname (string)

The hostname for the DNS entry for this IP address.

ip (ip)

A private IP address assigned to the nic. This field is required if type is static, otherwise this field will be filled in during deployment or discovery with a venue-assigned IP address. This address must be within the subnet range the nic is connected to.

type (string)

The allocation type of the private IP address. If this field is static then the ip field is required. If the nic is inside a scaleset this must be set to dynamic.

Allowed Values:

  • dynamic

  • static

public (dict)

IP address information for the IP address connected to the private IP address and visible to the public. If omitted, there is no public IP address associated with the private IP address.

dns (dict)

The DNS configuration for this IP address.

domain (▶ networking.dns)

The DNS domain where the DNS entry will be added for this IP address.

hostname (string)

The hostname for the DNS entry for this IP address.

ip (ip)

A public IP address assigned to the nic. This field is filled in during deployment or discovery with a venue-assigned IP address.

type (string)

The allocation type of the public IP address. If this field is static then the public IP address is stable across instance restarts. If this field is dynamic then the public IP address is only stable while an attached instance is running.

On AWS a static public IP address is provisioned as an Elastic IP, while a dynamic public IP address is assigned to the instance directly which may lower the cost of the provisioned resources.

On AWS there are some additional restrictions to using a dynamic public IP:

  • Only one entry is allowed in ips.

  • The private IP address must also be dynamic.

  • The nic cannot be used behind a balancer.

On Azure, dynamic and static public IP addresses are treated the same way. All public IP addresses are created with a Standard SKU where the ip address is assigned dynamically by Azure that becomes stable over time.

Allowed Values:

  • dynamic

  • static

The subnet this nic is connected to.

Optional Properties

auto_ipv6 (boolean)

Have the venue auto-assign an IPv6 address to this nic. If the subnet is defined as public then the IPv6 address will also be public. The IPv6 interface is added after the other ips defined on the nic and will be present in the on-screen summary and in the asset file. The subnet must also have IPv6 enabled.

Declares services consumed by this nic. The following schema types can be consumed:

  • managed.database

  • networking.service

If consumes is not specified, firewall must be specified.

Protocols that are provided by the resources that are consumed will be added to any firewall specification automatically, and if a firewall is not specified then one will be generated automatically.

The firewall applied to packets arriving at this nic. Use a firewall to maintain a high level of security by restricting data flows to only desired traffic patterns. If firewall is not specified, consumes must be specified.

Declares networking service flows provided by this nic. This typically means that the service is listening for connections and behaving as a server. You will also need to update the firewall rules to allow the traffic to enter the nic.

Common Properties

count (integer)

Indicates how many of this nic should exist. When count is specified the name of the given resource will have a hyphen and numeric suffix added automatically, unless the count variable is referenced in the blueprint object name.

depends_on ( any)

This property can be used to declare a dependency from this nic to any other object in the blueprint. This is not necessary for dependencies generated normally by the schema.

The folder containing this nic. If this is not specified and there is only one folder defined, that folder is used automatically.

name (string)

The name of this nic. The name can be different than the blueprint object name. When the name property is not present we apply automatic naming strategies to make resources easier to identify in each venue's management console. When the name property is specified we will use it exactly as specified.

readonly (boolean)

Indicates whether or not this nic is read-only. If so, we verify only the existence and correctness of this nic to its specification rather than creating or modifying it.

The default value if not specified is false.

tags (dict)

The tags to place on this nic. Tags are metadata stored in (key = value, ...) form. Consumers are not allowed to use tags that begin with _tuono as those are reserved.

Discovered Properties

These properties are populated and available in the inventory following a successful apply.

id (string)

The venue-specific identifier of this nic.

mac (mac)

The IEEE EUI-48 MAC address for the nic.

Examples

Define a nic with a public and private address:

compute:
  nic:
    example-nic:
      firewall: example-firewall
      ips:
        - private:
            dns:
              domain: example-private-dns
              hostname: my-server
            type: dynamic
          public:
            dns:
              domain: example-public-dns
              hostname: customer-server
            type: dynamic
      subnet: example-subnet
location:
  folder:
    example-folder:
      region: example-region
  region:
    example-region:
      area: west
      country: USA
networking:
  dns:
    example-private-dns:
      fqdn: dev.example.local
    example-public-dns:
      fqdn: hr.example.local
      ttl: 3600
      type: public
  firewall:
    example-firewall:
      rules:
        - description: Allow SSH
          from: anywhere
          protocols: ssh
          to: self
  network:
    example-network:
      range: 10.0.0.0/8
      scope: public
  protocol:
    ssh:
      ports:
        - port: 6379
          proto: tcp
  subnet:
    example-subnet:
      firewall: example-firewall
      network: example-network
      range: 10.0.0.0/24
      scope: public
      zone: 1

Last updated

Was this helpful?