Ransomware attackers specifically target and attempt to destroy backup systems to increase the probability of payment. Hardening your system is critical. Please ensure you have reviewed your platform security using the Security Hardening Checklist
Cohesity

COHESITY Documentation

Explore our documentation to get started, discover products & new features, access troubleshooting guides, register sources, platforms support.

Products
Data Security Alliance
Visit Cohesity.com
Demos
Support
Blogs
Developers
Partner Portals
Cohesity Community
© 2026 Cohesity, Inc. All Rights Reserved.
Terms of Use|
Privacy Policy|
Legal|
  1. Home
  2. NetBackup™ Deployment Guide for Kubernetes Clusters
  3. Section II. Deployment
  4. Deploying Cloud Scale
  5. Deploying Postgres
NetBackup™ Deployment Guide for Kubernetes Clusters

Deploying Postgres

NetBackup version 10.4 and later provides support for deploying the Postgres database using Helm charts.

Note:

(Optional) If you want Postgres pod to not be scheduled on any other nodes other than Primary nodepool, add Kubernetes taints to the Media, MSDP and FlexSnap/NetBackup Snapshot Manager nodepool.

For more information on Kubernetes taints, refer to the following section:

To deploy Postgres using Helm charts

  1. Use the following command to save the PostgreSQL chart values to a file:

    helm show values postgresql-<version>.tgz > postgres-values.yaml

  2. Use the following command to edit the chart values:

    vi postgres-values.yaml

  3. Change the value of initialDbAdminPassword in postgres-values.yaml file with the unified container password saved while taking the backup.
  4. Execute the following command to deploy the PostgreSQL database:

    helm upgrade --install postgresql postgresql-<version>.tgz -f postgres-values.yaml -n netbackup

    Or

    If using the OCI container registry, use the following command:

    helm upgrade --install postgresql oci://abcd.veritas.com:5000/helm-charts/netbackup-postgresql --version <version> -f postgres-values.yaml -n netbackup

    Following is the output of the above command:

    helm show values postgresql-11.0.tgz > postgres-values.yaml
    vi postgres-values.yaml
     
    helm upgrade --install postgresql postgresql-11.0.tgz -f postgres-values.yaml -n netbackup
    Release "postgresql" does not exist. Installing it now.
    NAME: postgresql
    LAST DEPLOYED: Tue Feb 27 00:43:17 2024
    NAMESPACE: netbackup
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    

    Following is an example for postgres-values.yaml file which includes the parameter for private registry support.

    # Copyright (c) 2024 Veritas Technologies LLC. All rights reserved
    
    # Default values for postgresql.
    global:
      environmentNamespace: "netbackup"
      containerRegistry: "example.azurecr.io"
      timezone: null
    
    postgresql:
      replicas: 1
      # imagePullSecrets: The imagePullSecrets field is used to specify Kubernetes secrets for pulling images from private registries.
      # Example:
      # imagePullSecrets:
      #   - myregistrysecret
      # imagePullSecrets: []
      # The values in the image (name, tag) are placeholders. These will be set
      # when the deploy_nb_cloudscale.sh runs.
      image:
        name: "netbackup/postgresql"
        tag: "__NBPSQL_TAG__"
        pullPolicy: Always
      service:
        serviceName: nb-postgresql
      volume:
        volumeClaimName: nb-psql-pvc
        volumeDefaultMode: 0640
        pvcStorage: 30Gi
        # configMapName: nbpsqlconf
        storageClassName: nb-disk-premium
        mountPathData: /netbackup/postgresqldb
        secretMountPath: /netbackup/postgresql/keys/server
        # mountConf: /netbackup
      securityContext:
        runAsUser: 0
      createCerts: true
      # pgbouncerIniPath: /netbackup/pgbouncer.ini
      nodeSelector:
        key: agentpool
        value: nbupool
    
      # Resource requests (minima) and limits (maxima). Requests are used to fit
      # the database pod onto a node that has sufficient room. Limits are used to
      # throttle (for CPU) or terminate (for memory) containers that exceed the
      # limit. For details, refer to Kubernetes documentation:
      # https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-units-in-kubernetes
      # Other types of resources are documented, but only `memory` and `cpu` are
      # recognized by NetBackup.
      #
      # resources:
      #   requests:
      #     memory: 2Gi
      #     cpu: 500m
      #   limits:
      #     memory: 3Gi
      #     cpu: 3
    
      # Example tolerations. Check taints on the desired nodes and update keys and
      # values.
      #
      # tolerations:
      # - key: agentpool
      #   value: nbupool
      # - key: agentpool
      #   value: mediapool
      # - key: agentpool
      #   value: primarypool
      # - key: storage-pool
      #   value: storagepool
      # - key: data-plane-pool
      #   value: dataplanepool
      serverSecretName: postgresql-server-crt
      clientSecretName: postgresql-client-crt
      dbSecretName: dbsecret
      dbPort: 13785
      pgbouncerPort: 13787
      dbAdminName: postgres
      initialDbAdminPassword: postgres
      dataDir: /netbackup/postgresqldb
      # postgresqlConfFilePath: /netbackup/postgresql.conf
      # pgHbaConfFilePath: /netbackup/pg_hba.conf
      defaultPostgresqlHostName: nb-postgresql
    
      # file   => log postgresdb in file the default
      # stderr => log postgresdb in stderr so that fluentbit daemonset collect the logs.
      logDestination: file
    
    postgresqlUpgrade:
      replicas: 1
      image:
        name: "netbackup/postgresql-upgrade"
        tag: "__NBPSQL_TAG__"
        pullPolicy: Always
      volume:
        volumeClaimName: nb-psql-pvc
        mountPathData: /netbackup/postgresqldb
        timezone: null
      securityContext:
        runAsUser: 0
      env:
        dataDir: /netbackup/postgresqldb

More Information

Preparing the environment for NetBackup installation on Kubernetes cluster

Feedback

Was this page helpful?
Previous

Deploying fluentbit for logging

Next

Enable request logging, update configuration, and copying files from/to PostgreSQL pod

Feedback

Was this page helpful?