create a default preparedDB if not specified
This commit is contained in:
		
							parent
							
								
									06313615fe
								
							
						
					
					
						commit
						9d9807afef
					
				| 
						 | 
				
			
			@ -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()}}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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 {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue