diff --git a/pkg/clients/eks/eks.go b/pkg/clients/eks/eks.go index c8fa07aea8..85c5792d5a 100644 --- a/pkg/clients/eks/eks.go +++ b/pkg/clients/eks/eks.go @@ -339,6 +339,13 @@ func LateInitialize(in *v1beta1.ClusterParameters, cluster *ekstypes.Cluster) { in.ResourcesVpcConfig.SubnetIDs = cluster.ResourcesVpcConfig.SubnetIds } } + if in.KubernetesNetworkConfig == nil && cluster.KubernetesNetworkConfig != nil { + in.KubernetesNetworkConfig = &v1beta1.KubernetesNetworkConfigRequest{ + ServiceIpv4Cidr: pointer.StringValue(cluster.KubernetesNetworkConfig.ServiceIpv4Cidr), + IPFamily: v1beta1.IPFamily(cluster.KubernetesNetworkConfig.IpFamily), + } + } + in.RoleArn = pointer.LateInitializeValueFromPtr(in.RoleArn, cluster.RoleArn) in.Version = pointer.LateInitialize(in.Version, cluster.Version) // NOTE(hasheddan): we always will set the default Crossplane tags in diff --git a/pkg/clients/eks/eks_test.go b/pkg/clients/eks/eks_test.go index 42f1f234e1..b744df29a8 100644 --- a/pkg/clients/eks/eks_test.go +++ b/pkg/clients/eks/eks_test.go @@ -475,6 +475,8 @@ func TestGenerateObservation(t *testing.T) { } func TestLateInitialize(t *testing.T) { + ServiceIpv4Cidr := "172.20.0.0/16" + Ipv4Family := "ipv4" cases := map[string]struct { parameters *v1beta1.ClusterParameters cluster *ekstypes.Cluster @@ -517,6 +519,10 @@ func TestLateInitialize(t *testing.T) { SecurityGroupIds: []string{"cool-sg-1"}, SubnetIds: []string{"cool-subnet"}, }, + KubernetesNetworkConfig: &ekstypes.KubernetesNetworkConfigResponse{ + IpFamily: ekstypes.IpFamily(Ipv4Family), + ServiceIpv4Cidr: &ServiceIpv4Cidr, + }, RoleArn: &roleArn, Tags: map[string]string{"key": "val"}, Version: &version, @@ -547,6 +553,10 @@ func TestLateInitialize(t *testing.T) { SecurityGroupIDs: []string{"cool-sg-1"}, SubnetIDs: []string{"cool-subnet"}, }, + KubernetesNetworkConfig: &v1beta1.KubernetesNetworkConfigRequest{ + ServiceIpv4Cidr: ServiceIpv4Cidr, + IPFamily: v1beta1.IPFamily(Ipv4Family), + }, RoleArn: roleArn, Tags: map[string]string{"key": "val"}, Version: &version,