fix: pin the Helm chart's image tag to the plugin version

Before, each doc page hardcoded its own chart version. That is
fragile: the chart is published after the plugin, so we can't know
the right chart version yet when we write the docs.

Now we set the image tag straight to the plugin version instead.
The latest release skips this, since the chart already defaults to
itself there.

Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
This commit is contained in:
Marco Nenciarini 2026-09-03 16:39:15 +02:00 committed by Leonardo Cecchi
parent 8aeec18e26
commit 4961bec18d
3 changed files with 34 additions and 20 deletions

View File

@ -1,22 +1,36 @@
import { ReactElement } from "react";
import CodeBlock from "@theme/CodeBlock";
import {ReactElement} from 'react';
import CodeBlock from '@theme/CodeBlock';
import {useActiveVersion, useLatestVersion} from '@docusaurus/plugin-content-docs/client';
type HelmInstallationProps = {
chartVersion?: string;
};
// HelmInstallationSnippet is the Helm incantation to install a specific
// or latest available version of the Barman Cloud Plugin.
export function HelmInstallationSnippet({
chartVersion,
}: HelmInstallationProps): ReactElement<null> {
const versionArg = chartVersion ? `\n --version ${chartVersion} \\` : "";
return (
<CodeBlock language="sh">
{`helm repo add cnpg https://cloudnative-pg.github.io/charts --force-update
// 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 \\${versionArg}
--namespace cnpg-system${setArgs} \\
cnpg/plugin-barman-cloud`}
</CodeBlock>
);
</CodeBlock>
);
}

View File

@ -64,7 +64,7 @@ import { HelmInstallationSnippet } from '@site/src/components/HelmInstallation';
The plugin can be installed using the provided [Helm chart](https://github.com/cloudnative-pg/charts/tree/main/charts/plugin-barman-cloud):
<HelmInstallationSnippet chartVersion="0.7.0" />
<HelmInstallationSnippet />
Example output:

View File

@ -64,7 +64,7 @@ import { HelmInstallationSnippet } from '@site/src/components/HelmInstallation';
The plugin can be installed using the provided [Helm chart](https://github.com/cloudnative-pg/charts/tree/main/charts/plugin-barman-cloud):
<HelmInstallationSnippet chartVersion="0.7.1" />
<HelmInstallationSnippet />
Example output: