func getLatestEKSDistroRelease()

in tools/version-tracker/pkg/commands/upgrade/upgrade.go [633:668]


func getLatestEKSDistroRelease(branch string) (int, string, error) {
	var eksDistroReleaseChannel eksdistrorelease.ReleaseChannel
	var eksDistroRelease eksdistrorelease.Release
	var kubeVersion string

	eksDistroReleaseChannelsFileURL := fmt.Sprintf(constants.EKSDistroReleaseChannelsFileURLFormat, branch)
	eksDistroReleaseChannelsFileContents, err := file.ReadURL(eksDistroReleaseChannelsFileURL)
	if err != nil {
		return 0, "", fmt.Errorf("reading EKS Distro ReleaseChannels file URL: %v", err)
	}

	err = sigsyaml.Unmarshal(eksDistroReleaseChannelsFileContents, &eksDistroReleaseChannel)
	if err != nil {
		return 0, "", fmt.Errorf("unmarshalling EKS Distro ReleaseChannels file: %v", err)
	}
	releaseNumber := eksDistroReleaseChannel.Status.LatestRelease

	eksDistroReleaseManifestURL := fmt.Sprintf(constants.EKSDistroReleaseManifestURLFormat, branch, releaseNumber)
	eksDistroReleaseManifestContents, err := file.ReadURL(eksDistroReleaseManifestURL)
	if err != nil {
		return 0, "", fmt.Errorf("reading EKS Distro release manifest URL: %v", err)
	}

	err = sigsyaml.Unmarshal(eksDistroReleaseManifestContents, &eksDistroRelease)
	if err != nil {
		return 0, "", fmt.Errorf("unmarshalling EKS Distro release manifest: %v", err)
	}
	for _, component := range eksDistroRelease.Status.Components {
		if component.Name == "kubernetes" {
			kubeVersion = component.GitTag
			break
		}
	}

	return releaseNumber, kubeVersion, nil
}