Skip to content

Redeploy the demo without a running registry ​

The continuous demo deploy used to push its images to the demo's own registry and ask the demo API for the platform project first. A broken demo (for example an OOM crash loop) therefore could not be repaired by a deploy.

How it works now ​

scripts/deploy-demo-registry.sh probes https://demo.orbitalreg.com/health/ready for about 60 seconds:

Proberegistry_kindImagesRepo bootstrap
healthydemodemo.orbitalreg.com/platform/images/orbitalreg-{api,frontend,scanner}:sha-<short>runs
unhealthyghcrghcr.io/<owner>/orbitalreg-{api,frontend,scanner}:sha-<short>skipped

In the GHCR case the three packages must be public; the cluster pulls them anonymously, so no pull secret is created and global.imagePullSecrets is unset.

After a GHCR rollout, scripts/deploy-demo-mirror.sh copies the images into the demo registry once it is healthy again (best-effort; a warning if it is still down), so the next normal deploy lands there.

Dry run ​

bash
# Unhealthy demo -> GHCR branch
CURL_BIN=false GHCR_OWNER=Acme TAG=sha-abc1234 PROBE_ATTEMPTS=1 bash scripts/deploy-demo-registry.sh
# Remote side without touching the cluster
DRY_RUN=1 REGISTRY_KIND=ghcr TAG=sha-abc1234 SHA=abc IMAGE_BASE=ghcr.io/acme/orbitalreg \
  SELF_REGISTRY=demo.orbitalreg.com PULL_SECRET=x TOKEN=t bash scripts/deploy-demo-remote.sh

Tests: scripts/deploy-demo-registry-test.sh, scripts/deploy-demo-remote-test.sh.

Workflow wiring ​

The deploy-demo.yml change needs workflows: write, which the bot token lacks. The operator applies docs/patches/item-404-deploy-demo.patch (git apply docs/patches/item-404-deploy-demo.patch, already checked with actionlint).

OrbitalReg ships under the OrbitalReg EULA with a Free Forever tier.