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 IV. Maintenance
  4. Upgrading
  5. Upgrading Cloud Scale Technology
  6. Upgrade PostgreSQL database
NetBackup™ Deployment Guide for Kubernetes Clusters

Upgrade PostgreSQL database

Depending on the following scenarios, perform the appropriate procedure to upgrade PostgreSQL database:

  • Upgrade only

  • Upgrade and modify additional parameters

Upgrade only

If upgrading from 10.5 or later and you do not need to modify parameters other than tag and logDestination, use the following command:

helm upgrade postgresql postgresql-<version>.tgz -n netbackup --reuse-values \ --set postgresql.image.tag=21.0.x.x-xxxx \ --set postgresql.logDestination=stderr \ --set postgresqlUpgrade.image.tag=21.0.x.x-xxxx

Upgrade and modify additional parameters

Perform the following steps to upgrade PostgreSQL database when modifying the parameters in addition to the tags:

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

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

  • Use the following command to edit the chart values:

    logDestination: stderr

    vi postgres-values.yaml

    Following is an example for postgres-values.yaml file:

    # Default values for postgresql.
    global:
      environmentNamespace: "netbackup"
      containerRegistry: "364956537575.dkr.ecr.us-east-1.amazonaws.com"
      timezone: null
     
    postgresql:
      replicas: 1
      # 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: "21.0.x.x-xxxx"
        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: "21.0.x.x-xxxx"
        pullPolicy: Always
      volume:
        volumeClaimName: nb-psql-pvc
        mountPathData: /netbackup/postgresqldb
        timezone: null
      securityContext:
        runAsUser: 0
      env:
        dataDir: /netbackup/postgresqldb
  • Execute the following command to upgrade 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

Taints and tolerations

If primary node pool has taints applied and they are not added to postgres-values.yaml file, then manually add tolerations to the PostgreSQL StatefulSet as follows:

  • To verify that node pools use taints, run the following command:

    kubectl get nodes -o=custom-columns=NodeName:.metadata.name,TaintKey:.spec.taints[*].key,TaintValue:.spec.taints[*].value,TaintEffect:.spec.taints[*].effect

    NodeName TaintKey TaintValue TaintEffect
    ip-10-248-231-149.ec2.internal <none> <none> <none>
    ip-10-248-231-245.ec2.internal <none> <none> <none>
    ip-10-248-91-105.ec2.internal nbupool agentpool NoSchedule
  • To view StatefulSets, run the following command:

    kubectl get statefulsets -n netbackup

    NAME READY AGE
    nb-postgresql 1/1 76m
    nb-primary 0/1 51m
  • Edit the PostgreSQL StatefulSets and add tolerations as follows:

    kubectl edit statefulset nb-postgresql -n netbackup

Following is an example of the modified PostgreSQL StatefulSets:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  annotations:
    meta.helm.sh/release-name: postgresql
    meta.helm.sh/release-namespace: netbackup
  creationTimestamp: "2024-03-25T15:11:59Z"
  generation: 1
  labels:
    app: nb-postgresql
    app.kubernetes.io/managed-by: Helm
  name: nb-postgresql
...
spec:
  template:
    spec:
      containers:
      ...
 
 
      nodeSelector:
        nbupool: agentool
      tolerations:
      - effect: NoSchedule
        key: nbupool
        operator: Equal
        value: agentpool

Feedback

Was this page helpful?
Previous

Upgrade fluentbit

Next

Create db-cert bundle

Feedback

Was this page helpful?