func downloadEKSAManifests()

in projects/aws/image-builder/builder/manifests.go [82:119]


func downloadEKSAManifests(outputPath string) error {
	// Download Release manifest
	releaseManifestUrl, err := getEksAReleasesManifestURL(false)
	if err != nil {
		return err
	}

	// Create output directory path
	if err = os.MkdirAll(outputPath, 0o755); err != nil {
		return err
	}

	releaseManifestPath := filepath.Join(outputPath, eksAnywhereManifestFileName)
	log.Printf("Downloading eks-a release manifest")
	if err := downloadFile(releaseManifestPath, releaseManifestUrl); err != nil {
		return err
	}

	// Download all the bundles from release manifest
	releaseManifestData, err := os.ReadFile(releaseManifestPath)
	if err != nil {
		return err
	}

	releases := &releasev1.Release{}
	if err = k8syaml.Unmarshal(releaseManifestData, releases); err != nil {
		return err
	}
	for _, r := range releases.Spec.Releases {
		bundleName := fmt.Sprintf(eksAnywhereBundlesFileNameFormat, r.Version)
		bundleFilePath := filepath.Join(outputPath, bundleName)
		log.Printf("Downloading eks-a bundles manifest for eks-a version: %s", r.Version)
		if err = downloadFile(bundleFilePath, r.BundleManifestUrl); err != nil {
			return err
		}
	}
	return nil
}