in internal/deployers/eksapi/addons.go [64:92]
func (m *AddonManager) resolveAddonVersion(name string, versionMarker string, kubernetesVersion string) (string, error) {
input := eks.DescribeAddonVersionsInput{
AddonName: aws.String(name),
KubernetesVersion: aws.String(kubernetesVersion),
}
descOutput, err := m.clients.EKS().DescribeAddonVersions(context.TODO(), &input)
if err != nil {
return "", err
}
for _, addon := range descOutput.Addons {
for _, versionInfo := range addon.AddonVersions {
switch versionMarker {
case "latest":
return *versionInfo.AddonVersion, nil
case "default":
for _, compatibility := range versionInfo.Compatibilities {
if compatibility.DefaultVersion {
return *versionInfo.AddonVersion, nil
}
}
default:
if *versionInfo.AddonVersion == versionMarker {
return *versionInfo.AddonVersion, nil
}
}
}
}
return "", fmt.Errorf("failed to resolve addon version: %s=%s", name, versionMarker)
}