func()

in release/pkg/assets_eksd.go [33:162]


func (r *ReleaseConfig) GetEksDChannelAssets(eksDReleaseChannel, kubeVer, eksDReleaseNumber string) ([]Artifact, error) {
	// Ova artifacts
	os := "linux"
	arch := "amd64"
	osNames := []string{"ubuntu", "bottlerocket"}
	artifacts := []Artifact{}
	imageBuilderGitTag, err := r.readGitTag(imageBuilderProjectPath, r.BuildRepoBranchName)
	if err != nil {
		return nil, errors.Cause(err)
	}

	for _, osName := range osNames {
		var sourceS3Key string
		var sourceS3Prefix string
		var releaseS3Path string
		var releaseName string
		sourcedFromBranch := r.BuildRepoBranchName
		latestPath := getLatestUploadDestination(sourcedFromBranch)

		if r.DevRelease || r.ReleaseEnvironment == "development" {
			sourceS3Key = fmt.Sprintf("%s.ova", osName)
			sourceS3Prefix = fmt.Sprintf("%s/%s/%s", imageBuilderProjectPath, eksDReleaseChannel, latestPath)
		} else {
			sourceS3Key = fmt.Sprintf("%s-%s-eks-d-%s-%s-eks-a-%d-%s.ova",
				osName,
				kubeVer,
				eksDReleaseChannel,
				eksDReleaseNumber,
				r.BundleNumber,
				arch,
			)
			sourceS3Prefix = fmt.Sprintf("releases/bundles/%d/artifacts/ova/%s", r.BundleNumber, eksDReleaseChannel)
		}

		if r.DevRelease {
			releaseName = fmt.Sprintf("%s-%s-eks-d-%s-%s-eks-a-%s-%s.ova",
				osName,
				kubeVer,
				eksDReleaseChannel,
				eksDReleaseNumber,
				r.DevReleaseUriVersion,
				arch,
			)
			releaseS3Path = fmt.Sprintf("artifacts/%s/eks-distro/ova/%s/%s-%s",
				r.DevReleaseUriVersion,
				eksDReleaseChannel,
				eksDReleaseChannel,
				eksDReleaseNumber,
			)
		} else {
			releaseName = fmt.Sprintf("%s-%s-eks-d-%s-%s-eks-a-%d-%s.ova",
				osName,
				kubeVer,
				eksDReleaseChannel,
				eksDReleaseNumber,
				r.BundleNumber,
				arch,
			)
			releaseS3Path = fmt.Sprintf("releases/bundles/%d/artifacts/ova/%s", r.BundleNumber, eksDReleaseChannel)
		}

		cdnURI, err := r.GetURI(filepath.Join(releaseS3Path, releaseName))
		if err != nil {
			return nil, errors.Cause(err)
		}

		archiveArtifact := &ArchiveArtifact{
			SourceS3Key:       sourceS3Key,
			SourceS3Prefix:    sourceS3Prefix,
			ArtifactPath:      filepath.Join(r.ArtifactDir, "eks-d-ova", eksDReleaseChannel, r.BuildRepoHead),
			ReleaseName:       releaseName,
			ReleaseS3Path:     releaseS3Path,
			ReleaseCdnURI:     cdnURI,
			OS:                os,
			OSName:            osName,
			Arch:              []string{arch},
			GitTag:            imageBuilderGitTag,
			ProjectPath:       imageBuilderProjectPath,
			SourcedFromBranch: sourcedFromBranch,
		}

		artifacts = append(artifacts, Artifact{Archive: archiveArtifact})
	}

	kindGitTag, err := r.readGitTag(kindProjectPath, r.BuildRepoBranchName)
	if err != nil {
		return nil, errors.Cause(err)
	}

	name := "kind-node"
	repoName := "kubernetes-sigs/kind/node"
	tagOptions := map[string]string{
		"eksDReleaseChannel": eksDReleaseChannel,
		"eksDReleaseNumber":  eksDReleaseNumber,
		"kubeVersion":        kubeVer,
		"projectPath":        kindProjectPath,
		"gitTag":             kindGitTag,
	}

	sourceImageUri, sourcedFromBranch, err := r.GetSourceImageURI(name, repoName, tagOptions)
	if err != nil {
		return nil, errors.Cause(err)
	}
	if sourcedFromBranch != r.BuildRepoBranchName {
		kindGitTag, err = r.readGitTag(eksAToolsProjectPath, sourcedFromBranch)
		if err != nil {
			return nil, errors.Cause(err)
		}
		tagOptions["gitTag"] = kindGitTag
	}
	releaseImageUri, err := r.GetReleaseImageURI(name, repoName, tagOptions)
	if err != nil {
		return nil, errors.Cause(err)
	}

	imageArtifact := &ImageArtifact{
		AssetName:         name,
		SourceImageURI:    sourceImageUri,
		ReleaseImageURI:   releaseImageUri,
		Arch:              []string{"amd64"},
		OS:                "linux",
		GitTag:            kindGitTag,
		ProjectPath:       kindProjectPath,
		SourcedFromBranch: sourcedFromBranch,
	}

	artifacts = append(artifacts, Artifact{Image: imageArtifact})

	return artifacts, nil
}