Class AwsNetworkOptions
Specifies AWS related network options, optionally specifying existing Elastic IP addresses to use for cluster ingress and egress.
By default, clusters will be deployed with newly created addresses. This means that the cluster ingress change will change everytime the cluster is redeployed, which means that you may need to update your DNS zone and also that the IP address for outbound traffic will also change which may require that you update whitelist rules for other services.
You can mitigate this by creating ingress/egress elastic IPs, setting ElasticIpIngressId and ElasticIpEgressId to their IDs before deploying your cluster.
note
ElasticIpIngressId and ElasticIpEgressId must be specified together or not at all.
Namespace: Neon.Kube.ClusterDef
Assembly: Neon.Kube.dll
Syntax
public class AwsNetworkOptions
Constructors
AwsNetworkOptions()
Constructor.
Declaration
public AwsNetworkOptions()
Properties
ElasticIpEgressId
Optionally specifies an existing Elastic IP address to be used by the cluster load balancer for sending network traffic. Set this to your Elastic IP allocation ID (something like eipalloc-080a1efa9c04ad88). This is useful for ensuring that your cluster is always provisioned with a known static IP.
note
When this isn't specified, the cluster will be configured with new Elastic IPs that will be released when the cluster is deleted.
note
ElasticIpIngressId and ElasticIpEgressId must be specified together or not at all.
Declaration
[JsonProperty(PropertyName = "ElasticIpEgressId", Required = Required.Default, DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)]
[YamlMember(Alias = "elasticIpEgressId", ApplyNamingConventions = false)]
public string ElasticIpEgressId { get; set; }
Property Value
Type | Description |
---|---|
string |
ElasticIpIngressId
Optionally specifies an existing Elastic IP address to be used by the cluster load balancer for receiving network traffic. Set this to your Elastic IP allocation ID (something like eipalloc-080a1efa9c04ad72). This is useful for ensuring that your cluster is always provisioned with a known static IP.
note
When this isn't specified, the cluster will be configured with new Elastic IPs that will be released when the cluster is deleted.
note
ElasticIpIngressId and ElasticIpEgressId must be specified together or not at all.
Declaration
[JsonProperty(PropertyName = "ElasticIpIngressId", Required = Required.Default, DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)]
[YamlMember(Alias = "elasticIpIngressId", ApplyNamingConventions = false)]
public string ElasticIpIngressId { get; set; }
Property Value
Type | Description |
---|---|
string |
HasCustomElasticIPs
Returns true
when the cluster references existing Elastic IP addresses for ingress and egress.
Declaration
[JsonIgnore]
[YamlIgnore]
public bool HasCustomElasticIPs { get; }
Property Value
Type | Description |
---|---|
bool |
NodeSubnet
Specifies the private subnet CIDR within VpcSubnet for the private subnet where the cluster node instances will be provisioned. This defaults to 10.100.0.0/24.
Declaration
[JsonProperty(PropertyName = "PrivateSubnet", Required = Required.Default, DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)]
[YamlMember(Alias = "privateSubnet", ApplyNamingConventions = false)]
public string NodeSubnet { get; set; }
Property Value
Type | Description |
---|---|
string |
PublicSubnet
Specifies the public subnet CIDR within VpcSubnet for the public subnet where the AWS network load balancer will be provisioned to manage inbound cluster traffic. This defaults to 10.100.255.0/16.
Declaration
[JsonProperty(PropertyName = "PublicSubnet", Required = Required.Default, DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)]
[YamlMember(Alias = "publicSubnet", ApplyNamingConventions = false)]
public string PublicSubnet { get; set; }
Property Value
Type | Description |
---|---|
string |
VpcSubnet
Specifies the subnet CIDR to used for AWS VPC (virtual private cloud) provisioned for the cluster. This must surround the NodeSubnet and PublicSubnet subnets. This defaults to 10.100.0.0/16.
Declaration
[JsonProperty(PropertyName = "VpcSubnet", Required = Required.Default, DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)]
[YamlMember(Alias = "vpcSubnet", ApplyNamingConventions = false)]
public string VpcSubnet { get; set; }
Property Value
Type | Description |
---|---|
string |
Methods
Validate(ClusterDefinition)
Validates the options and also ensures that all null
properties are
initialized to their default values.
Declaration
public void Validate(ClusterDefinition clusterDefinition)
Parameters
Type | Name | Description |
---|---|---|
ClusterDefinition | clusterDefinition | The cluster definition. |
Exceptions
Type | Condition |
---|---|
ClusterDefinitionException | Thrown if the definition is not valid. |