Skip to content

Commit 8262d86

Browse files
committed
Bump ARC fork chart to 0.14.1-jeanschmidt.17 (scale-to-zero fix)
**Impact:** ARC controller + runner scale sets on all clusters **Risk:** medium ## What Bumps the ARC fork chart version from `0.14.1-jeanschmidt.16` to `0.14.1-jeanschmidt.17` in `clusters.yaml`, both deploy scripts, and the docs/skills that reference the current value. ## Why Picks up the scale-to-zero fix from the fork controller. The upstream changes that ship in this chart version are in jeanschmidt/actions-runner-controller#11 — please read that PR for the actual controller behavior change. # Notes - Controller and runner chart versions MUST match — a minor mismatch deletes the ARS. Both `modules/arc/deploy.sh` and `modules/arc-runners/deploy.sh` defaults are bumped together here, so they stay in sync. - The new chart image tag must already be published from the fork (`gha-publish-chart.yaml`) before this rolls out. Signed-off-by: Jean Schmidt <contato@jschmidt.me>
1 parent 89792e6 commit 8262d86

6 files changed

Lines changed: 9 additions & 9 deletions

File tree

osdc/.claude/skills/osdc-deployment/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ Standalone PDB manifests are applied by `_deploy-harbor` after the Helm install
281281
**ARC controller:**
282282
```yaml
283283
arc:
284-
chart_version: "0.14.1-jeanschmidt.16" # Must match controller + runner charts (minor mismatch deletes ARS). Fork chart from jeanschmidt/actions-runner-controller. Check clusters.yaml for the current value.
284+
chart_version: "0.14.1-jeanschmidt.17" # Must match controller + runner charts (minor mismatch deletes ARS). Fork chart from jeanschmidt/actions-runner-controller. Check clusters.yaml for the current value.
285285
runner_image_tag: "2.334.0"
286286
replica_count: 4
287287
log_level: info

osdc/.claude/skills/osdc-runners-nodepools/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ The pairing ensures workflow pods can claim the capacity reserved by the placeho
272272

273273
### ARC Module Split
274274

275-
- `modules/arc/` = controller + namespaces (`arc-systems`, `arc-runners`) + runner ServiceAccount + LimitRange + hooks ConfigMap + **`runner-hooks-warmer` DaemonSet** (moved here from `arc-runners` in PR #746 — still runs in the `arc-runners` namespace but lifecycle is now owned by the `arc` module) + four-tier PriorityClass ladder + capacity-monitor RBAC. **No terraform** — pure k8s/helm. Uses fork chart `oci://ghcr.io/jeanschmidt/actions-runner-controller-charts/gha-runner-scale-set-controller`, version pinned in `clusters.yaml` `arc.chart_version` (currently `0.14.1-jeanschmidt.16`). Controller and runner chart versions MUST match (minor mismatch deletes ARS). The cluster-wide containerd registry mirror lives at `base/kubernetes/registry-mirror-config.yaml` — NOT inside the arc module.
275+
- `modules/arc/` = controller + namespaces (`arc-systems`, `arc-runners`) + runner ServiceAccount + LimitRange + hooks ConfigMap + **`runner-hooks-warmer` DaemonSet** (moved here from `arc-runners` in PR #746 — still runs in the `arc-runners` namespace but lifecycle is now owned by the `arc` module) + four-tier PriorityClass ladder + capacity-monitor RBAC. **No terraform** — pure k8s/helm. Uses fork chart `oci://ghcr.io/jeanschmidt/actions-runner-controller-charts/gha-runner-scale-set-controller`, version pinned in `clusters.yaml` `arc.chart_version` (currently `0.14.1-jeanschmidt.17`). Controller and runner chart versions MUST match (minor mismatch deletes ARS). The cluster-wide containerd registry mirror lives at `base/kubernetes/registry-mirror-config.yaml` — NOT inside the arc module.
276276
- `modules/arc-runners/` = runner scale sets (the actual runners). Separate deploy cycle. Reads `arc-runners.{github_config_url,github_secret_name,runner_name_prefix,runner_group}` from `clusters.yaml`.
277277
- `modules/keda/` = KEDA operator chart (`kedacore/keda`, version pinned via `keda.chart_version`, currently `2.16.1`). Required for BuildKit autoscaling. Deployed on every cluster that enables `buildkit.autoscaling.enabled: true` — currently `meta-staging-aws-uw1`, `meta-staging-aws-ue1`, `arc-cbr-production`, `lf-prod-aws-ue1`, `lf-prod-aws-ue2` (added in PR #775). Does not directly affect runners/nodepools, but the KEDA ScaledObjects in `modules/buildkit/generated/autoscaling.yaml` require this module to be deployed first.
278278

osdc/clusters.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ defaults:
5353
pdb_enabled: true
5454
pdb_min_available: 1
5555
arc:
56-
chart_version: "0.14.1-jeanschmidt.16" # MUST match for controller + runner charts (minor version mismatch = ARS deletion). Fork chart published from jeanschmidt/actions-runner-controller.
56+
chart_version: "0.14.1-jeanschmidt.17" # MUST match for controller + runner charts (minor version mismatch = ARS deletion). Fork chart published from jeanschmidt/actions-runner-controller.
5757
replica_count: 4
5858
log_level: info
5959
controller_cpu_request: "1"

osdc/docs/arc-fork-build-deploy.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@
1717
Published from the fork via the `gha-publish-chart.yaml` workflow (manual `workflow_dispatch`). The workflow builds the controller image (multi-arch `linux/amd64` + `linux/arm64`) and publishes the chart to GHCR.
1818

1919
- **OCI registry**: `oci://ghcr.io/jeanschmidt/actions-runner-controller-charts/gha-runner-scale-set-controller`
20-
- **Chart version**: configured in `clusters.yaml` at `arc.chart_version` (currently `0.14.1-jeanschmidt.16`). Format is `<upstream-base>-jeanschmidt.<N>`; bump `<N>` for each fork publish. Valid as both Helm chart version and OCI image tag.
20+
- **Chart version**: configured in `clusters.yaml` at `arc.chart_version` (currently `0.14.1-jeanschmidt.17`). Format is `<upstream-base>-jeanschmidt.<N>`; bump `<N>` for each fork publish. Valid as both Helm chart version and OCI image tag.
2121
- **Image tags**: the workflow publishes two tags per build:
22-
- `ghcr.io/jeanschmidt/gha-runner-scale-set-controller:<release_tag_name>` (the rolling release tag — pass `release_tag_name=0.14.1-jeanschmidt.16` to match the chart)
22+
- `ghcr.io/jeanschmidt/gha-runner-scale-set-controller:<release_tag_name>` (the rolling release tag — pass `release_tag_name=0.14.1-jeanschmidt.17` to match the chart)
2323
- `ghcr.io/jeanschmidt/gha-runner-scale-set-controller:<release_tag_name>-<short_sha>` (immutable tag with the source commit baked in, useful for pinning and debugging)
2424

2525
To publish a new chart version, trigger `gha-publish-chart.yaml` from the fork's GitHub Actions UI with `publish_gha_runner_scale_set_controller_chart: true`.
@@ -137,14 +137,14 @@ This runs `modules/arc/deploy.sh`, which:
137137
3. **Applies RBAC** from `modules/arc/kubernetes/capacity-monitor-rbac.yaml`
138138
4. **Helm upgrade** of the fork chart:
139139
- Chart: `oci://ghcr.io/jeanschmidt/actions-runner-controller-charts/gha-runner-scale-set-controller`
140-
- Version: from `clusters.yaml` `arc.chart_version` (default `0.14.1-jeanschmidt.16`)
140+
- Version: from `clusters.yaml` `arc.chart_version` (default `0.14.1-jeanschmidt.17`)
141141
- Image: defaults to `ghcr.io/jeanschmidt/gha-runner-scale-set-controller:<chart_version>`. Override with `arc.image_repository` / `arc.image_tag` in `clusters.yaml` for local Harbor builds.
142142

143143
Other deploy.sh config knobs (all from `clusters.yaml`):
144144

145145
| Key | Default | What |
146146
|-----|---------|------|
147-
| `arc.chart_version` | `0.14.1-jeanschmidt.16` | Helm chart version (fork) |
147+
| `arc.chart_version` | `0.14.1-jeanschmidt.17` | Helm chart version (fork) |
148148
| `arc.image_repository` | `ghcr.io/jeanschmidt/gha-runner-scale-set-controller` | Controller image repo (override for local Harbor builds) |
149149
| `arc.image_tag` | _(chart_version)_ | Controller image tag (override for local Harbor builds) |
150150
| `arc.replica_count` | `2` | Controller replicas |

osdc/modules/arc-runners/deploy.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ source "$UPSTREAM_ROOT/scripts/kubectl-apply.sh"
3030
CFG="$UPSTREAM_ROOT/scripts/cluster-config.py"
3131

3232
# Chart version — MUST match the controller (arc module). Read from clusters.yaml.
33-
ARC_CHART_VERSION=$(uv run "$CFG" "$CLUSTER" arc.chart_version 0.14.1-jeanschmidt.16)
33+
ARC_CHART_VERSION=$(uv run "$CFG" "$CLUSTER" arc.chart_version 0.14.1-jeanschmidt.17)
3434

3535
# Allow consumers to override defs, output, template, and module name
3636
DEFS_DIR="${ARC_RUNNERS_DEFS_DIR:-$MODULE_DIR/defs}"

osdc/modules/arc/deploy.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ kubectl apply -f "$MODULE_DIR/kubernetes/priority-classes.yaml"
8181
kubectl apply -f "$MODULE_DIR/kubernetes/capacity-monitor-rbac.yaml"
8282

8383
# Read per-installation ARC config (with defaults)
84-
ARC_CHART_VERSION=$(uv run "$CFG" "$CLUSTER" arc.chart_version 0.14.1-jeanschmidt.16)
84+
ARC_CHART_VERSION=$(uv run "$CFG" "$CLUSTER" arc.chart_version 0.14.1-jeanschmidt.17)
8585
ARC_REPLICAS=$(uv run "$CFG" "$CLUSTER" arc.replica_count 2)
8686
ARC_LOG_LEVEL=$(uv run "$CFG" "$CLUSTER" arc.log_level info)
8787
ARC_CPU_REQ=$(uv run "$CFG" "$CLUSTER" arc.controller_cpu_request 1)

0 commit comments

Comments
 (0)