Remove sync of pod service accounts
This commit is contained in:
parent
214ae04aa7
commit
23f893647c
|
|
@ -194,6 +194,36 @@ func (c *Cluster) initUsers() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
/*
|
||||
Ensures the service account required by StatefulSets to create pods exists in a namespace before a PG cluster is created there so that a user does not have to deploy the account manually.
|
||||
|
||||
The operator does not sync these accounts.
|
||||
*/
|
||||
func (c *Cluster) createPodServiceAccounts() error {
|
||||
|
||||
podServiceAccount := c.Config.OpConfig.PodServiceAccountName
|
||||
c.setProcessName("creating pod service account in the watched namespaces")
|
||||
|
||||
_, err := c.KubeClient.ServiceAccounts(c.Namespace).Get(podServiceAccount, metav1.GetOptions{})
|
||||
|
||||
if err != nil {
|
||||
c.logger.Warnf("the pod service account %q is absent from the namespace %q. Stateful sets in the namespace are unable to create pods.", podServiceAccount, c.Namespace)
|
||||
|
||||
c.OpConfig.PodServiceAccount.SetNamespace(c.Namespace)
|
||||
|
||||
_, err = c.KubeClient.ServiceAccounts(c.Namespace).Create(c.OpConfig.PodServiceAccount)
|
||||
if err != nil {
|
||||
c.logger.Warnf("cannot deploy the pod service account %q defined in the config map to the %q namespace: %v", podServiceAccount, c.Namespace, err)
|
||||
} else {
|
||||
c.logger.Infof("successfully deployed the pod service account %q to the %q namespace", podServiceAccount, c.Namespace)
|
||||
}
|
||||
} else {
|
||||
c.logger.Infof("successfully found the service account %q used to create pods to the namespace %q", podServiceAccount, c.Namespace)
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// Create creates the new kubernetes objects associated with the cluster.
|
||||
func (c *Cluster) Create() error {
|
||||
c.mu.Lock()
|
||||
|
|
@ -256,7 +286,7 @@ func (c *Cluster) Create() error {
|
|||
}
|
||||
c.logger.Infof("pod disruption budget %q has been successfully created", util.NameFromMeta(pdb.ObjectMeta))
|
||||
|
||||
if err = c.syncPodServiceAccounts(); err != nil {
|
||||
if err = c.createPodServiceAccounts(); err != nil {
|
||||
return fmt.Errorf("could not sync pod service accounts: %v", err)
|
||||
}
|
||||
c.logger.Infof("pod service accounts have been successfully synced")
|
||||
|
|
|
|||
|
|
@ -44,12 +44,6 @@ func (c *Cluster) Sync(newSpec *spec.Postgresql) (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
c.logger.Debugf("syncing service accounts")
|
||||
if err = c.syncPodServiceAccounts(); err != nil {
|
||||
err = fmt.Errorf("could not sync service accounts: %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
c.logger.Debugf("syncing services")
|
||||
if err = c.syncServices(); err != nil {
|
||||
err = fmt.Errorf("could not sync services: %v", err)
|
||||
|
|
@ -109,34 +103,6 @@ func (c *Cluster) syncServices() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
/*
|
||||
Ensures the service account required by StatefulSets to create pods exists in all namespaces watched by the operator.
|
||||
*/
|
||||
func (c *Cluster) syncPodServiceAccounts() error {
|
||||
|
||||
podServiceAccount := c.Config.OpConfig.PodServiceAccountName
|
||||
c.setProcessName("syncing pod service account in the watched namespaces")
|
||||
|
||||
_, err := c.KubeClient.ServiceAccounts(c.Namespace).Get(podServiceAccount, metav1.GetOptions{})
|
||||
|
||||
if err != nil {
|
||||
c.logger.Warnf("the pod service account %q is absent from the namespace %q. Stateful sets in the namespace are unable to create pods.", podServiceAccount, c.Namespace)
|
||||
|
||||
c.OpConfig.PodServiceAccount.SetNamespace(c.Namespace)
|
||||
|
||||
_, err = c.KubeClient.ServiceAccounts(c.Namespace).Create(c.OpConfig.PodServiceAccount)
|
||||
if err != nil {
|
||||
c.logger.Warnf("cannot deploy the pod service account %q defined in the config map to the %q namespace: %v", podServiceAccount, c.Namespace, err)
|
||||
} else {
|
||||
c.logger.Infof("successfully deployed the pod service account %q to the %q namespace", podServiceAccount, c.Namespace)
|
||||
}
|
||||
} else {
|
||||
c.logger.Infof("successfully found the service account %q used to create pods to the namespace %q", podServiceAccount, c.Namespace)
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *Cluster) syncService(role PostgresRole) error {
|
||||
c.setProcessName("syncing %s service", role)
|
||||
|
||||
|
|
|
|||
|
|
@ -131,7 +131,7 @@ func (c *Controller) initPodServiceAccount() {
|
|||
c.opConfig.PodServiceAccount = obj.(*v1.ServiceAccount)
|
||||
}
|
||||
|
||||
// actual service accounts are deployed lazily at the time of cluster creation or sync
|
||||
// actual service accounts are deployed at the time of Postgres/Spilo cluster creation
|
||||
}
|
||||
|
||||
func (c *Controller) initController() {
|
||||
|
|
|
|||
Loading…
Reference in New Issue