docs: add Helm chart installation (#599)

Add Helm chart install steps next to kubectl, for the current docs and
the 0.13.0 and 0.14.0 versioned snapshots.

Pin the chart's image tag to the plugin version on older releases. The
chart ships after the plugin, so its own version numbers don't map to
ours, and we skip the pin on the latest release since the chart already
defaults to itself there.

On the current docs, make clear the Helm tab installs the latest
release, not a main-branch build. Only kubectl can test a main-branch
build.

Closes #351

Signed-off-by: Krypton <root@krypton.ninja>
Signed-off-by: danishedb <danish.khan@enterprisedb.com>
Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
Co-authored-by: danishedb <danish.khan@enterprisedb.com>
Co-authored-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
This commit is contained in:
Krypton 2026-09-03 17:35:45 +02:00 committed by GitHub
parent f459a30472
commit 6f712151df
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 183 additions and 31 deletions

View File

@ -54,7 +54,47 @@ Both checks are required before proceeding with the installation.
## Installing the Barman Cloud Plugin ## Installing the Barman Cloud Plugin
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import { InstallationSnippet, ManifestVersion } from '@site/src/components/Installation'; import { InstallationSnippet, ManifestVersion } from '@site/src/components/Installation';
import { HelmInstallationSnippet } from '@site/src/components/HelmInstallation';
<Tabs groupId="install-method" queryString>
<TabItem value="helm" label="Helm Chart" default>
The plugin can be installed using the provided [Helm chart](https://github.com/cloudnative-pg/charts/tree/main/charts/plugin-barman-cloud).
This installs the latest published chart release; to test an unreleased
development snapshot instead, switch to the [**Manifest (kubectl)**](./?install-method=kubectl#installing-the-barman-cloud-plugin) tab.
<HelmInstallationSnippet />
Example output:
```output
Release "plugin-barman-cloud" does not exist. Installing it now.
NAME: plugin-barman-cloud
LAST DEPLOYED: Wed Jul 1 09:05:16 2026
NAMESPACE: cnpg-system
STATUS: deployed
REVISION: 1
DESCRIPTION: Install complete
TEST SUITE: None
```
Finally, check that the deployment is up and running:
```sh
kubectl -n cnpg-system rollout status deploy/plugin-barman-cloud
```
Example output:
```output
deployment "plugin-barman-cloud" successfully rolled out
```
</TabItem>
<TabItem value="kubectl" label="Manifest (kubectl)">
Install the plugin using `kubectl` by applying the manifest for <ManifestVersion />: Install the plugin using `kubectl` by applying the manifest for <ManifestVersion />:
@ -85,8 +125,7 @@ issuer.cert-manager.io/selfsigned-issuer created
Finally, check that the deployment is up and running: Finally, check that the deployment is up and running:
```sh ```sh
kubectl rollout status deployment \ kubectl -n cnpg-system rollout status deploy/barman-cloud
-n cnpg-system barman-cloud
``` ```
Example output: Example output:
@ -95,6 +134,11 @@ Example output:
deployment "barman-cloud" successfully rolled out deployment "barman-cloud" successfully rolled out
``` ```
</TabItem>
</Tabs>
---
This confirms that the plugin is deployed and ready to use. This confirms that the plugin is deployed and ready to use.
## Testing the latest development snapshot ## Testing the latest development snapshot

View File

@ -485,14 +485,10 @@ If problems persist:
### Plugin Limitations ### Plugin Limitations
1. **Installation method**: Currently only supports manifest and Kustomize 1. **Sidecar resource sharing**: The plugin sidecar container shares pod
installation ([#351](https://github.com/cloudnative-pg/plugin-barman-cloud/issues/351) -
Helm chart requested)
2. **Sidecar resource sharing**: The plugin sidecar container shares pod
resources with PostgreSQL resources with PostgreSQL
3. **Plugin restart behavior**: Restarting the sidecar container requires 2. **Plugin restart behavior**: Restarting the sidecar container requires
restarting the entire PostgreSQL pod restarting the entire PostgreSQL pod
## Recap of General Debugging Steps ## Recap of General Debugging Steps
@ -588,4 +584,3 @@ kubectl get secret -n <namespace> <secret-name> -o jsonpath='{.data}' | jq 'keys
* **"NoSuchBucket"** — Verify the bucket exists and the endpoint URL is correct. * **"NoSuchBucket"** — Verify the bucket exists and the endpoint URL is correct.
* **"Connection timeout"** — Check network connectivity and firewall rules. * **"Connection timeout"** — Check network connectivity and firewall rules.
* **"SSL certificate problem"** — For self-signed certificates, verify the CA bundle configuration. * **"SSL certificate problem"** — For self-signed certificates, verify the CA bundle configuration.

View File

@ -0,0 +1,36 @@
import {ReactElement} from 'react';
import CodeBlock from '@theme/CodeBlock';
import {useActiveVersion, useLatestVersion} from '@docusaurus/plugin-content-docs/client';
// HelmInstallationSnippet is the Helm command to install the plugin.
//
// - Latest release: no override. The chart already defaults to
// itself.
// - Older release: pin image.tag and sidecarImage.tag to that
// version. We check this again on every build using
// useLatestVersion, so an old page updates itself once a newer
// version ships.
// - Dev docs: also no override, but this does NOT install a dev
// build. Setting the tag alone would not be enough, since the
// chart's own templates (CRDs, RBAC...) can be older than what
// main needs. Use the kubectl method to test a dev build.
export function HelmInstallationSnippet(): ReactElement<null> {
const activeVersion = useActiveVersion('default');
const latestVersion = useLatestVersion('default');
const isOlderRelease = activeVersion
&& activeVersion.name !== 'current'
&& activeVersion.name !== latestVersion.name;
const setArgs = isOlderRelease
? ` \\
--set image.tag=v${activeVersion.name} \\
--set sidecarImage.tag=v${activeVersion.name}`
: '';
return (
<CodeBlock language="sh">
{`helm repo add cnpg https://cloudnative-pg.github.io/charts --force-update
helm upgrade --install plugin-barman-cloud \\
--namespace cnpg-system${setArgs} \\
cnpg/plugin-barman-cloud`}
</CodeBlock>
);
}

View File

@ -1,5 +1,7 @@
import {ReactElement} from 'react'; import {ReactElement} from 'react';
import CodeBlock from '@theme/CodeBlock'; import CodeBlock from '@theme/CodeBlock';
import Link from '@docusaurus/Link';
import {useLocation} from '@docusaurus/router';
import {useActiveVersion} from '@docusaurus/plugin-content-docs/client'; import {useActiveVersion} from '@docusaurus/plugin-content-docs/client';
// DEV_MANIFEST_URL is the URL of the manifest.yaml on the main branch of the plugin repo. // DEV_MANIFEST_URL is the URL of the manifest.yaml on the main branch of the plugin repo.
@ -31,14 +33,17 @@ export function ManifestVersion(): ReactElement<null> {
: <>the latest development snapshot from the <code>main</code> branch</>; : <>the latest development snapshot from the <code>main</code> branch</>;
} }
// DevSnapshotSection offers the main-branch manifest as an alternative; // DevSnapshotSection shows how to test the main-branch manifest. On
// on the Dev docs the main install already is that manifest, so hide it. // the Dev docs, the kubectl install above already does that, so we
// hide this section there. (The Helm tab there installs the latest
// release, not a dev build.)
export function DevSnapshotSection(): ReactElement { export function DevSnapshotSection(): ReactElement {
const activeVersion = useActiveVersion('default'); const activeVersion = useActiveVersion('default');
const {pathname} = useLocation();
if (!activeVersion || activeVersion.name === 'current') { if (!activeVersion || activeVersion.name === 'current') {
return ( return (
<p>The <a href="#installing-the-barman-cloud-plugin">install <p>The <Link to={`${pathname}?install-method=kubectl#installing-the-barman-cloud-plugin`}>kubectl
command above</a> already applies the latest development install command above</Link> already applies the latest development
snapshot from the <code>main</code> branch.</p> snapshot from the <code>main</code> branch.</p>
); );
} }

View File

@ -54,7 +54,45 @@ Both checks are required before proceeding with the installation.
## Installing the Barman Cloud Plugin ## Installing the Barman Cloud Plugin
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import { InstallationSnippet, ManifestVersion } from '@site/src/components/Installation'; import { InstallationSnippet, ManifestVersion } from '@site/src/components/Installation';
import { HelmInstallationSnippet } from '@site/src/components/HelmInstallation';
<Tabs groupId="install-method">
<TabItem value="helm" label="Helm Chart" default>
The plugin can be installed using the provided [Helm chart](https://github.com/cloudnative-pg/charts/tree/main/charts/plugin-barman-cloud):
<HelmInstallationSnippet />
Example output:
```output
Release "plugin-barman-cloud" does not exist. Installing it now.
NAME: plugin-barman-cloud
LAST DEPLOYED: Wed Jul 1 09:05:16 2026
NAMESPACE: cnpg-system
STATUS: deployed
REVISION: 1
DESCRIPTION: Install complete
TEST SUITE: None
```
Finally, check that the deployment is up and running:
```sh
kubectl -n cnpg-system rollout status deploy/plugin-barman-cloud
```
Example output:
```output
deployment "plugin-barman-cloud" successfully rolled out
```
</TabItem>
<TabItem value="kubectl" label="Manifest (kubectl)">
Install the plugin using `kubectl` by applying the manifest for <ManifestVersion />: Install the plugin using `kubectl` by applying the manifest for <ManifestVersion />:
@ -85,8 +123,7 @@ issuer.cert-manager.io/selfsigned-issuer created
Finally, check that the deployment is up and running: Finally, check that the deployment is up and running:
```sh ```sh
kubectl rollout status deployment \ kubectl -n cnpg-system rollout status deploy/barman-cloud
-n cnpg-system barman-cloud
``` ```
Example output: Example output:
@ -95,6 +132,11 @@ Example output:
deployment "barman-cloud" successfully rolled out deployment "barman-cloud" successfully rolled out
``` ```
</TabItem>
</Tabs>
---
This confirms that the plugin is deployed and ready to use. This confirms that the plugin is deployed and ready to use.
## Testing the latest development snapshot ## Testing the latest development snapshot

View File

@ -485,14 +485,10 @@ If problems persist:
### Plugin Limitations ### Plugin Limitations
1. **Installation method**: Currently only supports manifest and Kustomize 1. **Sidecar resource sharing**: The plugin sidecar container shares pod
installation ([#351](https://github.com/cloudnative-pg/plugin-barman-cloud/issues/351) -
Helm chart requested)
2. **Sidecar resource sharing**: The plugin sidecar container shares pod
resources with PostgreSQL resources with PostgreSQL
3. **Plugin restart behavior**: Restarting the sidecar container requires 2. **Plugin restart behavior**: Restarting the sidecar container requires
restarting the entire PostgreSQL pod restarting the entire PostgreSQL pod
## Recap of General Debugging Steps ## Recap of General Debugging Steps
@ -588,4 +584,3 @@ kubectl get secret -n <namespace> <secret-name> -o jsonpath='{.data}' | jq 'keys
* **"NoSuchBucket"** — Verify the bucket exists and the endpoint URL is correct. * **"NoSuchBucket"** — Verify the bucket exists and the endpoint URL is correct.
* **"Connection timeout"** — Check network connectivity and firewall rules. * **"Connection timeout"** — Check network connectivity and firewall rules.
* **"SSL certificate problem"** — For self-signed certificates, verify the CA bundle configuration. * **"SSL certificate problem"** — For self-signed certificates, verify the CA bundle configuration.

View File

@ -54,7 +54,45 @@ Both checks are required before proceeding with the installation.
## Installing the Barman Cloud Plugin ## Installing the Barman Cloud Plugin
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import { InstallationSnippet, ManifestVersion } from '@site/src/components/Installation'; import { InstallationSnippet, ManifestVersion } from '@site/src/components/Installation';
import { HelmInstallationSnippet } from '@site/src/components/HelmInstallation';
<Tabs groupId="install-method">
<TabItem value="helm" label="Helm Chart" default>
The plugin can be installed using the provided [Helm chart](https://github.com/cloudnative-pg/charts/tree/main/charts/plugin-barman-cloud):
<HelmInstallationSnippet />
Example output:
```output
Release "plugin-barman-cloud" does not exist. Installing it now.
NAME: plugin-barman-cloud
LAST DEPLOYED: Wed Jul 1 09:05:16 2026
NAMESPACE: cnpg-system
STATUS: deployed
REVISION: 1
DESCRIPTION: Install complete
TEST SUITE: None
```
Finally, check that the deployment is up and running:
```sh
kubectl -n cnpg-system rollout status deploy/plugin-barman-cloud
```
Example output:
```output
deployment "plugin-barman-cloud" successfully rolled out
```
</TabItem>
<TabItem value="kubectl" label="Manifest (kubectl)">
Install the plugin using `kubectl` by applying the manifest for <ManifestVersion />: Install the plugin using `kubectl` by applying the manifest for <ManifestVersion />:
@ -85,8 +123,7 @@ issuer.cert-manager.io/selfsigned-issuer created
Finally, check that the deployment is up and running: Finally, check that the deployment is up and running:
```sh ```sh
kubectl rollout status deployment \ kubectl -n cnpg-system rollout status deploy/barman-cloud
-n cnpg-system barman-cloud
``` ```
Example output: Example output:
@ -95,6 +132,9 @@ Example output:
deployment "barman-cloud" successfully rolled out deployment "barman-cloud" successfully rolled out
``` ```
</TabItem>
</Tabs>
This confirms that the plugin is deployed and ready to use. This confirms that the plugin is deployed and ready to use.
## Testing the latest development snapshot ## Testing the latest development snapshot

View File

@ -485,14 +485,10 @@ If problems persist:
### Plugin Limitations ### Plugin Limitations
1. **Installation method**: Currently only supports manifest and Kustomize 1. **Sidecar resource sharing**: The plugin sidecar container shares pod
installation ([#351](https://github.com/cloudnative-pg/plugin-barman-cloud/issues/351) -
Helm chart requested)
2. **Sidecar resource sharing**: The plugin sidecar container shares pod
resources with PostgreSQL resources with PostgreSQL
3. **Plugin restart behavior**: Restarting the sidecar container requires 2. **Plugin restart behavior**: Restarting the sidecar container requires
restarting the entire PostgreSQL pod restarting the entire PostgreSQL pod
## Recap of General Debugging Steps ## Recap of General Debugging Steps
@ -588,4 +584,3 @@ kubectl get secret -n <namespace> <secret-name> -o jsonpath='{.data}' | jq 'keys
* **"NoSuchBucket"** — Verify the bucket exists and the endpoint URL is correct. * **"NoSuchBucket"** — Verify the bucket exists and the endpoint URL is correct.
* **"Connection timeout"** — Check network connectivity and firewall rules. * **"Connection timeout"** — Check network connectivity and firewall rules.
* **"SSL certificate problem"** — For self-signed certificates, verify the CA bundle configuration. * **"SSL certificate problem"** — For self-signed certificates, verify the CA bundle configuration.