 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
- Constants
- Variables
- func GetLocalDBConfigNames(kubeclientset kubernetes.Interface, clusterName, namespace string) ([]string, error)
- type Callbacks
- type CreateReplicaMethod
- type DCS
- type DCSConfig
- type LocalDB
- type LocalDBConfig
- type PostgresDCS
- type PostgresLocalDB
- type SlotDCS
- type StandbyDCS
- type Syncer
Constants ¶
const ( // PGHADCSConfigName represents the name of the DCS configuration stored in the // "<clustername>-pgha-config" configMap, which is "<clustername>-dcs-config" PGHADCSConfigName = "%s-dcs-config" )
Variables ¶
var ( // ErrMissingClusterConfig is the error thrown when configuration is missing from a configMap ErrMissingClusterConfig error = errors.New("Configuration is missing from configMap") )
Functions ¶
func GetLocalDBConfigNames ¶
func GetLocalDBConfigNames(kubeclientset kubernetes.Interface, clusterName, namespace string) ([]string, error)
GetLocalDBConfigNames returns the names of the local configuration for each database server in the cluster as stored in the <clusterName>-pgha-config configMap per naming conventions.
Types ¶
type Callbacks ¶
type Callbacks struct {
	OnReload     string `json:"on_reload,omitempty"`
	OnRestart    string `json:"on_restart,omitempty"`
	OnRoleChange string `json:"on_role_change,omitempty"`
	OnStart      string `json:"on_start,omitempty"`
	OnStop       string `json:"on_stop,omitempty"`
}
    Callbacks defines the various Patroni callbacks
type CreateReplicaMethod ¶
type CreateReplicaMethod struct {
	Command  string `json:"command,omitempty"`
	KeepData bool   `json:"keep_data,omitempty"`
	NoParams bool   `json:"no_params,omitempty"`
	NoMaster int    `json:"no_master,omitempty"`
}
    CreateReplicaMethod represents a Patroni replica creation method
type DCS ¶
type DCS struct {
	// contains filtered or unexported fields
}
    DCS configures the DCS configuration settings for a specific PG cluster.
func NewDCS ¶
func NewDCS(configMap *corev1.ConfigMap, kubeclientset kubernetes.Interface) *DCS
NewDCS creates a new DCS config struct using the configMap provided. The DCSConfig will include a configMap that will be used to configure the DCS for a specific cluster.
func (*DCS) GetDCSConfig ¶
GetDCSConfig returns the current DCS configuration included in the ClusterConfig's configMap, i.e. the contents of the "<clustername-dcs-config>" configuration unmarshalled into a DCSConfig struct.
type DCSConfig ¶
type DCSConfig struct {
	LoopWait              int                `json:"loop_wait,omitempty"`
	TTL                   int                `json:"ttl,omitempty"`
	RetryTimeout          int                `json:"retry_timeout,omitempty"`
	MaximumLagOnFailover  int                `json:"maximum_lag_on_failover,omitempty"`
	MasterStartTimeout    int                `json:"master_start_timeout,omitempty"`
	SynchronousMode       bool               `json:"synchronous_mode,omitempty"`
	SynchronousModeStrict bool               `json:"synchronous_mode_strict,omitempty"`
	PostgreSQL            *PostgresDCS       `json:"postgresql,omitempty"`
	StandbyCluster        *StandbyDCS        `json:"standby_cluster,omitempty"`
	Slots                 map[string]SlotDCS `json:"slots,omitempty"`
}
    DCSConfig represents the cluster-wide configuration that is stored in the Distributed Configuration Store (DCS).
type LocalDB ¶
type LocalDB struct {
	// contains filtered or unexported fields
}
    LocalDB configures the local configuration settings for a specific database server within a PG cluster.
func NewLocalDB ¶
func NewLocalDB(configMap *corev1.ConfigMap, restConfig *rest.Config, kubeclientset kubernetes.Interface, pgoRESTClient *rest.RESTClient) (*LocalDB, error)
NewLocalDB creates a new LocalDB, which includes a configMap that contains the local configuration settings for the database servers within a specific PG cluster. Additionally the LocalDB includes the client(s) and other applicable resources needed to access and modify various resources within the Kubernetes cluster in support of configuring the included database servers.
func (*LocalDB) Sync ¶
Sync attempts to apply all local database server configuration settings in the the LocalDB's configMap to the various servers included in the LocalDB. If the configuration for a server is missing from the configMap, then and attempt is made to add it by refreshing that specific configuration. Also, any configurations within the configMap associated with servers that no longer exist are removed.
type LocalDBConfig ¶
type LocalDBConfig struct {
	PostgreSQL PostgresLocalDB `json:"postgresql,omitempty"`
}
    LocalDBConfig represents the local configuration for a specific PostgreSQL database server within a PostgreSQL cluster. Only user-facing configuration is exposed via this struct, and not any configuration that is controlled/managed by the Operator itself.
type PostgresDCS ¶
type PostgresDCS struct {
	UsePGRewind  bool                   `json:"use_pg_rewind,omitempty"`
	UseSlots     bool                   `json:"use_slots,omitempty"`
	RecoveryConf map[string]interface{} `json:"recovery_conf,omitempty"`
	Parameters   map[string]interface{} `json:"parameters,omitempty"`
}
    PostgresDCS represents the PostgreSQL settings that can be applied cluster-wide to a PostgreSQL cluster via the DCS.
type PostgresLocalDB ¶
type PostgresLocalDB struct {
	Callbacks                              *Callbacks             `json:"callbacks,omitempty"`
	CreateReplicaMethods                   []string               `json:"create_replica_methods,omitempty"`
	ConfigDir                              string                 `json:"config_dir,omitempty"`
	UseUnixSocket                          bool                   `json:"use_unix_socket,omitempty"`
	PGPass                                 string                 `json:"pgpass,omitempty"`
	RecoveryConf                           map[string]interface{} `json:"recovery_conf,omitempty"`
	CustomConf                             map[string]interface{} `json:"custom_conf,omitempty"`
	Parameters                             map[string]interface{} `json:"parameters,omitempty"`
	PGHBA                                  []string               `json:"pg_hba,omitempty"`
	PGIdent                                []string               `json:"pg_ident,omitempty"`
	PGCTLTimeout                           int                    `json:"pg_ctl_timeout,omitempty"`
	UsePGRewind                            bool                   `json:"use_pg_rewind,omitempty"`
	RemoveDataDirectoryOnRewindFailure     bool                   `json:"remove_data_directory_on_rewind_failure,omitempty"`
	RemoveDataDirectoryOnDivergedTimelines bool                   `json:"remove_data_directory_on_diverged_timelines,omitempty"`
	PGBackRest                             *CreateReplicaMethod   `json:"pgbackrest,omitempty"`
	PGBackRestStandby                      *CreateReplicaMethod   `json:"pgbackrest_standby,omitempty"`
}
    PostgresLocalDB represents the PostgreSQL settings that can be applied to an individual PostgreSQL server within a PostgreSQL cluster.
type SlotDCS ¶
type SlotDCS struct {
	Type     string `json:"type,omitempty"`
	Database string `json:"database,omitempty"`
	Plugin   string `json:"plugin,omitempty"`
}
    SlotDCS represents slot settings that can be applied cluster-wide via the DCS.
type StandbyDCS ¶
type StandbyDCS struct {
	Host                  string                 `json:"host,omitempty"`
	Port                  int                    `json:"port,omitempty"`
	PrimarySlotName       map[string]interface{} `json:"primary_slot_name,omitempty"`
	CreateReplicaMethods  []string               `json:"create_replica_methods,omitempty"`
	RestoreCommand        string                 `json:"restore_command,omitempty"`
	ArchiveCleanupCommand string                 `json:"archive_cleanup_command,omitempty"`
	RecoveryMinApplyDelay int                    `json:"recovery_min_apply_delay,omitempty"`
}
    StandbyDCS represents standby cluster settings that can be applied cluster-wide via the DCS.