in release/pkg/generate_spec.go [466:565]
func (r *ReleaseConfig) GetReleaseImageURI(name, repoName string, tagOptions map[string]string) (string, error) {
var releaseImageUri string
if name == "bottlerocket-bootstrap" {
releaseImageUri = fmt.Sprintf("%s/%s:v%s-%s-eks-a",
r.ReleaseContainerRegistry,
repoName,
tagOptions["eksDReleaseChannel"],
tagOptions["eksDReleaseNumber"],
)
} else if name == "cloud-provider-vsphere" {
releaseImageUri = fmt.Sprintf("%s/%s:%s-eks-d-%s-eks-a",
r.ReleaseContainerRegistry,
repoName,
tagOptions["gitTag"],
tagOptions["eksDReleaseChannel"],
)
} else if name == "eks-anywhere-cluster-controller" {
if r.DevRelease {
releaseImageUri = fmt.Sprintf("%s/%s:v0.0.0-eks-a",
r.ReleaseContainerRegistry,
repoName,
)
} else {
releaseImageUri = fmt.Sprintf("%s/%s:%s-eks-a",
r.ReleaseContainerRegistry,
repoName,
r.ReleaseVersion,
)
}
} else if name == "eks-anywhere-diagnostic-collector" {
if r.DevRelease {
releaseImageUri = fmt.Sprintf("%s/%s:v0.0.0-eks-a",
r.ReleaseContainerRegistry,
repoName,
)
} else {
releaseImageUri = fmt.Sprintf("%s/%s:%s-eks-a",
r.ReleaseContainerRegistry,
repoName,
r.ReleaseVersion,
)
}
} else if name == "kind-node" {
releaseImageUri = fmt.Sprintf("%s/%s:%s-eks-d-%s-%s-eks-a",
r.ReleaseContainerRegistry,
repoName,
tagOptions["kubeVersion"],
tagOptions["eksDReleaseChannel"],
tagOptions["eksDReleaseNumber"],
)
} else {
releaseImageUri = fmt.Sprintf("%s/%s:%s-eks-a",
r.ReleaseContainerRegistry,
repoName,
tagOptions["gitTag"],
)
}
var semver string
if r.DevRelease {
currentSourceImageUri, _, err := r.GetSourceImageURI(name, repoName, tagOptions)
if err != nil {
return "", errors.Cause(err)
}
previousReleaseImageSemver, err := r.GetPreviousReleaseImageSemver(releaseImageUri)
if err != nil {
return "", errors.Cause(err)
}
if previousReleaseImageSemver == "" {
semver = r.DevReleaseUriVersion
} else {
fmt.Printf("Previous release image semver for %s image: %s\n", repoName, previousReleaseImageSemver)
previousReleaseImageUri := fmt.Sprintf("%s-%s", releaseImageUri, previousReleaseImageSemver)
sameDigest, err := r.CompareHashWithPreviousBundle(currentSourceImageUri, previousReleaseImageUri)
if err != nil {
return "", errors.Cause(err)
}
if sameDigest {
semver = previousReleaseImageSemver
fmt.Printf("Image digest for %s image has not changed, tagging with previous dev release semver: %s\n", repoName, semver)
} else {
newSemver, err := generateNewDevReleaseVersion(previousReleaseImageSemver, "vDev", r.BuildRepoBranchName)
if err != nil {
return "", errors.Cause(err)
}
semver = strings.ReplaceAll(newSemver, "+", "-")
fmt.Printf("Image digest for %s image has changed, tagging with new dev release semver: %s\n", repoName, semver)
}
}
} else {
semver = fmt.Sprintf("%d", r.BundleNumber)
}
releaseImageUri = fmt.Sprintf("%s-%s", releaseImageUri, semver)
return releaseImageUri, nil
}