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
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
isstatic
, 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 theip
field is required. If the nic is inside a scaleset this must be set todynamic
.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 isdynamic
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 adynamic
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
andstatic
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
subnet (▶ networking.subnet)
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.
firewall (▶ networking.firewall)
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.
provides (⏩ networking.service)
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.
folder (▶ location.folder)
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?