Skip to content

Commit 0455f60

Browse files
committed
Prefix generated username with 'default_user_'
- it will make it easier to specify exclusion rules when using schema sync plugin
1 parent 0706227 commit 0455f60

File tree

2 files changed

+25
-12
lines changed

2 files changed

+25
-12
lines changed

internal/resource/default_user_secret.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ const (
2929
DefaultUserSecretName = "default-user"
3030
bindingProvider = "rabbitmq"
3131
bindingType = "rabbitmq"
32+
usernamePrefix = "default_user_"
3233
)
3334

3435
type DefaultUserSecretBuilder struct {
@@ -40,7 +41,7 @@ func (builder *RabbitmqResourceBuilder) DefaultUserSecret() *DefaultUserSecretBu
4041
}
4142

4243
func (builder *DefaultUserSecretBuilder) Build() (client.Object, error) {
43-
username, err := randomEncodedString(24)
44+
username, err := generateUsername(24)
4445
if err != nil {
4546
return nil, err
4647
}
@@ -146,6 +147,18 @@ func (builder *DefaultUserSecretBuilder) updatePorts(secret *corev1.Secret) {
146147
}
147148
}
148149

150+
// generateUsername returns a base64 string that has "default_user_" as prefix
151+
// returned string has length 'l' when base64 decoded
152+
func generateUsername(l int) (string, error) {
153+
encodedStr, err := randomEncodedString(l)
154+
if err != nil {
155+
return "", err
156+
}
157+
158+
encodedStrSlice := []byte(encodedStr)
159+
return string(append([]byte(usernamePrefix), encodedStrSlice[0:len(encodedStrSlice)-len(usernamePrefix)]...)), nil
160+
}
161+
149162
func (builder *DefaultUserSecretBuilder) pluginEnabled(plugin v1beta1.Plugin) bool {
150163
for _, value := range builder.Instance.Spec.Rabbitmq.AdditionalPlugins {
151164
if value == plugin {

internal/resource/default_user_secret_test.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,16 @@ package resource_test
1111

1212
import (
1313
b64 "encoding/base64"
14-
15-
"gopkg.in/ini.v1"
16-
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
17-
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
18-
"k8s.io/apimachinery/pkg/runtime"
19-
defaultscheme "k8s.io/client-go/kubernetes/scheme"
20-
2114
. "github.com/onsi/ginkgo"
2215
. "github.com/onsi/gomega"
2316
rabbitmqv1beta1 "github.com/rabbitmq/cluster-operator/api/v1beta1"
2417
"github.com/rabbitmq/cluster-operator/internal/resource"
18+
"gopkg.in/ini.v1"
2519
corev1 "k8s.io/api/core/v1"
20+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
21+
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
22+
"k8s.io/apimachinery/pkg/runtime"
23+
defaultscheme "k8s.io/client-go/kubernetes/scheme"
2624
)
2725

2826
var _ = Describe("DefaultUserSecret", func() {
@@ -72,15 +70,17 @@ var _ = Describe("DefaultUserSecret", func() {
7270
Expect(secret.Type).To(Equal(corev1.SecretTypeOpaque))
7371
})
7472

75-
By("creating a rabbitmq username that is base64 encoded and 24 characters in length", func() {
73+
By("creating a rabbitmq username that has a prefix 'default_user_', base64 encoded, and 24 characters in length when decoded", func() {
7674
username, ok = secret.Data["username"]
7775
Expect(ok).NotTo(BeFalse(), "Failed to find a key \"username\" in the generated Secret")
78-
decodedUsername, err := b64.URLEncoding.DecodeString(string(username))
76+
Expect(string(username)).To(HavePrefix("default_user_"))
77+
//strList := strings.SplitAfter(string(username), "default_user_")
78+
decoded, err := b64.URLEncoding.DecodeString(string(username))
7979
Expect(err).NotTo(HaveOccurred())
80-
Expect(len(decodedUsername)).To(Equal(24))
80+
Expect(len(decoded)).To(Equal(24))
8181
})
8282

83-
By("creating a rabbitmq password that is base64 encoded and 24 characters in length", func() {
83+
By("creating a rabbitmq password that is base64 encoded and 24 characters in length when decoded", func() {
8484
password, ok = secret.Data["password"]
8585
Expect(ok).NotTo(BeFalse(), "Failed to find a key \"password\" in the generated Secret")
8686
decodedPassword, err := b64.URLEncoding.DecodeString(string(password))

0 commit comments

Comments
 (0)