in release/pkg/assets_capa.go [30:145]
func (r *ReleaseConfig) GetCapaAssets() ([]Artifact, error) {
gitTag, err := r.readGitTag(capaProjectPath, r.BuildRepoBranchName)
if err != nil {
return nil, errors.Cause(err)
}
capaImages := []string{
"cluster-api-aws-controller",
"eks-bootstrap-controller",
"eks-control-plane-controller",
}
var imageTagOverrides []ImageTagOverride
sourcedFromBranch := r.BuildRepoBranchName
artifacts := []Artifact{}
for _, image := range capaImages {
var imageTagOverride ImageTagOverride
repoName := fmt.Sprintf("kubernetes-sigs/cluster-api-provider-aws/%s", image)
tagOptions := map[string]string{
"gitTag": gitTag,
"projectPath": capaProjectPath,
}
sourceImageUri, sourcedFromBranch, err := r.GetSourceImageURI(image, repoName, tagOptions)
if err != nil {
return nil, errors.Cause(err)
}
if sourcedFromBranch != r.BuildRepoBranchName {
gitTag, err = r.readGitTag(capaProjectPath, sourcedFromBranch)
if err != nil {
return nil, errors.Cause(err)
}
tagOptions["gitTag"] = gitTag
}
releaseImageUri, err := r.GetReleaseImageURI(image, repoName, tagOptions)
if err != nil {
return nil, errors.Cause(err)
}
imageArtifact := &ImageArtifact{
AssetName: image,
SourceImageURI: sourceImageUri,
ReleaseImageURI: releaseImageUri,
Arch: []string{"amd64"},
OS: "linux",
GitTag: gitTag,
ProjectPath: capaProjectPath,
SourcedFromBranch: sourcedFromBranch,
}
artifacts = append(artifacts, Artifact{Image: imageArtifact})
if image == "cluster-api-aws-controller" {
imageTagOverride = ImageTagOverride{
Repository: repoName,
ReleaseUri: imageArtifact.ReleaseImageURI,
}
imageTagOverrides = append(imageTagOverrides, imageTagOverride)
}
}
kubeRbacProxyImageTagOverride, err := r.GetKubeRbacProxyImageTagOverride()
if err != nil {
return nil, errors.Cause(err)
}
imageTagOverrides = append(imageTagOverrides, kubeRbacProxyImageTagOverride)
manifestList := []string{
"infrastructure-components.yaml",
"cluster-template.yaml",
"metadata.yaml",
}
for _, manifest := range manifestList {
var sourceS3Prefix string
var releaseS3Path string
latestPath := getLatestUploadDestination(sourcedFromBranch)
if r.DevRelease || r.ReleaseEnvironment == "development" {
sourceS3Prefix = fmt.Sprintf("%s/%s/manifests/infrastructure-aws/%s", capaProjectPath, latestPath, gitTag)
} else {
sourceS3Prefix = fmt.Sprintf("releases/bundles/%d/artifacts/cluster-api-provider-aws/manifests/infrastructure-aws/%s", r.BundleNumber, gitTag)
}
if r.DevRelease {
releaseS3Path = fmt.Sprintf("artifacts/%s/cluster-api-provider-aws/manifests/infrastructure-aws/%s", r.DevReleaseUriVersion, gitTag)
} else {
releaseS3Path = fmt.Sprintf("releases/bundles/%d/artifacts/cluster-api-provider-aws/manifests/infrastructure-aws/%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, "capa-manifests", r.BuildRepoHead),
ReleaseName: manifest,
ReleaseS3Path: releaseS3Path,
ReleaseCdnURI: cdnURI,
ImageTagOverrides: imageTagOverrides,
GitTag: gitTag,
ProjectPath: capaProjectPath,
SourcedFromBranch: sourcedFromBranch,
}
artifacts = append(artifacts, Artifact{Manifest: manifestArtifact})
}
return artifacts, nil
}