create a default preparedDB if not specified

This commit is contained in:
Felix Kunde 2019-09-26 13:50:02 +02:00
parent 06313615fe
commit 9d9807afef
2 changed files with 18 additions and 1 deletions

View File

@ -8,6 +8,7 @@ import (
"fmt"
"reflect"
"regexp"
"strings"
"sync"
"time"
@ -779,10 +780,19 @@ func (c *Cluster) initSystemUsers() {
func (c *Cluster) initPreparedDatabaseRoles() error {
for preparedDbName, preparedDB := range c.Spec.PreparedDatabases {
preparedDatabases := c.Spec.PreparedDatabases
if preparedDatabases == nil || len(preparedDatabases) == 0 { // TODO: add option to disable creating such a default DB
preparedDatabases = map[string]acidv1.PreparedDatabase{strings.Replace(c.Name, "-", "_", -1): {}}
c.Spec.PreparedDatabases = preparedDatabases
}
for preparedDbName, preparedDB := range preparedDatabases {
// default roles per database
if err := c.initDefaultRoles("admin", preparedDbName); err != nil {
return fmt.Errorf("could not initialize default roles for database %s: %v", preparedDbName, err)
}
// default roles per database schema
preparedSchemas := preparedDB.PreparedSchemas
if len(preparedDB.PreparedSchemas) == 0 {
preparedSchemas = map[string]acidv1.PreparedSchema{"data": {DefaultRoles: util.True()}}

View File

@ -2,6 +2,7 @@ package cluster
import (
"fmt"
"strings"
batchv1beta1 "k8s.io/api/batch/v1beta1"
v1 "k8s.io/api/core/v1"
@ -509,6 +510,12 @@ func (c *Cluster) syncDatabases() error {
return fmt.Errorf("could not get current databases: %v", err)
}
// if no prepared databases are specified create a database named like the cluster
preparedDatabases := c.Spec.PreparedDatabases
if preparedDatabases == nil || len(preparedDatabases) == 0 { // TODO: add option to disable creating such a default DB
preparedDatabases = map[string]acidv1.PreparedDatabase{strings.Replace(c.Name, "-", "_", -1): {}}
c.Spec.PreparedDatabases = preparedDatabases
}
for preparedDatname := range c.Spec.PreparedDatabases {
_, exists := currentDatabases[preparedDatname]
if !exists {