in tools/version-tracker/pkg/commands/upgrade/upgrade.go [571:619]
func updateEKSDistroBaseImageTagFiles(client *gogithub.Client, buildToolingRepoPath string, tagFileGlob []string) (string, bool, error) {
var updatedPackages string
var isUpdated bool
eksDistroBaseTagYAMLContents, err := github.GetFileContents(client, constants.AWSOrgName, constants.EKSDistroBuildToolingRepoName, constants.EKSDistroBaseTagsYAMLFile, "main")
if err != nil {
return "", false, fmt.Errorf("getting contents of EKS Distro Base tag file: %v", err)
}
var eksDistroBaseTagYAMLMap map[string]interface{}
err = yaml.Unmarshal(eksDistroBaseTagYAMLContents, &eksDistroBaseTagYAMLMap)
if err != nil {
return "", false, fmt.Errorf("unmarshalling EKS Distro Base tag file: %v", err)
}
for _, tagFile := range tagFileGlob {
tagFileContents, err := file.ReadContentsTrimmed(tagFile)
if err != nil {
return "", false, fmt.Errorf("reading tag file: %v", err)
}
tagFileName := filepath.Base(tagFile)
imageName := strings.TrimSuffix(tagFileName, constants.TagFileSuffix)
tagFileKey := strings.ReplaceAll(strings.ToLower(imageName), "_", "-")
osFolder := "2"
osKey := "al2"
if strings.HasSuffix(tagFileKey, "al2023") {
tagFileKey = strings.TrimSuffix(tagFileKey, constants.AL2023Suffix)
osFolder = "2023"
osKey = "al2023"
}
tagReleaseDate := eksDistroBaseTagYAMLMap[osKey].(map[string]interface{})[tagFileKey].(string)
if string(tagFileContents) != tagReleaseDate {
isUpdated = true
err = os.WriteFile(tagFile, []byte(fmt.Sprintf("%s\n", tagReleaseDate)), 0o644)
if err != nil {
return "", false, fmt.Errorf("writing tag file: %v", err)
}
updatedPackagesFilesContents, err := github.GetFileContents(client, constants.AWSOrgName, constants.EKSDistroBuildToolingRepoName, fmt.Sprintf(constants.EKSDistroBaseUpdatedPackagesFileFormat, osFolder, tagFileKey), "main")
if err != nil {
return "", false, fmt.Errorf("getting contents of EKS Distro Base image updated packages: %v", err)
}
updatedPackages = fmt.Sprintf("%s#### %s\nThe following yum packages were updated:\n```bash\n%s```\n\n", updatedPackages, imageName, string(updatedPackagesFilesContents))
}
}
return updatedPackages, isUpdated, nil
}