Skip to main content
CYBERTEC-PG-Operator
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage Support

Operator-Configuration

CRD for kind OperatorConfiguration

NameTyperequiredDescription
apiVersionstringtruecpo.opensource.cybertec.at/v1
kindstringtrueOperatorConfiguration
metadataobjecttrue
configurationobjecttrue

configuration

NameTypedefaultDescription
kubernetesobject
usersobject
connection_poolerobject
logging_rest_apiobject
load_balancerobject
major_version_upgradeobject
teams_apiobject
timeoutsobject
debugobject
logical_backupobject
aws_or_gcpobject
sidecarslistEach item is of type Container
docker_imagestring
enable_crd_registrationbooleantrueTrue, Operator updates the crd itself
enable_crd_validationbooleantruedeprecated
enable_lazy_spilo_upgradebooleanfalseIf true, update statefulset with new images without rolling update.
enable_pgversion_env_varbooleantrueSet PGVersion via ENV-Label. Changes can create issues
enable_shm_volumebooleantrueTrue adds tmpfs-Volume to remove shm memory-limitations
enable_spilo_wal_path_compatbooleanfalse
enable_team_id_clustername_prefixbooleanfalse
etcd_hoststringOnly required if the Kubernetes-native approach is not used.
kubernetes_use_configmapsbooleantrueRecommended! Uses configmaps for Patroni instead of entrypoints.
max_instancesint-1Maximum number of Postgres pods per cluster.
min_instancesint-1Minimal number of Postgres pods per cluster.
postgres_pod_resourcesstringtrue
repair_periodstring5mPeriod between subsequent repair requests
resync_periodstring30mPeriod between subsequent resync requests
set_memory_request_to_limitbooleanfalse
workersint8Number of workers in the operator that simultaneously process tasks such as create/update/delete clusters
⬅ Back to Parent

kubernetes

NameTypedefaultDescription
cluster_labelsmapa map of key-value pairs adding labels
cluster_domainstringcluster.localDNS domain used inside the K8s-Cluster. Used by the operator to communicate with clusters
cluster_name_labelstringcluster.cpo.opensource.cybertec.at/nameLabel to identify all resources of a cluster
container_readonly_root_filesystembooleanfalseEnables ReadOnlyRootFilesystem in the SecurityContext of the pods
enable_cross_namespace_secretbooleanfalseEnables the storage of secrets in another namespace, provided that it is activated. The namespace is defined in the cluster manifest.
enable_init_containersbooleantrueAllows the definition of init containers in the cluster manifest
enable_pod_antiaffinitybooleantrueThe pod anti-affinity rules are applied when activated.
enable_pod_disruption_budgetbooleantruePod Disruption Budgets (PDB) are generated for clusters when activated.
enable_readiness_probebooleantrueOperator adds readiness probe for resources when enabled
enable_liveness _probebooleanfalseOperator adds liveness probe for resources when enabled
enable_sidecarsbooleantrueAllows the definition of sidecars in the cluster manifest
inherited_labelslistLabels added to each resource
master_pod_move_timeoutstring20mTimeout for waiting for a primary pod to switch to another Kubernetes node.
oauth_token_secret_namestringpostgresql-operator
pdb_name_formatstringpostgres-{cluster}-pdbNaming scheme for generated pod disruption budgets (PDB)
pod_management_policystringordered_readyPod-Management-Strategy for the statefulset
pod_antiaffinity_topology_keystringkubernetes.io/hostnameDefines the anti-affinity topology Key
pod_antiaffinity_preferred_during_schedulingbooleanfalse
pod_role_labelstringmember.cpo.opensource.cybertec.at/roleDefines the label for the pod-role
pod_service_account_definitionstring''
pod_service_account_namestringcpo-podServiceAccount used for all cluster-pods
pod_service_account_role_binding_definitionstring''
pod_terminate_grace_periodstring5m
secret_name_templatestring{username}.{cluster}.credentials.{tprkind}.{tprgroup}
share_pgsocket_with_sidecarsbooleanfalse
spilo_allow_privilege_escalationbooleanfalseDefines privilege-escalation attribut in SecurityContext
spilo_privilegedbooleanfalseDefines privileged attribut in SecurityContext
storage_resize_modestringpvc
watched_namespacestring*Operator watches for Objects in the defined Namespace. * means all, `` means only operator-namespace, NAMESPACE_NAME means specific namespace
⬅ Back to Parent

users

NameTypedefaultDescription
enable_password_rotationbooleanfalsepassword rotation by the Operator for all Login Roles excluding DB_Owner
password_rotation_intervalint90Interval in days
password_rotation_user_retentionint180To avoid a constantly growing number of new users due to password rotation, the operator deletes the created users after a certain number of days. The number can be configured with this parameter. However, the operator checks whether the retention policy is at least twice as long as the rotation interval and updates it to this minimum if this is not the case.
replication_usernamestringcpo_replicationName for the replication-user
super_usernamestringpostgresName for the Superuser. Changes can create issues
⬅ Back to Parent

connection_pooler

NameTypedefaultDescription
connection_pooler_default_cpu_requestint500mCPU-Request for Pod
connection_pooler_default_cpu_limitstring1CPU-Limit for Pod
connection_pooler_default_memory_requeststring100MiMemory-Request for Pod
connection_pooler_default_memory_limitstring100MiMemory-Limit for Pod
connection_pooler_imagestringContainer-Image
connection_pooler_max_db_connectionsint60Max Connections between DB and Pooler. Divided by the connection_pooler_number_of_instances
connection_pooler_modestringtransactionPooler mode
connection_pooler_number_of_instancesint2Number of Instances
connection_pooler_schemastringpoolerSchema to create needed Objects like lookup function
connection_pooler_userintpoolerDatabase-User for pooler
⬅ Back to Parent

logging_rest_api

NameTypedefaultDescription
api_portint8080REST-API port
cluster_history_entriesint1000Number of lines used to store cluster logs.
ring_log_linesint100number of entries
⬅ Back to Parent

load_balancer

NameTypedefaultDescription
db_hosted_zonestringdb.example.comDNS-Definition for the Cluster DNS
enable_master_load_balancerbooleanfalseCreates loadbalancer service for the primary pod, if enabled
enable_master_pooler_load_balancerbooleanfalseCreates loadbalancer service for the primary pooler, if enabled
enable_replica_load_balancerbooleanfalseCreates loadbalancer service for the replica pods, if enabled
enable_replica_pooler_load_balancerbooleanfalseCreates loadbalancer service for the replica pooler, if enabled
external_traffic_policystringClusterDefines traffic policy for loadbalancers. Possible Values: Cluster, local
master_dns_name_formatstring{cluster}.{namespace}.{hostedzone}DNS-Format for the primary loadbalancer
replica_dns_name_formatstring{cluster}-repl.{namespace}.{hostedzone}DNS-Format for the replica loadbalancer
master_legacy_dns_name_formatstring{cluster}.{team}.{hostedzone}deprecated
replica_legacy_dns_name_formatstring{cluster}-repl.{team}.{hostedzone}deprecated
⬅ Back to Parent

major_version_upgrade

NameTypedefaultDescription
major_version_upgrade_modestringmanualMode for Major-Upgrades. manual Upgrade triggert bei PGVERSION-defintion in Cluster-Manifest, full Upgrade triggert by the operator based on target_major_version, off The operator never triggers an upgrade.
minimal_major_versionstring13The minimum Postgres major version that will not be automatically updated when major_version_upgrade_mode = full
target_major_versionstring18Target Postgres Major if the upgrade is triggered automatically via
updated when major_version_upgrade_mode = full
⬅ Back to Parent

teams_api

NameTypedefaultDescription
enable_team_superuserbooleanfalse
teams_api_urlstringhttps://teams.example.com/api/
team_admin_rolestringadmin
enable_postgres_team_crd_superusersbooleanfalse
protected_role_nameslist
pam_role_namestringcpo_pam
pam_configurationstringhttps://info.example.com/oauth2/tokeninfo?access_token= uid realm=/employees
team_api_role_configurationmapa map of key-value pairs adding labels
enable_teams_apibooleanfalse
enable_team_member_deprecationbooleanfalse
enable_admin_role_for_usersbooleanfalse
role_deletion_suffixstring_deleted
enable_postgres_team_crdbooleanfalse
⬅ Back to Parent

timeouts

NameTypedefaultDescription
patroni_api_check_intervalstring1s
patroni_api_check_timeoutstring5s
pod_deletion_wait_timeoutstring10m
pod_label_wait_timeoutstring10m
ready_wait_intervalstring4s
ready_wait_timeoutstring30s
resource_check_intervalstring3s
resource_check_timeoutstring10m
⬅ Back to Parent

debug

NameTypedefaultDescription
debug_loggingbooleantrueEnable Debug-Logs
enable_database_accessbooleantrueAllows the Operator to connect to the database (to create users and for other actions)
⬅ Back to Parent

logical_backup (deprecated)

NameTypedefaultDescription
logical_backup_docker_imagestringdeprecated
logical_backup_job_prefixstringlogical-backup-deprecated
logical_backup_providerstrings3deprecated
logical_backup_s3_bucketstringmy-bucket-urldeprecated
logical_backup_s3_ssestringAES256deprecated
logical_backup_schedulestring30 00 * * *deprecated
⬅ Back to Parent

aws_or_gcp

NameTypedefaultDescription
additional_secret_mount_pathstring/meta/credentials
aws_regionstringeu-central-1
enable_ebs_gp3_migrationbooleanfalse
enable_ebs_gp3_migration_max_sizeint1000
⬅ Back to Parent