This repository has been archived by the owner on Nov 16, 2022. It is now read-only.
/
database_secret.go
60 lines (55 loc) · 2.14 KB
/
database_secret.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package model
import (
"github.com/keycloak/keycloak-operator/pkg/apis/keycloak/v1alpha1"
v1 "k8s.io/api/core/v1"
v12 "k8s.io/apimachinery/pkg/apis/meta/v1"
"sigs.k8s.io/controller-runtime/pkg/client"
)
func DatabaseSecret(cr *v1alpha1.Keycloak) *v1.Secret {
return &v1.Secret{
ObjectMeta: v12.ObjectMeta{
Name: DatabaseSecretName,
Namespace: cr.Namespace,
Labels: map[string]string{
"app": ApplicationName,
},
},
Data: map[string][]byte{
DatabaseSecretUsernameProperty: []byte(PostgresqlUsername),
DatabaseSecretPasswordProperty: []byte(cr.ObjectMeta.Name + "-" + GenerateRandomString(PostgresqlPasswordLength)),
// The 3 entries below are not used by the Operator itself but rather by the Backup container
DatabaseSecretDatabaseProperty: []byte(PostgresqlDatabase),
DatabaseSecretHostProperty: []byte(PostgresqlServiceName),
DatabaseSecretVersionProperty: []byte("10"),
DatabaseSecretSslModeProperty: []byte(nil),
},
}
}
func DatabaseSecretSelector(cr *v1alpha1.Keycloak) client.ObjectKey {
return client.ObjectKey{
Name: DatabaseSecretName,
Namespace: cr.Namespace,
}
}
func DatabaseSecretReconciled(cr *v1alpha1.Keycloak, currentState *v1.Secret) *v1.Secret {
reconciled := currentState.DeepCopy()
if reconciled.Data == nil || len(reconciled.Data) == 0 {
reconciled.Data = make(map[string][]byte)
}
if _, ok := reconciled.Data[DatabaseSecretUsernameProperty]; !ok {
reconciled.Data[DatabaseSecretUsernameProperty] = []byte(PostgresqlUsername)
}
if _, ok := reconciled.Data[DatabaseSecretPasswordProperty]; !ok {
reconciled.Data[DatabaseSecretPasswordProperty] = []byte(cr.ObjectMeta.Name + "-" + GenerateRandomString(PostgresqlPasswordLength))
}
if _, ok := reconciled.Data[DatabaseSecretDatabaseProperty]; !ok {
reconciled.Data[DatabaseSecretDatabaseProperty] = []byte(PostgresqlDatabase)
}
if _, ok := reconciled.Data[DatabaseSecretHostProperty]; !ok {
reconciled.Data[DatabaseSecretHostProperty] = []byte(PostgresqlServiceName)
}
if _, ok := reconciled.Data[DatabaseSecretVersionProperty]; !ok {
reconciled.Data[DatabaseSecretVersionProperty] = []byte("10")
}
return reconciled
}