Skip to content

Commit a8a8ddf

Browse files
dougclaytonDoug Clayton
andauthored
Updated for multiple nics (#428)
Co-authored-by: Doug Clayton <[email protected]>
1 parent b0abeec commit a8a8ddf

File tree

2 files changed

+37
-14
lines changed

2 files changed

+37
-14
lines changed

articles/cyclecloud/cluster-references/network-interface-reference.md

Lines changed: 35 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,40 +11,62 @@ ms.custom: compute-evergreen
1111

1212
Network Interface objects are rank 3, and subordinate to `node` or `nodearray`. `network-interface` represents an Azure Network Interface.
1313

14-
Multiple network interfaces may be attached to a single node for multi-homed VMs. Refer to the [VM Sizes](/azure/virtual-machines/linux/sizes) documentation to find the maxinum number of NICs for the selected VM SKU.
14+
Multiple network interfaces may be attached to a single node for multi-homed VMs. Refer to the [VM Sizes](/azure/virtual-machines/linux/sizes) documentation to find the maximum number of NICs for the selected VM SKU.
1515

1616
### Example
1717

18-
Adding a `[[[network-interface]]]` section to a node adds controls to the default NIC. You can also add additional NICs and attach them to a VM.
18+
Nodes will get a single network interface by default. Adding a `[[[network-interface]]]` section to a node lets the defaults be overridden. You can also add additional NICs and attach them to a VM.
1919

20-
This example attaches an existing NIC to a VM:
20+
This example creates a node with two network interfaces, and places the second nic in a different subnet with two application security groups:
2121

2222
``` ini
2323
[cluster my-cluster]
2424
[[node my-node]]
2525
Credentials = $Credentials
26-
SubnetId = $SubnetId
26+
SubnetId = my-rg/my-vnet/subnet2
2727
MachineType = $MachineType
2828
ImageName = $ImageName
2929

30-
[[[network-interface my-nic]]]
30+
[[[network-interface nic1]]]
3131
NetworkInterfaceId = /subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/my-rg/providers/Microsoft.Network/networkInterfaces/my-nic
32+
33+
[[[network-interface nic2]]]
34+
SubnetId = my-rg/my-vnet2/subnet
35+
ApplicationSecurityGroups = /subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/my-rg/providers/Microsoft.Network/applicationSecurityGroups/asg1, /subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/my-rg/providers/Microsoft.Network/applicationSecurityGroups/asg2
3236
```
3337

3438
Attribute values that begin with `$` are referencing parameters.
3539

3640
## Attribute Reference
3741

42+
The `[[[network-interface]]]` block is most commonly used for single nodes and the attributes that reference singular properties (such as a private IP address) do not apply to node arrays. However, the block may be used to apply an existing Network Security Group or one or more Application Security Groups to nodes in an array.
43+
3844
Attribute | Type | Definition
39-
------ | ----- | ----------
40-
AssociatePublicIpAddress | Boolean | Associate a public IP address with the NIC (node only)
41-
StaticPublicIpAddress | Boolean | If true, the IP address will be persisted between node restarts (node only)
42-
EnableIpForwarding | Boolean | If true, allow IP forwarding (node only)
45+
--------- | ---- | ----------
46+
AssociatePublicIpAddress | Boolean | Associate a public IP address with the NIC
47+
EnableIpForwarding | Boolean | If true, allow IP forwarding
48+
SecurityGroup | String | Specify an existing Network Security Group Resource ID (overrides the default NSG created when a public IP is specified). This overrides the `NetworkSecurityGroupId` [node attribute](node-nodearray-reference.md), if any.
49+
ApplicationSecurityGroups | String (list) | List of Application Security Groups by Resource ID
50+
SubnetId | String | Subnet definition in the form `${rg}/${vnet}/${subnet}`. This overrides the `SubnetId` [node attribute](node-nodearray-reference.md).
51+
Primary | Boolean | If set, marks this NIC as "primary" for the operating system.
4352
PrivateIp | String | Assign a specific private IP address (node only)
4453
NetworkInterfaceId | String | Specify an existing NIC by resource ID (node only)
45-
SecurityGroup | String | Specify an existing Network Security Group Resouce ID (overrides the default NSG created when a public IP is specified)
46-
ApplicationSecurityGroups | String (list) | List of Application Security Groups by Resource ID and separated by comma
54+
StaticPublicIpAddress | Boolean | If true, the IP address will be persisted between node restarts (node only)
55+
56+
### Existing network interfaces
57+
58+
For head nodes, you can create a NIC separately and attach it to a node:
4759

48-
### Nodearray Network Interface Attributes
60+
``` ini
61+
[cluster my-cluster]
62+
[[node my-node]]
63+
Credentials = $Credentials
64+
SubnetId = $SubnetId
65+
MachineType = $MachineType
66+
ImageName = $ImageName
67+
68+
[[[network-interface my-nic]]]
69+
NetworkInterfaceId = /subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/my-rg/providers/Microsoft.Network/networkInterfaces/my-nic
70+
```
4971

50-
The `[[[network-interface]]]` block is most commonly used for single nodes/VMs and most of the attributes do not apply to nodearrays. However, the block may be used to apply an existing Network Security Group or one or more Application Security Groups to all nodes/VMs in the nodearray.
72+
This network interface will not be modified or deleted by CycleCloud.

articles/cyclecloud/cluster-references/node-nodearray-reference.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ There are a minimum of four required attributes to successfully start a node:
6161
Attribute | Type | Definition
6262
------ | ----- | ----------
6363
MachineType | String | The Azure VM Size
64-
SubnetId | String | Subnet definition in the form `${rg}/${vnet}/${subnet}`
64+
SubnetId | String | Subnet definition in the form `${rg}/${vnet}/${subnet}`. Note this is *not* the full resource id.
6565
Credentials | String | Name of the Cloud Provider account.
6666

6767
The fourth required attribute is related to an image. An image attribute is required
@@ -94,6 +94,7 @@ KeepAlive | Boolean | If true, CycleCloud will prevent the termination of this n
9494
Locker | String | Specify the name of the locker from which to download project specs. See [Use Projects](~/how-to/projects.md)
9595
BootDiagnosticsUri | String | Storage URI for boot diagnostics (example: https://mystorageaccount.blob.core.windows.net/), if specified. Storage charges will apply.
9696
HybridBenefit | Boolean | If true, enables "Azure Hybrid Benefit" licensing for Windows VMs
97+
NetworkSecurityGroupId | String | If given, the full resource id for a Network Security Group to use for this node. Note: this can also be specified as `SecurityGroup` on a [network interface](network-interface-reference.md).
9798
EnableTerminateNotification (8.2.0+) | Boolean | If true, enables [Terminate Notification](/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-terminate-notification) to send events on VM deletion to the VM for local handling. This only applies to scaleset VMs.
9899
TerminateNotificationTimeout (8.2.2+) | Relative Time | If terminate-notification is enabled, this controls how long VMs are given to handle the event before being deleted.
99100
ThrottleCapacity (8.2.2+) | Boolean | If true, this nodearray will report 0 capacity to autoscalers for a default of 5 minutes after encountering a capacity issue

0 commit comments

Comments
 (0)