Use Patroni API to set bootstrap-only options. (#299)

Call Patroni API /config in order to set special options that are
ignored when set in the configuration file, such as max_connections.
Per https://github.com/zalando-incubator/postgres-operator/issues/297

* Some minor refacoring:

Rename Cluster ManualFailover to Swithover
Rename Patroni Failover to Switchover
Add more details to error messages and comments introduced in this PR.

Review by @zerg-junior
This commit is contained in:
Oleksii Kliukin
2018-05-29 12:35:25 +02:00
committed by GitHub
parent 24df918dda
commit 48a5744314
6 changed files with 85 additions and 17 deletions
+5
View File
@@ -5,6 +5,7 @@ import (
"fmt"
"io/ioutil"
"log"
"os"
"strings"
"time"
@@ -14,6 +15,7 @@ import (
"k8s.io/client-go/pkg/apis/apps/v1beta1"
policyv1beta1 "k8s.io/client-go/pkg/apis/policy/v1beta1"
"k8s.io/client-go/rest"
)
// EventType contains type of the events for the TPRs and Pods received from Kubernetes
@@ -223,6 +225,9 @@ func (r RoleOrigin) String() string {
// Placing this func here instead of pgk/util avoids circular import
func GetOperatorNamespace() string {
if operatorNamespace == "" {
if namespaceFromEnvironment := os.Getenv("OPERATOR_NAMESPACE"); namespaceFromEnvironment != "" {
return namespaceFromEnvironment
}
operatorNamespaceBytes, err := ioutil.ReadFile(fileWithNamespace)
if err != nil {
log.Fatalf("Unable to detect operator namespace from within its pod due to: %v", err)