in internal/manifests/manifestutils/labels.go [24:62]
func Labels(instance metav1.ObjectMeta, name string, image string, component string, filterLabels []string) map[string]string {
var versionLabel string
// new map every time, so that we don't touch the instance's label
base := map[string]string{}
if nil != instance.Labels {
for k, v := range instance.Labels {
if !isFilteredLabel(k, filterLabels) {
base[k] = v
}
}
}
for k, v := range SelectorLabels(instance, component) {
base[k] = v
}
if len(image) > 0 {
version := strings.Split(image, ":")
for _, v := range version {
if strings.HasSuffix(v, "@sha256") {
versionLabel = strings.TrimSuffix(v, "@sha256")
}
}
switch lenVersion := len(version); lenVersion {
case 3:
base["app.kubernetes.io/version"] = versionLabel
case 2:
base["app.kubernetes.io/version"] = naming.Truncate("%s", 63, version[len(version)-1])
default:
base["app.kubernetes.io/version"] = "latest"
}
}
// Don't override the app name if it already exists
if _, ok := base["app.kubernetes.io/name"]; !ok {
base["app.kubernetes.io/name"] = name
}
return base
}