Skip to content

Commit 5fe249b

Browse files
authored
Broaden selector for leader pod to fix issues with new spilo image (#390)
* Broaden selector for leader pod to fix issues with new spilo image * Incorporate review comments
1 parent 8a26498 commit 5fe249b

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

controllers/postgres_controller.go

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ import (
2929
networkingv1 "k8s.io/api/networking/v1"
3030
apierrors "k8s.io/apimachinery/pkg/api/errors"
3131
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
32+
"k8s.io/apimachinery/pkg/labels"
3233
"k8s.io/apimachinery/pkg/runtime"
34+
"k8s.io/apimachinery/pkg/selection"
3335
"k8s.io/apimachinery/pkg/types"
3436
"k8s.io/apimachinery/pkg/util/intstr"
3537
ctrl "sigs.k8s.io/controller-runtime"
@@ -696,18 +698,27 @@ func (r *PostgresReconciler) updatePatroniConfig(ctx context.Context, instance *
696698

697699
r.Log.Info("Sending REST call to Patroni API")
698700
pods := &corev1.PodList{}
701+
702+
roleReq, err := labels.NewRequirement("spilo-role", selection.In, []string{"master", "standby_leader"})
703+
if err != nil {
704+
r.Log.Info("could not create requirements for label selector to query pods, requeuing")
705+
return err
706+
}
707+
leaderSelector := labels.NewSelector()
708+
leaderSelector = leaderSelector.Add(*roleReq)
709+
699710
opts := []client.ListOption{
700711
client.InNamespace(instance.ToPeripheralResourceNamespace()),
701-
client.MatchingLabels{"spilo-role": "master"},
712+
client.MatchingLabelsSelector{Selector: leaderSelector},
702713
}
703714
if err := r.SvcClient.List(ctx, pods, opts...); err != nil {
704715
r.Log.Info("could not query pods, requeuing")
705716
return err
706717
}
707718
if len(pods.Items) == 0 {
708-
r.Log.Info("no master pod ready, requeuing")
719+
r.Log.Info("no leader pod ready, requeuing")
709720
// TODO return proper error
710-
return errors.New("no master pods found")
721+
return errors.New("no leader pods found")
711722
}
712723
podIP := pods.Items[0].Status.PodIP
713724
podPort := "8008"

0 commit comments

Comments
 (0)