Skip to main content
pgAgroal Enterprise docs · Helm values

pgAgroal Enterprise · Reference

Helm values

Every configurable value in the pgagroal-enterprise chart, grouped by area, with its type, default, and purpose. The chart deploys the operator (RBAC plus a hardened deployment) and, optionally, the fleet control plane; you create poolers by applying Pgagroal resources. To install the chart, see the install tutorial.

Defaults below are taken from the chart's values.yaml. Pin a released image tag (ideally by digest) in production — a moving :latest forces Always pulls. Supply DSN, tokens, and exporter credentials via Kubernetes Secrets, never in values.yaml.

Naming

Top-level overrides for generated resource names.

KeyTypeDefaultPurpose
nameOverridestring""Override the chart name used in resource names.
fullnameOverridestring""Override the full release name used for generated resources.

RBAC and service account

The operator needs a ClusterRole and binding to reconcile Pgagroal resources across namespaces.

KeyTypeDefaultPurpose
rbac.createbooltrueCreate the ClusterRole plus ClusterRoleBinding the operator needs.
serviceAccount.createbooltrueCreate the operator ServiceAccount.
serviceAccount.namestring""ServiceAccount name; defaults to the chart fullname when empty.
serviceAccount.annotationsmap{}Annotations on the ServiceAccount (e.g. for cloud IAM role binding).

Operator

The operator deployment: image, replica count, optional management-plane tracing, resources, and scheduling.

KeyTypeDefaultPurpose
operator.replicasint1Number of operator replicas.
operator.image.repositorystringghcr.io/elevarq/pgagroal-enterprise-operatorOperator container image repository.
operator.image.tagstring"0.1.0"Operator image tag; pin a released version in production.
operator.image.pullPolicystringIfNotPresentImage pull policy for the operator.
operator.otelboolfalseEnable management-plane tracing, configured via standard OTEL_* env vars.
operator.envlist[]OTEL_* environment for the exporter (used only when operator.otel=true); source credentials from a Secret.
operator.nodeSelectormap{}Node selector for the operator pod.
operator.tolerationslist[]Tolerations for the operator pod.
operator.affinitymap{}Affinity rules for the operator pod.

Operator resources

CPU and memory requests and limits for the operator container.

KeyTypeDefaultPurpose
operator.resources.requests.cpustring50mRequested CPU.
operator.resources.requests.memorystring64MiRequested memory.
operator.resources.limits.cpustring500mCPU limit.
operator.resources.limits.memorystring256MiMemory limit.

Operator security context

The operator is hardened by default. These values are overridable but kept secure — an approach aligned with least-privilege readiness.

KeyTypeDefaultPurpose
operator.securityContext.allowPrivilegeEscalationboolfalseBlock privilege escalation in the container.
operator.securityContext.readOnlyRootFilesystembooltrueMount the container root filesystem read-only.
operator.securityContext.capabilities.droplist["ALL"]Drop all Linux capabilities.
operator.podSecurityContext.runAsNonRootbooltrueRequire the pod to run as a non-root user.
operator.podSecurityContext.seccompProfile.typestringRuntimeDefaultApply the runtime default seccomp profile.

Control plane (optional)

Off by default. When enabled, the chart deploys the fleet control plane alongside the operator. It needs a PostgreSQL DSN and operator tokens, which must be supplied through existing Secrets — never as plaintext in values.yaml.

KeyTypeDefaultPurpose
controlPlane.enabledboolfalseDeploy the fleet control plane alongside the operator.
controlPlane.replicasint1Number of control-plane replicas.
controlPlane.image.repositorystringghcr.io/elevarq/pgagroal-enterpriseControl-plane container image repository.
controlPlane.image.tagstring"0.1.0"Control-plane image tag; pin a released version in production.
controlPlane.image.pullPolicystringIfNotPresentImage pull policy for the control plane.
controlPlane.addrstring":8443"Listen address for the control plane.
controlPlane.otelboolfalseEnable control-plane tracing.
controlPlane.envlist[]Environment for the control plane; reference Secrets for the DSN and tokens.
controlPlane.resources.requests.cpustring50mRequested CPU.
controlPlane.resources.requests.memorystring64MiRequested memory.
controlPlane.resources.limits.cpustring500mCPU limit.
controlPlane.resources.limits.memorystring256MiMemory limit.

Minimal override example

Override only what differs from the defaults. The example below pins a released operator tag, turns on management-plane tracing, and enables the control plane with its DSN sourced from a Secret.

# values-prod.yaml
operator:
  replicas: 2
  image:
    tag: "0.1.0"
  otel: true
  env:
    - name: OTEL_EXPORTER_OTLP_ENDPOINT
      value: "http://otel-collector:4317"

controlPlane:
  enabled: true
  image:
    tag: "0.1.0"
  env:
    - name: PGAGROAL_CP_DSN
      valueFrom:
        secretKeyRef:
          name: cp-secrets
          key: dsn

Apply it at install or upgrade time:

helm upgrade --install pgagroal-enterprise charts/pgagroal-enterprise \
  --namespace pgagroal-system --create-namespace \
  -f values-prod.yaml

Next steps