database.go: remove hardcoded .svc.cluster.local dns suffix (#561)
* database.go: substitute hardcoded .svc.cluster.local dns suffix with config parameter Use the pod's configured dns search path, for clusters where .svc.cluster.local is not correct.
This commit is contained in:
parent
3ffc8ac5fa
commit
ebda39368e
|
|
@ -23,6 +23,7 @@ config:
|
||||||
workers: "4"
|
workers: "4"
|
||||||
docker_image: registry.opensource.zalan.do/acid/spilo-cdp-11:1.5-p70
|
docker_image: registry.opensource.zalan.do/acid/spilo-cdp-11:1.5-p70
|
||||||
secret_name_template: '{username}.{cluster}.credentials'
|
secret_name_template: '{username}.{cluster}.credentials'
|
||||||
|
cluster_domain: cluster.local
|
||||||
super_username: postgres
|
super_username: postgres
|
||||||
enable_teams_api: "false"
|
enable_teams_api: "false"
|
||||||
spilo_privileged: "false"
|
spilo_privileged: "false"
|
||||||
|
|
|
||||||
|
|
@ -103,6 +103,12 @@ In this definition, the operator overwrites the account's name to match
|
||||||
`pod_service_account_name` and the `default` namespace to match the target
|
`pod_service_account_name` and the `default` namespace to match the target
|
||||||
namespace. The operator performs **no** further syncing of this account.
|
namespace. The operator performs **no** further syncing of this account.
|
||||||
|
|
||||||
|
## Non-default cluster domain
|
||||||
|
|
||||||
|
If your cluster uses a different dns domain than `cluster.local`, this needs
|
||||||
|
to be set in the operator ConfigMap. This is used by the operator to connect
|
||||||
|
to the clusters after creation.
|
||||||
|
|
||||||
## Role-based access control for the operator
|
## Role-based access control for the operator
|
||||||
|
|
||||||
The `manifests/operator-service-account-rbac.yaml` defines cluster roles and
|
The `manifests/operator-service-account-rbac.yaml` defines cluster roles and
|
||||||
|
|
|
||||||
|
|
@ -159,6 +159,11 @@ configuration they are grouped under the `kubernetes` key.
|
||||||
allowed. The default is
|
allowed. The default is
|
||||||
`{username}.{cluster}.credentials.{tprkind}.{tprgroup}`.
|
`{username}.{cluster}.credentials.{tprkind}.{tprgroup}`.
|
||||||
|
|
||||||
|
* **cluster_domain**
|
||||||
|
defines the default dns domain for the kubernetes cluster the operator is
|
||||||
|
running in. The default is `cluster.local`. Used by the operator to connect
|
||||||
|
to the postgres clusters after creation.
|
||||||
|
|
||||||
* **oauth_token_secret_name**
|
* **oauth_token_secret_name**
|
||||||
a name of the secret containing the `OAuth2` token to pass to the teams API.
|
a name of the secret containing the `OAuth2` token to pass to the teams API.
|
||||||
The default is `postgresql-operator`.
|
The default is `postgresql-operator`.
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ data:
|
||||||
docker_image: registry.opensource.zalan.do/acid/spilo-cdp-11:1.5-p70
|
docker_image: registry.opensource.zalan.do/acid/spilo-cdp-11:1.5-p70
|
||||||
pod_service_account_name: "zalando-postgres-operator"
|
pod_service_account_name: "zalando-postgres-operator"
|
||||||
secret_name_template: '{username}.{cluster}.credentials'
|
secret_name_template: '{username}.{cluster}.credentials'
|
||||||
|
cluster_domain: cluster.local
|
||||||
super_username: postgres
|
super_username: postgres
|
||||||
enable_teams_api: "false"
|
enable_teams_api: "false"
|
||||||
spilo_privileged: "false"
|
spilo_privileged: "false"
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ configuration:
|
||||||
pod_terminate_grace_period: 5m
|
pod_terminate_grace_period: 5m
|
||||||
pdb_name_format: "postgres-{cluster}-pdb"
|
pdb_name_format: "postgres-{cluster}-pdb"
|
||||||
secret_name_template: "{username}.{cluster}.credentials.{tprkind}.{tprgroup}"
|
secret_name_template: "{username}.{cluster}.credentials.{tprkind}.{tprgroup}"
|
||||||
|
cluster_domain: cluster.local
|
||||||
oauth_token_secret_name: postgresql-operator
|
oauth_token_secret_name: postgresql-operator
|
||||||
pod_role_label: spilo-role
|
pod_role_label: spilo-role
|
||||||
spilo_privileged: false
|
spilo_privileged: false
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,7 @@ type KubernetesMetaConfiguration struct {
|
||||||
WatchedNamespace string `json:"watched_namespace,omitempty"`
|
WatchedNamespace string `json:"watched_namespace,omitempty"`
|
||||||
PDBNameFormat config.StringTemplate `json:"pdb_name_format,omitempty"`
|
PDBNameFormat config.StringTemplate `json:"pdb_name_format,omitempty"`
|
||||||
SecretNameTemplate config.StringTemplate `json:"secret_name_template,omitempty"`
|
SecretNameTemplate config.StringTemplate `json:"secret_name_template,omitempty"`
|
||||||
|
ClusterDomain string `json:"cluster_domain"`
|
||||||
OAuthTokenSecretName spec.NamespacedName `json:"oauth_token_secret_name,omitempty"`
|
OAuthTokenSecretName spec.NamespacedName `json:"oauth_token_secret_name,omitempty"`
|
||||||
InfrastructureRolesSecretName spec.NamespacedName `json:"infrastructure_roles_secret_name,omitempty"`
|
InfrastructureRolesSecretName spec.NamespacedName `json:"infrastructure_roles_secret_name,omitempty"`
|
||||||
PodRoleLabel string `json:"pod_role_label,omitempty"`
|
PodRoleLabel string `json:"pod_role_label,omitempty"`
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ func (c *Cluster) pgConnectionString() string {
|
||||||
password := c.systemUsers[constants.SuperuserKeyName].Password
|
password := c.systemUsers[constants.SuperuserKeyName].Password
|
||||||
|
|
||||||
return fmt.Sprintf("host='%s' dbname=postgres sslmode=require user='%s' password='%s' connect_timeout='%d'",
|
return fmt.Sprintf("host='%s' dbname=postgres sslmode=require user='%s' password='%s' connect_timeout='%d'",
|
||||||
fmt.Sprintf("%s.%s.svc.cluster.local", c.Name, c.Namespace),
|
fmt.Sprintf("%s.%s.svc.%s", c.Name, c.Namespace, c.OpConfig.ClusterDomain),
|
||||||
c.systemUsers[constants.SuperuserKeyName].Name,
|
c.systemUsers[constants.SuperuserKeyName].Name,
|
||||||
strings.Replace(password, "$", "\\$", -1),
|
strings.Replace(password, "$", "\\$", -1),
|
||||||
constants.PostgresConnectTimeout/time.Second)
|
constants.PostgresConnectTimeout/time.Second)
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,7 @@ func (c *Controller) importConfigurationFromCRD(fromCRD *acidv1.OperatorConfigur
|
||||||
result.PodEnvironmentConfigMap = fromCRD.Kubernetes.PodEnvironmentConfigMap
|
result.PodEnvironmentConfigMap = fromCRD.Kubernetes.PodEnvironmentConfigMap
|
||||||
result.PodTerminateGracePeriod = time.Duration(fromCRD.Kubernetes.PodTerminateGracePeriod)
|
result.PodTerminateGracePeriod = time.Duration(fromCRD.Kubernetes.PodTerminateGracePeriod)
|
||||||
result.SpiloPrivileged = fromCRD.Kubernetes.SpiloPrivileged
|
result.SpiloPrivileged = fromCRD.Kubernetes.SpiloPrivileged
|
||||||
|
result.ClusterDomain = fromCRD.Kubernetes.ClusterDomain
|
||||||
result.WatchedNamespace = fromCRD.Kubernetes.WatchedNamespace
|
result.WatchedNamespace = fromCRD.Kubernetes.WatchedNamespace
|
||||||
result.PDBNameFormat = fromCRD.Kubernetes.PDBNameFormat
|
result.PDBNameFormat = fromCRD.Kubernetes.PDBNameFormat
|
||||||
result.SecretNameTemplate = fromCRD.Kubernetes.SecretNameTemplate
|
result.SecretNameTemplate = fromCRD.Kubernetes.SecretNameTemplate
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@ type Resources struct {
|
||||||
PodDeletionWaitTimeout time.Duration `name:"pod_deletion_wait_timeout" default:"10m"`
|
PodDeletionWaitTimeout time.Duration `name:"pod_deletion_wait_timeout" default:"10m"`
|
||||||
PodTerminateGracePeriod time.Duration `name:"pod_terminate_grace_period" default:"5m"`
|
PodTerminateGracePeriod time.Duration `name:"pod_terminate_grace_period" default:"5m"`
|
||||||
PodPriorityClassName string `name:"pod_priority_class_name"`
|
PodPriorityClassName string `name:"pod_priority_class_name"`
|
||||||
|
ClusterDomain string `name:"cluster_domain" default:"cluster.local"`
|
||||||
SpiloPrivileged bool `name:"spilo_privileged" default:"false"`
|
SpiloPrivileged bool `name:"spilo_privileged" default:"false"`
|
||||||
ClusterLabels map[string]string `name:"cluster_labels" default:"application:spilo"`
|
ClusterLabels map[string]string `name:"cluster_labels" default:"application:spilo"`
|
||||||
InheritedLabels []string `name:"inherited_labels" default:""`
|
InheritedLabels []string `name:"inherited_labels" default:""`
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue