# PG Operator 3.0.0+ compatibility with certified pgBackRest images

**URL:** <https://forums.percona.com/t/pg-operator-3-0-0-compatibility-with-certified-pgbackrest-images/41259>\
**Category:** Percona Operator for PostgreSQL\
**Created:** [September 10, 2026, 3:38pm UTC](https://forums.percona.com/t/pg-operator-3-0-0-compatibility-with-certified-pgbackrest-images/41259 "2026-09-10T15:38:14Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![a.veselov.s](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/a.veselov.s/32/24237_2.png) [@a.veselov.s](https://forums.percona.com/u/a.veselov.s)\
**Post date:** [September 10, 2026, 3:38pm UTC](https://forums.percona.com/t/pg-operator-3-0-0-compatibility-with-certified-pgbackrest-images/41259/1 "2026-09-10T15:38:14Z")

</div>

## Description:

The `percona/percona-pgbackrest:2.58.0-2` image is mentioned in the [Percona certified images documentation](https://docs.percona.com/percona-operator-for-postgresql/3.0.0/images.html) for the operator v3.0.0.

Unfortunately, using this image is blocked by a fatal mismatch between the pgbackrest path used by the operator ([/opt/crunchy/bin/pgbackrest](https://github.com/percona/percona-postgresql-operator/blob/55207e479a335600eeb27fd3b37d2bda6c743b82/internal/controller/postgrescluster/pgbackrest.go#L913)) and the actual path in the image (`/usr/bin/pgbackrest`). As a result, the backup container fails with the following error:

`Error: failed to create containerd task: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: exec: "/opt/crunchy/bin/pgbackrest": stat /opt/crunchy/bin/pgbackrest: no such file or directory`

I tried this with 3.1.0 with **the** same result. **Am I missing** something important? **It looks** like **a** working image for 3.0.0 **does not exist** and backups **are** broken, but I **haven’t found any** related open issues in **the** operator repo or Percona Jira, despite **it being a** pretty critical function.

## Steps to Reproduce:

Percona PostgreSQL Operator 3.0.0  
Deploy CR PerconaPGCluster with

```auto
spec:
  backups:
    pgbackrest:
      image: percona/percona-pgbackrest:2.58.0-2
      # ... setup backup ... 

```

Than check backup pod logs

## Version:

Percona PostgreSQL Operator 3.0.0  
pgBackRest image `perconalab/percona-pgbackrest:2.58.0-2`

## Logs:

\*-backup-\* pods finish in StartError state with  
`Error: failed to create containerd task: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: exec: "/opt/crunchy/bin/pgbackrest": stat /opt/crunchy/bin/pgbackrest: no such file or directory`

## Expected Result:

Backup pods stars and do backups

## Actual Result:

No backups are prodused

---

<div class="post-metadata">

**Author:** ![Julio\_Pasinatto](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/julio_pasinatto/32/17643_2.png) [@Julio\_Pasinatto](https://forums.percona.com/u/Julio_Pasinatto)\
**Post date:** [September 10, 2026, 5:08pm UTC](https://forums.percona.com/t/pg-operator-3-0-0-compatibility-with-certified-pgbackrest-images/41259/2 "2026-09-10T17:08:16Z")

</div>

Hi @a.veselov.s

I couldn’t reproduce your issue by starting a fresh 3.0.0 cluster.

Could you please provide the following information to help us investigate this issue?

- What `crVersion` are you using?
- Is this an existing cluster, or was the cluster newly created?
- What image is being used in the `initContainer` of your backup Job?
- Are you using a CR version older than `2.7.0`?
- Did the `initContainer` terminate successfully?

You can use the following commands to collect the relevant information:

```auto
kubectl get pg <your-cluster-name> -o yaml | yq '.spec.crVersion'

kubectl get job <your-backup-job> -o yaml | yq '.spec.template.spec.initContainers'

kubectl get pod <your-backup-pod> -o jsonpath='{range .status.initContainerStatuses[?(@.name=="pgbackrest-init")]}{.name} exit={.state.terminated.exitCode} reason={.state.terminated.reason}{"\n"}{end}'

```

Thanks!

---

<div class="post-metadata">

**Author:** ![a.veselov.s](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/a.veselov.s/32/24237_2.png) [@a.veselov.s](https://forums.percona.com/u/a.veselov.s)\
**Post date:** [September 10, 2026, 6:33pm UTC](https://forums.percona.com/t/pg-operator-3-0-0-compatibility-with-certified-pgbackrest-images/41259/3 "2026-09-10T18:33:09Z")

</div>

Oh, that’s exactly what I was missing! The crVersion value was being substituted from an outdated template and was indeed older than version 2.7.0. Many thanks for highlight!
