Configuring Advanced Server Operator

Before installing the Operator, you must set the required prerequisites and settings in the configuration file (operator values yaml). Refer to the sample configuration file sample-operator-values.yaml for examples of the values used in the configuration file.

The following section provides examples of settings and prerequisites required for the configuration file:

Header Sections

Section Description
licensing Verifies that you accept the End-User License Agreement.
image Stores details related to the EDB container images, such as container registry URI, registry credentials, image pull policy, and registry secret name.
config Stores configuration details of the different components, such as database, queryrouter, backup, archiving, monitoring, persistence, and resource specifications.

Licensing section

Prerequisite: The user must set the value of acceptEULA to Yes to use the Operator.

Parameter(s) Possible Values Description
acceptEULA Yes, No Indicates if the user accepts the End-User License Agreement.

Image section

Prerequisite: The user must obtain the EDB registry username and password to use the Operator.

Parameter(s) Possible Values Description
credentials/ containers.enterprisedb.com Credentials required to access the EDB container registry:
registry Provided by EDB EDB container registry URI
username Provided by EDB EDB registry username
password   EDB registry password
epository edb  
pullPolicy

Always

IfNotPresent

Never

For more detail, refer to https://kubernetes.io/docs/concepts/configuration/overview/
pullSecret edb-regsecret Name of the registry secret used for downloading container images from the EDB registry by kubernetes. The secret is automatically created upon installation based on the credentials provided earlier.

Config (header) section

Prerequisite: The default serviceaccount of an Operator namespace must be granted cluster-admin role.

For example, enter the following command:

kubectl create clusterrolebinding <operator-namespace>-cluster-admin-binding --clusterrole=cluster-admin --serviceaccount=<operator-namespace>:default

Parameter(s) Possible Values Description
version 1.0 Initial version of Advanced Server Operator
namespace User-specified Namespace where the operator will be deployed
userNamespaces Comma-separated user-specified list The namespace(s) where the end-users will be deploy Advanced Server clusters

Config (service) section

Prerequisite: If a service type of NodePort is used, the allowable port range for NodePort services (30000-32767) must be open on the kubernetes cluster.

Parameter(s) Possible Values Description
type NodePort, LoadBalancer The type of Kubernetes service to be used for accessing the Operator
port User-specified The port of the Kubernetes service

Config (database) section

Prerequisite: If antiAffinity is set to true, the number of pods in an Advanced Server cluster cannot exceed the number of nodes in the kubernetes cluster.

Parameter(s) Possible Values Description
antiAffinity true, false

Indicates if anti-affinity rule should be applied between pods of the same Advanced Server cluster. For more detail, refer to:

https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity

Config (database/services) section

Prerequisite: If a service type of NodePort is used, the allowable port range for NodePort services (30000-32767) must be open on the kubernetes cluster.

Parameter(s) Possible Values Description
master/ NodePort, LoadBalancer The type of Kubernetes service to be used for accessing the master pod.
type User-specified The port of the Kubernetes service.
port    
standby/ NodePort, LoadBalancer The type of Kubernetes service to be used for accessing the standby pods.
type User-specified The port of the Kubernetes service.
port    

Config (database/probes) section

Parameter(s) Possible Values Description
readiness/ true, false Indicates whether readiness probes will be used.
enabled User-specified For details on using readiness probes, refer to the kubernetes documentation at: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
initialDelaySeconds    
periodSeconds    
timeoutSeconds    
failureThreshold    
successThreshold    
liveness/ true, false Indicates whether liveness probes will be used.
enabled User-specified For details on using livenss probes, refer to the kubernetes documentation at: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
initialDelaySeconds    
periodSeconds    
timeoutSeconds    
failureThreshold    
successThreshold    

Config (queryrouter) section

Prerequisite: If antiAffinity is set to true, the number of PgPool replicas supporting the same Advanced Server cluster cannot exceed the number of nodes in the Kubernetes cluster.

Parameter(s) Possible Values Description
enabled true, false Indicates if query routing will be used (via PgPool)
image edb-pgpool Name of the PgPool container image
imageTag v4.0 Version of PgPool running in the container
replicas User-specified Number of replicas of the PgPool container to deploy
witnessNode true, false Indicates the PgPool containers should be used as witness nodes for EDB Failover Manager
antiAffinity true, false

Indicates whether anti-affinity rule should be applied between replicas of the PgPool container. For more detail, refer to:

https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity

Config (queryrouter/service) section

Prerequisite: If a service type of NodePort is used, the allowable port range for NodePort services (``30000-32767) must be open on the kubernetes cluster.

Parameter(s) Possible Values Description
type NodePort, LoadBalancer The type of kubernetes service tp be used with PgPool
port User-specified The port of the kubernetes service

Config (queryrouter/probes) Section

For details, see the Config (database/probes) Section table.

Config (backup) section

Parameter(s) Possible Values Description
enabled true, false Indicates whether backup will be used
image edb-bart Name of the BART container image
imageTag v2.4 Version of BART running in the container
hostAddress localhost Host of the BART server
persistentVolume/ User-specified Capacity and access mode of the persistent volume to be used for backups. For more detail, refer to:
capacity ReadWriteMany https://kubernetes.io/docs/concepts/storage/persistent-volumes/
accessModes User-specified Specification of the NFS volume to be used for backup
nfsServer/    
path    
ipAddress    
persistentVolumeClaim/ User-specified Size of the persistent volume claim to be used for backups. For more detail, refer to:
size   https://kubernetes.io/docs/concepts/storage/persistent-volumes/

Config (archive) section

Parameter(s) Possible Values Description
enabled true, false Indicates whether database archiving will be used
persistentVolume/ User-specified Capacity and access mode of the persistent volume to be used for backups. For more detail, refer to:
capacity ReadWriteMany https://kubernetes.io/docs/concepts/storage/persistent-volumes/
accessModes User-specified Specification of the NFS volume to be used for backup
nfsServer/    
path    
ipAddress    
persistentVolumeClaim/ User-specified Size of the persistent volume claim to be used for backups. For more detail, refer to:
size   https://kubernetes.io/docs/concepts/storage/persistent-volumes/

Config (monitor) section

Prerequisite: The port range for NodePort services (30000-32767) must be open on the kubernetes cluster.

Parameter(s) Possible Values Description
enabled true, false Indicates if monitoring will be used
serverImage edb-pemserver Name of the PEM server container image
serverImageTag v7.8 Version of PEM server running in the container
cidrAddress 0.0.0.0/0 CIDR address
httpPorts

30000-32767,

30000-32767

Comma-separated list of http ports of the PEM servers
httpsPorts

30000-32767,

30000-32767

Comma-separated list of https ports of the PEM servers
dbImage edb-as Name of the Advanced Server container image used as the backing database for PEM
dbImageTag v11 Version of the Advanced Server container image used as the backing database for PEM
pgport User-specified Database port of backing database for PEM
user User-specified Database user of backing database for PEM
password User-specified Database password of backing database for PEM
enterprisedbPassword User-specified Database password for the default user (enterprisedb) of backing database for PEM

Config (persistence) section

Prerequisite: The storageClass specified must be available if persistence is enabled. Refer to the Kubernetes documentation at the link provided above for details on how to create storage classes for your specific platform.

If dynamic provisioning is NOT selected, i.e. set to false, then persistent volumes will have to be created beforehand for each replica and have to be labeled with the respective namespace and cluster names:

kubectl label my-persistent-vol namespace=my-namespace cluster=my-cluster
Parameter(s) Possible Values Description
enabled true, false Indicates whether data will be persisted
dynamic true, false Indicates whether dynamic provisioning will be used to create persistent volumes.
storageClass User-specified

Storage class to be used for the persistent volume. For more detail, refer to:

https://kubernetes.io/docs/concepts/storage/storage-classes/

accessModes ReadWriteOnce Access mode of the persistent volume
size User-specified

Size of the persistent volume claim to be used for data. For more detail, refer to:

https://kubernetes.io/docs/concepts/storage/persistent-volumes/

Config (resources) section

Parameter(s) Possible Values Description
limits/    
cpu User-Specified Specification for resource limits. For more detail, refer to:
memory User-Specified https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
requests/ User-Specified Specification for resource requests. For more detail, refer to:
cpu memory User-Specified https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/