Bootstrap from the backup and set backup in same time
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 45/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- kubernetes, postgresql
调研方向
使用两个 manifest 重现恢复过程,并检查 internal/cmd/manager/instance/restore/restore.go 和 cmd.go 中报告的 restore 入口点。比较有无 plugins 字段时的恢复过程,然后验证 bootstrap 能够完成,并且无需手动编辑即可继续向同一个 ObjectStore 执行备份。
由索引模型根据 Issue 内容生成。
描述
Hi!
I started using the CNPG Barman Cloud Plugin and I faced an issue related to bootstrap a cluster from backup and immediately set the backup to same place.
I have a working CNPG database that is extended with back up to S3.
---
apiVersion: barmancloud.cnpg.io/v1
kind: ObjectStore
metadata:
name: garage-store
namespace: harbor
spec:
configuration:
destinationPath: s3://cluster-services-cnpg/harbor/pg-harbor
endpointURL: http://172.31.255.255:3900
s3Credentials:
accessKeyId:
name: cnpg-s3-credentials
key: key_id
secretAccessKey:
name: cnpg-s3-credentials
key: secret_key
region:
name: cnpg-s3-credentials
key: region
data:
compression: "bzip2"
jobs: 5
wal:
compression: bzip2
retentionPolicy: "2d"
---
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: pg-harbor
namespace: harbor
spec:
instances: 3
bootstrap:
initdb:
database: harbor
owner: harbor
secret:
name: pg-harbor-creds
storage:
storageClass: database
size: 5Gi
plugins:
- name: barman-cloud.cloudnative-pg.io
isWALArchiver: true
parameters:
barmanObjectName: garage-store
Works well. After bootstrap DB starts and making the backups when shceduled
---
apiVersion: postgresql.cnpg.io/v1
kind: ScheduledBackup
metadata:
name: backup-pg
namespace: harbor
spec:
schedule: "0 0 */3 * * *"
backupOwnerReference: self
cluster:
name: pg-harbor
method: plugin
pluginConfiguration:
name: barman-cloud.cloudnative-pg.io
My problem occurs when I bootstrap the cluster from the backup. As I have previous backup, I'd like to bootstram the cluster from this and continue operation, continue backups to the same location. My previous manifest modified a little.
---
apiVersion: barmancloud.cnpg.io/v1
kind: ObjectStore
metadata:
name: garage-store
namespace: harbor
spec:
configuration:
destinationPath: s3://cluster-services-cnpg/harbor/pg-harbor
endpointURL: http://172.31.255.255:3900
s3Credentials:
accessKeyId:
name: cnpg-s3-credentials
key: key_id
secretAccessKey:
name: cnpg-s3-credentials
key: secret_key
region:
name: cnpg-s3-credentials
key: region
data:
compression: "bzip2"
jobs: 5
wal:
compression: bzip2
retentionPolicy: "2d"
---
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: pg-harbor
namespace: harbor
spec:
instances: 3
bootstrap:
recovery:
source: source
externalClusters:
- name: source
plugin:
name: barman-cloud.cloudnative-pg.io
parameters:
barmanObjectName: garage-store
serverName: pg-harbor
storage:
storageClass: database
size: 5Gi
plugins:
- name: barman-cloud.cloudnative-pg.io
isWALArchiver: true
parameters:
barmanObjectName: garage-store
When I check the pod status I got this:
☸ admin@services (harbor) k get pod --watch pg-harbor-1-full-recovery-jkhd7
NAME READY STATUS RESTARTS AGE
pg-harbor-1-full-recovery-jkhd7 0/2 Init:0/2 0 4s
pg-harbor-1-full-recovery-jkhd7 0/2 Init:1/2 0 14s
pg-harbor-1-full-recovery-jkhd7 0/2 Init:1/2 0 15s
pg-harbor-1-full-recovery-jkhd7 0/2 PodInitializing 0 24s
pg-harbor-1-full-recovery-jkhd7 1/2 PodInitializing 0 24s
pg-harbor-1-full-recovery-jkhd7 2/2 Running 0 25s
pg-harbor-1-full-recovery-jkhd7 1/2 Error 0 26s
pg-harbor-1-full-recovery-jkhd7 0/2 Error 0 27s
pg-harbor-1-full-recovery-jkhd7 0/2 Error 0 29s
pg-harbor-1-full-recovery-jkhd7 0/2 Error 0 30s
^C
➜ took 29s ☸ admin@services (harbor)
And when I inspect the logs
☸ admin@services (harbor) k logs pg-harbor-1-full-recovery-jkhd7
Defaulted container "full-recovery" out of: full-recovery, bootstrap-controller (init), plugin-barman-cloud (init)
{"level":"info","ts":"2025-12-21T13:58:47.851283563Z","msg":"Starting webserver","logging_pod":"pg-harbor-1-full-recovery","address":"localhost:8010","hasTLS":false}
{"level":"info","ts":"2025-12-21T13:58:47.952621901Z","msg":"Restore through plugin detected, proceeding...","logging_pod":"pg-harbor-1-full-recovery"}
{"level":"error","ts":"2025-12-21T13:58:49.333358679Z","msg":"Error while restoring a backup","logging_pod":"pg-harbor-1-full-recovery","error":"rpc error: code = Unknown desc = unexpected failure invoking barman-cloud-wal-archive: exit status 1","stacktrace":"github.com/cloudnative-pg/machinery/pkg/log.(*logger).Error\n\tpkg/mod/github.com/cloudnative-pg/[email protected]/pkg/log/log.go:125\ngithub.com/cloudnative-pg/cloudnative-pg/internal/cmd/manager/instance/restore.restoreSubCommand\n\tinternal/cmd/manager/instance/restore/restore.go:79\ngithub.com/cloudnative-pg/cloudnative-pg/internal/cmd/manager/instance/restore.(*restoreRunnable).Start\n\tinternal/cmd/manager/instance/restore/restore.go:62\nsigs.k8s.io/controller-runtime/pkg/manager.(*runnableGroup).reconcile.func1\n\tpkg/mod/sigs.k8s.io/[email protected]/pkg/manager/runnable_group.go:260"}
{"level":"info","ts":"2025-12-21T13:58:49.333465791Z","msg":"Stopping and waiting for non leader election runnables"}
{"level":"info","ts":"2025-12-21T13:58:49.333486512Z","msg":"Stopping and waiting for leader election runnables"}
{"level":"info","ts":"2025-12-21T13:58:49.333500334Z","msg":"Stopping and waiting for warmup runnables"}
{"level":"info","ts":"2025-12-21T13:58:49.333550259Z","msg":"Webserver exited","logging_pod":"pg-harbor-1-full-recovery","address":"localhost:8010"}
{"level":"info","ts":"2025-12-21T13:58:49.333564299Z","msg":"Stopping and waiting for caches"}
{"level":"info","ts":"2025-12-21T13:58:49.333623698Z","msg":"Stopping and waiting for webhooks"}
{"level":"info","ts":"2025-12-21T13:58:49.333658061Z","msg":"Stopping and waiting for HTTP servers"}
{"level":"info","ts":"2025-12-21T13:58:49.333687895Z","msg":"Wait completed, proceeding to shutdown the manager"}
{"level":"error","ts":"2025-12-21T13:58:49.333710044Z","msg":"restore error","logging_pod":"pg-harbor-1-full-recovery","error":"while restoring cluster: rpc error: code = Unknown desc = unexpected failure invoking barman-cloud-wal-archive: exit status 1","stacktrace":"github.com/cloudnative-pg/machinery/pkg/log.(*logger).Error\n\tpkg/mod/github.com/cloudnative-pg/[email protected]/pkg/log/log.go:125\ngithub.com/cloudnative-pg/cloudnative-pg/internal/cmd/manager/instance/restore.NewCmd.func1\n\tinternal/cmd/manager/instance/restore/cmd.go:101\ngithub.com/spf13/cobra.(*Command).execute\n\tpkg/mod/github.com/spf13/[email protected]/command.go:1015\ngithub.com/spf13/cobra.(*Command).ExecuteC\n\tpkg/mod/github.com/spf13/[email protected]/command.go:1148\ngithub.com/spf13/cobra.(*Command).Execute\n\tpkg/mod/github.com/spf13/[email protected]/command.go:1071\nmain.main\n\tcmd/manager/main.go:71\nruntime.main\n\t/opt/hostedtoolcache/go/1.25.3/x64/src/runtime/proc.go:285"}
☸ admin@services (harbor)
If I remove the plugin from the spec field and bootstrap only from the backup and edit it later it works well.
I'd like to ask is this possible to bootstrap from the backup and immediately continue the work? I need this to use with FluxCD GitOps so if it work manual work will not be needed in case of a reinstall or any issue.
- 主要语言
- Go
- 星标
- 198
- 派生
- 81
- 平均合并
- 2 天 6 小时
- 30 天内合并 PR
- 19
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
cloudnative-pg/plugin-barman-cloud 的其他 Issue
-
Wrong `ObjectStore` key logged when the backup object store can't be retrieved in the instance sidecar可能已有人在做 @SamarthSRao 于 3 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 88/100
cloudnative-pg/plugin-barman-cloud#1142 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 88/100
cloudnative-pg/plugin-barman-cloud#1117 · 1 个 reaction ·
维护者通常 1 天内回复
-
data.compression rejects zstd although barman-cloud-backup supports it可能已有人在做 @dgsardina 于 5 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 86/100
cloudnative-pg/plugin-barman-cloud#1104 · 4 个 reaction ·
维护者通常 1 天内回复
-
Add RBAC aggregation labels to ObjectStore editor/viewer ClusterRoles可能已有人在做 @stefanpeknik 于 24 天前认领。 未关闭
难度 1/5 1 小时以内 新手友好度 82/100
cloudnative-pg/plugin-barman-cloud#1102 ·
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 18/100
cloudnative-pg/plugin-barman-cloud#1151 ·
维护者通常 1 天内回复
查看 cloudnative-pg/plugin-barman-cloud 的全部 Issue
相似的 Issue
-
bug triage
难度 2/5 1-3 小时 新手友好度 62/100
FairwindsOps/nova#484 ·
-
难度 2/5 1-3 小时 新手友好度 68/100
维护者通常 1 天内回复
-
automated-analysis code-quality cookie
难度 2/5 1-3 小时 新手友好度 66/100
维护者通常 1 天内回复
-
[otelcol] print-config help text still requires the removed otelcol.printInitialConfig feature gate可能已有人在做 @girishkvs 今天认领。 未关闭
难度 1/5 1 小时以内 新手友好度 88/100
open-telemetry/opentelemetry-collector#16143 · 1 条评论 ·
维护者通常 1 天内回复
-
bug good first issue load-balancing
难度 2/5 1-3 小时 新手友好度 82/100
ktrubilo9/edge-proxy#53 ·