mirror of
https://github.com/zalando/postgres-operator.git
synced 2026-10-22 07:39:31 +02:00
Do not create roles if cluster is masterless
fix pod deletion
This commit is contained in:
+33
-26
@@ -56,12 +56,14 @@ type Cluster struct {
|
||||
kubeResources
|
||||
spec.Postgresql
|
||||
Config
|
||||
logger *logrus.Entry
|
||||
pgUsers map[string]spec.PgUser
|
||||
podEvents chan spec.PodEvent
|
||||
podSubscribers map[spec.NamespacedName]chan spec.PodEvent
|
||||
pgDb *sql.DB
|
||||
mu sync.Mutex
|
||||
logger *logrus.Entry
|
||||
pgUsers map[string]spec.PgUser
|
||||
podEvents chan spec.PodEvent
|
||||
podSubscribers map[spec.NamespacedName]chan spec.PodEvent
|
||||
pgDb *sql.DB
|
||||
mu sync.Mutex
|
||||
masterLess bool
|
||||
podDispatcherRunning bool
|
||||
}
|
||||
|
||||
func New(cfg Config, pgSpec spec.Postgresql, logger *logrus.Logger) *Cluster {
|
||||
@@ -69,13 +71,15 @@ func New(cfg Config, pgSpec spec.Postgresql, logger *logrus.Logger) *Cluster {
|
||||
kubeResources := kubeResources{Secrets: make(map[types.UID]*v1.Secret)}
|
||||
|
||||
cluster := &Cluster{
|
||||
Config: cfg,
|
||||
Postgresql: pgSpec,
|
||||
logger: lg,
|
||||
pgUsers: make(map[string]spec.PgUser),
|
||||
podEvents: make(chan spec.PodEvent),
|
||||
podSubscribers: make(map[spec.NamespacedName]chan spec.PodEvent),
|
||||
kubeResources: kubeResources,
|
||||
Config: cfg,
|
||||
Postgresql: pgSpec,
|
||||
logger: lg,
|
||||
pgUsers: make(map[string]spec.PgUser),
|
||||
podEvents: make(chan spec.PodEvent),
|
||||
podSubscribers: make(map[spec.NamespacedName]chan spec.PodEvent),
|
||||
kubeResources: kubeResources,
|
||||
masterLess: false,
|
||||
podDispatcherRunning: false,
|
||||
}
|
||||
|
||||
return cluster
|
||||
@@ -90,12 +94,6 @@ func (c *Cluster) TeamName() string {
|
||||
return c.Spec.TeamId
|
||||
}
|
||||
|
||||
func (c *Cluster) Run(stopCh <-chan struct{}) {
|
||||
go c.podEventsDispatcher(stopCh)
|
||||
|
||||
<-stopCh
|
||||
}
|
||||
|
||||
func (c *Cluster) SetStatus(status spec.PostgresStatus) {
|
||||
c.Status = status
|
||||
b, err := json.Marshal(status)
|
||||
@@ -155,7 +153,12 @@ func (c *Cluster) etcdKeyExists(keyName string) (bool, error) {
|
||||
return resp != nil, err
|
||||
}
|
||||
|
||||
func (c *Cluster) Create() error {
|
||||
func (c *Cluster) Create(stopCh <-chan struct{}) error {
|
||||
if !c.podDispatcherRunning {
|
||||
go c.podEventsDispatcher(stopCh)
|
||||
c.podDispatcherRunning = true
|
||||
}
|
||||
|
||||
keyExist, err := c.etcdKeyExists(fmt.Sprintf("/%s/%s", c.OpConfig.EtcdScope, c.Metadata.Name))
|
||||
if err != nil {
|
||||
c.logger.Warnf("Can't check etcd key: %s", err)
|
||||
@@ -203,14 +206,18 @@ func (c *Cluster) Create() error {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := c.initDbConn(); err != nil {
|
||||
return fmt.Errorf("Can't init db connection: %s", err)
|
||||
}
|
||||
if !c.masterLess {
|
||||
if err := c.initDbConn(); err != nil {
|
||||
return fmt.Errorf("Can't init db connection: %s", err)
|
||||
}
|
||||
|
||||
if err := c.createUsers(); err != nil {
|
||||
return fmt.Errorf("Can't create users: %s", err)
|
||||
if err := c.createUsers(); err != nil {
|
||||
return fmt.Errorf("Can't create users: %s", err)
|
||||
} else {
|
||||
c.logger.Infof("Users have been successfully created")
|
||||
}
|
||||
} else {
|
||||
c.logger.Infof("Users have been successfully created")
|
||||
c.logger.Warnln("Cluster is masterless")
|
||||
}
|
||||
|
||||
c.ListResources()
|
||||
|
||||
Reference in New Issue
Block a user