Skip to content

Commit 56b50ea

Browse files
committed
Rename prod containers to *-prod rather than *-latest
1 parent 388f6cf commit 56b50ea

8 files changed

Lines changed: 17 additions & 17 deletions

File tree

.github/workflows/deploy-runner.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -272,19 +272,19 @@ jobs:
272272
- name: Tag ubuntu-24.04 image for prod
273273
run: >-
274274
docker buildx imagetools create \
275-
-t ${{ needs.setup.outputs.docker-registry }}/riscv-runner:ubuntu-24.04-latest \
275+
-t ${{ needs.setup.outputs.docker-registry }}/riscv-runner:ubuntu-24.04-prod \
276276
${{ needs.setup.outputs.docker-registry }}/riscv-runner:ubuntu-24.04-sha-${{ github.sha }}
277277
278278
- name: Tag ubuntu-26.04 image for prod
279279
run: >-
280280
docker buildx imagetools create \
281-
-t ${{ needs.setup.outputs.docker-registry }}/riscv-runner:ubuntu-26.04-latest \
281+
-t ${{ needs.setup.outputs.docker-registry }}/riscv-runner:ubuntu-26.04-prod \
282282
${{ needs.setup.outputs.docker-registry }}/riscv-runner:ubuntu-26.04-sha-${{ github.sha }}
283283
284284
- name: Tag device-plugin image for prod
285285
run: >-
286286
docker buildx imagetools create \
287-
-t ${{ needs.setup.outputs.docker-registry }}/riscv-runner:device-plugin-latest \
287+
-t ${{ needs.setup.outputs.docker-registry }}/riscv-runner:device-plugin-prod \
288288
${{ needs.setup.outputs.docker-registry }}/riscv-runner:device-plugin-sha-${{ github.sha }}
289289
290290
- name: Set up kubeconfig
@@ -295,7 +295,7 @@ jobs:
295295
296296
- name: Apply device-plugin DaemonSet
297297
env:
298-
TAG: latest
298+
TAG: prod
299299
run: |
300300
envsubst < runner/device-plugin/k8s-ds-device-plugin.yaml | kubectl apply -f -
301301
kubectl rollout restart daemonset/rise-riscv-runner-device-plugin -n kube-system

control-plane/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ The `Dockerfile` produces two binaries on top of `gcr.io/distroless/base-debian1
6565

6666
| Variable | Required | Purpose |
6767
|---|:-:|---|
68-
| `PROD` | yes | `true` selects the `prod` schema and `*-latest` image tags; otherwise `staging`/`*-staging` |
68+
| `PROD` | yes | `true` selects the `prod` schema and `*-prod` image tags; otherwise `staging`/`*-staging` |
6969
| `PROD_URL`, `STAGING_URL` | yes (ghfe) | URLs of the prod/staging ghfe; used by the staging proxy |
7070
| `POSTGRES_URL` | yes | `postgresql://...?sslmode=require` |
7171
| `K8S_KUBECONFIG` | yes (scheduler) | Kubeconfig as a string |

control-plane/internal/constants.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,8 @@ func LoadConfig(getenv func(string) string) (Config, error) {
129129
cfg.PostgresSchema = "prod"
130130
cfg.RunnerGroup = "RISE RISC-V Runners"
131131
cfg.RunnerPrefix = "rise-riscv-runner-"
132-
cfg.ImageUbuntu24 = fmt.Sprintf("%s/%s:ubuntu-24.04-latest", RunnerRegistry, RunnerImage)
133-
cfg.ImageUbuntu26 = fmt.Sprintf("%s/%s:ubuntu-26.04-latest", RunnerRegistry, RunnerImage)
132+
cfg.ImageUbuntu24 = fmt.Sprintf("%s/%s:ubuntu-24.04-prod", RunnerRegistry, RunnerImage)
133+
cfg.ImageUbuntu26 = fmt.Sprintf("%s/%s:ubuntu-26.04-prod", RunnerRegistry, RunnerImage)
134134
} else {
135135
cfg.PostgresSchema = "staging"
136136
cfg.RunnerGroup = "RISE RISC-V Runners (staging)"

control-plane/internal/constants_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ func TestLoadConfig_AllRequiredPresentProd(t *testing.T) {
3939
if cfg.RunnerPrefix != "rise-riscv-runner-" {
4040
t.Errorf("runner prefix: %q", cfg.RunnerPrefix)
4141
}
42-
if !strings.Contains(cfg.ImageUbuntu24, "ubuntu-24.04-latest") {
42+
if !strings.Contains(cfg.ImageUbuntu24, "ubuntu-24.04-prod") {
4343
t.Errorf("image24: %q", cfg.ImageUbuntu24)
4444
}
45-
if !strings.Contains(cfg.ImageUbuntu26, "ubuntu-26.04-latest") {
45+
if !strings.Contains(cfg.ImageUbuntu26, "ubuntu-26.04-prod") {
4646
t.Errorf("image26: %q", cfg.ImageUbuntu26)
4747
}
4848
if cfg.LogLevel != "DEBUG" {

website/docs/architecture/ghfe.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ Unhandled `X-GitHub-Event` headers are recorded with `outcome=unhandled_event` a
5656

5757
| Scope | Label | Pool | Image |
5858
|---|---|---|---|
59-
| Default | `ubuntu-24.04-riscv` | `scw-em-rv1` | `riscv-runner:ubuntu-24.04-latest` (or `-staging`) |
60-
| GGML scope: `ggml-org/*`, `riseproject-dev/llama.cpp`, `riseproject-dev/llama.cpp-validation` | `ubuntu-24.04-riscv` | `cloudv10x-jupiter` | `riscv-runner:ubuntu-24.04-latest` (or `-staging`) |
59+
| Default | `ubuntu-24.04-riscv` | `scw-em-rv1` | `riscv-runner:ubuntu-24.04-prod` (or `-staging`) |
60+
| GGML scope: `ggml-org/*`, `riseproject-dev/llama.cpp`, `riseproject-dev/llama.cpp-validation` | `ubuntu-24.04-riscv` | `cloudv10x-jupiter` | `riscv-runner:ubuntu-24.04-prod` (or `-staging`) |
6161

6262
The handler only matches single-label arrays containing `ubuntu-24.04-riscv` today. Anything else returns `(_, _, false)` and is ignored with `outcome=IGNORED_NO_LABEL`. New labels are added by extending `matchLabelsToK8s`.
6363

@@ -99,7 +99,7 @@ On `workflow_job.in_progress`, the handler updates `status` to `running` and set
9999

100100
| Variable | Purpose |
101101
|---|---|
102-
| `PROD` | `true` to use the `prod` schema and `*-latest` image tags, otherwise `staging` schema and `*-staging` tags |
102+
| `PROD` | `true` to use the `prod` schema and `*-prod` image tags, otherwise `staging` schema and `*-staging` tags |
103103
| `PROD_URL`, `STAGING_URL` | URL of the prod/staging ghfe; used by the staging proxy |
104104
| `POSTGRES_URL` | PostgreSQL connection string |
105105
| `GHAPP_WEBHOOK_SECRET` | Shared HMAC secret used by both apps |

website/docs/architecture/images.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ A single `build-runner` matrix job builds the runner image. Currently only `ubun
5959
- **Platform:** `linux/riscv64`, built natively on self-hosted `ubuntu-24.04-riscv` runners. No QEMU emulation in the build path.
6060
- **Caching:** GitHub Actions Cache (`type=gha`) for Docker layer reuse. A concurrency group ensures only one build runs per scope.
6161
- **Registry choice:** Scaleway for `riseproject-dev/main`, `ghcr.io` for other internal branches, a tar artifact for external PRs.
62-
- **Deploy:** after `main` builds, `deploy-staging` retags `:ubuntu-24.04-staging`, then `deploy-prod` retags `:ubuntu-24.04-latest` after an environment-gated approval. Both deploys `kubectl rollout restart daemonset/rise-riscv-runner-device-plugin` so each node pre-pulls the new image via the init container in the daemonset.
62+
- **Deploy:** after `main` builds, `deploy-staging` retags `:ubuntu-24.04-staging`, then `deploy-prod` retags `:ubuntu-24.04-prod` after an environment-gated approval. Both deploys `kubectl rollout restart daemonset/rise-riscv-runner-device-plugin` so each node pre-pulls the new image via the init container in the daemonset.
6363

6464
### Version sync
6565

@@ -79,8 +79,8 @@ rg.fr-par.scw.cloud/funcscwriseriscvrunnerappqdvknz9s/riscv-runner
7979

8080
| Tag | Image | Source branch |
8181
|-----|-------|---------------|
82-
| `ubuntu-24.04-latest` | Runner image, Ubuntu 24.04 | `main` (deploy-prod) |
83-
| `ubuntu-26.04-latest` | Runner image, Ubuntu 26.04 | `main` (deploy-prod) |
82+
| `ubuntu-24.04-prod` | Runner image, Ubuntu 24.04 | `main` (deploy-prod) |
83+
| `ubuntu-26.04-prod` | Runner image, Ubuntu 26.04 | `main` (deploy-prod) |
8484
| `ubuntu-24.04-staging` | Runner image, Ubuntu 24.04 | `main` (deploy-staging) |
8585
| `ubuntu-26.04-staging` | Runner image, Ubuntu 26.04 | `main` (deploy-staging) |
8686
| `ubuntu-24.04-sha-<sha>` | Per-commit build | every build |

website/docs/architecture/kubernetes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ The device plugin detects the SoC on each RISC-V node at startup and applies a `
8787
- **Environment:** `NODE_NAME` from downward API (`spec.nodeName`)
8888
- **Volume mounts:** `/var/lib/kubelet/device-plugins` (host path), `/sys` (read-only host path)
8989
- **Privileged:** Yes (required for device tree access)
90-
- **Image:** `rg.fr-par.scw.cloud/funcscwriseriscvrunnerappqdvknz9s/riscv-runner:device-plugin-latest`
90+
- **Image:** `rg.fr-par.scw.cloud/funcscwriseriscvrunnerappqdvknz9s/riscv-runner:device-plugin-prod`
9191

9292
## Source files
9393

website/docs/operations/runbooks.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,6 @@ Best run on a RISC-V host so no emulation is involved. On x86_64, `binfmt_misc`
146146

147147
1. Merge a PR that changes `images/**`. CI builds `:ubuntu-24.04-sha-<sha>` and pushes it.
148148
2. `deploy-staging` retags as `:ubuntu-24.04-staging`, then `kubectl rollout restart daemonset/rise-riscv-runner-device-plugin -n kube-system`. The init container in the daemonset pre-pulls the new image to every node.
149-
3. The `deploy-prod` job waits for an environment-gated approval before retagging as `:ubuntu-24.04-latest`. New runner pods provisioned after that point pull the new image.
149+
3. The `deploy-prod` job waits for an environment-gated approval before retagging as `:ubuntu-24.04-prod`. New runner pods provisioned after that point pull the new image.
150150

151151
A runner pod that is currently running an old image will keep that image for the duration of its job. Image updates are not retroactive.

0 commit comments

Comments
 (0)