Enable backward compatibility for enable_load_balancer setting from operator configmap
This commit is contained in:
parent
931b48fcbb
commit
a8862aeee1
|
|
@ -239,6 +239,8 @@ For any Postgresql/Spilo cluster an operator creates two separate k8s services:
|
||||||
|
|
||||||
For backward compatibility with already configured clusters we maintain in a cluster manifest older parameter names, namely `useLoadBalancer` for enabling the master service's load balancer and `replicaLoadBalancer` for the replica service. If set, these params take precedence over the newer `enableMasterLoadBalancer` and `enableReplicaLoadBalancer`. Note that in older versions of the operator (before PR #258) `replicaLoadBalancer` was responsible for both creating the replica service and attaching an LB to it; now the service is always created (since k8s service typically is free in the cloud setting), and this param only attaches an LB (that typically costs money).
|
For backward compatibility with already configured clusters we maintain in a cluster manifest older parameter names, namely `useLoadBalancer` for enabling the master service's load balancer and `replicaLoadBalancer` for the replica service. If set, these params take precedence over the newer `enableMasterLoadBalancer` and `enableReplicaLoadBalancer`. Note that in older versions of the operator (before PR #258) `replicaLoadBalancer` was responsible for both creating the replica service and attaching an LB to it; now the service is always created (since k8s service typically is free in the cloud setting), and this param only attaches an LB (that typically costs money).
|
||||||
|
|
||||||
|
For the same reason of compatibility, we maintain the `enable_load_balancer` setting in the operator config map that was previously used to attach a LB to the master service. Its value is examined after the deprecated `useLoadBalancer` setting from the Postgresql manifest but before the recommended `enableMasterLoadBalancer`. There is no equivalent option for the replica service since the service used to be always created with a load balancer.
|
||||||
|
|
||||||
# Setup development environment
|
# Setup development environment
|
||||||
|
|
||||||
The following steps guide you through the setup to work on the operator itself.
|
The following steps guide you through the setup to work on the operator itself.
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,9 @@ data:
|
||||||
team_admin_role: "admin"
|
team_admin_role: "admin"
|
||||||
teams_api_url: http://fake-teams-api.default.svc.cluster.local
|
teams_api_url: http://fake-teams-api.default.svc.cluster.local
|
||||||
workers: "4"
|
workers: "4"
|
||||||
enable_master_load_balancer: "true"
|
# turn on/off load balancers for all Postgres clusters managed by the operator
|
||||||
|
# LB settings in cluster manifests take priority over these settings
|
||||||
|
# enable_master_load_balancer: "true"
|
||||||
# enable_replica_load_balancer: "true"
|
# enable_replica_load_balancer: "true"
|
||||||
api_port: "8080"
|
api_port: "8080"
|
||||||
ring_log_lines: "100"
|
ring_log_lines: "100"
|
||||||
|
|
|
||||||
|
|
@ -696,8 +696,11 @@ func (c *Cluster) shouldCreateLoadBalancerForService(role PostgresRole, spec *sp
|
||||||
return *spec.UseLoadBalancer
|
return *spec.UseLoadBalancer
|
||||||
}
|
}
|
||||||
|
|
||||||
if spec.EnableMasterLoadBalancer != nil {
|
// `enable_load_balancer`` governs LB for a master service
|
||||||
return *spec.EnableMasterLoadBalancer
|
// there is no equivalent operator configmap option for the replica LB
|
||||||
|
if c.OpConfig.EnableLoadBalancer != nil {
|
||||||
|
c.logger.Debugf("The operator configmap sets the deprecated `enable_load_balancer` param. Consider using the `enable_master_load_balancer` or `enable_replica_load_balancer` instead.", c.Name)
|
||||||
|
return *c.OpConfig.EnableLoadBalancer
|
||||||
}
|
}
|
||||||
|
|
||||||
return c.OpConfig.EnableMasterLoadBalancer
|
return c.OpConfig.EnableMasterLoadBalancer
|
||||||
|
|
|
||||||
|
|
@ -82,6 +82,8 @@ type Config struct {
|
||||||
TeamAdminRole string `name:"team_admin_role" default:"admin"`
|
TeamAdminRole string `name:"team_admin_role" default:"admin"`
|
||||||
EnableMasterLoadBalancer bool `name:"enable_master_load_balancer" default:"false"`
|
EnableMasterLoadBalancer bool `name:"enable_master_load_balancer" default:"false"`
|
||||||
EnableReplicaLoadBalancer bool `name:"enable_replica_load_balancer" default:"false"`
|
EnableReplicaLoadBalancer bool `name:"enable_replica_load_balancer" default:"false"`
|
||||||
|
// deprecated and kept for backward compatibility
|
||||||
|
EnableLoadBalancer *bool `name:"enable_load_balancer" default:"true"`
|
||||||
MasterDNSNameFormat stringTemplate `name:"master_dns_name_format" default:"{cluster}.{team}.{hostedzone}"`
|
MasterDNSNameFormat stringTemplate `name:"master_dns_name_format" default:"{cluster}.{team}.{hostedzone}"`
|
||||||
ReplicaDNSNameFormat stringTemplate `name:"replica_dns_name_format" default:"{cluster}-repl.{team}.{hostedzone}"`
|
ReplicaDNSNameFormat stringTemplate `name:"replica_dns_name_format" default:"{cluster}-repl.{team}.{hostedzone}"`
|
||||||
PDBNameFormat stringTemplate `name:"pdb_name_format" default:"postgres-{cluster}-pdb"`
|
PDBNameFormat stringTemplate `name:"pdb_name_format" default:"postgres-{cluster}-pdb"`
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue