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, clusterScope string) *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 { // Authentication is the block for managing the Patroni managed accounts // (superuser, replication, rewind). While the PostgreSQL Operator manages // these overall, one may want to override them. We allow for this, but the // deployer should take care when overriding this value Authentication map[string]interface{} `json:"authentication,omitempty"` 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.