From ee83e196a9ad7068bbd62de71faa6a4ba66a4e9e Mon Sep 17 00:00:00 2001 From: Murat Kabilov Date: Thu, 6 Apr 2017 15:18:24 +0200 Subject: [PATCH] Fix secrets sync * log if secret already exists --- pkg/cluster/cluster.go | 24 +++++++++++++++++------- pkg/cluster/resources.go | 1 + pkg/cluster/sync.go | 9 +++++++++ 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/pkg/cluster/cluster.go b/pkg/cluster/cluster.go index 17c895c23..3e8b56eac 100644 --- a/pkg/cluster/cluster.go +++ b/pkg/cluster/cluster.go @@ -118,6 +118,19 @@ func (c *Cluster) SetStatus(status spec.PostgresStatus) { } } +func (c *Cluster) initUsers() error { + c.initSystemUsers() + if err := c.initRobotUsers(); err != nil { + return fmt.Errorf("Can't init robot users: %s", err) + } + + if err := c.initHumanUsers(); err != nil { + return fmt.Errorf("Can't init human users: %s", err) + } + + return nil +} + func (c *Cluster) Create() error { //TODO: service will create endpoint implicitly ep, err := c.createEndpoint() @@ -133,13 +146,10 @@ func (c *Cluster) Create() error { c.logger.Infof("Service '%s' has been successfully created", util.NameFromMeta(service.ObjectMeta)) } - c.initSystemUsers() - if err := c.initRobotUsers(); err != nil { - return fmt.Errorf("Can't init robot users: %s", err) - } - - if err := c.initHumanUsers(); err != nil { - return fmt.Errorf("Can't init human users: %s", err) + if err := c.initUsers(); err != nil { + return err + } else { + c.logger.Infof("User secrets have been initialized") } if err := c.applySecrets(); err != nil { diff --git a/pkg/cluster/resources.go b/pkg/cluster/resources.go index 969ac26cb..5132cbc79 100644 --- a/pkg/cluster/resources.go +++ b/pkg/cluster/resources.go @@ -248,6 +248,7 @@ func (c *Cluster) applySecrets() error { if err != nil { return fmt.Errorf("Can't get current Secret: %s", err) } + c.logger.Debugf("Secret '%s' already exists, fetching it's password", util.NameFromMeta(secret.ObjectMeta)) pwdUser := c.pgUsers[secretUsername] pwdUser.Password = string(curSecrets.Data["password"]) c.pgUsers[secretUsername] = pwdUser diff --git a/pkg/cluster/sync.go b/pkg/cluster/sync.go index c8faa31fb..24db120fd 100644 --- a/pkg/cluster/sync.go +++ b/pkg/cluster/sync.go @@ -10,22 +10,27 @@ import ( ) func (c *Cluster) SyncCluster() { + c.logger.Debugf("Syncing Secrets") if err := c.syncSecrets(); err != nil { c.logger.Infof("Can't sync Secrets: %s", err) } + c.logger.Debugf("Syncing Endpoints") if err := c.syncEndpoint(); err != nil { c.logger.Errorf("Can't sync Endpoints: %s", err) } + c.logger.Debugf("Syncing Services") if err := c.syncService(); err != nil { c.logger.Errorf("Can't sync Services: %s", err) } + c.logger.Debugf("Syncing StatefulSets") if err := c.syncStatefulSet(); err != nil { c.logger.Errorf("Can't sync StatefulSets: %s", err) } + c.logger.Debugf("Syncing Pods") if err := c.syncPods(); err != nil { c.logger.Errorf("Can't sync Pods: %s", err) } @@ -33,6 +38,10 @@ func (c *Cluster) SyncCluster() { func (c *Cluster) syncSecrets() error { //TODO: mind the secrets of the deleted/new users + if err := c.initUsers(); err != nil { + return err + } + err := c.applySecrets() if err != nil { return err