Commit Graph

128 Commits

Author SHA1 Message Date
rcourtman 48e1efece7 Use patched Go toolchain for v6 release 2026-06-14 18:22:26 +01:00
rcourtman a17882458a Rename CP_TRIAL_ACTIVATION_PRIVATE_KEY to CP_ENTITLEMENT_SIGNING_PRIVATE_KEY in the provider MSP bundle
The variable signs hosted entitlement leases; the trial-activation name is
left over from the retired trial era and reads as trial machinery to an
operator generating their licensing root key. The provider MSP bundle has
no installed base yet, so the canonical rename is free today and frozen
the moment the first design partner installs.

- Control plane reads CP_ENTITLEMENT_SIGNING_PRIVATE_KEY first and falls
  back to CP_TRIAL_ACTIVATION_PRIVATE_KEY, so existing Pulse-hosted cloud
  deployments (deploy/cloud, hibernated snapshot) keep working unchanged.
- deploy/provider-msp (.env.example, compose, setup.sh), MSP.md, and the
  install-test pins use the canonical name; error messages name it too.
- deploy/cloud intentionally keeps the legacy name: that stack historically
  signed hosted trial activations, and its snapshot predates the rename.
2026-06-10 14:08:52 +01:00
rcourtman 2482d4acb6 Document provider-MSP deploy bundle as canonical install; surface lease signing public key in setup.sh
- MSP.md now leads with deploy/provider-msp/ (compose stack, setup.sh,
  upgrade.sh, run-install-proof.sh), documents the HTTPS requirement
  (__Host- portal session cookie) and the pulse.provider-msp.role labels
  workspace provisioning requires, and explains the licence/lease chain
  including licence-expiry behavior.
- setup.sh derives and prints the lease signing public key the provider
  MSP licence must bind (also via --print-lease-signing-public-key), and
  the missing-licence error now includes it with request instructions.
- .env.example documents the CP_TRIAL_ACTIVATION_PRIVATE_KEY binding.
2026-06-10 14:00:11 +01:00
rcourtman bd6f77e093 Prepare v6.0.0 release candidate
Tighten v5-to-v6 upgrade safety, release installability, provider MSP mode handling, AI cost accounting, metrics flushing, and frontend guardrails for the v6.0.0 GA candidate.
2026-06-04 14:07:14 +01:00
rcourtman c7e50d5602 Harden provider-hosted MSP isolation
Broker provider control-plane Docker access through a socket proxy, remove broad host mounts, align audit and rate-limit proxy trust, harden tenant runtime containers, restrict workspace report logo paths, and update provider deploy guardrails.
2026-06-02 21:10:13 +01:00
rcourtman d729461cad Harden provider MSP tenant isolation
- isolate provider MSP tenant runtimes onto per-client Docker networks
- add adversarial proofs for workspace cap races, handoff retargeting, and org-bound agent report retargeting
- pin provider deploy proof to start Traefik before tenant network creation
2026-06-02 17:34:10 +01:00
rcourtman 473a0ddee6 Add provider MSP tenant rollout upgrade proof 2026-06-02 16:45:03 +01:00
rcourtman a0f2fcf1fe Add provider MSP upgrade runner 2026-06-02 16:19:51 +01:00
rcourtman e86143f07f Surface provider MSP backup readiness 2026-06-02 16:02:04 +01:00
rcourtman 42fb8eed3f Publish provider MSP control-plane image 2026-06-02 15:51:21 +01:00
rcourtman 25febfbf82 Fix provider MSP compose mount identity 2026-06-02 15:25:05 +01:00
rcourtman f68d0ae079 Add provider MSP first-time setup artifact 2026-06-02 15:18:11 +01:00
rcourtman 5505f930c6 Add provider MSP compose install proof runner 2026-06-02 15:06:49 +01:00
rcourtman 4c31fa88f3 Add provider MSP install proof 2026-06-02 14:50:36 +01:00
rcourtman e5a7300aff Add provider MSP workspace recovery 2026-06-02 14:28:16 +01:00
rcourtman a2e860dc8c Add provider MSP backup restore 2026-06-02 14:14:07 +01:00
rcourtman c9f84c5192 Add provider MSP backup command 2026-06-02 14:03:19 +01:00
rcourtman f128c0b8cd Add provider MSP status command 2026-06-02 13:33:27 +01:00
rcourtman c9c415d7a6 Require license-backed provider MSP proof 2026-06-02 13:22:15 +01:00
rcourtman 5134e36c28 Add provider-hosted MSP install path 2026-06-02 12:11:35 +01:00
rcourtman 348582df66 Fix Assistant chat model-owned routing 2026-05-15 10:50:23 +01:00
rcourtman ab62b46c1f Fix helm chart agent.enabled by routing through main pulse image
The chart's agent.image.repository defaulted to ghcr.io/rcourtman/pulse-agent,
an image that has never been published. publish-docker.yml only pushes
rcourtman/pulse; the Dockerfile defines an agent_runtime stage that
*could* be published but it isn't, and commit da7969fb4 from earlier in
this session removed the corresponding pulse-agent attestation
expectations — a clear signal the separate agent image was intentionally
dropped without updating the chart. Customers running
`helm install pulse pulse/pulse --set agent.enabled=true` were silently
hitting ImagePullBackOff on the agent DaemonSet.

Route the chart through the main rcourtman/pulse image instead. To make
that work without per-arch chart overrides, the runtime stage in the
Dockerfile now creates an arch-resolved /usr/local/bin/pulse-agent
symlink to the right /opt/pulse/bin/pulse-agent-linux-{amd64,arm64,armv7}
binary. The chart's agent.command default is /usr/local/bin/pulse-agent,
which overrides the server ENTRYPOINT and runs the pod as a unified
agent on whichever arch the node provides. agent.yaml renders the
command via toYaml so list values pass through cleanly.

KUBERNETES.md's DaemonSet example switches from the arch-hardcoded
/opt/pulse/bin/pulse-agent-linux-amd64 to the new arch-resolved path,
restoring multi-arch portability of the docs example.
validate-release.sh asserts the symlink exists, points at one of the
three supported Linux arch binaries, and is executable in the published
image. A new TestHelmAgentRuntimePointsAtRealImage pins the chart
defaults, the template wiring, the Dockerfile symlink, and the
validate-release.sh guard so the regression class can't quietly
resurface.

Governance: extend the helm-chart-release-runtime verification policy's
exact_files to include scripts/installtests/build_release_assets_test.go
(matching its existing pin set for related deployment-installability
policies); update the subsystem_lookup_test.py fixture that pins the
exact_files list; document the agent-image and pulse-agent symlink
contract in deployment-installability.md Extension Point 7.

Verified locally: `helm lint` passes; `helm template --set agent.enabled=true`
renders a DaemonSet with image rcourtman/pulse:6.0.0,
command ["/usr/local/bin/pulse-agent"], args ["--enable-docker", "--enable-host=false"].
End-to-end image build + agent DaemonSet smoke will run via helm_smoke
on the next release once rcourtman/pulse:6.0.0 is published.
2026-05-12 16:11:56 +01:00
rcourtman 6db9aeadcf Prepare the v6 stable promotion candidate 2026-04-20 14:09:17 +01:00
rcourtman 96822b20f7 Auto-update Helm chart documentation 2026-04-16 20:26:48 +00:00
rcourtman 0db5d2e4c3 Auto-update Helm chart version to 6.0.0-rc.2 2026-04-16 20:06:24 +00:00
rcourtman 450de1835e Auto-update Helm chart documentation 2026-04-16 20:06:22 +00:00
rcourtman 0b98a0d3e0 fix(deploy): pin docs links to release refs 2026-03-28 21:32:11 +00:00
rcourtman 778a2577b6 feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
rcourtman 24856ed7b2 Auto-update Helm chart version to 5.1.24 2026-03-14 17:20:08 +00:00
rcourtman 5498575b8f Auto-update Helm chart documentation 2026-03-09 22:25:17 +00:00
rcourtman 83d3e3e95e Bump version to 5.1.23 2026-03-09 21:49:21 +00:00
rcourtman f66aa66e74 Auto-update Helm chart version to 5.1.22 2026-03-08 12:27:01 +00:00
rcourtman 015a33ba13 Auto-update Helm chart documentation 2026-03-08 12:27:00 +00:00
rcourtman 4ea2f49771 Auto-update Helm chart version to 5.1.21 2026-03-06 12:15:39 +00:00
rcourtman c26a96ef51 Auto-update Helm chart documentation 2026-03-06 12:15:38 +00:00
rcourtman 73bf2c1c7b Auto-update Helm chart version to 5.1.20 2026-03-06 00:33:13 +00:00
rcourtman 4c5fbb0c04 Auto-update Helm chart documentation 2026-03-06 00:33:12 +00:00
rcourtman 74ce77132b Auto-update Helm chart version to 5.1.19 2026-03-05 11:21:24 +00:00
rcourtman 74c55c79bb Auto-update Helm chart documentation 2026-03-05 11:21:23 +00:00
rcourtman d4d67315de Auto-update Helm chart version to 5.1.18 2026-03-03 22:11:55 +00:00
rcourtman 71a7249fd7 chore: bump version to 5.1.17 2026-03-02 17:51:50 +00:00
rcourtman 0c78fab337 Auto-update Helm chart documentation 2026-03-01 23:15:53 +00:00
rcourtman fa48369dbb chore(release): bump version to 5.1.16 2026-03-01 22:40:55 +00:00
rcourtman 538b3c3bdb Auto-update Helm chart documentation 2026-02-27 15:20:57 +00:00
rcourtman 2f059e650e chore(release): bump version to 5.1.15 2026-02-27 14:29:10 +00:00
rcourtman c213e0ce30 Auto-update Helm chart documentation 2026-02-25 00:14:54 +00:00
rcourtman a5fb155b88 chore(release): bump version to 5.1.14 2026-02-24 23:39:42 +00:00
rcourtman 2140efce36 Auto-update Helm chart documentation 2026-02-22 12:43:12 +00:00
rcourtman 180c8738b4 chore(release): bump version to 5.1.13 2026-02-22 12:01:38 +00:00
rcourtman 06bd8cf2b6 Auto-update Helm chart documentation 2026-02-20 20:56:23 +00:00