feat(config): add connection_pooler generate-config fields
This commit is contained in:
parent
40b6c68443
commit
9787922bf9
|
|
@ -153,16 +153,21 @@ type LogicalBackup struct {
|
||||||
|
|
||||||
// Operator options for connection pooler
|
// Operator options for connection pooler
|
||||||
type ConnectionPooler struct {
|
type ConnectionPooler struct {
|
||||||
NumberOfInstances *int32 `name:"connection_pooler_number_of_instances" default:"2"`
|
NumberOfInstances *int32 `name:"connection_pooler_number_of_instances" default:"2"`
|
||||||
Schema string `name:"connection_pooler_schema" default:"pooler"`
|
Schema string `name:"connection_pooler_schema" default:"pooler"`
|
||||||
User string `name:"connection_pooler_user" default:"pooler"`
|
User string `name:"connection_pooler_user" default:"pooler"`
|
||||||
Image string `name:"connection_pooler_image" default:"ghcr.io/zalando/postgres-operator/pgbouncer:latest"`
|
Image string `name:"connection_pooler_image" default:"ghcr.io/zalando/postgres-operator/pgbouncer:latest"`
|
||||||
Mode string `name:"connection_pooler_mode" default:"transaction"`
|
Mode string `name:"connection_pooler_mode" default:"transaction"`
|
||||||
MaxDBConnections *int32 `name:"connection_pooler_max_db_connections" default:"60"`
|
MaxDBConnections *int32 `name:"connection_pooler_max_db_connections" default:"60"`
|
||||||
ConnectionPoolerDefaultCPURequest string `name:"connection_pooler_default_cpu_request"`
|
ConnectionPoolerDefaultCPURequest string `name:"connection_pooler_default_cpu_request"`
|
||||||
ConnectionPoolerDefaultMemoryRequest string `name:"connection_pooler_default_memory_request"`
|
ConnectionPoolerDefaultMemoryRequest string `name:"connection_pooler_default_memory_request"`
|
||||||
ConnectionPoolerDefaultCPULimit string `name:"connection_pooler_default_cpu_limit"`
|
ConnectionPoolerDefaultCPULimit string `name:"connection_pooler_default_cpu_limit"`
|
||||||
ConnectionPoolerDefaultMemoryLimit string `name:"connection_pooler_default_memory_limit"`
|
ConnectionPoolerDefaultMemoryLimit string `name:"connection_pooler_default_memory_limit"`
|
||||||
|
GenerateConfig bool `name:"connection_pooler_generate_config" default:"false"`
|
||||||
|
Command []string `name:"connection_pooler_command"`
|
||||||
|
Args []string `name:"connection_pooler_args" default:"/etc/pgbouncer/pgbouncer.ini"`
|
||||||
|
AuthType string `name:"connection_pooler_auth_type" default:"scram-sha-256"`
|
||||||
|
ConfigPath string `name:"connection_pooler_config_path" default:"/etc/pgbouncer/pgbouncer.ini"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Config describes operator config
|
// Config describes operator config
|
||||||
|
|
|
||||||
|
|
@ -335,3 +335,35 @@ func TestNewFromMap(t *testing.T) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestConnectionPoolerGenerateConfigDefaults(t *testing.T) {
|
||||||
|
cfg := NewFromMap(map[string]string{})
|
||||||
|
|
||||||
|
if cfg.ConnectionPooler.GenerateConfig {
|
||||||
|
t.Errorf("expected GenerateConfig default false, got true")
|
||||||
|
}
|
||||||
|
if cfg.ConnectionPooler.AuthType != "scram-sha-256" {
|
||||||
|
t.Errorf("expected AuthType scram-sha-256, got %q", cfg.ConnectionPooler.AuthType)
|
||||||
|
}
|
||||||
|
if cfg.ConnectionPooler.ConfigPath != "/etc/pgbouncer/pgbouncer.ini" {
|
||||||
|
t.Errorf("expected ConfigPath /etc/pgbouncer/pgbouncer.ini, got %q", cfg.ConnectionPooler.ConfigPath)
|
||||||
|
}
|
||||||
|
if len(cfg.ConnectionPooler.Args) != 1 || cfg.ConnectionPooler.Args[0] != "/etc/pgbouncer/pgbouncer.ini" {
|
||||||
|
t.Errorf("expected Args [/etc/pgbouncer/pgbouncer.ini], got %#v", cfg.ConnectionPooler.Args)
|
||||||
|
}
|
||||||
|
|
||||||
|
cfg2 := NewFromMap(map[string]string{
|
||||||
|
"connection_pooler_generate_config": "true",
|
||||||
|
"connection_pooler_auth_type": "md5",
|
||||||
|
"connection_pooler_args": "/custom/pgbouncer.ini",
|
||||||
|
})
|
||||||
|
if !cfg2.ConnectionPooler.GenerateConfig {
|
||||||
|
t.Errorf("expected GenerateConfig true")
|
||||||
|
}
|
||||||
|
if cfg2.ConnectionPooler.AuthType != "md5" {
|
||||||
|
t.Errorf("expected AuthType md5, got %q", cfg2.ConnectionPooler.AuthType)
|
||||||
|
}
|
||||||
|
if len(cfg2.ConnectionPooler.Args) != 1 || cfg2.ConnectionPooler.Args[0] != "/custom/pgbouncer.ini" {
|
||||||
|
t.Errorf("expected Args [/custom/pgbouncer.ini], got %#v", cfg2.ConnectionPooler.Args)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue