mirror of
https://github.com/vmware-tanzu/velero.git
synced 2026-08-15 11:46:06 +00:00
Bug fix: Calculate label using backup name for CSI objects (#2510)
* Use a helper function when querying w/ backup label Setting or querying for a backup label name should always pass the value through the GetValidName function. This change passes query uses of the backup label value through the GetValidName function by introducing 2 new helpers, one for making a Selector, one for making a ListOptions. It also removes functions returning the same data, but under unecessarily specific names. Signed-off-by: Nolan Brubaker <brubakern@vmware.com> * Document using the label.GetValidName function Signed-off-by: Nolan Brubaker <brubakern@vmware.com> * Update copyright year Signed-off-by: Nolan Brubaker <brubakern@vmware.com> * Clarify labels.GetValidName and annotations Signed-off-by: Nolan Brubaker <brubakern@vmware.com> * Move functions to pkg/label Signed-off-by: Nolan Brubaker <brubakern@vmware.com> * Fix function comments Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
This commit is contained in:
@@ -20,7 +20,11 @@ import (
|
||||
"crypto/sha256"
|
||||
"fmt"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
"k8s.io/apimachinery/pkg/util/validation"
|
||||
|
||||
velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1"
|
||||
)
|
||||
|
||||
// GetValidName converts an input string to valid kubernetes label string in accordance to rfc1035 DNS Label spec
|
||||
@@ -43,3 +47,17 @@ func GetValidName(label string) string {
|
||||
|
||||
return label[:charsFromLabel] + strSha[:6]
|
||||
}
|
||||
|
||||
// NewSelectorForBackup returns a Selector based on the backup name.
|
||||
// This is useful for interacting with Listers that need a Selector.
|
||||
func NewSelectorForBackup(name string) labels.Selector {
|
||||
return labels.SelectorFromSet(map[string]string{velerov1api.BackupNameLabel: GetValidName(name)})
|
||||
}
|
||||
|
||||
// NewListOptionsForBackup returns a ListOptions based on the backup name.
|
||||
// This is useful for interacting with client-go clients that needs a ListOptions.
|
||||
func NewListOptionsForBackup(name string) metav1.ListOptions {
|
||||
return metav1.ListOptions{
|
||||
LabelSelector: fmt.Sprintf("%s=%s", velerov1api.BackupNameLabel, GetValidName(name)),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user