in release/pkg/assets_eksd.go [164:267]
func (r *ReleaseConfig) GetEksDReleaseBundle(eksDReleaseChannel, kubeVer, eksDReleaseNumber string, imageDigests map[string]string) (anywherev1alpha1.EksDRelease, error) {
artifacts := r.BundleArtifactsTable[fmt.Sprintf("eks-d-%s", eksDReleaseChannel)]
tarballArtifacts := map[string][]Artifact{
"cri-tools": r.BundleArtifactsTable["cri-tools"],
"etcdadm": r.BundleArtifactsTable["etcdadm"],
}
bundleArchiveArtifacts := map[string]anywherev1alpha1.Archive{}
bundleImageArtifacts := map[string]anywherev1alpha1.Image{}
eksDManifestUrl := GetEksDReleaseManifestUrl(eksDReleaseChannel, eksDReleaseNumber)
for _, artifact := range artifacts {
if artifact.Archive != nil {
archiveArtifact := artifact.Archive
osName := archiveArtifact.OSName
tarfile := filepath.Join(archiveArtifact.ArtifactPath, archiveArtifact.ReleaseName)
sha256, sha512, err := r.readShaSums(tarfile)
if err != nil {
return anywherev1alpha1.EksDRelease{}, errors.Cause(err)
}
bundleArchiveArtifact := anywherev1alpha1.Archive{
Name: archiveArtifact.ReleaseName,
Description: fmt.Sprintf("%s OVA for EKS-D %s-%s release", strings.Title(archiveArtifact.OSName), eksDReleaseChannel, eksDReleaseNumber),
OS: archiveArtifact.OS,
OSName: archiveArtifact.OSName,
Arch: archiveArtifact.Arch,
URI: archiveArtifact.ReleaseCdnURI,
SHA256: sha256,
SHA512: sha512,
}
bundleArchiveArtifacts[osName] = bundleArchiveArtifact
}
if artifact.Image != nil {
imageArtifact := artifact.Image
bundleImageArtifact := anywherev1alpha1.Image{
Name: imageArtifact.AssetName,
Description: fmt.Sprintf("Container image for %s image", imageArtifact.AssetName),
OS: imageArtifact.OS,
Arch: imageArtifact.Arch,
URI: imageArtifact.ReleaseImageURI,
ImageDigest: imageDigests[imageArtifact.ReleaseImageURI],
}
bundleImageArtifacts["kind-node"] = bundleImageArtifact
}
}
for componentName, artifacts := range tarballArtifacts {
for _, artifact := range artifacts {
if artifact.Archive != nil {
archiveArtifact := artifact.Archive
tarfile := filepath.Join(archiveArtifact.ArtifactPath, archiveArtifact.ReleaseName)
sha256, sha512, err := r.readShaSums(tarfile)
if err != nil {
return anywherev1alpha1.EksDRelease{}, errors.Cause(err)
}
bundleArchiveArtifact := anywherev1alpha1.Archive{
Name: archiveArtifact.ReleaseName,
Description: fmt.Sprintf("%s tarball for %s/%s", componentName, archiveArtifact.OS, archiveArtifact.Arch[0]),
OS: archiveArtifact.OS,
Arch: archiveArtifact.Arch,
URI: archiveArtifact.ReleaseCdnURI,
SHA256: sha256,
SHA512: sha512,
}
bundleArchiveArtifacts[componentName] = bundleArchiveArtifact
}
}
}
eksdRelease, err := getEksdRelease(eksDManifestUrl)
if err != nil {
return anywherev1alpha1.EksDRelease{}, err
}
bundle := anywherev1alpha1.EksDRelease{
Name: eksdRelease.Name,
ReleaseChannel: eksDReleaseChannel,
KubeVersion: kubeVer,
EksDReleaseUrl: eksDManifestUrl,
GitCommit: r.BuildRepoHead,
KindNode: bundleImageArtifacts["kind-node"],
Ova: anywherev1alpha1.ArchiveBundle{
Bottlerocket: anywherev1alpha1.OvaArchive{
Archive: bundleArchiveArtifacts["bottlerocket"],
},
Ubuntu: anywherev1alpha1.OvaArchive{
Archive: bundleArchiveArtifacts["ubuntu"],
Etcdadm: bundleArchiveArtifacts["etcdadm"],
Crictl: bundleArchiveArtifacts["cri-tools"],
},
},
}
return bundle, nil
}