in tools/version-tracker/pkg/commands/upgrade/upgrade.go [522:569]
func updateEKSDistroReleasesFile(buildToolingRepoPath string) (bool, error) {
var isUpdated bool
eksDistroReleasesFilepath := filepath.Join(buildToolingRepoPath, constants.EKSDistroLatestReleasesFile)
eksDistroReleasesFileContents, err := os.ReadFile(eksDistroReleasesFilepath)
if err != nil {
return false, fmt.Errorf("reading EKS Distro latest releases file: %v", err)
}
var eksDistroLatestReleases types.EKSDistroLatestReleases
err = yaml.Unmarshal(eksDistroReleasesFileContents, &eksDistroLatestReleases)
if err != nil {
return false, fmt.Errorf("unmarshalling EKS Distro latest releases file: %v", err)
}
supportedReleaseBranches, err := getSupportedReleaseBranches(buildToolingRepoPath)
if err != nil {
return false, fmt.Errorf("getting supported EKS Distro release branches: %v", err)
}
for i := range eksDistroLatestReleases.Releases {
if slices.Contains(supportedReleaseBranches, eksDistroLatestReleases.Releases[i].Branch) {
number, kubeVersion, err := getLatestEKSDistroRelease(eksDistroLatestReleases.Releases[i].Branch)
if err != nil {
return false, fmt.Errorf("getting latest EKS Distro release for %s branch: %v", eksDistroLatestReleases.Releases[i].Branch, err)
}
if eksDistroLatestReleases.Releases[i].Number != number || eksDistroLatestReleases.Releases[i].KubeVersion != kubeVersion {
isUpdated = true
eksDistroLatestReleases.Releases[i].Number = number
eksDistroLatestReleases.Releases[i].KubeVersion = kubeVersion
}
}
}
if isUpdated {
updatedEKSDistroReleasesFileContents, err := yaml.Marshal(eksDistroLatestReleases)
if err != nil {
return false, fmt.Errorf("marshalling EKS Distro latest releases: %v", err)
}
err = os.WriteFile(eksDistroReleasesFilepath, updatedEKSDistroReleasesFileContents, 0o644)
if err != nil {
return false, fmt.Errorf("writing EKS Distro latest releases file: %v", err)
}
}
return isUpdated, nil
}