Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
8 changes: 4 additions & 4 deletions apis/v1alpha1/ack-generate-metadata.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
ack_generate_info:
build_date: "2025-09-19T17:11:39Z"
build_hash: 6b4211163dcc34776b01da9a18217bac0f4103fd
go_version: go1.24.6
version: v0.52.0
build_date: "2025-10-07T18:19:29Z"
build_hash: 37562000612658e62686882f1b4b924049d1e38c
go_version: go1.24.0
version: v0.52.0-5-g3756200
api_directory_checksum: 2b5e65a1d5f0a032d51209f925b714aff4b6dc96
api_version: v1alpha1
aws_sdk_go_version: v1.37.0
Expand Down
2 changes: 1 addition & 1 deletion config/crd/bases/eks.services.k8s.aws_accessentries.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.2
controller-gen.kubebuilder.io/version: v0.19.0
name: accessentries.eks.services.k8s.aws
spec:
group: eks.services.k8s.aws
Expand Down
2 changes: 1 addition & 1 deletion config/crd/bases/eks.services.k8s.aws_addons.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.2
controller-gen.kubebuilder.io/version: v0.19.0
name: addons.eks.services.k8s.aws
spec:
group: eks.services.k8s.aws
Expand Down
2 changes: 1 addition & 1 deletion config/crd/bases/eks.services.k8s.aws_clusters.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.2
controller-gen.kubebuilder.io/version: v0.19.0
name: clusters.eks.services.k8s.aws
spec:
group: eks.services.k8s.aws
Expand Down
2 changes: 1 addition & 1 deletion config/crd/bases/eks.services.k8s.aws_fargateprofiles.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.2
controller-gen.kubebuilder.io/version: v0.19.0
name: fargateprofiles.eks.services.k8s.aws
spec:
group: eks.services.k8s.aws
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.2
controller-gen.kubebuilder.io/version: v0.19.0
name: identityproviderconfigs.eks.services.k8s.aws
spec:
group: eks.services.k8s.aws
Expand Down
2 changes: 1 addition & 1 deletion config/crd/bases/eks.services.k8s.aws_nodegroups.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.2
controller-gen.kubebuilder.io/version: v0.19.0
name: nodegroups.eks.services.k8s.aws
spec:
group: eks.services.k8s.aws
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.2
controller-gen.kubebuilder.io/version: v0.19.0
name: podidentityassociations.eks.services.k8s.aws
spec:
group: eks.services.k8s.aws
Expand Down
2 changes: 1 addition & 1 deletion helm/crds/eks.services.k8s.aws_accessentries.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.2
controller-gen.kubebuilder.io/version: v0.19.0
name: accessentries.eks.services.k8s.aws
spec:
group: eks.services.k8s.aws
Expand Down
2 changes: 1 addition & 1 deletion helm/crds/eks.services.k8s.aws_addons.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.2
controller-gen.kubebuilder.io/version: v0.19.0
name: addons.eks.services.k8s.aws
spec:
group: eks.services.k8s.aws
Expand Down
2 changes: 1 addition & 1 deletion helm/crds/eks.services.k8s.aws_clusters.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.2
controller-gen.kubebuilder.io/version: v0.19.0
name: clusters.eks.services.k8s.aws
spec:
group: eks.services.k8s.aws
Expand Down
2 changes: 1 addition & 1 deletion helm/crds/eks.services.k8s.aws_fargateprofiles.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.2
controller-gen.kubebuilder.io/version: v0.19.0
name: fargateprofiles.eks.services.k8s.aws
spec:
group: eks.services.k8s.aws
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.2
controller-gen.kubebuilder.io/version: v0.19.0
name: identityproviderconfigs.eks.services.k8s.aws
spec:
group: eks.services.k8s.aws
Expand Down
2 changes: 1 addition & 1 deletion helm/crds/eks.services.k8s.aws_nodegroups.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.2
controller-gen.kubebuilder.io/version: v0.19.0
name: nodegroups.eks.services.k8s.aws
spec:
group: eks.services.k8s.aws
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.2
controller-gen.kubebuilder.io/version: v0.19.0
name: podidentityassociations.eks.services.k8s.aws
spec:
group: eks.services.k8s.aws
Expand Down
2 changes: 1 addition & 1 deletion helm/crds/services.k8s.aws_adoptedresources.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.2
controller-gen.kubebuilder.io/version: v0.19.0
name: adoptedresources.services.k8s.aws
spec:
group: services.k8s.aws
Expand Down
2 changes: 1 addition & 1 deletion helm/crds/services.k8s.aws_fieldexports.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.2
controller-gen.kubebuilder.io/version: v0.19.0
name: fieldexports.services.k8s.aws
spec:
group: services.k8s.aws
Expand Down
61 changes: 39 additions & 22 deletions pkg/resource/cluster/hook.go
Original file line number Diff line number Diff line change
Expand Up @@ -666,37 +666,54 @@ func (rm *resourceManager) updateComputeConfig(
exit := rlog.Trace("rm.updateComputeConfig")
defer exit(err)

// Convert []*string to []string for NodePools
nodePools := make([]string, 0, len(r.ko.Spec.ComputeConfig.NodePools))
Copy link
Author

@kunhwiko kunhwiko Oct 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So updateComputeConfig seems to be triggered when one of these conditions are met:

  • delta.DifferentAt("Spec.ComputeConfig")
  • delta.DifferentAt("Spec.StorageConfig")
  • delta.DifferentAt("Spec.KubernetesNetworkConfig")

As an example here, users that aren't using EKS auto mode might be using Spec.KubernetesNetworkConfig but are likely to leave Spec.ComputeConfig and Spec.StorageConfig empty. This leads to a NilPointerException.

for _, nodePool := range r.ko.Spec.ComputeConfig.NodePools {
if nodePool != nil {
nodePools = append(nodePools, *nodePool)
}
}

// All three fields must be initialized for EKS Auto Mode to be properly toggled.
input := &svcsdk.UpdateClusterConfigInput{
Name: r.ko.Spec.Name,
ComputeConfig: &svcsdktypes.ComputeConfigRequest{
Enabled: r.ko.Spec.ComputeConfig.Enabled,
NodePools: nodePools, // Use the converted []string slice
NodeRoleArn: r.ko.Spec.ComputeConfig.NodeRoleARN,
},
Name: r.ko.Spec.Name,
ComputeConfig: &svcsdktypes.ComputeConfigRequest{},
StorageConfig: &svcsdktypes.StorageConfigRequest{
BlockStorage: &svcsdktypes.BlockStorage{
Enabled: r.ko.Spec.StorageConfig.BlockStorage.Enabled,
},
BlockStorage: &svcsdktypes.BlockStorage{},
},
KubernetesNetworkConfig: &svcsdktypes.KubernetesNetworkConfigRequest{
ElasticLoadBalancing: &svcsdktypes.ElasticLoadBalancing{
Enabled: r.ko.Spec.KubernetesNetworkConfig.ElasticLoadBalancing.Enabled,
},
IpFamily: svcsdktypes.IpFamily(*r.ko.Spec.KubernetesNetworkConfig.IPFamily),
ServiceIpv4Cidr: r.ko.Spec.KubernetesNetworkConfig.ServiceIPv4CIDR,
ElasticLoadBalancing: &svcsdktypes.ElasticLoadBalancing{},
},
}

// Process compute configs
if r.ko.Spec.ComputeConfig != nil {
// Convert []*string to []string for NodePools
nodePools := make([]string, 0, len(r.ko.Spec.ComputeConfig.NodePools))
for _, nodePool := range r.ko.Spec.ComputeConfig.NodePools {
if nodePool != nil {
nodePools = append(nodePools, *nodePool)
}
}

input.ComputeConfig.Enabled = r.ko.Spec.ComputeConfig.Enabled
input.ComputeConfig.NodePools = nodePools // Use the converted []string slice
input.ComputeConfig.NodeRoleArn = r.ko.Spec.ComputeConfig.NodeRoleARN
}

// Process storage configs
if r.ko.Spec.StorageConfig != nil && r.ko.Spec.StorageConfig.BlockStorage != nil {
input.StorageConfig.BlockStorage.Enabled = r.ko.Spec.StorageConfig.BlockStorage.Enabled
}

// Process network configs
if r.ko.Spec.KubernetesNetworkConfig != nil {
if r.ko.Spec.KubernetesNetworkConfig.ElasticLoadBalancing != nil {
input.KubernetesNetworkConfig.ElasticLoadBalancing.Enabled = r.ko.Spec.KubernetesNetworkConfig.ElasticLoadBalancing.Enabled
}

if r.ko.Spec.KubernetesNetworkConfig.IPFamily != nil {
input.KubernetesNetworkConfig.IpFamily = svcsdktypes.IpFamily(*r.ko.Spec.KubernetesNetworkConfig.IPFamily)
}

input.KubernetesNetworkConfig.ServiceIpv4Cidr = r.ko.Spec.KubernetesNetworkConfig.ServiceIPv4CIDR
}

_, err = rm.sdkapi.UpdateClusterConfig(ctx, input)
rm.metrics.RecordAPICall("UPDATE", "UpdateClusterConfig", err)

if err != nil {
return err
}
Expand Down
9 changes: 9 additions & 0 deletions pkg/resource/cluster/sdk.go

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

9 changes: 9 additions & 0 deletions templates/hooks/cluster/sdk_read_one_post_set_output.go.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,15 @@
if r.ko.Spec.ResourcesVPCConfig != nil && r.ko.Spec.ResourcesVPCConfig.SecurityGroupRefs != nil {
ko.Spec.ResourcesVPCConfig.SecurityGroupRefs = r.ko.Spec.ResourcesVPCConfig.SecurityGroupRefs
}

desiredConfig := r.ko.Spec.KubernetesNetworkConfig
latestConfig := ko.Spec.KubernetesNetworkConfig

// ElasticLoadBalancing can by default be initialized as false even when ACK is providing an empty input.
// This condition prevents unnecessary deltas when the desired value is empty and ElasticLoadBalancing is already disabled.
if desiredConfig != nil && desiredConfig.ElasticLoadBalancing == nil && latestConfig != nil {
latestConfig.ElasticLoadBalancing = nil
}

if !clusterActive(&resource{ko}) {
// Setting resource synced condition to false will trigger a requeue of
Expand Down