nacx commented on this pull request.


> @@ -75,13 +75,26 @@ public AzureTemplateOptions dataDisks(DataDisk... 
> dataDisks) {
       return dataDisks(ImmutableList.copyOf(checkNotNull(dataDisks, 
"dataDisks")));
    }
    
+   /**
+    * Configure the NICs that will be attached to the created nodes.
+    * <p>
+    * Note that the number of NICs that can be attached depends on the size of
+    * the virtual machine, and that the guest operating system needs to be
+    * prepared to setup ont only the first network interface.
+    * <p>
+    * Depending on the image being used, a cloud-init or bootstrap script might
+    * be needed to make the interface setup.

Guests typically set up the first interface that is exposed to them (eth0, 
ens0, whatever). Which NIC is exposed to the guest as the first one is up to 
the hypervisor. In ARM, when creating the network profile you mark the primary 
NIC with a `primary` flag, and I'd like to think that is the one that is 
exposed as the first NIC, although I don't know the details of the internals 
here.
For this reason, the code 
[sorts](https://github.com/nacx/jclouds-labs/blob/c1c15e9465912244fc0d0ac704f51ace14bafd37/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/AzureComputeServiceAdapter.java#L400)
 the IpOptions objects in the template options and puts the ones with public 
addresses first, as they are the publicly reachable ones and likely to be the 
primary NICs.

What about something like "the guest operating system should be prepared to set 
up all the configured interfaces"?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs/pull/386#discussion_r113728030

Reply via email to