Skip to content
This repository was archived by the owner on Jan 19, 2022. It is now read-only.

Commit 5c0793a

Browse files
authored
Merge pull request #28 from cloudfoundry-incubator/add-volume-name-helper
Add the volume name sanitizer
2 parents 72f0e7a + 52d849b commit 5c0793a

File tree

3 files changed

+29
-0
lines changed

3 files changed

+29
-0
lines changed

pkg/names/names.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,18 @@ func JobName(eJobName string) (string, error) {
162162
return fmt.Sprintf("%s-%s", name, hashID), nil
163163
}
164164

165+
// VolumeName generate volume name based on secret name
166+
func VolumeName(secretName string) string {
167+
nameSlices := strings.Split(secretName, ".")
168+
volName := ""
169+
if len(nameSlices) > 1 {
170+
volName = nameSlices[1]
171+
} else {
172+
volName = nameSlices[0]
173+
}
174+
return Sanitize(volName)
175+
}
176+
165177
var podOrdinalRegex = regexp.MustCompile(`(.*)-([0-9]+)$`)
166178

167179
// OrdinalFromPodName returns ordinal from pod name

pkg/names/names_test.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,22 @@ var _ = Describe("Names", func() {
6161
})
6262
})
6363

64+
Context("VolumeName", func() {
65+
tests := []test{
66+
{arg1: "secret", result: "secret"},
67+
{arg1: "secret.name", result: "name"},
68+
{arg1: long63, result: long63},
69+
{arg1: long63 + ".foo", result: "foo"},
70+
{arg1: "foo." + long63, result: "a123456789012345678901234567890b123456789012345678901234567890c"},
71+
}
72+
73+
It("produces valid k8s names", func() {
74+
for _, t := range tests {
75+
Expect(names.VolumeName(t.arg1)).To(Equal(t.result), fmt.Sprintf("%#v", t))
76+
}
77+
})
78+
})
79+
6480
Context("SecretName", func() {
6581
type test struct {
6682
arg1 names.DeploymentSecretType

pkg/versionedsecretstore/versioned_secret.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ func IsVersionedSecret(secret corev1.Secret) bool {
2525

2626
var nameRegex = regexp.MustCompile(`^\S+-v(\d+)$`)
2727

28+
// IsVersionedSecretName returns true if name matches the name of a versioned secret
2829
func IsVersionedSecretName(name string) bool {
2930
return len(nameRegex.FindStringSubmatch(name)) > 0
3031
}

0 commit comments

Comments
 (0)