From ddb2154fae8862c3fe6abfd3297d64e34f54868c Mon Sep 17 00:00:00 2001 From: Armando Ruocco Date: Wed, 13 May 2026 11:54:37 +0200 Subject: [PATCH] feat: pass additionalCommandArgs to barman-cloud-restore Add support for the new `spec.configuration.data.restoreAdditionalCommandArgs` field so operators can append flags (e.g. `--read-timeout`) to barman-cloud-restore invocations, mirroring the existing `wal.restoreAdditionalCommandArgs` behavior. The new field is consumed by `restoreDataDir` and applied after the cloud provider options and `--endpoint-url` but before the positional arguments, so the upstream append/dedup logic can filter attempts to override official options. Depends on the corresponding upstream `barman-cloud` change in PR #242, which introduces `DataBackupConfiguration.RestoreAdditionalCommandArgs` and `AppendRestoreAdditionalCommandArgs`. go.mod pins that dependency to the PR HEAD commit via a pseudo-version; bump it to a tagged release once barman-cloud cuts one containing #242. Closes #821 Signed-off-by: Armando Ruocco --- go.mod | 2 +- go.sum | 6 ++++-- internal/cnpgi/restore/restore.go | 3 +++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 73f6851..0775552 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.26.3 require ( github.com/cert-manager/cert-manager v1.20.2 github.com/cloudnative-pg/api v1.29.1 - github.com/cloudnative-pg/barman-cloud v0.5.2-0.20260529020047-bb683bf8d82a + github.com/cloudnative-pg/barman-cloud v0.5.2-0.20260603073812-213211ec5e6f github.com/cloudnative-pg/cloudnative-pg v1.29.1 github.com/cloudnative-pg/cnpg-i v0.5.0 github.com/cloudnative-pg/cnpg-i-machinery v0.4.2 diff --git a/go.sum b/go.sum index 26e26fb..462cd03 100644 --- a/go.sum +++ b/go.sum @@ -20,8 +20,10 @@ github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UF github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cloudnative-pg/api v1.29.1 h1:FWr8S7EQeOfdhYXyr2cof8wUXLARZiiQt5Qa6ltED7w= github.com/cloudnative-pg/api v1.29.1/go.mod h1:QtWF3yzSvIfORMHaSkPAk/o3bhCJwEHJgN3riyRiz3o= -github.com/cloudnative-pg/barman-cloud v0.5.2-0.20260529020047-bb683bf8d82a h1:u2Ykj9oCJlJw/xxiCXjG+svTmpaHMcaW6kGNdHdertk= -github.com/cloudnative-pg/barman-cloud v0.5.2-0.20260529020047-bb683bf8d82a/go.mod h1:DACs5rdlMIQ7mUOpJVBRTrbf+d7OGyMOLsFUEMJ2JV8= +github.com/cloudnative-pg/barman-cloud v0.5.2-0.20260513095406-dac43abc6cf6 h1:FxIX5u8Kf1aJQnmW/5eRo+1hx/okApecnIJAmvliaJ8= +github.com/cloudnative-pg/barman-cloud v0.5.2-0.20260513095406-dac43abc6cf6/go.mod h1:VrubJGTgO94O2+m4EX68/wlbDmluc6ITL/VjTcMN3H4= +github.com/cloudnative-pg/barman-cloud v0.5.2-0.20260603073812-213211ec5e6f h1:37XPQQ7PY1tffCXS4QuRK7eSDIzn6oeF8h3cIteN2SE= +github.com/cloudnative-pg/barman-cloud v0.5.2-0.20260603073812-213211ec5e6f/go.mod h1:jCaMsQwJJ0f/49TIdSad1Ayjv52IoJXMZBhozqilY/g= github.com/cloudnative-pg/cloudnative-pg v1.29.1 h1:ZNEt1TMlnQKXI1kho2UqQuqdfvIvjGln4kN7C1lsmGA= github.com/cloudnative-pg/cloudnative-pg v1.29.1/go.mod h1:Sbgx9jVmkle4/gR2U5JHrzDd74sRPOBHDtPkvncg5v8= github.com/cloudnative-pg/cnpg-i v0.5.0 h1:/TOzpNT6cwNgrpftTtrnLKdoHgMwd+88vZgXjlVgXeE= diff --git a/internal/cnpgi/restore/restore.go b/internal/cnpgi/restore/restore.go index 0aad1e5..f286565 100644 --- a/internal/cnpgi/restore/restore.go +++ b/internal/cnpgi/restore/restore.go @@ -181,6 +181,9 @@ func (impl JobHookImpl) restoreDataDir( if backup.Status.EndpointURL != "" { options = append(options, "--endpoint-url", backup.Status.EndpointURL) } + + options = barmanConfiguration.Data.AppendRestoreAdditionalCommandArgs(options) + options = append(options, backup.Status.DestinationPath) options = append(options, backup.Status.ServerName) options = append(options, backup.Status.BackupID)