Skip to content

Commit b97e52b

Browse files
author
jmccormick2001
committed
fix bug where pgbouncer was added to a cluster from a prior run and then recreatd
1 parent a354a67 commit b97e52b

File tree

1 file changed

+21
-9
lines changed

1 file changed

+21
-9
lines changed

operator/cluster/pgbouncer.go

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ func ReconfigurePgbouncerFromTask(clientset *kubernetes.Clientset, restclient *r
101101
}
102102

103103
//create the pgbouncer but leave the existing service in place
104-
AddPgbouncer(clientset, &pgcluster, namespace, false)
104+
err = AddPgbouncer(clientset, &pgcluster, namespace, false)
105105

106106
//remove task to cleanup
107107
err = kubeapi.Deletepgtask(restclient, task.Spec.Name, namespace)
@@ -125,7 +125,11 @@ func AddPgbouncerFromTask(clientset *kubernetes.Clientset, restclient *rest.REST
125125
log.Error(err)
126126
return
127127
}
128-
AddPgbouncer(clientset, &pgcluster, namespace, true)
128+
err = AddPgbouncer(clientset, &pgcluster, namespace, true)
129+
if err != nil {
130+
log.Error(err)
131+
return
132+
}
129133

130134
//remove task
131135
err = kubeapi.Deletepgtask(restclient, task.Spec.Name, namespace)
@@ -193,7 +197,7 @@ func DeletePgbouncerFromTask(clientset *kubernetes.Clientset, restclient *rest.R
193197
}
194198

195199
// ProcessPgbouncer ...
196-
func AddPgbouncer(clientset *kubernetes.Clientset, cl *crv1.Pgcluster, namespace string, createService bool) {
200+
func AddPgbouncer(clientset *kubernetes.Clientset, cl *crv1.Pgcluster, namespace string, createService bool) error {
197201
var doc bytes.Buffer
198202
var err error
199203

@@ -204,7 +208,7 @@ func AddPgbouncer(clientset *kubernetes.Clientset, cl *crv1.Pgcluster, namespace
204208
err = CreatePgbouncerSecret(clientset, primaryName, replicaName, primaryName, secretName, namespace)
205209
if err != nil {
206210
log.Error(err)
207-
return
211+
return err
208212
}
209213
log.Debug("pgbouncer secret created")
210214

@@ -227,7 +231,7 @@ func AddPgbouncer(clientset *kubernetes.Clientset, cl *crv1.Pgcluster, namespace
227231
tmp, err := operator.Pgo.GetContainerResource(operator.Pgo.DefaultPgbouncerResources)
228232
if err != nil {
229233
log.Error(err)
230-
return
234+
return err
231235
}
232236
fields.ContainerResources = operator.GetContainerResourcesJSON(&tmp)
233237

@@ -236,7 +240,7 @@ func AddPgbouncer(clientset *kubernetes.Clientset, cl *crv1.Pgcluster, namespace
236240
err = operator.PgbouncerTemplate.Execute(&doc, fields)
237241
if err != nil {
238242
log.Error(err)
239-
return
243+
return err
240244
}
241245

242246
if operator.CRUNCHY_DEBUG {
@@ -247,13 +251,13 @@ func AddPgbouncer(clientset *kubernetes.Clientset, cl *crv1.Pgcluster, namespace
247251
err = json.Unmarshal(doc.Bytes(), &deployment)
248252
if err != nil {
249253
log.Error("error unmarshalling pgbouncer json into Deployment " + err.Error())
250-
return
254+
return err
251255
}
252256

253257
err = kubeapi.CreateDeployment(clientset, &deployment, namespace)
254258
if err != nil {
255259
log.Error("error creating pgbouncer Deployment " + err.Error())
256-
return
260+
return err
257261
}
258262

259263
if createService {
@@ -267,9 +271,11 @@ func AddPgbouncer(clientset *kubernetes.Clientset, cl *crv1.Pgcluster, namespace
267271
err = CreateService(clientset, &svcFields, namespace)
268272
if err != nil {
269273
log.Error(err)
270-
return
274+
return err
271275
}
272276
}
277+
278+
return err
273279
}
274280

275281
// DeletePgbouncer
@@ -292,6 +298,12 @@ func CreatePgbouncerSecret(clientset *kubernetes.Clientset, primary, replica, db
292298
var username, password string
293299
var pgbouncerHBABytes, pgbouncerConfBytes, pgbouncerPasswdBytes []byte
294300

301+
_, found, err := kubeapi.GetSecret(clientset, secretName, namespace)
302+
if found {
303+
log.Debugf("pgbouncer secret %s already present, will reuse", secretName)
304+
return err
305+
}
306+
295307
pgbouncerHBABytes, err = getPgbouncerHBA()
296308
if err != nil {
297309
log.Error(err)

0 commit comments

Comments
 (0)