Prepare v6.0.4-rc.2 support build
Some checks failed
Canonical Governance / governance (push) Waiting to run
Helm CI / Lint and Render Chart (push) Waiting to run
Build and Test / Secret Scan (push) Has been cancelled
Build and Test / Frontend & Backend (push) Has been cancelled

Package the audit timestamp compatibility fix for private Pro support validation.
This commit is contained in:
rcourtman 2026-07-06 09:22:44 +01:00
parent 0f1211d510
commit 44af57b8fc
9 changed files with 39 additions and 15 deletions

View file

@ -1 +1 @@
6.0.4-rc.1
6.0.4-rc.2

View file

@ -2,9 +2,9 @@ apiVersion: v2
name: pulse
description: Helm chart for deploying the Pulse hub and optional Docker monitoring agent.
type: application
version: 6.0.4-rc.1
appVersion: "6.0.4-rc.1"
icon: https://raw.githubusercontent.com/rcourtman/Pulse/v6.0.4-rc.1/docs/images/pulse-logo.svg
version: 6.0.4-rc.2
appVersion: "6.0.4-rc.2"
icon: https://raw.githubusercontent.com/rcourtman/Pulse/v6.0.4-rc.2/docs/images/pulse-logo.svg
keywords:
- monitoring
- proxmox
@ -32,7 +32,7 @@ annotations:
description: Smoke tests with kind cluster deployment
artifacthub.io/links: |
- name: Documentation
url: https://github.com/rcourtman/Pulse/blob/v6.0.4-rc.1/docs/KUBERNETES.md
url: https://github.com/rcourtman/Pulse/blob/v6.0.4-rc.2/docs/KUBERNETES.md
- name: Support
url: https://github.com/rcourtman/Pulse/discussions
artifacthub.io/maintainers: |

View file

@ -1,6 +1,6 @@
# pulse
![Version: 6.0.4-rc.1](https://img.shields.io/badge/Version-6.0.4--rc.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 6.0.4-rc.1](https://img.shields.io/badge/AppVersion-6.0.4--rc.1-informational?style=flat-square)
![Version: 6.0.4-rc.2](https://img.shields.io/badge/Version-6.0.4--rc.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 6.0.4-rc.2](https://img.shields.io/badge/AppVersion-6.0.4--rc.2-informational?style=flat-square)
Helm chart for deploying the Pulse hub and optional Docker monitoring agent.

View file

@ -2,7 +2,7 @@ version: '3.8'
services:
pulse:
image: ${PULSE_IMAGE:-rcourtman/pulse:6.0.4-rc.1}
image: ${PULSE_IMAGE:-rcourtman/pulse:6.0.4-rc.2}
container_name: pulse
restart: unless-stopped
logging:

View file

@ -804,9 +804,9 @@ TLS floor in the dynamic config.
## Current State
The active support prerelease `v6.0.4-rc.1` cut sets the repo-root `VERSION`,
The active support prerelease `v6.0.4-rc.2` cut sets the repo-root `VERSION`,
repo-root `docker-compose.yml` image default, `scripts/install-docker.sh`
fallback, and Helm chart release metadata to the same `6.0.4-rc.1` release
fallback, and Helm chart release metadata to the same `6.0.4-rc.2` release
version. This support prerelease uses the private Pro support image path with a
stable rollback reference `v6.0.3`, no `latest` movement, no stable semver tag
movement, no R2 manifest promotion, no broker download metadata promotion, and
@ -863,8 +863,8 @@ compose image default, standalone installer fallback constant, and packaged
Helm metadata. A draft release workflow failure caused by stale image or chart
pins is a release-packet blocker until the defaults, tests, and evidence
record are refreshed from the new branch head.
For the active support prerelease `v6.0.4-rc.1` cut, the repo-root compose
default and `scripts/install-docker.sh` fallback must both pin `6.0.4-rc.1`
For the active support prerelease `v6.0.4-rc.2` cut, the repo-root compose
default and `scripts/install-docker.sh` fallback must both pin `6.0.4-rc.2`
until the next governed stable cut moves them forward. The stable promotion
guard remains in force by rejecting leftover `-rc.` defaults when the governed
`VERSION` is a stable release.

View file

@ -6,7 +6,7 @@ set -euo pipefail
SCRIPT_DIR="$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)"
DOCKER_IMAGE_REPO="${DOCKER_IMAGE_REPO:-rcourtman/pulse}"
CANONICAL_DEFAULT_PULSE_VERSION="6.0.4-rc.1"
CANONICAL_DEFAULT_PULSE_VERSION="6.0.4-rc.2"
resolve_default_pulse_version() {
if [ -n "${PULSE_IMAGE_VERSION:-}" ]; then

View file

@ -734,6 +734,9 @@ func TestDeploymentDefaultsPinVersionedImagesAndHelmDocsChecksum(t *testing.T) {
if previous, ok := previousStablePatchVersion(version); ok && strings.Contains(chart, "v"+previous) {
t.Fatalf("Helm Chart.yaml must not retain the previous stable patch tag v%s:\n%s", previous, chart)
}
if previous, ok := previousPrereleaseVersion(version); ok && strings.Contains(chart, "v"+previous) {
t.Fatalf("Helm Chart.yaml must not retain the previous prerelease tag v%s:\n%s", previous, chart)
}
chartReadmeBytes, err := os.ReadFile(repoFile("deploy", "helm", "pulse", "README.md"))
if err != nil {
@ -753,6 +756,9 @@ func TestDeploymentDefaultsPinVersionedImagesAndHelmDocsChecksum(t *testing.T) {
if previous, ok := previousStablePatchVersion(version); ok && strings.Contains(chartReadme, previous) {
t.Fatalf("Helm README.md must not retain the previous stable patch version %s:\n%s", previous, chartReadme)
}
if previous, ok := previousPrereleaseVersion(version); ok && strings.Contains(chartReadme, previous) {
t.Fatalf("Helm README.md must not retain the previous prerelease version %s:\n%s", previous, chartReadme)
}
helmPagesBytes, err := os.ReadFile(repoFile(".github", "workflows", "helm-pages.yml"))
if err != nil {

View file

@ -53,6 +53,18 @@ func previousStableForPrereleaseVersion(version string) (string, bool) {
return previousStablePatchVersion(base)
}
func previousPrereleaseVersion(version string) (string, bool) {
base, suffix, ok := strings.Cut(version, "-rc.")
if !ok {
return "", false
}
rc, err := strconv.Atoi(suffix)
if err != nil || rc <= 1 {
return "", false
}
return fmt.Sprintf("%s-rc.%d", base, rc-1), true
}
func TestInstallDockerScriptUsesConfiguredImageRepoDefault(t *testing.T) {
workDir := t.TempDir()
version := currentReleaseVersion(t)
@ -136,6 +148,9 @@ func TestRepoDockerComposeDefaultPinsCurrentVersion(t *testing.T) {
if previous, ok := previousStablePatchVersion(version); ok && strings.Contains(text, "rcourtman/pulse:"+previous) {
t.Fatalf("repo docker-compose.yml must not retain the previous stable patch image tag %s:\n%s", previous, text)
}
if previous, ok := previousPrereleaseVersion(version); ok && strings.Contains(text, "rcourtman/pulse:"+previous) {
t.Fatalf("repo docker-compose.yml must not retain the previous prerelease image tag %s:\n%s", previous, text)
}
if strings.Contains(text, ":latest") {
t.Fatalf("repo docker-compose.yml must not default to a floating latest tag:\n%s", text)
}
@ -164,6 +179,9 @@ func TestInstallDockerScriptFallbackPinsCurrentVersion(t *testing.T) {
if previous, ok := previousStablePatchVersion(version); ok && strings.Contains(text, `CANONICAL_DEFAULT_PULSE_VERSION="`+previous+`"`) {
t.Fatalf("install-docker.sh fallback must not retain the previous stable patch version %s:\n%s", previous, text)
}
if previous, ok := previousPrereleaseVersion(version); ok && strings.Contains(text, `CANONICAL_DEFAULT_PULSE_VERSION="`+previous+`"`) {
t.Fatalf("install-docker.sh fallback must not retain the previous prerelease version %s:\n%s", previous, text)
}
}
func TestInstallDockerProofTracksStablePatchReleaseContract(t *testing.T) {

View file

@ -63,10 +63,10 @@ class ValidateArtifactReleaseLineTest(unittest.TestCase):
def test_prerelease_support_tag_does_not_require_stable_lineage(self) -> None:
result = self.validate(
tag="v6.0.4-rc.1",
existing_tags={"v6.0.4-rc.1"},
tag="v6.0.4-rc.2",
existing_tags={"v6.0.4-rc.2"},
commits={
"v6.0.4-rc.1": "support-rc",
"v6.0.4-rc.2": "support-rc",
"origin/pulse/v6-release": "branch",
},
ancestors={("support-rc", "branch")},