Skip to content
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

[Task] Remove support for EKS 1.23 #6699

Open
Himangini opened this issue Jun 15, 2023 · 3 comments
Open

[Task] Remove support for EKS 1.23 #6699

Himangini opened this issue Jun 15, 2023 · 3 comments
Labels
kind/docs User documentation kind/improvement priority/important-longterm Important over the long term, but may not be currently staffed and/or may require multiple releases

Comments

@Himangini
Copy link
Collaborator

Himangini commented Jun 15, 2023

Description

As per the calendar for Amazon EKS end of support 11 Oct 2024 is the extended end of support for Kubernetes version 1.23
See https://endoflife.date/amazon-eks

We need to remove support for 1.23 and modify any relevant docs wherever possible.
Reference PR - see here

@Himangini Himangini added good first issue Good for newcomers kind/docs User documentation kind/improvement priority/important-longterm Important over the long term, but may not be currently staffed and/or may require multiple releases labels Jun 15, 2023
@sbdtu5498
Copy link

/assign. Will pick it up when the time comes. Let me know if are we waiting for AWS to announce the exact date or if it is something related to Eksctl's internal schedule.

@TiberiuGC
Copy link
Collaborator

Since after this change we'll only support EKS 1.24 and upwards, we also need to remove any logic related to dockershim deprecation.

References (i.e. some code areas that need to account for this change):

!!! warning
Starting with Kubernetes version `1.24`, dockershim support has been deprecated. Therefore, if you create a cluster using `eksctl` on version `1.24` or higher, the information below no longer applies, and the only supported container runtime is `containerd`. Trying to set it otherwise will return a validation error. Additionally, AL2023 AMIs only support `containerd` regadless of K8s version.
At some point, we will completely remove the option to set `containerRuntime` in config file, together with the support for older Kubernetes versions support (i.e. `1.22` or `1.23`).

func setContainerRuntimeDefault(ng *NodeGroup, clusterVersion string) {
if ng.ContainerRuntime != nil {
return
}
if ng.AMIFamily == NodeImageFamilyAmazonLinux2023 {
ng.ContainerRuntime = aws.String(ContainerRuntimeContainerD)
return
}
// since clusterVersion is standardised beforehand, we can safely ignore the error
if isDockershimDeprecated, _ := utils.IsMinVersion(DockershimDeprecationVersion, clusterVersion); isDockershimDeprecated {
ng.ContainerRuntime = aws.String(ContainerRuntimeContainerD)
return
}
if IsWindowsImage(ng.AMIFamily) {
ng.ContainerRuntime = aws.String(ContainerRuntimeDockerForWindows)
return
}
ng.ContainerRuntime = aws.String(ContainerRuntimeDockerD)
}

if ng.ContainerRuntime != nil {
if ng.AMIFamily == NodeImageFamilyAmazonLinux2023 && *ng.ContainerRuntime != ContainerRuntimeContainerD {
return fmt.Errorf("only %s is supported for container runtime on %s nodes", ContainerRuntimeContainerD, NodeImageFamilyAmazonLinux2023)
}
if *ng.ContainerRuntime != ContainerRuntimeDockerD && *ng.ContainerRuntime != ContainerRuntimeContainerD && *ng.ContainerRuntime != ContainerRuntimeDockerForWindows {
return fmt.Errorf("only %s, %s and %s are supported for container runtime", ContainerRuntimeContainerD, ContainerRuntimeDockerD, ContainerRuntimeDockerForWindows)
}
if clusterVersion := cfg.Metadata.Version; clusterVersion != "" {
isDockershimDeprecated, err := utils.IsMinVersion(DockershimDeprecationVersion, clusterVersion)
if err != nil {
return err
}
if *ng.ContainerRuntime != ContainerRuntimeContainerD && isDockershimDeprecated {
return fmt.Errorf("only %s is supported for container runtime, starting with EKS version %s", ContainerRuntimeContainerD, Version1_24)
}
}
if ng.OverrideBootstrapCommand != nil {
return fmt.Errorf("overrideBootstrapCommand overwrites container runtime setting; please use --container-runtime in the bootsrap script instead")
}
}

@TiberiuGC TiberiuGC removed the good first issue Good for newcomers label Jul 18, 2024
@TiberiuGC
Copy link
Collaborator

@sbdtu5498 I'm removing the good first issue label as removing support for 1.23 involves these ⬆️ specific changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/docs User documentation kind/improvement priority/important-longterm Important over the long term, but may not be currently staffed and/or may require multiple releases
Projects
None yet
Development

No branches or pull requests

3 participants