-
Notifications
You must be signed in to change notification settings - Fork 641
✨ IPv6 support for self-managed clusters #5603
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
6b4c826
986b5e8
4b48513
e17adb5
1c8b976
7d022ad
e60c50c
d428141
6118462
3336db0
c795796
dff77ca
65c25d5
e21265d
25bd540
50cac8e
73c25cf
101c1c0
1cca7b9
e0c6232
57d87ba
abe113a
6f37668
e5dedfa
1c0dc3d
160c6b1
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -152,8 +152,9 @@ type Bastion struct { | |
|
|
||
| // AllowedCIDRBlocks is a list of CIDR blocks allowed to access the bastion host. | ||
| // They are set as ingress rules for the Bastion host's Security Group (defaults to 0.0.0.0/0). | ||
| // If the cluster has IPv6 enabled, defaults to ::/0 and 0.0.0.0/0. | ||
| // +optional | ||
| AllowedCIDRBlocks []string `json:"allowedCIDRBlocks,omitempty"` | ||
| AllowedCIDRBlocks CidrBlocks `json:"allowedCIDRBlocks,omitempty"` | ||
|
|
||
| // InstanceType will use the specified instance type for the bastion. If not specified, | ||
| // Cluster API Provider AWS will use t3.micro for all regions except us-east-1, where t2.micro | ||
|
|
@@ -252,6 +253,15 @@ type AWSLoadBalancerSpec struct { | |
| // PreserveClientIP lets the user control if preservation of client ips must be retained or not. | ||
| // If this is enabled 6443 will be opened to 0.0.0.0/0. | ||
| PreserveClientIP bool `json:"preserveClientIP,omitempty"` | ||
|
|
||
| // TargetGroupIPType sets the IP address type for the target group. | ||
| // Valid values are ipv4 and ipv6. If not specified, defaults to ipv4 unless | ||
| // the VPC has IPv6 enabled, in which case it defaults to ipv6. | ||
|
Comment on lines
+258
to
+259
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Is that statement correct even when preferred is IPv4 which has IPv6 enabled in the VPC?
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Reading the comment I understood that users would have the path where the VPC supports IPv6 but target would be Ip4, is that correct my understanding? |
||
| // This applies to the API server target group. | ||
| // This field cannot be set if LoadBalancerType is classic or disabled. | ||
| // +kubebuilder:validation:Enum=ipv4;ipv6 | ||
| // +optional | ||
| TargetGroupIPType *TargetGroupIPType `json:"targetGroupIPType,omitempty"` | ||
| } | ||
|
|
||
| // AdditionalListenerSpec defines the desired state of an | ||
|
|
@@ -271,6 +281,14 @@ type AdditionalListenerSpec struct { | |
| // HealthCheck sets the optional custom health check configuration to the API target group. | ||
| // +optional | ||
| HealthCheck *TargetGroupHealthCheckAdditionalSpec `json:"healthCheck,omitempty"` | ||
|
|
||
| // TargetGroupIPType sets the IP address type for the target group. | ||
| // Valid values are ipv4 and ipv6. If not specified, defaults to ipv4 unless | ||
| // the VPC has IPv6 enabled, in which case it defaults to ipv6. | ||
| // This field cannot be set if LoadBalancerType is classic or disabled. | ||
| // +kubebuilder:validation:Enum=ipv4;ipv6 | ||
| // +optional | ||
| TargetGroupIPType *TargetGroupIPType `json:"targetGroupIPType,omitempty"` | ||
| } | ||
|
|
||
| // AWSClusterStatus defines the observed state of AWSCluster. | ||
|
|
@@ -323,7 +341,8 @@ type S3Bucket struct { | |
| // +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.ready",description="Cluster infrastructure is ready for EC2 instances" | ||
| // +kubebuilder:printcolumn:name="VPC",type="string",JSONPath=".spec.network.vpc.id",description="AWS VPC the cluster is using" | ||
| // +kubebuilder:printcolumn:name="Endpoint",type="string",JSONPath=".spec.controlPlaneEndpoint",description="API Endpoint",priority=1 | ||
| // +kubebuilder:printcolumn:name="Bastion IP",type="string",JSONPath=".status.bastion.publicIp",description="Bastion IP address for breakglass access" | ||
| // +kubebuilder:printcolumn:name="Bastion IP",type="string",JSONPath=".status.bastion.publicIp",description="Bastion IPv4 address for breakglass access" | ||
| // +kubebuilder:printcolumn:name="Bastion IPv6",type="string",JSONPath=".status.bastion.ipv6Address",description="Bastion IPv6 address for breakglass access" | ||
| // +k8s:defaulter-gen=true | ||
|
|
||
| // AWSCluster is the schema for Amazon EC2 based Kubernetes Cluster API. | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.