Skip to content

Commit 9981ea8

Browse files
pooknullhors
andauthored
K8SPS-426: use app.kubernetes.io/version label (#897)
* K8SPS-426: use `app.kubernetes.io/version` label https://perconadev.atlassian.net/browse/K8SPS-426 * add more labels to the crd.yaml * fix labels --------- Co-authored-by: Viacheslav Sarzhan <[email protected]>
1 parent cfa2781 commit 9981ea8

10 files changed

+86
-34
lines changed

api/v1alpha1/perconaservermysql_types.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -962,12 +962,10 @@ func (p *PodSpec) GetTopologySpreadConstraints(ls map[string]string) []corev1.To
962962

963963
// Labels returns a standardized set of labels for the PerconaServerMySQL custom resource.
964964
func (cr *PerconaServerMySQL) Labels() map[string]string {
965-
return map[string]string{
966-
naming.LabelName: "percona-server",
967-
naming.LabelInstance: cr.Name,
968-
naming.LabelManagedBy: "percona-server-operator",
969-
naming.LabelPartOf: "percona-server",
970-
}
965+
l := naming.Labels()
966+
l[naming.LabelInstance] = cr.Name
967+
l[naming.LabelManagedBy] = "percona-server-operator"
968+
return l
971969
}
972970

973971
// ClusterHint generates a unique identifier for the PerconaServerMySQL

config/crd/patches/versionlabel_in_perconaserverformysql.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,7 @@ kind: CustomResourceDefinition
33
metadata:
44
name: perconaservermysqls.ps.percona.com
55
labels:
6-
mysql.percona.com/version: v0.10.0
6+
app.kubernetes.io/version: v0.10.0
7+
app.kubernetes.io/name: percona-server
8+
app.kubernetes.io/part-of: percona-server-mysql-operator
9+
app.kubernetes.io/component: crd

config/crd/patches/versionlabel_in_perconaserverformysqlbackups.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,7 @@ kind: CustomResourceDefinition
33
metadata:
44
name: perconaservermysqlbackups.ps.percona.com
55
labels:
6-
mysql.percona.com/version: v0.10.0
6+
app.kubernetes.io/version: v0.10.0
7+
app.kubernetes.io/name: percona-server
8+
app.kubernetes.io/part-of: percona-server-mysql-operator
9+
app.kubernetes.io/component: crd

config/crd/patches/versionlabel_in_perconaserverformysqlrestores.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,7 @@ kind: CustomResourceDefinition
33
metadata:
44
name: perconaservermysqlrestores.ps.percona.com
55
labels:
6-
mysql.percona.com/version: v0.10.0
6+
app.kubernetes.io/version: v0.10.0
7+
app.kubernetes.io/name: percona-server
8+
app.kubernetes.io/part-of: percona-server-mysql-operator
9+
app.kubernetes.io/component: crd

deploy/bundle.yaml

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@ metadata:
44
annotations:
55
controller-gen.kubebuilder.io/version: v0.16.3
66
labels:
7-
mysql.percona.com/version: v0.10.0
7+
app.kubernetes.io/component: crd
8+
app.kubernetes.io/name: percona-server
9+
app.kubernetes.io/part-of: percona-server-mysql-operator
10+
app.kubernetes.io/version: v0.10.0
811
name: perconaservermysqlbackups.ps.percona.com
912
spec:
1013
group: ps.percona.com
@@ -961,7 +964,10 @@ metadata:
961964
annotations:
962965
controller-gen.kubebuilder.io/version: v0.16.3
963966
labels:
964-
mysql.percona.com/version: v0.10.0
967+
app.kubernetes.io/component: crd
968+
app.kubernetes.io/name: percona-server
969+
app.kubernetes.io/part-of: percona-server-mysql-operator
970+
app.kubernetes.io/version: v0.10.0
965971
name: perconaservermysqlrestores.ps.percona.com
966972
spec:
967973
group: ps.percona.com
@@ -1917,7 +1923,10 @@ metadata:
19171923
annotations:
19181924
controller-gen.kubebuilder.io/version: v0.16.3
19191925
labels:
1920-
mysql.percona.com/version: v0.10.0
1926+
app.kubernetes.io/component: crd
1927+
app.kubernetes.io/name: percona-server
1928+
app.kubernetes.io/part-of: percona-server-mysql-operator
1929+
app.kubernetes.io/version: v0.10.0
19211930
name: perconaservermysqls.ps.percona.com
19221931
spec:
19231932
group: ps.percona.com

deploy/crd.yaml

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@ metadata:
44
annotations:
55
controller-gen.kubebuilder.io/version: v0.16.3
66
labels:
7-
mysql.percona.com/version: v0.10.0
7+
app.kubernetes.io/component: crd
8+
app.kubernetes.io/name: percona-server
9+
app.kubernetes.io/part-of: percona-server-mysql-operator
10+
app.kubernetes.io/version: v0.10.0
811
name: perconaservermysqlbackups.ps.percona.com
912
spec:
1013
group: ps.percona.com
@@ -961,7 +964,10 @@ metadata:
961964
annotations:
962965
controller-gen.kubebuilder.io/version: v0.16.3
963966
labels:
964-
mysql.percona.com/version: v0.10.0
967+
app.kubernetes.io/component: crd
968+
app.kubernetes.io/name: percona-server
969+
app.kubernetes.io/part-of: percona-server-mysql-operator
970+
app.kubernetes.io/version: v0.10.0
965971
name: perconaservermysqlrestores.ps.percona.com
966972
spec:
967973
group: ps.percona.com
@@ -1917,7 +1923,10 @@ metadata:
19171923
annotations:
19181924
controller-gen.kubebuilder.io/version: v0.16.3
19191925
labels:
1920-
mysql.percona.com/version: v0.10.0
1926+
app.kubernetes.io/component: crd
1927+
app.kubernetes.io/name: percona-server
1928+
app.kubernetes.io/part-of: percona-server-mysql-operator
1929+
app.kubernetes.io/version: v0.10.0
19211930
name: perconaservermysqls.ps.percona.com
19221931
spec:
19231932
group: ps.percona.com

deploy/cw-bundle.yaml

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@ metadata:
44
annotations:
55
controller-gen.kubebuilder.io/version: v0.16.3
66
labels:
7-
mysql.percona.com/version: v0.10.0
7+
app.kubernetes.io/component: crd
8+
app.kubernetes.io/name: percona-server
9+
app.kubernetes.io/part-of: percona-server-mysql-operator
10+
app.kubernetes.io/version: v0.10.0
811
name: perconaservermysqlbackups.ps.percona.com
912
spec:
1013
group: ps.percona.com
@@ -961,7 +964,10 @@ metadata:
961964
annotations:
962965
controller-gen.kubebuilder.io/version: v0.16.3
963966
labels:
964-
mysql.percona.com/version: v0.10.0
967+
app.kubernetes.io/component: crd
968+
app.kubernetes.io/name: percona-server
969+
app.kubernetes.io/part-of: percona-server-mysql-operator
970+
app.kubernetes.io/version: v0.10.0
965971
name: perconaservermysqlrestores.ps.percona.com
966972
spec:
967973
group: ps.percona.com
@@ -1917,7 +1923,10 @@ metadata:
19171923
annotations:
19181924
controller-gen.kubebuilder.io/version: v0.16.3
19191925
labels:
1920-
mysql.percona.com/version: v0.10.0
1926+
app.kubernetes.io/component: crd
1927+
app.kubernetes.io/name: percona-server
1928+
app.kubernetes.io/part-of: percona-server-mysql-operator
1929+
app.kubernetes.io/version: v0.10.0
19211930
name: perconaservermysqls.ps.percona.com
19221931
spec:
19231932
group: ps.percona.com

pkg/naming/naming.go

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,18 @@ package naming
33
const (
44
perconaPrefix = "percona.com/"
55
mysqlPerconaPrefix = "mysql.percona.com/"
6+
7+
kubernetesPrefix = "app.kubernetes.io/"
68
)
79

810
const (
9-
LabelName = "app.kubernetes.io/name"
10-
LabelInstance = "app.kubernetes.io/instance"
11-
LabelManagedBy = "app.kubernetes.io/managed-by"
12-
LabelPartOf = "app.kubernetes.io/part-of"
13-
LabelComponent = "app.kubernetes.io/component"
11+
LabelName = kubernetesPrefix + "name"
12+
LabelInstance = kubernetesPrefix + "instance"
13+
LabelManagedBy = kubernetesPrefix + "managed-by"
14+
LabelPartOf = kubernetesPrefix + "part-of"
15+
LabelComponent = kubernetesPrefix + "component"
16+
17+
LabelOperatorVersion = kubernetesPrefix + "version"
1418
)
1519

1620
const (
@@ -27,10 +31,6 @@ const (
2731
LabelBackupAncestor = perconaPrefix + "backup-ancestor"
2832
)
2933

30-
const (
31-
LabelOperatorVersion = mysqlPerconaPrefix + "version"
32-
)
33-
3434
const (
3535
FinalizerDeleteSSL = perconaPrefix + "delete-ssl"
3636
FinalizerDeletePodsInOrder = perconaPrefix + "delete-mysql-pods-in-order"
@@ -51,3 +51,11 @@ const (
5151
AnnotationPasswordsUpdated AnnotationKey = perconaPrefix + "passwords-updated"
5252
AnnotationLastConfigHash AnnotationKey = perconaPrefix + "last-config-hash"
5353
)
54+
55+
// Labels returns a minimal set of labels.
56+
func Labels() map[string]string {
57+
return map[string]string{
58+
LabelName: "percona-server",
59+
LabelPartOf: "percona-server",
60+
}
61+
}

pkg/version/version.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ import (
55
"strings"
66
)
77

8-
//go:generate sh -c "yq -i '.metadata.labels.\"mysql.percona.com/version\" = \"v\" + load(\"version.txt\")' ../../config/crd/patches/versionlabel_in_perconaserverformysql.yaml"
9-
//go:generate sh -c "yq -i '.metadata.labels.\"mysql.percona.com/version\" = \"v\" + load(\"version.txt\")' ../../config/crd/patches/versionlabel_in_perconaserverformysqlbackups.yaml"
10-
//go:generate sh -c "yq -i '.metadata.labels.\"mysql.percona.com/version\" = \"v\" + load(\"version.txt\")' ../../config/crd/patches/versionlabel_in_perconaserverformysqlrestores.yaml"
8+
//go:generate sh -c "yq -i '.metadata.labels.\"app.kubernetes.io/version\" = \"v\" + load(\"version.txt\")' ../../config/crd/patches/versionlabel_in_perconaserverformysql.yaml"
9+
//go:generate sh -c "yq -i '.metadata.labels.\"app.kubernetes.io/version\" = \"v\" + load(\"version.txt\")' ../../config/crd/patches/versionlabel_in_perconaserverformysqlbackups.yaml"
10+
//go:generate sh -c "yq -i '.metadata.labels.\"app.kubernetes.io/version\" = \"v\" + load(\"version.txt\")' ../../config/crd/patches/versionlabel_in_perconaserverformysqlrestores.yaml"
1111

1212
//go:embed version.txt
1313
var version string

pkg/version/version_test.go

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,20 @@ func TestCRDVersionLabel(t *testing.T) {
3535
if err := yaml.Unmarshal(doc, crd); err != nil {
3636
t.Fatalf("Failed to unmarshal crd: %s", err.Error())
3737
}
38-
expected := "v" + version.Version()
39-
if crd.Labels[naming.LabelOperatorVersion] != expected {
40-
t.Logf("invalid version is specified in %s label of %s CustomResourceDefinition: have: %s, expected: %s", naming.LabelOperatorVersion, crd.Name, crd.Labels[naming.LabelOperatorVersion], expected)
41-
t.Log([]byte(crd.Labels[naming.LabelOperatorVersion]), []byte(expected))
38+
expectedVersion := "v" + version.Version()
39+
expectedLabels := naming.Labels()
40+
expectedLabels[naming.LabelOperatorVersion] = expectedVersion
41+
expectedLabels[naming.LabelComponent] = "crd"
42+
43+
// TODO: remove this line after https://perconadev.atlassian.net/browse/K8SPS-442 implementation
44+
expectedLabels[naming.LabelPartOf] = "percona-server-mysql-operator"
45+
46+
for k, expectedValue := range expectedLabels {
47+
if crd.Labels[k] == expectedValue {
48+
continue
49+
}
50+
t.Logf("invalid value is specified in %s label of %s CustomResourceDefinition: have: %s, expected: %s", k, crd.Name, crd.Labels[k], expectedValue)
51+
t.Log([]byte(crd.Labels[k]), []byte(expectedValue))
4252
t.Fail()
4353
}
4454
}

0 commit comments

Comments
 (0)