Updates documentation to reflect features implemented in recent commits: **Security & API Enhancements:** - Rate limit headers (X-RateLimit-Limit, X-RateLimit-Remaining, Retry-After) - Audit logging for rollback actions and scheduler health - Runtime logging configuration tracking **Scheduler Health API:** - Document new v4.24.0 endpoint features - Per-instance circuit breaker status - Dead-letter queue tracking - Staleness metrics - Enhanced response format with backward compatibility **Version & Health Endpoints:** - Updated /api/version response fields - Optional health endpoint fields - Deployment type and update availability **Configuration & Installation:** - HTTP config fetch via PULSE_INIT_CONFIG_URL - Updated environment variable documentation - Enhanced FAQ entries **Monitoring & Operations:** - Adaptive polling architecture documentation - Rollback procedure references - Production deployment guidance All documentation changes align with implemented features from commits: -656ae0d25(PMG test fix) -dec85a4ef(PBS/PMG stubs + HTTP config) - Earlier commits: scheduler health API, rollback, rate limiting
4.1 KiB
Pulse Release Checklist
Use this checklist when preparing and publishing a new Pulse release.
Pre-release
- Ensure
VERSIONis set to4.24.0and matches the tag you plan to cut (format4.x.y) - Confirm the Helm chart renders and installs locally:
helm lint deploy/helm/pulse --strict helm template pulse deploy/helm/pulse \ --set persistence.enabled=false \ --set server.secretEnv.create=true \ --set server.secretEnv.data.API_TOKENS=dummy-token - (Optional) Run the Kind-based integration test locally:
kind create cluster helm upgrade --install pulse ./deploy/helm/pulse \ --namespace pulse \ --create-namespace \ --set persistence.enabled=false \ --set server.secretEnv.create=true \ --set server.secretEnv.data.API_TOKENS=dummy-token \ --wait kubectl -n pulse get pods kind delete cluster - Confirm adaptive polling, scheduler health API, rollback UI, logging runtime controls, and rate-limit header documentation are updated before tagging v4.24.0
- Smoke-test updates rollback: apply a test update via Settings → System → Updates, trigger a rollback, and verify journal entries document the rollback event
Publishing
-
Tag the release (
git tag v4.x.y && git push origin v4.x.y) or draft a GitHub release. -
Package the Helm chart locally so you can preview the artifact (the GitHub workflow performs the same command, but local packaging provides an explicit hand-off):
./scripts/package-helm-chart.sh 4.x.y # Optional: push to GHCR after authenticating # helm registry login ghcr.io # ./scripts/package-helm-chart.sh 4.x.y --pushThe script emits
dist/pulse-4.x.y.tgz, andscripts/build-release.shcopies the tarball intorelease/alongside the binary archives. Uploading can be handled manually with the--pushflag or delegated to the automated workflow described below.scripts/build-release.shautomatically runs the same packaging step (unless you exportSKIP_HELM_PACKAGE=1) so release archives and chart tarballs are produced together. -
If you rely on automation, monitor the Publish Helm Chart workflow (triggered by the release) to ensure it finishes successfully. When running entirely locally, skip this step and verify the push command completed.
-
(Optional) Sign
release/checksums.txtby exportingSIGNING_KEY_ID=<gpg-key-id>before runningscripts/build-release.sh, or re-run the signing step manually:SIGNING_KEY_ID=<gpg-key-id> ./scripts/build-release.sh # or sign later gpg --detach-sign --armor --local-user <gpg-key-id> release/checksums.txtPublish both
checksums.txtandchecksums.txt.ascso users can verify artifacts:gpg --verify checksums.txt.asc checksums.txt -
Update the release notes to include an upgrade/install snippet pointing at GHCR, for example:
helm install pulse oci://ghcr.io/rcourtman/pulse-chart \ --version 4.x.y \ --namespace pulse \ --create-namespaceFor v4.24.0 specifically, highlight these features in the release notes:
- Adaptive polling (now GA)
- Scheduler health API with rich instance metadata
- Updates rollback workflow
- Shared script library system (now GA)
- X-RateLimit-* headers for all API responses
- Runtime logging configuration (no restart required)
-
Mention any chart-breaking changes (new values, migrations) in the release notes.
Post-release
- Verify
helm show chart oci://ghcr.io/rcourtman/pulse-chart --version 4.x.yshows the expected metadata (version, appVersion, icon) - Run
helm installagainst a test cluster (Kind/k3s) using the published OCI artifact - Run
curl -s http://<host>:7655/api/monitoring/scheduler/health | jqto ensure the scheduler health endpoint is live - Verify the Updates view reports rollback metadata and X-RateLimit-* headers appear in API responses
- Announce the release with links to both the GitHub release and the Helm installation instructions (
docs/KUBERNETES.md) - Verify signatures:
gpg --verify checksums.txt.asc checksums.txt