in release/pkg/assets_cluster_controller.go [30:147]
func (r *ReleaseConfig) GetClusterControllerAssets() ([]Artifact, error) {
var gitTag string
if r.DevRelease {
// Get git tag
out, err := git.GetRepoTags(r.CliRepoSource)
if err != nil {
return nil, errors.Cause(err)
}
gitTags := strings.Split(out, "\n")
gitTag = gitTags[len(gitTags)-2]
if err != nil {
return nil, errors.Cause(err)
}
} else {
gitTag = r.ReleaseVersion
}
name := "eks-anywhere-cluster-controller"
var sourceRepoName string
var releaseRepoName string
if r.DevRelease || r.ReleaseEnvironment == "development" {
sourceRepoName = "eks-anywhere-cluster-controller"
} else {
sourceRepoName = "cluster-controller"
}
if r.DevRelease {
releaseRepoName = "eks-anywhere-cluster-controller"
} else {
releaseRepoName = "cluster-controller"
}
tagOptions := map[string]string{
"gitTag": gitTag,
"projectPath": eksAnywhereProjectPath,
}
sourceImageUri, sourcedFromBranch, err := r.GetSourceImageURI(name, sourceRepoName, tagOptions)
if err != nil {
return nil, errors.Cause(err)
}
if sourcedFromBranch != r.BuildRepoBranchName {
gitTag, err = r.readGitTag(eksAnywhereProjectPath, sourcedFromBranch)
if err != nil {
return nil, errors.Cause(err)
}
tagOptions["gitTag"] = gitTag
}
releaseImageUri, err := r.GetReleaseImageURI(name, releaseRepoName, tagOptions)
if err != nil {
return nil, errors.Cause(err)
}
imageArtifact := &ImageArtifact{
AssetName: name,
SourceImageURI: sourceImageUri,
ReleaseImageURI: releaseImageUri,
Arch: []string{"amd64"},
OS: "linux",
GitTag: gitTag,
ProjectPath: eksAnywhereProjectPath,
SourcedFromBranch: sourcedFromBranch,
}
artifacts := []Artifact{Artifact{Image: imageArtifact}}
var imageTagOverrides []ImageTagOverride
kubeRbacProxyImageTagOverride, err := r.GetKubeRbacProxyImageTagOverride()
if err != nil {
return nil, errors.Cause(err)
}
imageTagOverride := ImageTagOverride{
Repository: sourceRepoName,
ReleaseUri: imageArtifact.ReleaseImageURI,
}
imageTagOverrides = append(imageTagOverrides, imageTagOverride, kubeRbacProxyImageTagOverride)
manifest := "eksa-components.yaml"
var sourceS3Prefix string
var releaseS3Path string
latestPath := getLatestUploadDestination(sourcedFromBranch)
if r.DevRelease || r.ReleaseEnvironment == "development" {
sourceS3Prefix = fmt.Sprintf("%s/%s/manifests/cluster-controller", eksAnywhereProjectPath, latestPath)
} else {
sourceS3Prefix = fmt.Sprintf("releases/bundles/%d/artifacts/eks-anywhere-cluster-controller/manifests/%s", r.BundleNumber, gitTag)
}
if r.DevRelease {
releaseS3Path = fmt.Sprintf("artifacts/%s/eks-anywhere/manifests/cluster-controller/%s", r.DevReleaseUriVersion, gitTag)
} else {
releaseS3Path = fmt.Sprintf("releases/bundles/%d/artifacts/eks-anywhere-cluster-controller/manifests/%s", r.BundleNumber, gitTag)
}
cdnURI, err := r.GetURI(filepath.Join(releaseS3Path, manifest))
if err != nil {
return nil, errors.Cause(err)
}
manifestArtifact := &ManifestArtifact{
SourceS3Key: manifest,
SourceS3Prefix: sourceS3Prefix,
ArtifactPath: filepath.Join(r.ArtifactDir, "cluster-controller-manifests", r.BuildRepoHead),
ReleaseName: manifest,
ReleaseS3Path: releaseS3Path,
ReleaseCdnURI: cdnURI,
ImageTagOverrides: imageTagOverrides,
GitTag: gitTag,
ProjectPath: eksAnywhereProjectPath,
}
artifacts = append(artifacts, Artifact{Manifest: manifestArtifact})
return artifacts, nil
}