Documentation ¶
Overview ¶
Package cluster holds the cluster CRD logic and definitions A cluster is comprised of a primary service, replica service, primary deployment, and replica deployment
Package cluster holds the cluster CRD logic and definitions A cluster is comprised of a primary service, replica service, primary deployment, and replica deployment
Package cluster holds the cluster CRD logic and definitions A cluster is comprised of a primary service, replica service, primary deployment, and replica deployment
Package cluster holds the cluster CRD logic and definitions A cluster is comprised of a primary service, replica service, primary deployment, and replica deployment
Package cluster holds the cluster CRD logic and definitions A cluster is comprised of a primary service, replica service, primary deployment, and replica deployment
Package cluster holds the cluster CRD logic and definitions A cluster is comprised of a primary service, replica service, primary deployment, and replica deployment
Package cluster holds the cluster CRD logic and definitions A cluster is comprised of a primary service, replica service, primary deployment, and replica deployment
Package cluster holds the cluster CRD logic and definitions A cluster is comprised of a primary service, replica service, primary deployment, and replica deployment
Index ¶
- Constants
- func AddCluster(clientset *kubernetes.Clientset, client *rest.RESTClient, cl *crv1.Pgcluster, ...) error
- func AddClusterBase(clientset *kubernetes.Clientset, client *rest.RESTClient, cl *crv1.Pgcluster, ...)
- func AddPgbouncer(clientset *kubernetes.Clientset, restclient *rest.RESTClient, ...) error
- func AddPgbouncerFromTask(clientset *kubernetes.Clientset, restclient *rest.RESTClient, ...)
- func AddPgpool(clientset *kubernetes.Clientset, cl *crv1.Pgcluster, namespace string, ...) error
- func AddPgpoolFromTask(clientset *kubernetes.Clientset, restclient *rest.RESTClient, ...)
- func AddUpgrade(clientset *kubernetes.Clientset, restclient *rest.RESTClient, ...)
- func AutofailBase(clientset *kubernetes.Clientset, restclient *rest.RESTClient, ready bool, ...)
- func CreatePgpoolSecret(clientset *kubernetes.Clientset, ...) error
- func CreateRmdataJob(clientset *kubernetes.Clientset, cl *crv1.Pgcluster, namespace string, ...) error
- func CreateService(clientset *kubernetes.Clientset, fields *ServiceTemplateFields, ...) error
- func DeleteCluster(clientset *kubernetes.Clientset, restclient *rest.RESTClient, ...) error
- func DeleteClusterBase(clientset *kubernetes.Clientset, restclient *rest.RESTClient, ...)
- func DeletePgbouncer(clientset *kubernetes.Clientset, clusterName, namespace string)
- func DeletePgbouncerFromTask(clientset *kubernetes.Clientset, restclient *rest.RESTClient, ...)
- func DeletePgpool(clientset *kubernetes.Clientset, clusterName, namespace string)
- func DeletePgpoolFromTask(clientset *kubernetes.Clientset, restclient *rest.RESTClient, ...)
- func DeletePgreplicas(restclient *rest.RESTClient, clusterName, namespace string)
- func DeleteReplica(clientset *kubernetes.Clientset, cl *crv1.Pgreplica, namespace string) error
- func Failover(identifier string, clientset *kubernetes.Clientset, client *rest.RESTClient, ...) error
- func FailoverBase(namespace string, clientset *kubernetes.Clientset, client *rest.RESTClient, ...)
- func InitializeAutoFailover(clientset *kubernetes.Clientset, restclient *rest.RESTClient, nsList []string) error
- func PatchpgtaskFailoverStatus(restclient *rest.RESTClient, oldCrd *crv1.Pgtask, namespace string) error
- func ProcessNextUpgradeItem(clientset *kubernetes.Clientset, restclient *rest.RESTClient, ...)
- func ProcessPolicies(clientset *kubernetes.Clientset, restclient *rest.RESTClient, ...)
- func ReconfigurePgbouncerFromTask(clientset *kubernetes.Clientset, restclient *rest.RESTClient, ...)
- func ReconfigurePgpoolFromTask(clientset *kubernetes.Clientset, restclient *rest.RESTClient, ...)
- func Scale(clientset *kubernetes.Clientset, client *rest.RESTClient, ...) error
- func ScaleBase(clientset *kubernetes.Clientset, client *rest.RESTClient, ...)
- func ScaleDownBase(clientset *kubernetes.Clientset, client *rest.RESTClient, ...)
- func UpdatePgBouncerAuthorizations(clientset *kubernetes.Clientset, ...) error
- type AutoFailoverTask
- func (*AutoFailoverTask) AddEvent(restclient *rest.RESTClient, clusterName, eventType, namespace string)
- func (*AutoFailoverTask) Clear(restclient *rest.RESTClient, clusterName, namespace string)
- func (*AutoFailoverTask) Exists(restclient *rest.RESTClient, clusterName, namespace string) bool
- func (*AutoFailoverTask) GetEvents(restclient *rest.RESTClient, clusterName, namespace string) (string, map[string]string)
- func (*AutoFailoverTask) Print(restclient *rest.RESTClient, namespace string)
- type FailoverEvent
- type PgbouncerConfFields
- type PgbouncerHBAFields
- type PgbouncerPasswdFields
- type PgbouncerTemplateFields
- type PgpoolConfFields
- type PgpoolHBAFields
- type PgpoolPasswdFields
- type PgpoolTemplateFields
- type RmdataJob
- type ServiceTemplateFields
- type StateMachine
Constants ¶
const FAILOVER_EVENT_NOT_READY = "NotReady"
const FAILOVER_EVENT_READY = "Ready"
const PGBOUNCER_SUFFIX = "-pgbouncer"
const PGPOOL_SUFFIX = "-pgpool"
const ReplicaSuffix = "-replica"
ReplicaSuffix ...
Variables ¶
This section is empty.
Functions ¶
func AddCluster ¶
func AddCluster(clientset *kubernetes.Clientset, client *rest.RESTClient, cl *crv1.Pgcluster, namespace string, primaryPVCName string) error
AddCluster ...
func AddClusterBase ¶
func AddClusterBase(clientset *kubernetes.Clientset, client *rest.RESTClient, cl *crv1.Pgcluster, namespace string)
func AddPgbouncer ¶
func AddPgbouncer(clientset *kubernetes.Clientset, restclient *rest.RESTClient, cl *crv1.Pgcluster, namespace string, createService bool, updateCreds bool) error
ProcessPgbouncer ...
func AddPgbouncerFromTask ¶
func AddPgbouncerFromTask(clientset *kubernetes.Clientset, restclient *rest.RESTClient, task *crv1.Pgtask, namespace string)
func AddPgpool ¶
func AddPgpool(clientset *kubernetes.Clientset, cl *crv1.Pgcluster, namespace string, createService bool) error
ProcessPgpool ...
func AddPgpoolFromTask ¶
func AddPgpoolFromTask(clientset *kubernetes.Clientset, restclient *rest.RESTClient, task *crv1.Pgtask, namespace string)
func AddUpgrade ¶
func AddUpgrade(clientset *kubernetes.Clientset, restclient *rest.RESTClient, upgrade *crv1.Pgtask, namespace string)
AddUpgrade implements the upgrade workflow for cluster minor upgrade
func AutofailBase ¶
func AutofailBase(clientset *kubernetes.Clientset, restclient *rest.RESTClient, ready bool, clusterName, namespace string)
AutofailBase ...
func CreatePgpoolSecret ¶
func CreatePgpoolSecret(clientset *kubernetes.Clientset, primary, replica, db, secretName, namespace string) error
CreatePgpoolSecret create a secret used by pgpool
func CreateRmdataJob ¶
func CreateRmdataJob(clientset *kubernetes.Clientset, cl *crv1.Pgcluster, namespace string, removeData, removeBackup, isReplica, isBackup bool) error
CreateService ...
func CreateService ¶
func CreateService(clientset *kubernetes.Clientset, fields *ServiceTemplateFields, namespace string) error
CreateService ...
func DeleteCluster ¶
func DeleteCluster(clientset *kubernetes.Clientset, restclient *rest.RESTClient, cl *crv1.Pgcluster, namespace string) error
DeleteCluster ...
func DeleteClusterBase ¶
func DeleteClusterBase(clientset *kubernetes.Clientset, restclient *rest.RESTClient, cl *crv1.Pgcluster, namespace string)
DeleteClusterBase ...
func DeletePgbouncer ¶
func DeletePgbouncer(clientset *kubernetes.Clientset, clusterName, namespace string)
DeletePgbouncer
func DeletePgbouncerFromTask ¶
func DeletePgbouncerFromTask(clientset *kubernetes.Clientset, restclient *rest.RESTClient, task *crv1.Pgtask, namespace string)
func DeletePgpool ¶
func DeletePgpool(clientset *kubernetes.Clientset, clusterName, namespace string)
DeletePgpool
func DeletePgpoolFromTask ¶
func DeletePgpoolFromTask(clientset *kubernetes.Clientset, restclient *rest.RESTClient, task *crv1.Pgtask, namespace string)
func DeletePgreplicas ¶
func DeletePgreplicas(restclient *rest.RESTClient, clusterName, namespace string)
DeletePgreplicas
func DeleteReplica ¶
DeleteReplica ...
func FailoverBase ¶
func FailoverBase(namespace string, clientset *kubernetes.Clientset, client *rest.RESTClient, task *crv1.Pgtask, restconfig *rest.Config)
FailoverBase ... gets called first on a failover
func InitializeAutoFailover ¶
func InitializeAutoFailover(clientset *kubernetes.Clientset, restclient *rest.RESTClient, nsList []string) error
at operator startup, check for autofail enabled pods in Not Ready status in each namespace the operator is watching, trigger a failover if found
func ProcessNextUpgradeItem ¶
func ProcessNextUpgradeItem(clientset *kubernetes.Clientset, restclient *rest.RESTClient, cluster crv1.Pgcluster, upgradeTaskName, namespace string)
ProcessNextUpgradeItem - processes the next deployment for a cluster being upgraded One deployment is done per call in the following order: replicas, backrest, primary If more than one replica is in the list, they are done one at a time, once per call with an item getting removed from the list each time. This method should get called after the pod goes ready from the previous item, which is handled by the pod controller.
func ProcessPolicies ¶
func ProcessPolicies(clientset *kubernetes.Clientset, restclient *rest.RESTClient, stopchan chan struct{}, namespace string)
ProcessPolicies ...
func ReconfigurePgbouncerFromTask ¶
func ReconfigurePgbouncerFromTask(clientset *kubernetes.Clientset, restclient *rest.RESTClient, task *crv1.Pgtask, namespace string)
func ReconfigurePgpoolFromTask ¶
func ReconfigurePgpoolFromTask(clientset *kubernetes.Clientset, restclient *rest.RESTClient, task *crv1.Pgtask, namespace string)
func Scale ¶
func Scale(clientset *kubernetes.Clientset, client *rest.RESTClient, replica *crv1.Pgreplica, namespace, pvcName string, cluster *crv1.Pgcluster) error
Scale ...
func ScaleBase ¶
func ScaleBase(clientset *kubernetes.Clientset, client *rest.RESTClient, replica *crv1.Pgreplica, namespace string)
ScaleBase ...
func ScaleDownBase ¶
func ScaleDownBase(clientset *kubernetes.Clientset, client *rest.RESTClient, replica *crv1.Pgreplica, namespace string)
ScaleDownBase ...
func UpdatePgBouncerAuthorizations ¶
func UpdatePgBouncerAuthorizations(clientset *kubernetes.Clientset, namespace, username, password, secretName, clusterName, podIP string) error
Types ¶
type AutoFailoverTask ¶
type AutoFailoverTask struct { }
func (*AutoFailoverTask) AddEvent ¶
func (*AutoFailoverTask) AddEvent(restclient *rest.RESTClient, clusterName, eventType, namespace string)
func (*AutoFailoverTask) Clear ¶
func (*AutoFailoverTask) Clear(restclient *rest.RESTClient, clusterName, namespace string)
func (*AutoFailoverTask) Exists ¶
func (*AutoFailoverTask) Exists(restclient *rest.RESTClient, clusterName, namespace string) bool
func (*AutoFailoverTask) GetEvents ¶
func (*AutoFailoverTask) GetEvents(restclient *rest.RESTClient, clusterName, namespace string) (string, map[string]string)
func (*AutoFailoverTask) Print ¶
func (*AutoFailoverTask) Print(restclient *rest.RESTClient, namespace string)
type FailoverEvent ¶
FailoverEvent holds a record of a NotReady or other event that is used by the failover algorithm, FailoverEvents can build up for a given cluster
type PgbouncerConfFields ¶
type PgbouncerHBAFields ¶
type PgbouncerHBAFields struct { }
type PgbouncerPasswdFields ¶
type PgbouncerTemplateFields ¶
type PgpoolConfFields ¶
type PgpoolHBAFields ¶
type PgpoolHBAFields struct { }
type PgpoolPasswdFields ¶
type PgpoolTemplateFields ¶
type ServiceTemplateFields ¶
type ServiceTemplateFields struct { Name string ServiceName string ClusterName string Port string PGBadgerPort string ExporterPort string ServiceType string }
ServiceTemplateFields ...
type StateMachine ¶
type StateMachine struct { Clientset *kubernetes.Clientset RESTClient *rest.RESTClient Namespace string ClusterName string SleepSeconds int }
StateMachine holds a state machine that is created when a cluster has received a NotReady event, this is the start The StateMachine is executed in a separate goroutine for any cluster founds to be NotReady
func (*StateMachine) Evaluate ¶
func (s *StateMachine) Evaluate(status string, events map[string]string) bool
Evaluate returns true if the autofail status is NotReady
func (*StateMachine) Print ¶
func (s *StateMachine) Print()
func (*StateMachine) Run ¶
func (s *StateMachine) Run()
Run is the heart of the failover state machine, started when a NotReady event is caught by the cluster watcher process, this statemachine runs until