mirror of
https://github.com/cloudnative-pg/plugin-barman-cloud.git
synced 2026-07-09 03:02:20 +02:00
Compare commits
8 Commits
f4fbc48ab1
...
6a02d9812d
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6a02d9812d | ||
|
|
d4f3d8962c | ||
|
|
43f92fbcf1 | ||
|
|
4e2a0186a2 | ||
|
|
c8f631c697 | ||
|
|
9564f2ca21 | ||
|
|
5106e21b29 | ||
|
|
ea0a7b5698 |
10
Taskfile.yml
10
Taskfile.yml
@ -46,7 +46,7 @@ tasks:
|
|||||||
- wordlist-ordered
|
- wordlist-ordered
|
||||||
env:
|
env:
|
||||||
# renovate: datasource=git-refs depName=spellcheck lookupName=https://github.com/cloudnative-pg/daggerverse currentValue=main
|
# renovate: datasource=git-refs depName=spellcheck lookupName=https://github.com/cloudnative-pg/daggerverse currentValue=main
|
||||||
DAGGER_SPELLCHECK_SHA: b470f41bfdfc9af5b0d7fc402522bcd04f926e7a
|
DAGGER_SPELLCHECK_SHA: f104c75e9a7d23a5cb052e447929472d0c50b887
|
||||||
cmds:
|
cmds:
|
||||||
- >
|
- >
|
||||||
GITHUB_REF= dagger -s call -m github.com/cloudnative-pg/daggerverse/spellcheck@${DAGGER_SPELLCHECK_SHA}
|
GITHUB_REF= dagger -s call -m github.com/cloudnative-pg/daggerverse/spellcheck@${DAGGER_SPELLCHECK_SHA}
|
||||||
@ -60,7 +60,7 @@ tasks:
|
|||||||
desc: Check for conventional commits
|
desc: Check for conventional commits
|
||||||
env:
|
env:
|
||||||
# renovate: datasource=git-refs depName=commitlint lookupName=https://github.com/cloudnative-pg/daggerverse currentValue=main
|
# renovate: datasource=git-refs depName=commitlint lookupName=https://github.com/cloudnative-pg/daggerverse currentValue=main
|
||||||
DAGGER_COMMITLINT_SHA: b470f41bfdfc9af5b0d7fc402522bcd04f926e7a
|
DAGGER_COMMITLINT_SHA: f104c75e9a7d23a5cb052e447929472d0c50b887
|
||||||
cmds:
|
cmds:
|
||||||
- >
|
- >
|
||||||
GITHUB_REF= dagger -s call -m github.com/cloudnative-pg/daggerverse/commitlint@${DAGGER_COMMITLINT_SHA}
|
GITHUB_REF= dagger -s call -m github.com/cloudnative-pg/daggerverse/commitlint@${DAGGER_COMMITLINT_SHA}
|
||||||
@ -74,7 +74,7 @@ tasks:
|
|||||||
- wordlist-ordered
|
- wordlist-ordered
|
||||||
env:
|
env:
|
||||||
# renovate: datasource=git-refs depName=uncommitted lookupName=https://github.com/cloudnative-pg/daggerverse currentValue=main
|
# renovate: datasource=git-refs depName=uncommitted lookupName=https://github.com/cloudnative-pg/daggerverse currentValue=main
|
||||||
DAGGER_UNCOMMITTED_SHA: b470f41bfdfc9af5b0d7fc402522bcd04f926e7a
|
DAGGER_UNCOMMITTED_SHA: f104c75e9a7d23a5cb052e447929472d0c50b887
|
||||||
cmds:
|
cmds:
|
||||||
- GITHUB_REF= dagger -s call -m github.com/cloudnative-pg/daggerverse/uncommitted@${DAGGER_UNCOMMITTED_SHA} check-uncommitted --source . stdout
|
- GITHUB_REF= dagger -s call -m github.com/cloudnative-pg/daggerverse/uncommitted@${DAGGER_UNCOMMITTED_SHA} check-uncommitted --source . stdout
|
||||||
sources:
|
sources:
|
||||||
@ -86,7 +86,7 @@ tasks:
|
|||||||
- controller-gen
|
- controller-gen
|
||||||
env:
|
env:
|
||||||
# renovate: datasource=git-refs depName=crd-gen-refs lookupName=https://github.com/cloudnative-pg/daggerverse currentValue=main
|
# renovate: datasource=git-refs depName=crd-gen-refs lookupName=https://github.com/cloudnative-pg/daggerverse currentValue=main
|
||||||
DAGGER_CRDGENREF_SHA: b470f41bfdfc9af5b0d7fc402522bcd04f926e7a
|
DAGGER_CRDGENREF_SHA: f104c75e9a7d23a5cb052e447929472d0c50b887
|
||||||
# renovate: datasource=go depName=github.com/elastic/crd-ref-docs
|
# renovate: datasource=go depName=github.com/elastic/crd-ref-docs
|
||||||
CRDREFDOCS_VERSION: v0.3.0
|
CRDREFDOCS_VERSION: v0.3.0
|
||||||
cmds:
|
cmds:
|
||||||
@ -381,7 +381,7 @@ tasks:
|
|||||||
run: once
|
run: once
|
||||||
env:
|
env:
|
||||||
# renovate: datasource=git-refs depName=controller-gen lookupName=https://github.com/cloudnative-pg/daggerverse currentValue=main
|
# renovate: datasource=git-refs depName=controller-gen lookupName=https://github.com/cloudnative-pg/daggerverse currentValue=main
|
||||||
DAGGER_CONTROLLER_GEN_SHA: b470f41bfdfc9af5b0d7fc402522bcd04f926e7a
|
DAGGER_CONTROLLER_GEN_SHA: f104c75e9a7d23a5cb052e447929472d0c50b887
|
||||||
cmds:
|
cmds:
|
||||||
- >
|
- >
|
||||||
GITHUB_REF= dagger -s call -m github.com/cloudnative-pg/daggerverse/controller-gen@${DAGGER_CONTROLLER_GEN_SHA}
|
GITHUB_REF= dagger -s call -m github.com/cloudnative-pg/daggerverse/controller-gen@${DAGGER_CONTROLLER_GEN_SHA}
|
||||||
|
|||||||
2
go.mod
2
go.mod
@ -2,7 +2,7 @@ module github.com/cloudnative-pg/plugin-barman-cloud
|
|||||||
|
|
||||||
go 1.26.0
|
go 1.26.0
|
||||||
|
|
||||||
toolchain go1.26.2
|
toolchain go1.26.3
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/cert-manager/cert-manager v1.20.2
|
github.com/cert-manager/cert-manager v1.20.2
|
||||||
|
|||||||
@ -60,7 +60,7 @@ func BuildRoleRules(barmanObjects []barmancloudv1.ObjectStore) []rbacv1.PolicyRu
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return []rbacv1.PolicyRule{
|
rules := []rbacv1.PolicyRule{
|
||||||
{
|
{
|
||||||
APIGroups: []string{
|
APIGroups: []string{
|
||||||
barmancloudv1.GroupVersion.Group,
|
barmancloudv1.GroupVersion.Group,
|
||||||
@ -87,7 +87,11 @@ func BuildRoleRules(barmanObjects []barmancloudv1.ObjectStore) []rbacv1.PolicyRu
|
|||||||
},
|
},
|
||||||
ResourceNames: barmanObjectsSet.ToSortedList(),
|
ResourceNames: barmanObjectsSet.ToSortedList(),
|
||||||
},
|
},
|
||||||
{
|
}
|
||||||
|
|
||||||
|
secrets := secretsSet.ToSortedList()
|
||||||
|
if len(secrets) > 0 {
|
||||||
|
rules = append(rules, rbacv1.PolicyRule{
|
||||||
APIGroups: []string{
|
APIGroups: []string{
|
||||||
"",
|
"",
|
||||||
},
|
},
|
||||||
@ -99,9 +103,11 @@ func BuildRoleRules(barmanObjects []barmancloudv1.ObjectStore) []rbacv1.PolicyRu
|
|||||||
"watch",
|
"watch",
|
||||||
"list",
|
"list",
|
||||||
},
|
},
|
||||||
ResourceNames: secretsSet.ToSortedList(),
|
ResourceNames: secrets,
|
||||||
},
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return rules
|
||||||
}
|
}
|
||||||
|
|
||||||
// ObjectStoreNamesFromRole extracts the ObjectStore names referenced
|
// ObjectStoreNamesFromRole extracts the ObjectStore names referenced
|
||||||
|
|||||||
@ -78,13 +78,12 @@ var _ = Describe("BuildRoleRules", func() {
|
|||||||
Expect(rules[2].ResourceNames).To(ConsistOf("secret-a", "secret-b"))
|
Expect(rules[2].ResourceNames).To(ConsistOf("secret-a", "secret-b"))
|
||||||
})
|
})
|
||||||
|
|
||||||
It("should produce rules with empty ResourceNames for empty input", func() {
|
It("should not produce a secrets rule for empty input", func() {
|
||||||
rules := BuildRoleRules(nil)
|
rules := BuildRoleRules(nil)
|
||||||
Expect(rules).To(HaveLen(3))
|
Expect(rules).To(HaveLen(2))
|
||||||
Expect(rules[0].ResourceNames).To(BeEmpty())
|
Expect(rules[0].ResourceNames).To(BeEmpty())
|
||||||
Expect(rules[0].ResourceNames).NotTo(BeNil())
|
Expect(rules[0].ResourceNames).NotTo(BeNil())
|
||||||
Expect(rules[1].ResourceNames).To(BeEmpty())
|
Expect(rules[1].ResourceNames).To(BeEmpty())
|
||||||
Expect(rules[2].ResourceNames).To(BeEmpty())
|
|
||||||
})
|
})
|
||||||
|
|
||||||
It("should deduplicate secret names across ObjectStores", func() {
|
It("should deduplicate secret names across ObjectStores", func() {
|
||||||
@ -95,6 +94,31 @@ var _ = Describe("BuildRoleRules", func() {
|
|||||||
rules := BuildRoleRules(objects)
|
rules := BuildRoleRules(objects)
|
||||||
Expect(rules[2].ResourceNames).To(Equal([]string{"shared-secret"}))
|
Expect(rules[2].ResourceNames).To(Equal([]string{"shared-secret"}))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
It("should not produce a secrets rule when ObjectStores use IAM role inheritance", func() {
|
||||||
|
objects := []barmancloudv1.ObjectStore{
|
||||||
|
{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Name: "store-a",
|
||||||
|
Namespace: "default",
|
||||||
|
},
|
||||||
|
Spec: barmancloudv1.ObjectStoreSpec{
|
||||||
|
Configuration: barmanapi.BarmanObjectStoreConfiguration{
|
||||||
|
DestinationPath: "s3://bucket/path",
|
||||||
|
BarmanCredentials: barmanapi.BarmanCredentials{
|
||||||
|
AWS: &barmanapi.S3Credentials{
|
||||||
|
InheritFromIAMRole: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
rules := BuildRoleRules(objects)
|
||||||
|
Expect(rules).To(HaveLen(2))
|
||||||
|
Expect(rules[0].ResourceNames).To(Equal([]string{"store-a"}))
|
||||||
|
Expect(rules[1].ResourceNames).To(Equal([]string{"store-a"}))
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
var _ = Describe("BuildRole", func() {
|
var _ = Describe("BuildRole", func() {
|
||||||
|
|||||||
@ -28,6 +28,9 @@ import (
|
|||||||
func CollectSecretNamesFromCredentials(barmanCredentials *barmanapi.BarmanCredentials) []string {
|
func CollectSecretNamesFromCredentials(barmanCredentials *barmanapi.BarmanCredentials) []string {
|
||||||
var references []*machineryapi.SecretKeySelector
|
var references []*machineryapi.SecretKeySelector
|
||||||
if barmanCredentials.AWS != nil {
|
if barmanCredentials.AWS != nil {
|
||||||
|
// When using IAM role inheritance, barman-cloud uses the pod
|
||||||
|
// environment credential chain and does not read credential Secrets.
|
||||||
|
if !barmanCredentials.AWS.InheritFromIAMRole {
|
||||||
references = append(
|
references = append(
|
||||||
references,
|
references,
|
||||||
barmanCredentials.AWS.AccessKeyIDReference,
|
barmanCredentials.AWS.AccessKeyIDReference,
|
||||||
@ -36,6 +39,7 @@ func CollectSecretNamesFromCredentials(barmanCredentials *barmanapi.BarmanCreden
|
|||||||
barmanCredentials.AWS.SessionToken,
|
barmanCredentials.AWS.SessionToken,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if barmanCredentials.Azure != nil {
|
if barmanCredentials.Azure != nil {
|
||||||
// When using default Azure credentials or managed identity, no secrets are required
|
// When using default Azure credentials or managed identity, no secrets are required
|
||||||
if !barmanCredentials.Azure.UseDefaultAzureCredentials &&
|
if !barmanCredentials.Azure.UseDefaultAzureCredentials &&
|
||||||
|
|||||||
@ -57,6 +57,29 @@ var _ = Describe("CollectSecretNamesFromCredentials", func() {
|
|||||||
secrets := CollectSecretNamesFromCredentials(credentials)
|
secrets := CollectSecretNamesFromCredentials(credentials)
|
||||||
Expect(secrets).To(BeEmpty())
|
Expect(secrets).To(BeEmpty())
|
||||||
})
|
})
|
||||||
|
|
||||||
|
It("should return empty list when using InheritFromIAMRole", func() {
|
||||||
|
credentials := &barmanapi.BarmanCredentials{
|
||||||
|
AWS: &barmanapi.S3Credentials{
|
||||||
|
InheritFromIAMRole: true,
|
||||||
|
AccessKeyIDReference: &machineryapi.SecretKeySelector{
|
||||||
|
LocalObjectReference: machineryapi.LocalObjectReference{
|
||||||
|
Name: "aws-secret",
|
||||||
|
},
|
||||||
|
Key: "access-key-id",
|
||||||
|
},
|
||||||
|
RegionReference: &machineryapi.SecretKeySelector{
|
||||||
|
LocalObjectReference: machineryapi.LocalObjectReference{
|
||||||
|
Name: "aws-region",
|
||||||
|
},
|
||||||
|
Key: "region",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
secrets := CollectSecretNamesFromCredentials(credentials)
|
||||||
|
Expect(secrets).To(BeEmpty())
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
Context("when collecting secrets from Azure credentials", func() {
|
Context("when collecting secrets from Azure credentials", func() {
|
||||||
|
|||||||
@ -31,8 +31,8 @@ import (
|
|||||||
apierrs "k8s.io/apimachinery/pkg/api/errors"
|
apierrs "k8s.io/apimachinery/pkg/api/errors"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
|
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
|
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
|
||||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||||
"sigs.k8s.io/controller-runtime/pkg/client/fake"
|
"sigs.k8s.io/controller-runtime/pkg/client/fake"
|
||||||
"sigs.k8s.io/controller-runtime/pkg/client/interceptor"
|
"sigs.k8s.io/controller-runtime/pkg/client/interceptor"
|
||||||
@ -261,7 +261,7 @@ var _ = Describe("ObjectStoreReconciler", func() {
|
|||||||
Expect(result).To(Equal(reconcile.Result{}))
|
Expect(result).To(Equal(reconcile.Result{}))
|
||||||
})
|
})
|
||||||
|
|
||||||
It("should produce empty ResourceNames when all ObjectStores are deleted", func() {
|
It("should omit the secrets rule when all ObjectStores are deleted", func() {
|
||||||
store := newTestObjectStore("my-store", "default", "aws-creds")
|
store := newTestObjectStore("my-store", "default", "aws-creds")
|
||||||
role := newLabeledRole("my-cluster", "default", []barmancloudv1.ObjectStore{*store})
|
role := newLabeledRole("my-cluster", "default", []barmancloudv1.ObjectStore{*store})
|
||||||
|
|
||||||
@ -291,10 +291,11 @@ var _ = Describe("ObjectStoreReconciler", func() {
|
|||||||
Name: "my-cluster-barman-cloud",
|
Name: "my-cluster-barman-cloud",
|
||||||
}, &updatedRole)).To(Succeed())
|
}, &updatedRole)).To(Succeed())
|
||||||
|
|
||||||
// All rules should have empty ResourceNames
|
|
||||||
Expect(updatedRole.Rules[0].ResourceNames).To(BeEmpty())
|
Expect(updatedRole.Rules[0].ResourceNames).To(BeEmpty())
|
||||||
Expect(updatedRole.Rules[1].ResourceNames).To(BeEmpty())
|
Expect(updatedRole.Rules[1].ResourceNames).To(BeEmpty())
|
||||||
Expect(updatedRole.Rules[2].ResourceNames).To(BeEmpty())
|
for _, rule := range updatedRole.Rules {
|
||||||
|
Expect(rule.Resources).NotTo(Equal([]string{"secrets"}))
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
It("should return an error when listing Roles fails", func() {
|
It("should return an error when listing Roles fails", func() {
|
||||||
|
|||||||
@ -46,7 +46,7 @@ spec:
|
|||||||
|
|
||||||
The `.spec.configuration` schema follows the same format as the
|
The `.spec.configuration` schema follows the same format as the
|
||||||
[in-tree barman-cloud support](https://pkg.go.dev/github.com/cloudnative-pg/barman-cloud/pkg/api#BarmanObjectStoreConfiguration).
|
[in-tree barman-cloud support](https://pkg.go.dev/github.com/cloudnative-pg/barman-cloud/pkg/api#BarmanObjectStoreConfiguration).
|
||||||
Refer to [the CloudNativePG documentation](https://cloudnative-pg.io/documentation/preview/backup_barmanobjectstore/)
|
Refer to [the CloudNativePG documentation](https://cloudnative-pg.io/documentation/current/appendixes/backup_barmanobjectstore/)
|
||||||
for additional details.
|
for additional details.
|
||||||
|
|
||||||
:::important
|
:::important
|
||||||
|
|||||||
@ -46,7 +46,7 @@ spec:
|
|||||||
|
|
||||||
The `.spec.configuration` schema follows the same format as the
|
The `.spec.configuration` schema follows the same format as the
|
||||||
[in-tree barman-cloud support](https://pkg.go.dev/github.com/cloudnative-pg/barman-cloud/pkg/api#BarmanObjectStoreConfiguration).
|
[in-tree barman-cloud support](https://pkg.go.dev/github.com/cloudnative-pg/barman-cloud/pkg/api#BarmanObjectStoreConfiguration).
|
||||||
Refer to [the CloudNativePG documentation](https://cloudnative-pg.io/documentation/preview/backup_barmanobjectstore/)
|
Refer to [the CloudNativePG documentation](https://cloudnative-pg.io/documentation/current/appendixes/backup_barmanobjectstore/)
|
||||||
for additional details.
|
for additional details.
|
||||||
|
|
||||||
:::important
|
:::important
|
||||||
|
|||||||
@ -46,7 +46,7 @@ spec:
|
|||||||
|
|
||||||
The `.spec.configuration` schema follows the same format as the
|
The `.spec.configuration` schema follows the same format as the
|
||||||
[in-tree barman-cloud support](https://pkg.go.dev/github.com/cloudnative-pg/barman-cloud/pkg/api#BarmanObjectStoreConfiguration).
|
[in-tree barman-cloud support](https://pkg.go.dev/github.com/cloudnative-pg/barman-cloud/pkg/api#BarmanObjectStoreConfiguration).
|
||||||
Refer to [the CloudNativePG documentation](https://cloudnative-pg.io/documentation/preview/backup_barmanobjectstore/)
|
Refer to [the CloudNativePG documentation](https://cloudnative-pg.io/documentation/current/appendixes/backup_barmanobjectstore/)
|
||||||
for additional details.
|
for additional details.
|
||||||
|
|
||||||
:::important
|
:::important
|
||||||
|
|||||||
@ -46,7 +46,7 @@ spec:
|
|||||||
|
|
||||||
The `.spec.configuration` schema follows the same format as the
|
The `.spec.configuration` schema follows the same format as the
|
||||||
[in-tree barman-cloud support](https://pkg.go.dev/github.com/cloudnative-pg/barman-cloud/pkg/api#BarmanObjectStoreConfiguration).
|
[in-tree barman-cloud support](https://pkg.go.dev/github.com/cloudnative-pg/barman-cloud/pkg/api#BarmanObjectStoreConfiguration).
|
||||||
Refer to [the CloudNativePG documentation](https://cloudnative-pg.io/documentation/preview/backup_barmanobjectstore/)
|
Refer to [the CloudNativePG documentation](https://cloudnative-pg.io/documentation/current/appendixes/backup_barmanobjectstore/)
|
||||||
for additional details.
|
for additional details.
|
||||||
|
|
||||||
:::important
|
:::important
|
||||||
|
|||||||
@ -46,7 +46,7 @@ spec:
|
|||||||
|
|
||||||
The `.spec.configuration` schema follows the same format as the
|
The `.spec.configuration` schema follows the same format as the
|
||||||
[in-tree barman-cloud support](https://pkg.go.dev/github.com/cloudnative-pg/barman-cloud/pkg/api#BarmanObjectStoreConfiguration).
|
[in-tree barman-cloud support](https://pkg.go.dev/github.com/cloudnative-pg/barman-cloud/pkg/api#BarmanObjectStoreConfiguration).
|
||||||
Refer to [the CloudNativePG documentation](https://cloudnative-pg.io/documentation/preview/backup_barmanobjectstore/)
|
Refer to [the CloudNativePG documentation](https://cloudnative-pg.io/documentation/current/appendixes/backup_barmanobjectstore/)
|
||||||
for additional details.
|
for additional details.
|
||||||
|
|
||||||
:::important
|
:::important
|
||||||
|
|||||||
@ -46,7 +46,7 @@ spec:
|
|||||||
|
|
||||||
The `.spec.configuration` schema follows the same format as the
|
The `.spec.configuration` schema follows the same format as the
|
||||||
[in-tree barman-cloud support](https://pkg.go.dev/github.com/cloudnative-pg/barman-cloud/pkg/api#BarmanObjectStoreConfiguration).
|
[in-tree barman-cloud support](https://pkg.go.dev/github.com/cloudnative-pg/barman-cloud/pkg/api#BarmanObjectStoreConfiguration).
|
||||||
Refer to [the CloudNativePG documentation](https://cloudnative-pg.io/documentation/preview/backup_barmanobjectstore/)
|
Refer to [the CloudNativePG documentation](https://cloudnative-pg.io/documentation/current/appendixes/backup_barmanobjectstore/)
|
||||||
for additional details.
|
for additional details.
|
||||||
|
|
||||||
:::important
|
:::important
|
||||||
|
|||||||
@ -46,7 +46,7 @@ spec:
|
|||||||
|
|
||||||
The `.spec.configuration` schema follows the same format as the
|
The `.spec.configuration` schema follows the same format as the
|
||||||
[in-tree barman-cloud support](https://pkg.go.dev/github.com/cloudnative-pg/barman-cloud/pkg/api#BarmanObjectStoreConfiguration).
|
[in-tree barman-cloud support](https://pkg.go.dev/github.com/cloudnative-pg/barman-cloud/pkg/api#BarmanObjectStoreConfiguration).
|
||||||
Refer to [the CloudNativePG documentation](https://cloudnative-pg.io/documentation/preview/backup_barmanobjectstore/)
|
Refer to [the CloudNativePG documentation](https://cloudnative-pg.io/documentation/current/appendixes/backup_barmanobjectstore/)
|
||||||
for additional details.
|
for additional details.
|
||||||
|
|
||||||
:::important
|
:::important
|
||||||
|
|||||||
@ -46,7 +46,7 @@ spec:
|
|||||||
|
|
||||||
The `.spec.configuration` schema follows the same format as the
|
The `.spec.configuration` schema follows the same format as the
|
||||||
[in-tree barman-cloud support](https://pkg.go.dev/github.com/cloudnative-pg/barman-cloud/pkg/api#BarmanObjectStoreConfiguration).
|
[in-tree barman-cloud support](https://pkg.go.dev/github.com/cloudnative-pg/barman-cloud/pkg/api#BarmanObjectStoreConfiguration).
|
||||||
Refer to [the CloudNativePG documentation](https://cloudnative-pg.io/documentation/preview/backup_barmanobjectstore/)
|
Refer to [the CloudNativePG documentation](https://cloudnative-pg.io/documentation/current/appendixes/backup_barmanobjectstore/)
|
||||||
for additional details.
|
for additional details.
|
||||||
|
|
||||||
:::important
|
:::important
|
||||||
|
|||||||
@ -46,7 +46,7 @@ spec:
|
|||||||
|
|
||||||
The `.spec.configuration` schema follows the same format as the
|
The `.spec.configuration` schema follows the same format as the
|
||||||
[in-tree barman-cloud support](https://pkg.go.dev/github.com/cloudnative-pg/barman-cloud/pkg/api#BarmanObjectStoreConfiguration).
|
[in-tree barman-cloud support](https://pkg.go.dev/github.com/cloudnative-pg/barman-cloud/pkg/api#BarmanObjectStoreConfiguration).
|
||||||
Refer to [the CloudNativePG documentation](https://cloudnative-pg.io/documentation/preview/backup_barmanobjectstore/)
|
Refer to [the CloudNativePG documentation](https://cloudnative-pg.io/documentation/current/appendixes/backup_barmanobjectstore/)
|
||||||
for additional details.
|
for additional details.
|
||||||
|
|
||||||
:::important
|
:::important
|
||||||
|
|||||||
@ -46,7 +46,7 @@ spec:
|
|||||||
|
|
||||||
The `.spec.configuration` schema follows the same format as the
|
The `.spec.configuration` schema follows the same format as the
|
||||||
[in-tree barman-cloud support](https://pkg.go.dev/github.com/cloudnative-pg/barman-cloud/pkg/api#BarmanObjectStoreConfiguration).
|
[in-tree barman-cloud support](https://pkg.go.dev/github.com/cloudnative-pg/barman-cloud/pkg/api#BarmanObjectStoreConfiguration).
|
||||||
Refer to [the CloudNativePG documentation](https://cloudnative-pg.io/documentation/preview/backup_barmanobjectstore/)
|
Refer to [the CloudNativePG documentation](https://cloudnative-pg.io/documentation/current/appendixes/backup_barmanobjectstore/)
|
||||||
for additional details.
|
for additional details.
|
||||||
|
|
||||||
:::important
|
:::important
|
||||||
|
|||||||
@ -46,7 +46,7 @@ spec:
|
|||||||
|
|
||||||
The `.spec.configuration` schema follows the same format as the
|
The `.spec.configuration` schema follows the same format as the
|
||||||
[in-tree barman-cloud support](https://pkg.go.dev/github.com/cloudnative-pg/barman-cloud/pkg/api#BarmanObjectStoreConfiguration).
|
[in-tree barman-cloud support](https://pkg.go.dev/github.com/cloudnative-pg/barman-cloud/pkg/api#BarmanObjectStoreConfiguration).
|
||||||
Refer to [the CloudNativePG documentation](https://cloudnative-pg.io/documentation/preview/backup_barmanobjectstore/)
|
Refer to [the CloudNativePG documentation](https://cloudnative-pg.io/documentation/current/appendixes/backup_barmanobjectstore/)
|
||||||
for additional details.
|
for additional details.
|
||||||
|
|
||||||
:::important
|
:::important
|
||||||
|
|||||||
876
web/yarn.lock
876
web/yarn.lock
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user