mirror of
https://github.com/vmware-tanzu/velero.git
synced 2026-09-20 23:14:17 +00:00
Use k8s.io/api well-known label constants instead of hardcoded strings (#10279)
* refactor: use k8s.io/api well-known label constants Several well-known Kubernetes label strings were hardcoded across the codebase instead of using the constants already exported by k8s.io/api/core/v1, which is an existing dependency: "kubernetes.io/hostname" -> corev1api.LabelHostname "kubernetes.io/os" -> corev1api.LabelOSStable "topology.kubernetes.io/zone" -> corev1api.LabelTopologyZone The local kube.NodeOSLabel and zoneLabel consts, which duplicated the upstream values verbatim, are now defined in terms of the upstream constants rather than repeating the literal. Both are kept: NodeOSLabel is exported and referenced from four packages alongside NodeOSLinux and NodeOSWindows, which have no upstream equivalent, and zoneLabel sits beside the deprecated-label fallback it is compared against. No functional change - every replacement is a constant with an identical value. Signed-off-by: Harshit saini <harshitsaini1188@gmail.com> * Add changelog for #10279 Signed-off-by: Harshit saini <harshitsaini1188@gmail.com> * Cover the selected-node path in createRestorePod TestCreateRestorePod only exercised selectedNode == "", so the branch that pins the restore pod to a node was never executed. Add a case with a selected node and assert the resulting pod carries the hostname label in its node selector. Signed-off-by: Harshit saini <harshitsaini1188@gmail.com> * Also use constants for the arch and deprecated zone labels Extends the same replacement to the two remaining well-known labels raised on the issue: "kubernetes.io/arch" -> corev1api.LabelArchStable "failure-domain.beta.kubernetes.io/zone" -> corev1api.LabelFailureDomainBetaZone zoneLabelDeprecated in item_backupper.go was the last local const still repeating a literal that upstream already exports, so the zone pair now reads consistently against k8s.io/api. The deprecation note upstream applies to the label itself, not the constant; Velero reads that label deliberately as the fallback for PVs created before the topology labels existed. Signed-off-by: Harshit saini <harshitsaini1188@gmail.com> --------- Signed-off-by: Harshit saini <harshitsaini1188@gmail.com>
This commit is contained in:
@@ -62,7 +62,7 @@ var LoadAffinities func() = TestFunc(&NodeAgentConfigTestCase{
|
||||
{
|
||||
NodeSelector: metav1.LabelSelector{
|
||||
MatchLabels: map[string]string{
|
||||
"kubernetes.io/arch": "amd64",
|
||||
corev1api.LabelArchStable: "amd64",
|
||||
},
|
||||
},
|
||||
StorageClass: test.StorageClassName2,
|
||||
|
||||
@@ -102,7 +102,7 @@ func NewDeployment(
|
||||
{
|
||||
MatchExpressions: []corev1api.NodeSelectorRequirement{
|
||||
{
|
||||
Key: "kubernetes.io/os",
|
||||
Key: corev1api.LabelOSStable,
|
||||
Values: []string{common.WorkerOSWindows},
|
||||
Operator: corev1api.NodeSelectorOpIn,
|
||||
},
|
||||
|
||||
@@ -84,7 +84,7 @@ func CreatePod(
|
||||
{
|
||||
MatchExpressions: []corev1api.NodeSelectorRequirement{
|
||||
{
|
||||
Key: "kubernetes.io/os",
|
||||
Key: corev1api.LabelOSStable,
|
||||
Values: []string{common.WorkerOSWindows},
|
||||
Operator: corev1api.NodeSelectorOpIn,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user