mirror of
https://github.com/cloudnative-pg/plugin-barman-cloud.git
synced 2026-03-10 12:42:20 +01:00
Compare commits
23 Commits
513ad5c7a2
...
b40bfe4de5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b40bfe4de5 | ||
|
|
a8b214c460 | ||
|
|
604fb9c430 | ||
|
|
fa546eae05 | ||
|
|
ad8a1767a7 | ||
|
|
e5eb03e181 | ||
|
|
e943923f8f | ||
|
|
4a637d7c58 | ||
|
|
24fbc01a33 | ||
|
|
5bc006b035 | ||
|
|
4f5b407c0f | ||
|
|
b3bcf6d9c1 | ||
|
|
757ca11304 | ||
|
|
31acf7ce0f | ||
|
|
95a26f5236 | ||
|
|
2c134eafe4 | ||
|
|
0153abba82 | ||
|
|
90dbe03a74 | ||
|
|
4d0e2788e9 | ||
|
|
fb0e326029 | ||
|
|
da6445426b | ||
|
|
340204ff21 | ||
|
|
17b86f3faf |
126
.github/ISSUE_TEMPLATE/bug.yml
vendored
Normal file
126
.github/ISSUE_TEMPLATE/bug.yml
vendored
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
name: Bug Report
|
||||||
|
description: File a bug report
|
||||||
|
title: "[Bug]: "
|
||||||
|
labels: ["triage", "bug"]
|
||||||
|
projects: ["coudnative-pg/plugin-barman-cloud"]
|
||||||
|
# assignees:
|
||||||
|
# - gbartolini
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thanks for taking the time to fill out this bug report for the BarmanCloudPlugin!
|
||||||
|
- type: checkboxes
|
||||||
|
id: search
|
||||||
|
attributes:
|
||||||
|
label: Is there an existing issue already for this bug?
|
||||||
|
description: Before you submit a bug, make sure you have searched if a similar one already exists
|
||||||
|
options:
|
||||||
|
- label: I have searched for an existing issue, and could not find anything. I believe this is a new bug.
|
||||||
|
required: true
|
||||||
|
# - type: checkboxes
|
||||||
|
# id: troubleshooting
|
||||||
|
# attributes:
|
||||||
|
# label: I have read the troubleshooting guide
|
||||||
|
# description: Before you submit a bug, make sure you have read the ["Common issues" section in the Troubleshooting guide](https://cloudnative-pg.io/documentation/current/troubleshooting/#some-common-issues).
|
||||||
|
# options:
|
||||||
|
# - label: I have read the troubleshooting guide and I think this is a new bug.
|
||||||
|
# required: true
|
||||||
|
# - type: checkboxes
|
||||||
|
# id: supported
|
||||||
|
# attributes:
|
||||||
|
# label: I am running a supported version of CloudNativePG
|
||||||
|
# description: Before you submit a bug, make sure you have read ["Supported releases"](https://cloudnative-pg.io/documentation/current/supported_releases/) and that you are running a supported version of CloudNativePG with the latest patch/security fixes, or you are working on the current trunk (`main` branch)
|
||||||
|
# options:
|
||||||
|
# - label: I have read the troubleshooting guide and I think this is a new bug.
|
||||||
|
# required: true
|
||||||
|
- type: input
|
||||||
|
id: contact
|
||||||
|
attributes:
|
||||||
|
label: Contact Details
|
||||||
|
description: How can we get in touch with you if we need more info?
|
||||||
|
placeholder: ex. email@example.com
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: dropdown
|
||||||
|
id: version
|
||||||
|
attributes:
|
||||||
|
label: Version
|
||||||
|
description: What is the version of the BarmanCloudPlugin you are running?
|
||||||
|
options:
|
||||||
|
- "0.5.1"
|
||||||
|
- "0.5.0"
|
||||||
|
- "0.4.1"
|
||||||
|
- "0.4.0"
|
||||||
|
- "0.3.0"
|
||||||
|
- "0.2.0"
|
||||||
|
- "0.1.0"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: dropdown
|
||||||
|
id: k8s_version
|
||||||
|
attributes:
|
||||||
|
label: What version of Kubernetes are you using?
|
||||||
|
options:
|
||||||
|
- "1.32"
|
||||||
|
- "1.31"
|
||||||
|
- "1.30"
|
||||||
|
- "1.29"
|
||||||
|
- "other (unsupported)"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: dropdown
|
||||||
|
id: k8s_environment
|
||||||
|
attributes:
|
||||||
|
label: What is your Kubernetes environment?
|
||||||
|
options:
|
||||||
|
- "Self-managed: kind (evaluation)"
|
||||||
|
- "Self-managed: k0s"
|
||||||
|
- "Self-managed: k3s"
|
||||||
|
- "Self-managed: RKE"
|
||||||
|
- "Cloud: Amazon EKS"
|
||||||
|
- "Cloud: Google GKE"
|
||||||
|
- "Cloud: Azure AKS"
|
||||||
|
- "Cloud: Other"
|
||||||
|
- "Other"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: dropdown
|
||||||
|
id: installation_method
|
||||||
|
attributes:
|
||||||
|
label: How did you install the BarmanCloudPlugin?
|
||||||
|
options:
|
||||||
|
- "YAML manifest"
|
||||||
|
# - "Helm"
|
||||||
|
# - "OLM"
|
||||||
|
- "Other"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: what-happened
|
||||||
|
attributes:
|
||||||
|
label: What happened?
|
||||||
|
description: Also tell us, what did you expect to happen?
|
||||||
|
placeholder: Tell us what you see!
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: spec
|
||||||
|
attributes:
|
||||||
|
label: Cluster resource
|
||||||
|
description: Please copy and paste the CR of the cluster
|
||||||
|
render: shell
|
||||||
|
- type: textarea
|
||||||
|
id: logs
|
||||||
|
attributes:
|
||||||
|
label: Relevant log output
|
||||||
|
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
|
||||||
|
render: shell
|
||||||
|
- type: checkboxes
|
||||||
|
id: terms
|
||||||
|
attributes:
|
||||||
|
label: Code of Conduct
|
||||||
|
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/cloudnative-pg/governance/blob/main/CODE_OF_CONDUCT.md)
|
||||||
|
options:
|
||||||
|
- label: I agree to follow this project's Code of Conduct
|
||||||
|
required: true
|
||||||
8
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
8
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
blank_issues_enabled: false
|
||||||
|
contact_links:
|
||||||
|
# - name: Open discussions
|
||||||
|
# url: https://github.com/cloudnative-pg/cloudnative-pg/discussions
|
||||||
|
# about: Please ask and answer questions here.
|
||||||
|
- name: Slack chat
|
||||||
|
url: https://github.com/cloudnative-pg/cloudnative-pg?tab=readme-ov-file#communications
|
||||||
|
about: Please join the slack channel and interact with our community
|
||||||
74
.github/ISSUE_TEMPLATE/documentation.yml
vendored
Normal file
74
.github/ISSUE_TEMPLATE/documentation.yml
vendored
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
name: Documentation
|
||||||
|
description: Issues or improvement ideas for the plugin-barman-cloud documentation
|
||||||
|
title: "[Docs]: "
|
||||||
|
labels: ["triage", "documentation"]
|
||||||
|
projects: ["coudnative-pg/plugin-barman-cloud"]
|
||||||
|
# assignees:
|
||||||
|
# - gbartolini
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thanks for taking the time improve the documentation of the BarmanCloudPlugin!
|
||||||
|
- type: checkboxes
|
||||||
|
id: search
|
||||||
|
attributes:
|
||||||
|
label: Is there an existing issue already for your request/idea?
|
||||||
|
description: Before you submit a new issue, make sure you have searched if a similar one already exists
|
||||||
|
options:
|
||||||
|
- label: I have searched for an existing issue, and could not find anything. I believe this is a new documentation enhancement to be evaluated.
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: problem
|
||||||
|
attributes:
|
||||||
|
label: What problem in the existing documentation this issue aims to solve?
|
||||||
|
description: A clear and concise description of what the problem is (e.g. I'm always frustrated when [...])
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: doc_add
|
||||||
|
attributes:
|
||||||
|
label: Describe what additions need to be done to the documentation
|
||||||
|
description: A clear and concise description of what sections/pages you want to add to the current documentation.
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: textarea
|
||||||
|
id: doc_change
|
||||||
|
attributes:
|
||||||
|
label: Describe what pages need to change in the documentation, if any
|
||||||
|
description: Please provide links to the pages in the current documentation
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: textarea
|
||||||
|
id: doc_remove
|
||||||
|
attributes:
|
||||||
|
label: Describe what pages need to be removed from the documentation, if any
|
||||||
|
description: Please provide links to the pages in the current documentation that you want to be removed
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: textarea
|
||||||
|
id: additional_context
|
||||||
|
attributes:
|
||||||
|
label: Additional context
|
||||||
|
description: Add any other context about this issue.
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: dropdown
|
||||||
|
id: backport
|
||||||
|
attributes:
|
||||||
|
label: Backport?
|
||||||
|
description: Do you suggest to backport this feature or not?
|
||||||
|
options:
|
||||||
|
- "Yes"
|
||||||
|
- "No"
|
||||||
|
- "N/A"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: checkboxes
|
||||||
|
id: terms
|
||||||
|
attributes:
|
||||||
|
label: Code of Conduct
|
||||||
|
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/cloudnative-pg/governance/blob/main/CODE_OF_CONDUCT.md)
|
||||||
|
options:
|
||||||
|
- label: I agree to follow this project's Code of Conduct
|
||||||
|
required: true
|
||||||
77
.github/ISSUE_TEMPLATE/feature.yml
vendored
Normal file
77
.github/ISSUE_TEMPLATE/feature.yml
vendored
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
name: Feature request
|
||||||
|
description: Suggest an idea or request a new feature for the plugin-barman-cloud
|
||||||
|
title: "[Feature]: "
|
||||||
|
labels: ["triage", "enhancement"]
|
||||||
|
projects: ["coudnative-pg/plugin-barman-cloud"]
|
||||||
|
# assignees:
|
||||||
|
# - gbartolini
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thanks for taking the time to propose new ideas and feature requests to the BarmanCloudPlugin!
|
||||||
|
- type: checkboxes
|
||||||
|
id: search
|
||||||
|
attributes:
|
||||||
|
label: Is there an existing issue already for this feature request/idea?
|
||||||
|
description: Before you submit a new feature request, make sure you have searched if a similar one already exists
|
||||||
|
options:
|
||||||
|
- label: I have searched for an existing issue, and could not find anything. I believe this is a new feature request to be evaluated.
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: problem
|
||||||
|
attributes:
|
||||||
|
label: What problem is this feature going to solve? Why should it be added?
|
||||||
|
description: A clear and concise description of what the problem is (e.g. I'm always frustrated when [...])
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: solution
|
||||||
|
attributes:
|
||||||
|
label: Describe the solution you'd like
|
||||||
|
description: A clear and concise description of what you want to happen.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: alternatives
|
||||||
|
attributes:
|
||||||
|
label: Describe alternatives you've considered
|
||||||
|
description: A clear and concise description of any alternative solutions or features you've considered.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: additional_context
|
||||||
|
attributes:
|
||||||
|
label: Additional context
|
||||||
|
description: Add any other context or screenshots about the feature request here.
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: dropdown
|
||||||
|
id: backport
|
||||||
|
attributes:
|
||||||
|
label: Backport?
|
||||||
|
description: Do you suggest to backport this feature or not?
|
||||||
|
options:
|
||||||
|
- "Yes"
|
||||||
|
- "No"
|
||||||
|
- "N/A"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: dropdown
|
||||||
|
id: contribute
|
||||||
|
attributes:
|
||||||
|
label: Are you willing to actively contribute to this feature?
|
||||||
|
description: Let us know if you are interested in developing this feature.
|
||||||
|
options:
|
||||||
|
- "No"
|
||||||
|
- "Yes"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: checkboxes
|
||||||
|
id: terms
|
||||||
|
attributes:
|
||||||
|
label: Code of Conduct
|
||||||
|
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/cloudnative-pg/governance/blob/main/CODE_OF_CONDUCT.md)
|
||||||
|
options:
|
||||||
|
- label: I agree to follow this project's Code of Conduct
|
||||||
|
required: true
|
||||||
48
.github/ISSUE_TEMPLATE/release-notes.yml
vendored
Normal file
48
.github/ISSUE_TEMPLATE/release-notes.yml
vendored
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
name: Release Notes
|
||||||
|
description: Release notes for a new version of the BarmanCloudPlugin
|
||||||
|
title: "[Release Notes]: BarmanCloudPlugin 1.XX.Y and 1.XX-1.Z"
|
||||||
|
labels: ["triage", "documentation"]
|
||||||
|
projects: ["coudnative-pg/plugin-barman-cloud"]
|
||||||
|
# assignees:
|
||||||
|
# - gbartolini
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Make sure that the correct versions are reported in the title of the ticket.
|
||||||
|
- type: checkboxes
|
||||||
|
id: search
|
||||||
|
attributes:
|
||||||
|
label: Is there an existing issue already for this task?
|
||||||
|
description: Before you submit a new issue, make sure you have searched if a similar one already exists
|
||||||
|
options:
|
||||||
|
- label: I have searched for an existing issue, and could not find anything. I believe this is a new request.
|
||||||
|
required: true
|
||||||
|
- type: dropdown
|
||||||
|
id: minor
|
||||||
|
attributes:
|
||||||
|
label: Is this a new minor release?
|
||||||
|
description: Is this a new minor release for the BarmanCloudPlugin?
|
||||||
|
options:
|
||||||
|
- "No"
|
||||||
|
- "Yes"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: dropdown
|
||||||
|
id: preview
|
||||||
|
attributes:
|
||||||
|
label: Is this a preview release?
|
||||||
|
description: Is this a preview release for the BarmanCloudPlugin? If so, make sure you add `-RC1` to the version and update the `preview_version.md` file.
|
||||||
|
options:
|
||||||
|
- "No"
|
||||||
|
- "Yes"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: checkboxes
|
||||||
|
id: terms
|
||||||
|
attributes:
|
||||||
|
label: Code of Conduct
|
||||||
|
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/cloudnative-pg/governance/blob/main/CODE_OF_CONDUCT.md)
|
||||||
|
options:
|
||||||
|
- label: I agree to follow this project's Code of Conduct
|
||||||
|
required: true
|
||||||
2
.github/workflows/barman-base-image.yml
vendored
2
.github/workflows/barman-base-image.yml
vendored
@ -27,7 +27,7 @@ jobs:
|
|||||||
- name: Install Dagger
|
- name: Install Dagger
|
||||||
env:
|
env:
|
||||||
# renovate: datasource=github-tags depName=dagger/dagger versioning=semver
|
# renovate: datasource=github-tags depName=dagger/dagger versioning=semver
|
||||||
DAGGER_VERSION: 0.19.8
|
DAGGER_VERSION: 0.19.10
|
||||||
run: |
|
run: |
|
||||||
curl -L https://dl.dagger.io/dagger/install.sh | BIN_DIR=$HOME/.local/bin sh
|
curl -L https://dl.dagger.io/dagger/install.sh | BIN_DIR=$HOME/.local/bin sh
|
||||||
- name: Publish a barman-base
|
- name: Publish a barman-base
|
||||||
|
|||||||
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
@ -44,7 +44,7 @@ jobs:
|
|||||||
- name: Install Dagger
|
- name: Install Dagger
|
||||||
env:
|
env:
|
||||||
# renovate: datasource=github-tags depName=dagger/dagger versioning=semver
|
# renovate: datasource=github-tags depName=dagger/dagger versioning=semver
|
||||||
DAGGER_VERSION: 0.19.8
|
DAGGER_VERSION: 0.19.10
|
||||||
run: |
|
run: |
|
||||||
curl -L https://dl.dagger.io/dagger/install.sh | BIN_DIR=$HOME/.local/bin sh
|
curl -L https://dl.dagger.io/dagger/install.sh | BIN_DIR=$HOME/.local/bin sh
|
||||||
- name: Run CI task
|
- name: Run CI task
|
||||||
|
|||||||
2
.github/workflows/release-please.yml
vendored
2
.github/workflows/release-please.yml
vendored
@ -31,7 +31,7 @@ jobs:
|
|||||||
- name: Install Dagger
|
- name: Install Dagger
|
||||||
env:
|
env:
|
||||||
# renovate: datasource=github-tags depName=dagger/dagger versioning=semver
|
# renovate: datasource=github-tags depName=dagger/dagger versioning=semver
|
||||||
DAGGER_VERSION: 0.19.8
|
DAGGER_VERSION: 0.19.10
|
||||||
run: |
|
run: |
|
||||||
curl -L https://dl.dagger.io/dagger/install.sh | BIN_DIR=$HOME/.local/bin sh
|
curl -L https://dl.dagger.io/dagger/install.sh | BIN_DIR=$HOME/.local/bin sh
|
||||||
- name: Create image and manifest
|
- name: Create image and manifest
|
||||||
|
|||||||
2
.github/workflows/release-publish.yml
vendored
2
.github/workflows/release-publish.yml
vendored
@ -21,7 +21,7 @@ jobs:
|
|||||||
- name: Install Dagger
|
- name: Install Dagger
|
||||||
env:
|
env:
|
||||||
# renovate: datasource=github-tags depName=dagger/dagger versioning=semver
|
# renovate: datasource=github-tags depName=dagger/dagger versioning=semver
|
||||||
DAGGER_VERSION: 0.19.8
|
DAGGER_VERSION: 0.19.10
|
||||||
run: |
|
run: |
|
||||||
curl -L https://dl.dagger.io/dagger/install.sh | BIN_DIR=$HOME/.local/bin sh
|
curl -L https://dl.dagger.io/dagger/install.sh | BIN_DIR=$HOME/.local/bin sh
|
||||||
- name: Create image and manifest
|
- name: Create image and manifest
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
AKS
|
||||||
AccessDenied
|
AccessDenied
|
||||||
AdditionalContainerArgs
|
AdditionalContainerArgs
|
||||||
Akamai
|
Akamai
|
||||||
@ -5,6 +6,7 @@ Azurite
|
|||||||
BarmanObjectStore
|
BarmanObjectStore
|
||||||
BarmanObjectStoreConfiguration
|
BarmanObjectStoreConfiguration
|
||||||
BarmanObjectStores
|
BarmanObjectStores
|
||||||
|
CLI
|
||||||
CNCF
|
CNCF
|
||||||
CRD
|
CRD
|
||||||
CloudNativePG
|
CloudNativePG
|
||||||
@ -38,6 +40,7 @@ PITR
|
|||||||
PoR
|
PoR
|
||||||
PostgreSQL
|
PostgreSQL
|
||||||
Postgres
|
Postgres
|
||||||
|
PowerShell
|
||||||
README
|
README
|
||||||
RPO
|
RPO
|
||||||
RTO
|
RTO
|
||||||
@ -45,6 +48,7 @@ RecoveryWindow
|
|||||||
ResourceRequirements
|
ResourceRequirements
|
||||||
RetentionPolicy
|
RetentionPolicy
|
||||||
SAS
|
SAS
|
||||||
|
SDK
|
||||||
SFO
|
SFO
|
||||||
SPDX
|
SPDX
|
||||||
SPDX
|
SPDX
|
||||||
|
|||||||
16
Taskfile.yml
16
Taskfile.yml
@ -19,9 +19,9 @@ tasks:
|
|||||||
desc: Run golangci-lint
|
desc: Run golangci-lint
|
||||||
env:
|
env:
|
||||||
# renovate: datasource=git-refs depName=golangci-lint lookupName=https://github.com/sagikazarmark/daggerverse currentValue=main
|
# renovate: datasource=git-refs depName=golangci-lint lookupName=https://github.com/sagikazarmark/daggerverse currentValue=main
|
||||||
DAGGER_GOLANGCI_LINT_SHA: 6133ad18e131b891d4723b8e25d69f5de077b472
|
DAGGER_GOLANGCI_LINT_SHA: 5dcc7e4c4cd5ed230046955f42e27f2166545155
|
||||||
# renovate: datasource=docker depName=golangci/golangci-lint versioning=semver
|
# renovate: datasource=docker depName=golangci/golangci-lint versioning=semver
|
||||||
GOLANGCI_LINT_VERSION: v2.7.2
|
GOLANGCI_LINT_VERSION: v2.8.0
|
||||||
cmds:
|
cmds:
|
||||||
- >
|
- >
|
||||||
GITHUB_REF= dagger -sc "github.com/sagikazarmark/daggerverse/golangci-lint@${DAGGER_GOLANGCI_LINT_SHA}
|
GITHUB_REF= dagger -sc "github.com/sagikazarmark/daggerverse/golangci-lint@${DAGGER_GOLANGCI_LINT_SHA}
|
||||||
@ -85,9 +85,13 @@ tasks:
|
|||||||
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: ee59e34a99940e45f87a16177b1d640975b05b74
|
DAGGER_CRDGENREF_SHA: ee59e34a99940e45f87a16177b1d640975b05b74
|
||||||
|
# renovate: datasource=go depName=github.com/elastic/crd-ref-docs
|
||||||
|
CRDREFDOCS_VERSION: v0.2.0
|
||||||
cmds:
|
cmds:
|
||||||
- >
|
- >
|
||||||
GITHUB_REF= dagger -s call -m github.com/cloudnative-pg/daggerverse/crd-ref-docs@${DAGGER_CRDGENREF_SHA} generate
|
GITHUB_REF= dagger -s call -m github.com/cloudnative-pg/daggerverse/crd-ref-docs@${DAGGER_CRDGENREF_SHA}
|
||||||
|
--version ${CRDREFDOCS_VERSION}
|
||||||
|
generate
|
||||||
--src .
|
--src .
|
||||||
--source-path api/v1
|
--source-path api/v1
|
||||||
--config-file hack/crd-gen-refs/config.yaml
|
--config-file hack/crd-gen-refs/config.yaml
|
||||||
@ -202,7 +206,7 @@ tasks:
|
|||||||
- start-build-network
|
- start-build-network
|
||||||
vars:
|
vars:
|
||||||
# renovate: datasource=github-tags depName=dagger/dagger versioning=semver
|
# renovate: datasource=github-tags depName=dagger/dagger versioning=semver
|
||||||
DAGGER_VERSION: 0.19.8
|
DAGGER_VERSION: 0.19.10
|
||||||
DAGGER_ENGINE_IMAGE: registry.dagger.io/engine:v{{ .DAGGER_VERSION }}
|
DAGGER_ENGINE_IMAGE: registry.dagger.io/engine:v{{ .DAGGER_VERSION }}
|
||||||
cmds:
|
cmds:
|
||||||
- >
|
- >
|
||||||
@ -482,7 +486,7 @@ tasks:
|
|||||||
IMAGE_VERSION: '{{regexReplaceAll "(\\d+)/merge" .GITHUB_REF_NAME "pr-${1}"}}'
|
IMAGE_VERSION: '{{regexReplaceAll "(\\d+)/merge" .GITHUB_REF_NAME "pr-${1}"}}'
|
||||||
env:
|
env:
|
||||||
# renovate: datasource=git-refs depName=kustomize lookupName=https://github.com/sagikazarmark/daggerverse currentValue=main
|
# renovate: datasource=git-refs depName=kustomize lookupName=https://github.com/sagikazarmark/daggerverse currentValue=main
|
||||||
DAGGER_KUSTOMIZE_SHA: 6133ad18e131b891d4723b8e25d69f5de077b472
|
DAGGER_KUSTOMIZE_SHA: 5dcc7e4c4cd5ed230046955f42e27f2166545155
|
||||||
cmds:
|
cmds:
|
||||||
- >
|
- >
|
||||||
dagger -s call -m https://github.com/sagikazarmark/daggerverse/kustomize@${DAGGER_KUSTOMIZE_SHA}
|
dagger -s call -m https://github.com/sagikazarmark/daggerverse/kustomize@${DAGGER_KUSTOMIZE_SHA}
|
||||||
@ -512,7 +516,7 @@ tasks:
|
|||||||
- GITHUB_TOKEN
|
- GITHUB_TOKEN
|
||||||
env:
|
env:
|
||||||
# renovate: datasource=git-refs depName=gh lookupName=https://github.com/sagikazarmark/daggerverse
|
# renovate: datasource=git-refs depName=gh lookupName=https://github.com/sagikazarmark/daggerverse
|
||||||
DAGGER_GH_SHA: 6133ad18e131b891d4723b8e25d69f5de077b472
|
DAGGER_GH_SHA: 5dcc7e4c4cd5ed230046955f42e27f2166545155
|
||||||
preconditions:
|
preconditions:
|
||||||
- sh: "[[ {{.GITHUB_REF}} =~ 'refs/tags/v.*' ]]"
|
- sh: "[[ {{.GITHUB_REF}} =~ 'refs/tags/v.*' ]]"
|
||||||
msg: not a tag, failing
|
msg: not a tag, failing
|
||||||
|
|||||||
@ -108,6 +108,11 @@ spec:
|
|||||||
- key
|
- key
|
||||||
- name
|
- name
|
||||||
type: object
|
type: object
|
||||||
|
useDefaultAzureCredentials:
|
||||||
|
description: |-
|
||||||
|
Use the default Azure authentication flow, which includes DefaultAzureCredential.
|
||||||
|
This allows authentication using environment variables and managed identities.
|
||||||
|
type: boolean
|
||||||
type: object
|
type: object
|
||||||
data:
|
data:
|
||||||
description: |-
|
description: |-
|
||||||
|
|||||||
@ -36,7 +36,7 @@ RUN --mount=type=cache,target=/go/pkg/mod --mount=type=cache,target=/root/.cache
|
|||||||
# Use plugin-barman-cloud-base to get the dependencies.
|
# Use plugin-barman-cloud-base to get the dependencies.
|
||||||
# pip will build everything inside /usr, so we copy every file into a new
|
# pip will build everything inside /usr, so we copy every file into a new
|
||||||
# destination that will then be copied into the distroless container
|
# destination that will then be copied into the distroless container
|
||||||
FROM ghcr.io/cloudnative-pg/plugin-barman-cloud-base:3.16.2-202512221525 AS pythonbuilder
|
FROM ghcr.io/cloudnative-pg/plugin-barman-cloud-base:3.17.0-202601131704 AS pythonbuilder
|
||||||
# Prepare a new /usr/ directory with the files we'll need in the final image
|
# Prepare a new /usr/ directory with the files we'll need in the final image
|
||||||
RUN mkdir /new-usr/ && \
|
RUN mkdir /new-usr/ && \
|
||||||
cp -r --parents /usr/local/lib/ /usr/lib/*-linux-gnu/ /usr/local/bin/ \
|
cp -r --parents /usr/local/lib/ /usr/lib/*-linux-gnu/ /usr/local/bin/ \
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
barman[azure,cloud,google,snappy,zstandard,lz4]==3.16.2
|
barman[azure,cloud,google,snappy,zstandard,lz4]==3.17.0
|
||||||
setuptools==80.9.0
|
setuptools==80.9.0
|
||||||
zipp>=3.19.1 # not directly required, pinned by Snyk to avoid a vulnerability
|
zipp>=3.19.1 # not directly required, pinned by Snyk to avoid a vulnerability
|
||||||
|
|||||||
@ -4,9 +4,9 @@
|
|||||||
#
|
#
|
||||||
# pip-compile --allow-unsafe --generate-hashes --output-file=sidecar-requirements.txt --strip-extras sidecar-requirements.in
|
# pip-compile --allow-unsafe --generate-hashes --output-file=sidecar-requirements.txt --strip-extras sidecar-requirements.in
|
||||||
#
|
#
|
||||||
azure-core==1.37.0 \
|
azure-core==1.38.0 \
|
||||||
--hash=sha256:7064f2c11e4b97f340e8e8c6d923b822978be3016e46b7bc4aa4b337cfb48aee \
|
--hash=sha256:8194d2682245a3e4e3151a667c686464c3786fed7918b394d035bdcd61bb5993 \
|
||||||
--hash=sha256:b3abe2c59e7d6bb18b38c275a5029ff80f98990e7c90a5e646249a56630fcc19
|
--hash=sha256:ab0c9b2cd71fecb1842d52c965c95285d3cfb38902f6766e4a471f1cd8905335
|
||||||
# via
|
# via
|
||||||
# azure-identity
|
# azure-identity
|
||||||
# azure-storage-blob
|
# azure-storage-blob
|
||||||
@ -14,31 +14,27 @@ azure-identity==1.25.1 \
|
|||||||
--hash=sha256:87ca8328883de6036443e1c37b40e8dc8fb74898240f61071e09d2e369361456 \
|
--hash=sha256:87ca8328883de6036443e1c37b40e8dc8fb74898240f61071e09d2e369361456 \
|
||||||
--hash=sha256:e9edd720af03dff020223cd269fa3a61e8f345ea75443858273bcb44844ab651
|
--hash=sha256:e9edd720af03dff020223cd269fa3a61e8f345ea75443858273bcb44844ab651
|
||||||
# via barman
|
# via barman
|
||||||
azure-storage-blob==12.27.1 \
|
azure-storage-blob==12.28.0 \
|
||||||
--hash=sha256:65d1e25a4628b7b6acd20ff7902d8da5b4fde8e46e19c8f6d213a3abc3ece272 \
|
--hash=sha256:00fb1db28bf6a7b7ecaa48e3b1d5c83bfadacc5a678b77826081304bd87d6461 \
|
||||||
--hash=sha256:a1596cc4daf5dac9be115fcb5db67245eae894cf40e4248243754261f7b674a6
|
--hash=sha256:e7d98ea108258d29aa0efbfd591b2e2075fa1722a2fae8699f0b3c9de11eff41
|
||||||
# via barman
|
# via barman
|
||||||
barman==3.16.2 \
|
barman==3.17.0 \
|
||||||
--hash=sha256:0549f451a1b928647c75c5a2977526233ad7a976bb83e9a4379c33ce61443515 \
|
--hash=sha256:07b033da14e72f103de44261c31bd0c3169bbb2e4de3481c6bb3510e9870d38e \
|
||||||
--hash=sha256:ab0c6f4f5cfc0cc12b087335bdd5def2edbca32bc1bf553cc5a9e78cd83df43a
|
--hash=sha256:d6618990a6dbb31af3286d746a278a038534b7e3cc617c2b379ef7ebdeb7ed5a
|
||||||
# via -r sidecar-requirements.in
|
# via -r sidecar-requirements.in
|
||||||
boto3==1.42.14 \
|
boto3==1.42.26 \
|
||||||
--hash=sha256:a5d005667b480c844ed3f814a59f199ce249d0f5669532a17d06200c0a93119c \
|
--hash=sha256:0fbcf1922e62d180f3644bc1139425821b38d93c1e6ec27409325d2ae86131aa \
|
||||||
--hash=sha256:bfcc665227bb4432a235cb4adb47719438d6472e5ccbf7f09512046c3f749670
|
--hash=sha256:f116cfbe7408e0a9153da363f134d2f1b5008f17ee86af104f0ce59a62be1833
|
||||||
# via barman
|
# via barman
|
||||||
botocore==1.42.14 \
|
botocore==1.42.26 \
|
||||||
--hash=sha256:cf5bebb580803c6cfd9886902ca24834b42ecaa808da14fb8cd35ad523c9f621 \
|
--hash=sha256:1c8855e3e811f015d930ccfe8751d4be295aae0562133d14b6f0b247cd6fd8d3 \
|
||||||
--hash=sha256:efe89adfafa00101390ec2c371d453b3359d5f9690261bc3bd70131e0d453e8e
|
--hash=sha256:71171c2d09ac07739f4efce398b15a4a8bc8769c17fb3bc99625e43ed11ad8b7
|
||||||
# via
|
# via
|
||||||
# boto3
|
# boto3
|
||||||
# s3transfer
|
# s3transfer
|
||||||
cachetools==6.2.4 \
|
certifi==2026.1.4 \
|
||||||
--hash=sha256:69a7a52634fed8b8bf6e24a050fb60bff1c9bd8f6d24572b99c32d4e71e62a51 \
|
--hash=sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c \
|
||||||
--hash=sha256:82c5c05585e70b6ba2d3ae09ea60b79548872185d2f24ae1f2709d37299fd607
|
--hash=sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120
|
||||||
# via google-auth
|
|
||||||
certifi==2025.11.12 \
|
|
||||||
--hash=sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b \
|
|
||||||
--hash=sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316
|
|
||||||
# via requests
|
# via requests
|
||||||
cffi==2.0.0 \
|
cffi==2.0.0 \
|
||||||
--hash=sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb \
|
--hash=sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb \
|
||||||
@ -438,15 +434,15 @@ cryptography==46.0.3 \
|
|||||||
# azure-storage-blob
|
# azure-storage-blob
|
||||||
# msal
|
# msal
|
||||||
# pyjwt
|
# pyjwt
|
||||||
google-api-core==2.28.1 \
|
google-api-core==2.29.0 \
|
||||||
--hash=sha256:2b405df02d68e68ce0fbc138559e6036559e685159d148ae5861013dc201baf8 \
|
--hash=sha256:84181be0f8e6b04006df75ddfe728f24489f0af57c96a529ff7cf45bc28797f7 \
|
||||||
--hash=sha256:4021b0f8ceb77a6fb4de6fde4502cecab45062e66ff4f2895169e0b35bc9466c
|
--hash=sha256:d30bc60980daa36e314b5d5a3e5958b0200cb44ca8fa1be2b614e932b75a3ea9
|
||||||
# via
|
# via
|
||||||
# google-cloud-core
|
# google-cloud-core
|
||||||
# google-cloud-storage
|
# google-cloud-storage
|
||||||
google-auth==2.45.0 \
|
google-auth==2.47.0 \
|
||||||
--hash=sha256:82344e86dc00410ef5382d99be677c6043d72e502b625aa4f4afa0bdacca0f36 \
|
--hash=sha256:833229070a9dfee1a353ae9877dcd2dec069a8281a4e72e72f77d4a70ff945da \
|
||||||
--hash=sha256:90d3f41b6b72ea72dd9811e765699ee491ab24139f34ebf1ca2b9cc0c38708f3
|
--hash=sha256:c516d68336bfde7cf0da26aab674a36fedcf04b37ac4edd59c597178760c3498
|
||||||
# via
|
# via
|
||||||
# google-api-core
|
# google-api-core
|
||||||
# google-cloud-core
|
# google-cloud-core
|
||||||
@ -591,17 +587,17 @@ proto-plus==1.27.0 \
|
|||||||
--hash=sha256:1baa7f81cf0f8acb8bc1f6d085008ba4171eaf669629d1b6d1673b21ed1c0a82 \
|
--hash=sha256:1baa7f81cf0f8acb8bc1f6d085008ba4171eaf669629d1b6d1673b21ed1c0a82 \
|
||||||
--hash=sha256:873af56dd0d7e91836aee871e5799e1c6f1bda86ac9a983e0bb9f0c266a568c4
|
--hash=sha256:873af56dd0d7e91836aee871e5799e1c6f1bda86ac9a983e0bb9f0c266a568c4
|
||||||
# via google-api-core
|
# via google-api-core
|
||||||
protobuf==6.33.2 \
|
protobuf==6.33.4 \
|
||||||
--hash=sha256:1f8017c48c07ec5859106533b682260ba3d7c5567b1ca1f24297ce03384d1b4f \
|
--hash=sha256:0f12ddbf96912690c3582f9dffb55530ef32015ad8e678cd494312bd78314c4f \
|
||||||
--hash=sha256:2981c58f582f44b6b13173e12bb8656711189c2a70250845f264b877f00b1913 \
|
--hash=sha256:1fe3730068fcf2e595816a6c34fe66eeedd37d51d0400b72fabc848811fdc1bc \
|
||||||
--hash=sha256:56dc370c91fbb8ac85bc13582c9e373569668a290aa2e66a590c2a0d35ddb9e4 \
|
--hash=sha256:2fe67f6c014c84f655ee06f6f66213f9254b3a8b6bda6cda0ccd4232c73c06f0 \
|
||||||
--hash=sha256:7109dcc38a680d033ffb8bf896727423528db9163be1b6a02d6a49606dcadbfe \
|
--hash=sha256:3df850c2f8db9934de4cf8f9152f8dc2558f49f298f37f90c517e8e5c84c30e9 \
|
||||||
--hash=sha256:7636aad9bb01768870266de5dc009de2d1b936771b38a793f73cbbf279c91c5c \
|
--hash=sha256:757c978f82e74d75cba88eddec479df9b99a42b31193313b75e492c06a51764e \
|
||||||
--hash=sha256:87eb388bd2d0f78febd8f4c8779c79247b26a5befad525008e49a6955787ff3d \
|
--hash=sha256:8f11ffae31ec67fc2554c2ef891dcb561dae9a2a3ed941f9e134c2db06657dbc \
|
||||||
--hash=sha256:8cd7640aee0b7828b6d03ae518b5b4806fdfc1afe8de82f79c3454f8aef29872 \
|
--hash=sha256:918966612c8232fc6c24c78e1cd89784307f5814ad7506c308ee3cf86662850d \
|
||||||
--hash=sha256:b5d3b5625192214066d99b2b605f5783483575656784de223f00a8d00754fc0e \
|
--hash=sha256:955478a89559fa4568f5a81dce77260eabc5c686f9e8366219ebd30debf06aa6 \
|
||||||
--hash=sha256:d9b19771ca75935b3a4422957bc518b0cecb978b31d1dd12037b088f6bcc0e43 \
|
--hash=sha256:c7c64f259c618f0bef7bee042075e390debbf9682334be2b67408ec7c1c09ee6 \
|
||||||
--hash=sha256:fc2a0e8b05b180e5fc0dd1559fe8ebdae21a27e81ac77728fb6c42b12c7419b4
|
--hash=sha256:dc2e61bca3b10470c1912d166fe0af67bfc20eb55971dcef8dfa48ce14f0ed91
|
||||||
# via
|
# via
|
||||||
# google-api-core
|
# google-api-core
|
||||||
# googleapis-common-protos
|
# googleapis-common-protos
|
||||||
@ -672,9 +668,9 @@ typing-extensions==4.15.0 \
|
|||||||
# azure-core
|
# azure-core
|
||||||
# azure-identity
|
# azure-identity
|
||||||
# azure-storage-blob
|
# azure-storage-blob
|
||||||
urllib3==2.6.2 \
|
urllib3==2.6.3 \
|
||||||
--hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \
|
--hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \
|
||||||
--hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd
|
--hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4
|
||||||
# via
|
# via
|
||||||
# botocore
|
# botocore
|
||||||
# requests
|
# requests
|
||||||
|
|||||||
8
go.mod
8
go.mod
@ -7,13 +7,13 @@ toolchain go1.25.5
|
|||||||
require (
|
require (
|
||||||
github.com/cert-manager/cert-manager v1.19.2
|
github.com/cert-manager/cert-manager v1.19.2
|
||||||
github.com/cloudnative-pg/api v1.28.0
|
github.com/cloudnative-pg/api v1.28.0
|
||||||
github.com/cloudnative-pg/barman-cloud v0.4.0
|
github.com/cloudnative-pg/barman-cloud v0.4.1-0.20260108104508-ced266c145f5
|
||||||
github.com/cloudnative-pg/cloudnative-pg v1.28.0
|
github.com/cloudnative-pg/cloudnative-pg v1.28.0
|
||||||
github.com/cloudnative-pg/cnpg-i v0.3.1
|
github.com/cloudnative-pg/cnpg-i v0.3.1
|
||||||
github.com/cloudnative-pg/cnpg-i-machinery v0.4.2
|
github.com/cloudnative-pg/cnpg-i-machinery v0.4.2
|
||||||
github.com/cloudnative-pg/machinery v0.3.3
|
github.com/cloudnative-pg/machinery v0.3.3
|
||||||
github.com/onsi/ginkgo/v2 v2.27.3
|
github.com/onsi/ginkgo/v2 v2.27.5
|
||||||
github.com/onsi/gomega v1.38.3
|
github.com/onsi/gomega v1.39.0
|
||||||
github.com/spf13/cobra v1.10.2
|
github.com/spf13/cobra v1.10.2
|
||||||
github.com/spf13/viper v1.21.0
|
github.com/spf13/viper v1.21.0
|
||||||
google.golang.org/grpc v1.78.0
|
google.golang.org/grpc v1.78.0
|
||||||
@ -22,7 +22,7 @@ require (
|
|||||||
k8s.io/apiextensions-apiserver v0.35.0
|
k8s.io/apiextensions-apiserver v0.35.0
|
||||||
k8s.io/apimachinery v0.35.0
|
k8s.io/apimachinery v0.35.0
|
||||||
k8s.io/client-go v0.35.0
|
k8s.io/client-go v0.35.0
|
||||||
k8s.io/utils v0.0.0-20251222233032-718f0e51e6d2
|
k8s.io/utils v0.0.0-20260108192941-914a6e750570
|
||||||
sigs.k8s.io/controller-runtime v0.22.4
|
sigs.k8s.io/controller-runtime v0.22.4
|
||||||
sigs.k8s.io/kustomize/api v0.21.0
|
sigs.k8s.io/kustomize/api v0.21.0
|
||||||
sigs.k8s.io/kustomize/kyaml v0.21.0
|
sigs.k8s.io/kustomize/kyaml v0.21.0
|
||||||
|
|||||||
16
go.sum
16
go.sum
@ -18,8 +18,8 @@ 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/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
github.com/cloudnative-pg/api v1.28.0 h1:xElzHliO0eKkVQafkfMhDJo0aIRCmB1ItEt+SGh6B58=
|
github.com/cloudnative-pg/api v1.28.0 h1:xElzHliO0eKkVQafkfMhDJo0aIRCmB1ItEt+SGh6B58=
|
||||||
github.com/cloudnative-pg/api v1.28.0/go.mod h1:puXJBOsEaJd8JLgvCtxgl2TO/ZANap/z7bPepKRUgrk=
|
github.com/cloudnative-pg/api v1.28.0/go.mod h1:puXJBOsEaJd8JLgvCtxgl2TO/ZANap/z7bPepKRUgrk=
|
||||||
github.com/cloudnative-pg/barman-cloud v0.4.0 h1:V4ajM5yDWq2m+TxmnDtCBGmfMXAxbXr9k7lfR4jM+eE=
|
github.com/cloudnative-pg/barman-cloud v0.4.1-0.20260108104508-ced266c145f5 h1:wPB7VTNgTv6t9sl4QYOBakmVTqHnOdKUht7Q3aL+uns=
|
||||||
github.com/cloudnative-pg/barman-cloud v0.4.0/go.mod h1:AWdyNP2jvMO1c7eOOwT8kT+QGyK5O7lEBZX12LEZ1Ic=
|
github.com/cloudnative-pg/barman-cloud v0.4.1-0.20260108104508-ced266c145f5/go.mod h1:qD0NtJOllNQbRB0MaleuHsZjFYaXtXfdg0HbFTbuHn0=
|
||||||
github.com/cloudnative-pg/cloudnative-pg v1.28.0 h1:vkv0a0ewDSfJOPJrsyUr4uczsxheReAWf/k171V0Dm0=
|
github.com/cloudnative-pg/cloudnative-pg v1.28.0 h1:vkv0a0ewDSfJOPJrsyUr4uczsxheReAWf/k171V0Dm0=
|
||||||
github.com/cloudnative-pg/cloudnative-pg v1.28.0/go.mod h1:209fkRR6m0vXUVQ9Q498eAPQqN2UlXECbXXtpGsZz3I=
|
github.com/cloudnative-pg/cloudnative-pg v1.28.0/go.mod h1:209fkRR6m0vXUVQ9Q498eAPQqN2UlXECbXXtpGsZz3I=
|
||||||
github.com/cloudnative-pg/cnpg-i v0.3.1 h1:fKj8NoToWI11HUL2UWYJBpkVzmaTvbs3kDMo7wQF8RU=
|
github.com/cloudnative-pg/cnpg-i v0.3.1 h1:fKj8NoToWI11HUL2UWYJBpkVzmaTvbs3kDMo7wQF8RU=
|
||||||
@ -163,10 +163,10 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq
|
|||||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
||||||
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus=
|
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus=
|
||||||
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
|
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
|
||||||
github.com/onsi/ginkgo/v2 v2.27.3 h1:ICsZJ8JoYafeXFFlFAG75a7CxMsJHwgKwtO+82SE9L8=
|
github.com/onsi/ginkgo/v2 v2.27.5 h1:ZeVgZMx2PDMdJm/+w5fE/OyG6ILo1Y3e+QX4zSR0zTE=
|
||||||
github.com/onsi/ginkgo/v2 v2.27.3/go.mod h1:ArE1D/XhNXBXCBkKOLkbsb2c81dQHCRcF5zwn/ykDRo=
|
github.com/onsi/ginkgo/v2 v2.27.5/go.mod h1:ArE1D/XhNXBXCBkKOLkbsb2c81dQHCRcF5zwn/ykDRo=
|
||||||
github.com/onsi/gomega v1.38.3 h1:eTX+W6dobAYfFeGC2PV6RwXRu/MyT+cQguijutvkpSM=
|
github.com/onsi/gomega v1.39.0 h1:y2ROC3hKFmQZJNFeGAMeHZKkjBL65mIZcvrLQBF9k6Q=
|
||||||
github.com/onsi/gomega v1.38.3/go.mod h1:ZCU1pkQcXDO5Sl9/VVEGlDyp+zm0m1cmeG5TOzLgdh4=
|
github.com/onsi/gomega v1.39.0/go.mod h1:ZCU1pkQcXDO5Sl9/VVEGlDyp+zm0m1cmeG5TOzLgdh4=
|
||||||
github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4=
|
github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4=
|
||||||
github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
|
github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
|
||||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
@ -326,8 +326,8 @@ k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
|
|||||||
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
|
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
|
||||||
k8s.io/kube-openapi v0.0.0-20251125145642-4e65d59e963e h1:iW9ChlU0cU16w8MpVYjXk12dqQ4BPFBEgif+ap7/hqQ=
|
k8s.io/kube-openapi v0.0.0-20251125145642-4e65d59e963e h1:iW9ChlU0cU16w8MpVYjXk12dqQ4BPFBEgif+ap7/hqQ=
|
||||||
k8s.io/kube-openapi v0.0.0-20251125145642-4e65d59e963e/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ=
|
k8s.io/kube-openapi v0.0.0-20251125145642-4e65d59e963e/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ=
|
||||||
k8s.io/utils v0.0.0-20251222233032-718f0e51e6d2 h1:OfgiEo21hGiwx1oJUU5MpEaeOEg6coWndBkZF/lkFuE=
|
k8s.io/utils v0.0.0-20260108192941-914a6e750570 h1:JT4W8lsdrGENg9W+YwwdLJxklIuKWdRm+BC+xt33FOY=
|
||||||
k8s.io/utils v0.0.0-20251222233032-718f0e51e6d2/go.mod h1:xDxuJ0whA3d0I4mf/C4ppKHxXynQ+fxnkmQH0vTHnuk=
|
k8s.io/utils v0.0.0-20260108192941-914a6e750570/go.mod h1:xDxuJ0whA3d0I4mf/C4ppKHxXynQ+fxnkmQH0vTHnuk=
|
||||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.33.0 h1:qPrZsv1cwQiFeieFlRqT627fVZ+tyfou/+S5S0H5ua0=
|
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.33.0 h1:qPrZsv1cwQiFeieFlRqT627fVZ+tyfou/+S5S0H5ua0=
|
||||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.33.0/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw=
|
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.33.0/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw=
|
||||||
sigs.k8s.io/controller-runtime v0.22.4 h1:GEjV7KV3TY8e+tJ2LCTxUTanW4z/FmNB7l327UfMq9A=
|
sigs.k8s.io/controller-runtime v0.22.4 h1:GEjV7KV3TY8e+tJ2LCTxUTanW4z/FmNB7l327UfMq9A=
|
||||||
|
|||||||
@ -353,30 +353,31 @@ func reconcilePodSpec(
|
|||||||
sidecarTemplate corev1.Container,
|
sidecarTemplate corev1.Container,
|
||||||
config sidecarConfiguration,
|
config sidecarConfiguration,
|
||||||
) error {
|
) error {
|
||||||
envs := []corev1.EnvVar{
|
envs := make([]corev1.EnvVar, 0, 5+len(config.env))
|
||||||
{
|
envs = append(envs,
|
||||||
|
corev1.EnvVar{
|
||||||
Name: "NAMESPACE",
|
Name: "NAMESPACE",
|
||||||
Value: cluster.Namespace,
|
Value: cluster.Namespace,
|
||||||
},
|
},
|
||||||
{
|
corev1.EnvVar{
|
||||||
Name: "CLUSTER_NAME",
|
Name: "CLUSTER_NAME",
|
||||||
Value: cluster.Name,
|
Value: cluster.Name,
|
||||||
},
|
},
|
||||||
{
|
corev1.EnvVar{
|
||||||
// TODO: should we really use this one?
|
// TODO: should we really use this one?
|
||||||
// should we mount an emptyDir volume just for that?
|
// should we mount an emptyDir volume just for that?
|
||||||
Name: "SPOOL_DIRECTORY",
|
Name: "SPOOL_DIRECTORY",
|
||||||
Value: "/controller/wal-restore-spool",
|
Value: "/controller/wal-restore-spool",
|
||||||
},
|
},
|
||||||
{
|
corev1.EnvVar{
|
||||||
Name: "CUSTOM_CNPG_GROUP",
|
Name: "CUSTOM_CNPG_GROUP",
|
||||||
Value: cluster.GetObjectKind().GroupVersionKind().Group,
|
Value: cluster.GetObjectKind().GroupVersionKind().Group,
|
||||||
},
|
},
|
||||||
{
|
corev1.EnvVar{
|
||||||
Name: "CUSTOM_CNPG_VERSION",
|
Name: "CUSTOM_CNPG_VERSION",
|
||||||
Value: cluster.GetObjectKind().GroupVersionKind().Version,
|
Value: cluster.GetObjectKind().GroupVersionKind().Version,
|
||||||
},
|
},
|
||||||
}
|
)
|
||||||
|
|
||||||
envs = append(envs, config.env...)
|
envs = append(envs, config.env...)
|
||||||
|
|
||||||
|
|||||||
@ -37,13 +37,17 @@ func CollectSecretNamesFromCredentials(barmanCredentials *barmanapi.BarmanCreden
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
if barmanCredentials.Azure != nil {
|
if barmanCredentials.Azure != nil {
|
||||||
references = append(
|
// When using default Azure credentials or managed identity, no secrets are required
|
||||||
references,
|
if !barmanCredentials.Azure.UseDefaultAzureCredentials &&
|
||||||
barmanCredentials.Azure.ConnectionString,
|
!barmanCredentials.Azure.InheritFromAzureAD {
|
||||||
barmanCredentials.Azure.StorageAccount,
|
references = append(
|
||||||
barmanCredentials.Azure.StorageKey,
|
references,
|
||||||
barmanCredentials.Azure.StorageSasToken,
|
barmanCredentials.Azure.ConnectionString,
|
||||||
)
|
barmanCredentials.Azure.StorageAccount,
|
||||||
|
barmanCredentials.Azure.StorageKey,
|
||||||
|
barmanCredentials.Azure.StorageSasToken,
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if barmanCredentials.Google != nil {
|
if barmanCredentials.Google != nil {
|
||||||
references = append(
|
references = append(
|
||||||
|
|||||||
227
internal/cnpgi/operator/specs/secrets_test.go
Normal file
227
internal/cnpgi/operator/specs/secrets_test.go
Normal file
@ -0,0 +1,227 @@
|
|||||||
|
/*
|
||||||
|
Copyright © contributors to CloudNativePG, established as
|
||||||
|
CloudNativePG a Series of LF Projects, LLC.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
package specs
|
||||||
|
|
||||||
|
import (
|
||||||
|
barmanapi "github.com/cloudnative-pg/barman-cloud/pkg/api"
|
||||||
|
machineryapi "github.com/cloudnative-pg/machinery/pkg/api"
|
||||||
|
|
||||||
|
. "github.com/onsi/ginkgo/v2"
|
||||||
|
. "github.com/onsi/gomega"
|
||||||
|
)
|
||||||
|
|
||||||
|
var _ = Describe("CollectSecretNamesFromCredentials", func() {
|
||||||
|
Context("when collecting secrets from AWS credentials", func() {
|
||||||
|
It("should return secret names from S3 credentials", func() {
|
||||||
|
credentials := &barmanapi.BarmanCredentials{
|
||||||
|
AWS: &barmanapi.S3Credentials{
|
||||||
|
AccessKeyIDReference: &machineryapi.SecretKeySelector{
|
||||||
|
LocalObjectReference: machineryapi.LocalObjectReference{
|
||||||
|
Name: "aws-secret",
|
||||||
|
},
|
||||||
|
Key: "access-key-id",
|
||||||
|
},
|
||||||
|
SecretAccessKeyReference: &machineryapi.SecretKeySelector{
|
||||||
|
LocalObjectReference: machineryapi.LocalObjectReference{
|
||||||
|
Name: "aws-secret",
|
||||||
|
},
|
||||||
|
Key: "secret-access-key",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
secrets := CollectSecretNamesFromCredentials(credentials)
|
||||||
|
Expect(secrets).To(ContainElement("aws-secret"))
|
||||||
|
})
|
||||||
|
|
||||||
|
It("should handle nil AWS credentials", func() {
|
||||||
|
credentials := &barmanapi.BarmanCredentials{}
|
||||||
|
|
||||||
|
secrets := CollectSecretNamesFromCredentials(credentials)
|
||||||
|
Expect(secrets).To(BeEmpty())
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
Context("when collecting secrets from Azure credentials", func() {
|
||||||
|
It("should return secret names when using explicit credentials", func() {
|
||||||
|
credentials := &barmanapi.BarmanCredentials{
|
||||||
|
Azure: &barmanapi.AzureCredentials{
|
||||||
|
ConnectionString: &machineryapi.SecretKeySelector{
|
||||||
|
LocalObjectReference: machineryapi.LocalObjectReference{
|
||||||
|
Name: "azure-secret",
|
||||||
|
},
|
||||||
|
Key: "connection-string",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
secrets := CollectSecretNamesFromCredentials(credentials)
|
||||||
|
Expect(secrets).To(ContainElement("azure-secret"))
|
||||||
|
})
|
||||||
|
|
||||||
|
It("should return empty list when using UseDefaultAzureCredentials", func() {
|
||||||
|
credentials := &barmanapi.BarmanCredentials{
|
||||||
|
Azure: &barmanapi.AzureCredentials{
|
||||||
|
UseDefaultAzureCredentials: true,
|
||||||
|
ConnectionString: &machineryapi.SecretKeySelector{
|
||||||
|
LocalObjectReference: machineryapi.LocalObjectReference{
|
||||||
|
Name: "azure-secret",
|
||||||
|
},
|
||||||
|
Key: "connection-string",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
secrets := CollectSecretNamesFromCredentials(credentials)
|
||||||
|
Expect(secrets).To(BeEmpty())
|
||||||
|
})
|
||||||
|
|
||||||
|
It("should return empty list when using InheritFromAzureAD", func() {
|
||||||
|
credentials := &barmanapi.BarmanCredentials{
|
||||||
|
Azure: &barmanapi.AzureCredentials{
|
||||||
|
InheritFromAzureAD: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
secrets := CollectSecretNamesFromCredentials(credentials)
|
||||||
|
Expect(secrets).To(BeEmpty())
|
||||||
|
})
|
||||||
|
|
||||||
|
It("should return secret names for storage account and key", func() {
|
||||||
|
credentials := &barmanapi.BarmanCredentials{
|
||||||
|
Azure: &barmanapi.AzureCredentials{
|
||||||
|
StorageAccount: &machineryapi.SecretKeySelector{
|
||||||
|
LocalObjectReference: machineryapi.LocalObjectReference{
|
||||||
|
Name: "azure-storage",
|
||||||
|
},
|
||||||
|
Key: "account-name",
|
||||||
|
},
|
||||||
|
StorageKey: &machineryapi.SecretKeySelector{
|
||||||
|
LocalObjectReference: machineryapi.LocalObjectReference{
|
||||||
|
Name: "azure-storage",
|
||||||
|
},
|
||||||
|
Key: "account-key",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
secrets := CollectSecretNamesFromCredentials(credentials)
|
||||||
|
Expect(secrets).To(ContainElement("azure-storage"))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
Context("when collecting secrets from Google credentials", func() {
|
||||||
|
It("should return secret names from Google credentials", func() {
|
||||||
|
credentials := &barmanapi.BarmanCredentials{
|
||||||
|
Google: &barmanapi.GoogleCredentials{
|
||||||
|
ApplicationCredentials: &machineryapi.SecretKeySelector{
|
||||||
|
LocalObjectReference: machineryapi.LocalObjectReference{
|
||||||
|
Name: "google-secret",
|
||||||
|
},
|
||||||
|
Key: "credentials.json",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
secrets := CollectSecretNamesFromCredentials(credentials)
|
||||||
|
Expect(secrets).To(ContainElement("google-secret"))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
Context("when collecting secrets from multiple cloud providers", func() {
|
||||||
|
It("should return secret names from all providers", func() {
|
||||||
|
credentials := &barmanapi.BarmanCredentials{
|
||||||
|
AWS: &barmanapi.S3Credentials{
|
||||||
|
AccessKeyIDReference: &machineryapi.SecretKeySelector{
|
||||||
|
LocalObjectReference: machineryapi.LocalObjectReference{
|
||||||
|
Name: "aws-secret",
|
||||||
|
},
|
||||||
|
Key: "access-key-id",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Azure: &barmanapi.AzureCredentials{
|
||||||
|
ConnectionString: &machineryapi.SecretKeySelector{
|
||||||
|
LocalObjectReference: machineryapi.LocalObjectReference{
|
||||||
|
Name: "azure-secret",
|
||||||
|
},
|
||||||
|
Key: "connection-string",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Google: &barmanapi.GoogleCredentials{
|
||||||
|
ApplicationCredentials: &machineryapi.SecretKeySelector{
|
||||||
|
LocalObjectReference: machineryapi.LocalObjectReference{
|
||||||
|
Name: "google-secret",
|
||||||
|
},
|
||||||
|
Key: "credentials.json",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
secrets := CollectSecretNamesFromCredentials(credentials)
|
||||||
|
Expect(secrets).To(ContainElements("aws-secret", "azure-secret", "google-secret"))
|
||||||
|
})
|
||||||
|
|
||||||
|
It("should skip Azure secrets when using UseDefaultAzureCredentials with other providers", func() {
|
||||||
|
credentials := &barmanapi.BarmanCredentials{
|
||||||
|
AWS: &barmanapi.S3Credentials{
|
||||||
|
AccessKeyIDReference: &machineryapi.SecretKeySelector{
|
||||||
|
LocalObjectReference: machineryapi.LocalObjectReference{
|
||||||
|
Name: "aws-secret",
|
||||||
|
},
|
||||||
|
Key: "access-key-id",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Azure: &barmanapi.AzureCredentials{
|
||||||
|
UseDefaultAzureCredentials: true,
|
||||||
|
ConnectionString: &machineryapi.SecretKeySelector{
|
||||||
|
LocalObjectReference: machineryapi.LocalObjectReference{
|
||||||
|
Name: "azure-secret",
|
||||||
|
},
|
||||||
|
Key: "connection-string",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
secrets := CollectSecretNamesFromCredentials(credentials)
|
||||||
|
Expect(secrets).To(ContainElement("aws-secret"))
|
||||||
|
Expect(secrets).NotTo(ContainElement("azure-secret"))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
Context("when handling nil references", func() {
|
||||||
|
It("should skip nil secret references", func() {
|
||||||
|
credentials := &barmanapi.BarmanCredentials{
|
||||||
|
AWS: &barmanapi.S3Credentials{
|
||||||
|
AccessKeyIDReference: &machineryapi.SecretKeySelector{
|
||||||
|
LocalObjectReference: machineryapi.LocalObjectReference{
|
||||||
|
Name: "aws-secret",
|
||||||
|
},
|
||||||
|
Key: "access-key-id",
|
||||||
|
},
|
||||||
|
SecretAccessKeyReference: nil,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
secrets := CollectSecretNamesFromCredentials(credentials)
|
||||||
|
Expect(secrets).To(ContainElement("aws-secret"))
|
||||||
|
Expect(len(secrets)).To(Equal(1))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
32
internal/cnpgi/operator/specs/suite_test.go
Normal file
32
internal/cnpgi/operator/specs/suite_test.go
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
/*
|
||||||
|
Copyright © contributors to CloudNativePG, established as
|
||||||
|
CloudNativePG a Series of LF Projects, LLC.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
package specs
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
. "github.com/onsi/ginkgo/v2"
|
||||||
|
. "github.com/onsi/gomega"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSpecs(t *testing.T) {
|
||||||
|
RegisterFailHandler(Fail)
|
||||||
|
RunSpecs(t, "Specs Suite")
|
||||||
|
}
|
||||||
@ -107,6 +107,11 @@ spec:
|
|||||||
- key
|
- key
|
||||||
- name
|
- name
|
||||||
type: object
|
type: object
|
||||||
|
useDefaultAzureCredentials:
|
||||||
|
description: |-
|
||||||
|
Use the default Azure authentication flow, which includes DefaultAzureCredential.
|
||||||
|
This allows authentication using environment variables and managed identities.
|
||||||
|
type: boolean
|
||||||
type: object
|
type: object
|
||||||
data:
|
data:
|
||||||
description: |-
|
description: |-
|
||||||
|
|||||||
@ -11,6 +11,17 @@
|
|||||||
],
|
],
|
||||||
rebaseWhen: 'never',
|
rebaseWhen: 'never',
|
||||||
prConcurrentLimit: 5,
|
prConcurrentLimit: 5,
|
||||||
|
// Override default ignorePaths to scan test/e2e for emulator image dependencies
|
||||||
|
// Removed: '**/test/**'
|
||||||
|
ignorePaths: [
|
||||||
|
'**/node_modules/**',
|
||||||
|
'**/bower_components/**',
|
||||||
|
'**/vendor/**',
|
||||||
|
'**/examples/**',
|
||||||
|
'**/__tests__/**',
|
||||||
|
'**/tests/**',
|
||||||
|
'**/__fixtures__/**',
|
||||||
|
],
|
||||||
lockFileMaintenance: {
|
lockFileMaintenance: {
|
||||||
enabled: true,
|
enabled: true,
|
||||||
},
|
},
|
||||||
@ -28,7 +39,7 @@
|
|||||||
{
|
{
|
||||||
customType: 'regex',
|
customType: 'regex',
|
||||||
managerFilePatterns: [
|
managerFilePatterns: [
|
||||||
'/(^Taskfile\\.yml$)/',
|
'/(^|/)Taskfile\\.yml$/',
|
||||||
],
|
],
|
||||||
matchStrings: [
|
matchStrings: [
|
||||||
'# renovate: datasource=(?<datasource>[a-z-.]+?) depName=(?<depName>[^\\s]+?)(?: (?:lookupName|packageName)=(?<packageName>[^\\s]+?))?(?: versioning=(?<versioning>[^\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\s]+?))?(?: currentValue=(?<currentValue>[^\\s]+?))?\\s+[A-Za-z0-9_]+?_SHA\\s*:\\s*["\']?(?<currentDigest>[a-f0-9]+?)["\']?\\s',
|
'# renovate: datasource=(?<datasource>[a-z-.]+?) depName=(?<depName>[^\\s]+?)(?: (?:lookupName|packageName)=(?<packageName>[^\\s]+?))?(?: versioning=(?<versioning>[^\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\s]+?))?(?: currentValue=(?<currentValue>[^\\s]+?))?\\s+[A-Za-z0-9_]+?_SHA\\s*:\\s*["\']?(?<currentDigest>[a-f0-9]+?)["\']?\\s',
|
||||||
@ -38,7 +49,16 @@
|
|||||||
{
|
{
|
||||||
customType: 'regex',
|
customType: 'regex',
|
||||||
managerFilePatterns: [
|
managerFilePatterns: [
|
||||||
'/(^docs/config\\.yaml$)/',
|
'/\\.go$/',
|
||||||
|
],
|
||||||
|
matchStrings: [
|
||||||
|
'//\\s*renovate:\\s*datasource=(?<datasource>[a-z-.]+?)\\s+depName=(?<depName>[^\\s]+?)(?:\\s+versioning=(?<versioning>[^\\s]+?))?\\s*\\n\\s*//\\s*Version:\\s*(?<currentValue>[^\\s]+?)\\s*\\n\\s*Image:\\s*"[^@]+@(?<currentDigest>sha256:[a-f0-9]+)"',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
customType: 'regex',
|
||||||
|
managerFilePatterns: [
|
||||||
|
'/(^|/)docs/config\\.yaml$/',
|
||||||
],
|
],
|
||||||
matchStrings: [
|
matchStrings: [
|
||||||
'# renovate: datasource=(?<datasource>[a-z-.]+?) depName=(?<depName>[^\\s]+?)(?: (?:lookupName|packageName)=(?<packageName>[^\\s]+?))?(?: versioning=(?<versioning>[^\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\s]+?))?\\s+kubernetesVersion:\\s*["\']?(?<currentValue>.+?)["\']?\\s',
|
'# renovate: datasource=(?<datasource>[a-z-.]+?) depName=(?<depName>[^\\s]+?)(?: (?:lookupName|packageName)=(?<packageName>[^\\s]+?))?(?: versioning=(?<versioning>[^\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\s]+?))?\\s+kubernetesVersion:\\s*["\']?(?<currentValue>.+?)["\']?\\s',
|
||||||
|
|||||||
@ -71,8 +71,15 @@ func newAzuriteDeployment(namespace, name string) *appsv1.Deployment {
|
|||||||
Containers: []corev1.Container{
|
Containers: []corev1.Container{
|
||||||
{
|
{
|
||||||
Name: name,
|
Name: name,
|
||||||
// TODO: renovate the image
|
// renovate: datasource=docker depName=mcr.microsoft.com/azure-storage/azurite versioning=docker
|
||||||
Image: "mcr.microsoft.com/azure-storage/azurite",
|
// Version: 3.35.0
|
||||||
|
Image: "mcr.microsoft.com/azure-storage/azurite@sha256:647c63a91102a9d8e8000aab803436e1fc85fbb285e7ce830a82ee5d6661cf37",
|
||||||
|
Args: []string{
|
||||||
|
"azurite-blob",
|
||||||
|
"--blobHost",
|
||||||
|
"0.0.0.0",
|
||||||
|
"--skipApiVersionCheck",
|
||||||
|
},
|
||||||
Ports: []corev1.ContainerPort{
|
Ports: []corev1.ContainerPort{
|
||||||
{
|
{
|
||||||
ContainerPort: 10000,
|
ContainerPort: 10000,
|
||||||
|
|||||||
@ -71,7 +71,9 @@ func newGCSDeployment(namespace, name string) *appsv1.Deployment {
|
|||||||
Containers: []corev1.Container{
|
Containers: []corev1.Container{
|
||||||
{
|
{
|
||||||
Name: name,
|
Name: name,
|
||||||
Image: "fsouza/fake-gcs-server:latest",
|
// renovate: datasource=docker depName=fsouza/fake-gcs-server versioning=docker
|
||||||
|
// Version: 1.52.3
|
||||||
|
Image: "fsouza/fake-gcs-server@sha256:666f86b873120818b10a5e68d99401422fcf8b00c1f27fe89599c35236f48b4c",
|
||||||
Ports: []corev1.ContainerPort{
|
Ports: []corev1.ContainerPort{
|
||||||
{
|
{
|
||||||
ContainerPort: 4443,
|
ContainerPort: 4443,
|
||||||
|
|||||||
@ -71,8 +71,9 @@ func newMinioDeployment(namespace, name string) *appsv1.Deployment {
|
|||||||
Containers: []corev1.Container{
|
Containers: []corev1.Container{
|
||||||
{
|
{
|
||||||
Name: name,
|
Name: name,
|
||||||
// TODO: renovate the image
|
// renovate: datasource=docker depName=minio/minio versioning=docker
|
||||||
Image: "minio/minio:latest",
|
// Version: RELEASE.2025-09-07T16-13-09Z
|
||||||
|
Image: "minio/minio@sha256:14cea493d9a34af32f524e538b8346cf79f3321eff8e708c1e2960462bd8936e",
|
||||||
Args: []string{"server", "/data"},
|
Args: []string{"server", "/data"},
|
||||||
Ports: []corev1.ContainerPort{
|
Ports: []corev1.ContainerPort{
|
||||||
{
|
{
|
||||||
|
|||||||
@ -29,6 +29,16 @@ the specific object storage provider you are using.
|
|||||||
|
|
||||||
The following sections detail the setup for each.
|
The following sections detail the setup for each.
|
||||||
|
|
||||||
|
:::note Authentication Methods
|
||||||
|
The Barman Cloud Plugin does not independently test all authentication methods
|
||||||
|
supported by `barman-cloud`. The plugin's responsibility is limited to passing
|
||||||
|
the provided credentials to `barman-cloud`, which then handles authentication
|
||||||
|
according to its own implementation. Users should refer to the
|
||||||
|
[Barman Cloud documentation](https://docs.pgbarman.org/release/latest/) to
|
||||||
|
verify that their chosen authentication method is supported and properly
|
||||||
|
configured.
|
||||||
|
:::
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## AWS S3
|
## AWS S3
|
||||||
@ -230,14 +240,18 @@ is Microsoft’s cloud-based object storage solution.
|
|||||||
Barman Cloud supports the following authentication methods:
|
Barman Cloud supports the following authentication methods:
|
||||||
|
|
||||||
- [Connection String](https://learn.microsoft.com/en-us/azure/storage/common/storage-configure-connection-string)
|
- [Connection String](https://learn.microsoft.com/en-us/azure/storage/common/storage-configure-connection-string)
|
||||||
- Storage Account Name + [Access Key](https://learn.microsoft.com/en-us/azure/storage/common/storage-account-keys-manage)
|
- Storage Account Name + [Storage Account Access Key](https://learn.microsoft.com/en-us/azure/storage/common/storage-account-keys-manage)
|
||||||
- Storage Account Name + [SAS Token](https://learn.microsoft.com/en-us/azure/storage/blobs/sas-service-create)
|
- Storage Account Name + [Storage Account SAS Token](https://learn.microsoft.com/en-us/azure/storage/blobs/sas-service-create)
|
||||||
- [Azure AD Workload Identity](https://azure.github.io/azure-workload-identity/docs/introduction.html)
|
- [Azure AD Managed Identity](https://learn.microsoft.com/en-us/entra/identity/managed-identities-azure-resources/overview)
|
||||||
|
- [Default Azure Credentials](https://learn.microsoft.com/en-us/dotnet/api/azure.identity.defaultazurecredential?view=azure-dotnet)
|
||||||
|
|
||||||
### Azure AD Workload Identity
|
### Azure AD Managed Identity
|
||||||
|
|
||||||
This method avoids storing credentials in Kubernetes via the
|
This method avoids storing credentials in Kubernetes by enabling the
|
||||||
`.spec.configuration.inheritFromAzureAD` option:
|
usage of [Azure Managed Identities](https://learn.microsoft.com/en-us/entra/identity/managed-identities-azure-resources/overview) authentication mechanism.
|
||||||
|
This can be enabled by setting the `inheritFromAzureAD` option to `true`.
|
||||||
|
Managed Identity can be configured for the AKS Cluster by following
|
||||||
|
the [Azure documentation](https://learn.microsoft.com/en-us/azure/aks/use-managed-identity?pivots=system-assigned).
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
apiVersion: barmancloud.cnpg.io/v1
|
apiVersion: barmancloud.cnpg.io/v1
|
||||||
@ -252,6 +266,36 @@ spec:
|
|||||||
[...]
|
[...]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Default Azure Credentials
|
||||||
|
|
||||||
|
The `useDefaultAzureCredentials` option enables the default Azure credentials
|
||||||
|
flow, which uses [`DefaultAzureCredential`](https://learn.microsoft.com/en-us/python/api/azure-identity/azure.identity.defaultazurecredential)
|
||||||
|
to automatically discover and use available credentials in the following order:
|
||||||
|
|
||||||
|
1. **Environment Variables** — `AZURE_CLIENT_ID`, `AZURE_CLIENT_SECRET`, and `AZURE_TENANT_ID` for Service Principal authentication
|
||||||
|
2. **Managed Identity** — Uses the managed identity assigned to the pod
|
||||||
|
3. **Azure CLI** — Uses credentials from the Azure CLI if available
|
||||||
|
4. **Azure PowerShell** — Uses credentials from Azure PowerShell if available
|
||||||
|
|
||||||
|
This approach is particularly useful for getting started with development and testing; it allows
|
||||||
|
the SDK to attempt multiple authentication mechanisms seamlessly across different environments.
|
||||||
|
However, this is not recommended for production. Please refer to the
|
||||||
|
[official Azure guidance](https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication/credential-chains?tabs=dac#usage-guidance-for-defaultazurecredential)
|
||||||
|
for a comprehensive understanding of `DefaultAzureCredential`.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
apiVersion: barmancloud.cnpg.io/v1
|
||||||
|
kind: ObjectStore
|
||||||
|
metadata:
|
||||||
|
name: azure-store
|
||||||
|
spec:
|
||||||
|
configuration:
|
||||||
|
destinationPath: "<destination path here>"
|
||||||
|
azureCredentials:
|
||||||
|
useDefaultAzureCredentials: true
|
||||||
|
[...]
|
||||||
|
```
|
||||||
|
|
||||||
### Access Key, SAS Token, or Connection String
|
### Access Key, SAS Token, or Connection String
|
||||||
|
|
||||||
Store credentials in a Kubernetes secret:
|
Store credentials in a Kubernetes secret:
|
||||||
|
|||||||
@ -206,7 +206,7 @@ When a backup fails, follow these steps in order:
|
|||||||
plugins:
|
plugins:
|
||||||
- name: barman-cloud.cloudnative-pg.io
|
- name: barman-cloud.cloudnative-pg.io
|
||||||
parameters:
|
parameters:
|
||||||
barmanObjectStore: <your-objectstore-name>
|
barmanObjectName: <your-objectstore-name>
|
||||||
```
|
```
|
||||||
|
|
||||||
c. **Check plugin deployment is running**:
|
c. **Check plugin deployment is running**:
|
||||||
|
|||||||
@ -206,7 +206,7 @@ When a backup fails, follow these steps in order:
|
|||||||
plugins:
|
plugins:
|
||||||
- name: barman-cloud.cloudnative-pg.io
|
- name: barman-cloud.cloudnative-pg.io
|
||||||
parameters:
|
parameters:
|
||||||
barmanObjectStore: <your-objectstore-name>
|
barmanObjectName: <your-objectstore-name>
|
||||||
```
|
```
|
||||||
|
|
||||||
c. **Check plugin deployment is running**:
|
c. **Check plugin deployment is running**:
|
||||||
|
|||||||
@ -206,7 +206,7 @@ When a backup fails, follow these steps in order:
|
|||||||
plugins:
|
plugins:
|
||||||
- name: barman-cloud.cloudnative-pg.io
|
- name: barman-cloud.cloudnative-pg.io
|
||||||
parameters:
|
parameters:
|
||||||
barmanObjectStore: <your-objectstore-name>
|
barmanObjectName: <your-objectstore-name>
|
||||||
```
|
```
|
||||||
|
|
||||||
c. **Check plugin deployment is running**:
|
c. **Check plugin deployment is running**:
|
||||||
|
|||||||
@ -206,7 +206,7 @@ When a backup fails, follow these steps in order:
|
|||||||
plugins:
|
plugins:
|
||||||
- name: barman-cloud.cloudnative-pg.io
|
- name: barman-cloud.cloudnative-pg.io
|
||||||
parameters:
|
parameters:
|
||||||
barmanObjectStore: <your-objectstore-name>
|
barmanObjectName: <your-objectstore-name>
|
||||||
```
|
```
|
||||||
|
|
||||||
c. **Check plugin deployment is running**:
|
c. **Check plugin deployment is running**:
|
||||||
|
|||||||
@ -206,7 +206,7 @@ When a backup fails, follow these steps in order:
|
|||||||
plugins:
|
plugins:
|
||||||
- name: barman-cloud.cloudnative-pg.io
|
- name: barman-cloud.cloudnative-pg.io
|
||||||
parameters:
|
parameters:
|
||||||
barmanObjectStore: <your-objectstore-name>
|
barmanObjectName: <your-objectstore-name>
|
||||||
```
|
```
|
||||||
|
|
||||||
c. **Check plugin deployment is running**:
|
c. **Check plugin deployment is running**:
|
||||||
|
|||||||
1073
web/yarn.lock
1073
web/yarn.lock
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user