Class: AWSCDK::EKS::CfnCluster::RemoteNetworkConfigProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
eks/cfn_cluster.rb

Overview

The configuration in the cluster for EKS Hybrid Nodes.

You can add, change, or remove this configuration after the cluster is created.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(remote_node_networks: nil, remote_pod_networks: nil) ⇒ RemoteNetworkConfigProperty

Returns a new instance of RemoteNetworkConfigProperty.

Parameters:



1523
1524
1525
1526
1527
1528
# File 'eks/cfn_cluster.rb', line 1523

def initialize(remote_node_networks: nil, remote_pod_networks: nil)
  @remote_node_networks = remote_node_networks
  Jsii::Type.check_type(@remote_node_networks, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWtzLkNmbkNsdXN0ZXIuUmVtb3RlTm9kZU5ldHdvcmtQcm9wZXJ0eSJ9XX19LCJraW5kIjoiYXJyYXkifX1dfX0=")), "remoteNodeNetworks") unless @remote_node_networks.nil?
  @remote_pod_networks = remote_pod_networks
  Jsii::Type.check_type(@remote_pod_networks, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWtzLkNmbkNsdXN0ZXIuUmVtb3RlUG9kTmV0d29ya1Byb3BlcnR5In1dfX0sImtpbmQiOiJhcnJheSJ9fV19fQ==")), "remotePodNetworks") unless @remote_pod_networks.nil?
end

Instance Attribute Details

#remote_node_networksAWSCDK::IResolvable, ... (readonly)

The list of network CIDRs that can contain hybrid nodes.

These CIDR blocks define the expected IP address range of the hybrid nodes that join the cluster. These blocks are typically determined by your network administrator.

Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for example, 10.2.0.0/16 ).

It must satisfy the following requirements:

  • Each block must be within an IPv4 RFC-1918 network range. Minimum allowed size is /32, maximum allowed size is /8. Publicly-routable addresses aren't supported.
  • Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range.
  • Each block must have a route to the VPC that uses the VPC CIDR blocks, not public IPs or Elastic IPs. There are many options including AWS Transit Gateway , AWS Site-to-Site VPN , or AWS Direct Connect .
  • Each host must allow outbound connection to the EKS cluster control plane on TCP ports 443 and 10250 .
  • Each host must allow inbound connection from the EKS cluster control plane on TCP port 10250 for logs, exec and port-forward operations.
  • Each host must allow TCP and UDP network connectivity to and from other hosts that are running CoreDNS on UDP port 53 for service and pod DNS names.


1547
1548
1549
# File 'eks/cfn_cluster.rb', line 1547

def remote_node_networks
  @remote_node_networks
end

#remote_pod_networksAWSCDK::IResolvable, ... (readonly)

The list of network CIDRs that can contain pods that run Kubernetes webhooks on hybrid nodes.

These CIDR blocks are determined by configuring your Container Network Interface (CNI) plugin. We recommend the Calico CNI or Cilium CNI. Note that the Amazon VPC CNI plugin for Kubernetes isn't available for on-premises and edge locations.

Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for example, 10.2.0.0/16 ).

It must satisfy the following requirements:

  • Each block must be within an IPv4 RFC-1918 network range. Minimum allowed size is /32, maximum allowed size is /8. Publicly-routable addresses aren't supported.
  • Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range.


1561
1562
1563
# File 'eks/cfn_cluster.rb', line 1561

def remote_pod_networks
  @remote_pod_networks
end

Class Method Details

.jsii_propertiesObject



1563
1564
1565
1566
1567
1568
# File 'eks/cfn_cluster.rb', line 1563

def self.jsii_properties
  {
    :remote_node_networks => "remoteNodeNetworks",
    :remote_pod_networks => "remotePodNetworks",
  }
end

Instance Method Details

#to_jsiiObject



1570
1571
1572
1573
1574
1575
1576
1577
# File 'eks/cfn_cluster.rb', line 1570

def to_jsii
  result = {}
  result.merge!({
    "remoteNodeNetworks" => @remote_node_networks,
    "remotePodNetworks" => @remote_pod_networks,
  })
  result.compact
end