Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -159,8 +159,8 @@ E2E_SKIP_EKS_UPGRADE ?= "false"
EKS_SOURCE_TEMPLATE ?= eks/cluster-template-eks-control-plane-only.yaml

# set up `setup-envtest` to install kubebuilder dependency
export KUBEBUILDER_ENVTEST_KUBERNETES_VERSION ?= 1.32.0
SETUP_ENVTEST_VER := release-0.20
export KUBEBUILDER_ENVTEST_KUBERNETES_VERSION ?= 1.34.0
SETUP_ENVTEST_VER := release-0.22
SETUP_ENVTEST_BIN := setup-envtest
SETUP_ENVTEST := $(abspath $(TOOLS_BIN_DIR)/$(SETUP_ENVTEST_BIN)-$(SETUP_ENVTEST_VER))
SETUP_ENVTEST_PKG := sigs.k8s.io/controller-runtime/tools/setup-envtest
Expand Down
1 change: 1 addition & 0 deletions api/v1beta1/awscluster_conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,7 @@ func restoreControlPlaneLoadBalancer(restored, dst *infrav1.AWSLoadBalancerSpec)
dst.CrossZoneLoadBalancing = restored.CrossZoneLoadBalancing
dst.Subnets = restored.Subnets
dst.TargetGroupIPType = restored.TargetGroupIPType
dst.DNSResolutionCheck = restored.DNSResolutionCheck
}

// ConvertFrom converts the v1beta1 AWSCluster receiver to a v1beta1 AWSCluster.
Expand Down
1 change: 1 addition & 0 deletions api/v1beta1/zz_generated.conversion.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 20 additions & 0 deletions api/v1beta2/awscluster_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,19 @@ var (
LoadBalancerTypeDisabled = LoadBalancerType("disabled")
)

// AWSLoadBalancerDNSResolutionCheck specifies the behavior for checking that the load balancer's
// DNS name is resolvable.
type AWSLoadBalancerDNSResolutionCheck string

const (
// AWSLoadBalancerDNSResolutionCheckNone disables the DNS resolution verification step.
AWSLoadBalancerDNSResolutionCheckNone AWSLoadBalancerDNSResolutionCheck = "None"

// AWSLoadBalancerDNSResolutionCheckEnabled performs a DNS lookup against the load balancer's
// FQDN to ensure the record has propagated and is reachable.
AWSLoadBalancerDNSResolutionCheckEnabled AWSLoadBalancerDNSResolutionCheck = "Enabled"
)

// AWSLoadBalancerSpec defines the desired state of an AWS load balancer.
type AWSLoadBalancerSpec struct {
// Name sets the name of the classic ELB load balancer. As per AWS, the name must be unique
Expand Down Expand Up @@ -262,6 +275,13 @@ type AWSLoadBalancerSpec struct {
// +kubebuilder:validation:Enum=ipv4;ipv6
// +optional
TargetGroupIPType *TargetGroupIPType `json:"targetGroupIPType,omitempty"`

// DNSResolutionCheck configures the behavior for checking the load balancer DNS resolution.
// Set to "None" to disable the check.
// If omitted, the provider will pick a reasonable default which may change over time.
// +kubebuilder:validation:Enum=None;Enabled
// +optional
DNSResolutionCheck *AWSLoadBalancerDNSResolutionCheck `json:"dnsResolutionCheck,omitempty"`
}

// AdditionalListenerSpec defines the desired state of an
Expand Down
8 changes: 4 additions & 4 deletions api/v1beta2/network_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,13 @@ const (
// DefaultAPIServerHealthCheckPath the API server health check path.
DefaultAPIServerHealthCheckPath = "/readyz"
// DefaultAPIServerHealthCheckIntervalSec the API server health check interval in seconds.
DefaultAPIServerHealthCheckIntervalSec = 10
DefaultAPIServerHealthCheckIntervalSec = 5
// DefaultAPIServerHealthCheckTimeoutSec the API server health check timeout in seconds.
DefaultAPIServerHealthCheckTimeoutSec = 5
DefaultAPIServerHealthCheckTimeoutSec = 4
// DefaultAPIServerHealthThresholdCount the API server health check threshold count.
DefaultAPIServerHealthThresholdCount = 5
DefaultAPIServerHealthThresholdCount = 2
// DefaultAPIServerUnhealthThresholdCount the API server unhealthy check threshold count.
DefaultAPIServerUnhealthThresholdCount = 3
DefaultAPIServerUnhealthThresholdCount = 6

// ZoneTypeAvailabilityZone defines the regular AWS zones in the Region.
ZoneTypeAvailabilityZone ZoneType = "availability-zone"
Expand Down
5 changes: 5 additions & 0 deletions api/v1beta2/zz_generated.deepcopy.go

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
Expand Up @@ -164,9 +164,6 @@ spec:
description: port is the port on which the API server is serving.
format: int32
type: integer
required:
- host
- port
type: object
disableVPCCNI:
default: false
Expand Down Expand Up @@ -1006,8 +1003,9 @@ spec:
in a Container.
properties:
name:
description: Name of the environment variable. Must be a
C_IDENTIFIER.
description: |-
Name of the environment variable.
May consist of any printable ASCII characters except '='.
type: string
value:
description: |-
Expand Down Expand Up @@ -1065,6 +1063,43 @@ spec:
- fieldPath
type: object
x-kubernetes-map-type: atomic
fileKeyRef:
description: |-
FileKeyRef selects a key of the env file.
Requires the EnvFiles feature gate to be enabled.
properties:
key:
description: |-
The key within the env file. An invalid key will prevent the pod from starting.
The keys defined within a source may consist of any printable ASCII characters except '='.
During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
type: string
optional:
default: false
description: |-
Specify whether the file or its key must be defined. If the file or key
does not exist, then the env var is not published.
If optional is set to true and the specified key does not exist,
the environment variable will not be set in the Pod's containers.

If optional is set to false and the specified key does not exist,
an error will be returned during Pod creation.
type: boolean
path:
description: |-
The path within the volume from which to select the file.
Must be relative and may not contain the '..' path or start with '..'.
type: string
volumeName:
description: The name of the volume mount containing
the env file.
type: string
required:
- key
- path
- volumeName
type: object
x-kubernetes-map-type: atomic
resourceFieldRef:
description: |-
Selects a resource of the container: only resources limits and requests
Expand Down Expand Up @@ -2541,9 +2576,6 @@ spec:
description: port is the port on which the API server is serving.
format: int32
type: integer
required:
- host
- port
type: object
eksClusterName:
description: |-
Expand Down Expand Up @@ -3427,8 +3459,9 @@ spec:
in a Container.
properties:
name:
description: Name of the environment variable. Must be a
C_IDENTIFIER.
description: |-
Name of the environment variable.
May consist of any printable ASCII characters except '='.
type: string
value:
description: |-
Expand Down Expand Up @@ -3486,6 +3519,43 @@ spec:
- fieldPath
type: object
x-kubernetes-map-type: atomic
fileKeyRef:
description: |-
FileKeyRef selects a key of the env file.
Requires the EnvFiles feature gate to be enabled.
properties:
key:
description: |-
The key within the env file. An invalid key will prevent the pod from starting.
The keys defined within a source may consist of any printable ASCII characters except '='.
During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
type: string
optional:
default: false
description: |-
Specify whether the file or its key must be defined. If the file or key
does not exist, then the env var is not published.
If optional is set to true and the specified key does not exist,
the environment variable will not be set in the Pod's containers.

If optional is set to false and the specified key does not exist,
an error will be returned during Pod creation.
type: boolean
path:
description: |-
The path within the volume from which to select the file.
Must be relative and may not contain the '..' path or start with '..'.
type: string
volumeName:
description: The name of the volume mount containing
the env file.
type: string
required:
- key
- path
- volumeName
type: object
x-kubernetes-map-type: atomic
resourceFieldRef:
description: |-
Selects a resource of the container: only resources limits and requests
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -265,9 +265,6 @@ spec:
is serving.
format: int32
type: integer
required:
- host
- port
type: object
eksClusterName:
description: |-
Expand Down Expand Up @@ -1166,8 +1163,9 @@ spec:
present in a Container.
properties:
name:
description: Name of the environment variable. Must
be a C_IDENTIFIER.
description: |-
Name of the environment variable.
May consist of any printable ASCII characters except '='.
type: string
value:
description: |-
Expand Down Expand Up @@ -1225,6 +1223,43 @@ spec:
- fieldPath
type: object
x-kubernetes-map-type: atomic
fileKeyRef:
description: |-
FileKeyRef selects a key of the env file.
Requires the EnvFiles feature gate to be enabled.
properties:
key:
description: |-
The key within the env file. An invalid key will prevent the pod from starting.
The keys defined within a source may consist of any printable ASCII characters except '='.
During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
type: string
optional:
default: false
description: |-
Specify whether the file or its key must be defined. If the file or key
does not exist, then the env var is not published.
If optional is set to true and the specified key does not exist,
the environment variable will not be set in the Pod's containers.

If optional is set to false and the specified key does not exist,
an error will be returned during Pod creation.
type: boolean
path:
description: |-
The path within the volume from which to select the file.
Must be relative and may not contain the '..' path or start with '..'.
type: string
volumeName:
description: The name of the volume mount
containing the env file.
type: string
required:
- key
- path
- volumeName
type: object
x-kubernetes-map-type: atomic
resourceFieldRef:
description: |-
Selects a resource of the container: only resources limits and requests
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -227,9 +227,6 @@ spec:
description: port is the port on which the API server is serving.
format: int32
type: integer
required:
- host
- port
type: object
credentialsSecretRef:
description: |-
Expand Down
24 changes: 18 additions & 6 deletions config/crd/bases/infrastructure.cluster.x-k8s.io_awsclusters.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -118,9 +118,6 @@ spec:
description: port is the port on which the API server is serving.
format: int32
type: integer
required:
- host
- port
type: object
controlPlaneLoadBalancer:
description: ControlPlaneLoadBalancer is optional configuration for
Expand Down Expand Up @@ -986,9 +983,6 @@ spec:
description: port is the port on which the API server is serving.
format: int32
type: integer
required:
- host
- port
type: object
controlPlaneLoadBalancer:
description: ControlPlaneLoadBalancer is optional configuration for
Expand Down Expand Up @@ -1113,6 +1107,15 @@ spec:
DisableHostsRewrite disabled the hair pinning issue solution that adds the NLB's address as 127.0.0.1 to the hosts
file of each instance. This is by default, false.
type: boolean
dnsResolutionCheck:
description: |-
DNSResolutionCheck configures the behavior for checking the load balancer DNS resolution.
Set to "None" to disable the check.
If omitted, the provider will pick a reasonable default which may change over time.
enum:
- None
- Enabled
type: string
healthCheck:
description: HealthCheck sets custom health check configuration
to the API target group.
Expand Down Expand Up @@ -2017,6 +2020,15 @@ spec:
DisableHostsRewrite disabled the hair pinning issue solution that adds the NLB's address as 127.0.0.1 to the hosts
file of each instance. This is by default, false.
type: boolean
dnsResolutionCheck:
description: |-
DNSResolutionCheck configures the behavior for checking the load balancer DNS resolution.
Set to "None" to disable the check.
If omitted, the provider will pick a reasonable default which may change over time.
enum:
- None
- Enabled
type: string
healthCheck:
description: HealthCheck sets custom health check configuration
to the API target group.
Expand Down
Loading