Input-Endpoint objects are subordinate in rank to node and nodearray. Input-endpoint is a control for exposing ports inside of a VM ScaleSet and for configuring Network Security Group on a node.


The [[[input-endpoint]]] configuration is effective if a NIC is defined with a public interface. If not, it is assumed that all communication is over a private network and default NSG rules are valid.

If operating on a public interface a [[[input-endpoint]]] section to a node will create and attach a Network Security Group to the node with an allow rule specified by the object configurations.

In the case that [[[input-endpoint]]] is included on a nodearray, it will forward ports on the VMSS load balancer to the constituent VMs as well as adding an allow rule for the public port.

[cluster my-cluster]
  [[node defaults]]
    Credentials = $Credentials
    SubnetId = $SubnetId
    MachineType = $MachineType
    ImageName = $ImageName

      AssociatePublicIpAddress = true

  [[node my-node]]
    [[[input-endpoint my-endpoint]]]
      PublicPort = 22

  [[nodearray my-array]]  
     [[[input-endpoint my-endpoint]]]
      PrivatePort = 443
      PublicPort = 30000

Attribute values that begin with $ are referencing parameters.

For this example cluster, my-node will be accessible from the public internet on port 22 via TCP. The first VM created in my-array VMSS will be accessible on the public internet at port 30000, which redirects to port 443 on the VM. The next VM to be started will have port 30001 on the public interface, redirected to port 443.

If this template did not include the [[[network-interface]]], the [[[input-endpoint]]] objects would be ignored.

Attribute Reference

Attribute Type Definition
PublicPort Integer Port on public interface to allow to all traffic. Starting value for VMSS will increment for each VM added.
PrivatePort Integer Port to receive public port redirection for VMSS load balancer.
Protocol String [tcp, udp] Default: tcp.