Migrate Flux image-automation API v1beta2 -> v1 (pre-Flux-2.7 upgrade)

Prereq for the Flux v2.7+ upgrade (W4). Flux 2.4 already serves image.toolkit/v1,
so this is safe now. render.py source + platform/image-automation + L3 test + L1 goldens.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
jakman85andClaude Opus 4.8 committed 2026-08-29 23:22:35 -05:00
commit dd8238a017
8 files changed
+16 -16

No files matched your search

+2 -2
View File
@@ -667,7 +667,7 @@ def r_image_automation(s: dict) -> list:
upd = s["update"]
interval = "1h0m0s"
imagerepo = {
"apiVersion": "image.toolkit.fluxcd.io/v1beta2",
"apiVersion": "image.toolkit.fluxcd.io/v1",
"kind": "ImageRepository",
"metadata": {"name": s["name"], "namespace": s["name"]},
"spec": {"image": image, "interval": interval},
@@ -682,7 +682,7 @@ def r_image_automation(s: dict) -> list:
else:
policy_spec["policy"] = {"semver": {"range": ">=0.0.0"}}
imagepolicy = {
"apiVersion": "image.toolkit.fluxcd.io/v1beta2",
"apiVersion": "image.toolkit.fluxcd.io/v1",
"kind": "ImagePolicy",
"metadata": {
"name": s["name"],
@@ -162,7 +162,7 @@ spec:
interval: 30s
---
# Flux ImageRepository (R-UPD)
apiVersion: image.toolkit.fluxcd.io/v1beta2
apiVersion: image.toolkit.fluxcd.io/v1
kind: ImageRepository
metadata:
name: paas-demo
@@ -172,7 +172,7 @@ spec:
interval: 1h0m0s
---
# Flux ImagePolicy (R-UPD)
apiVersion: image.toolkit.fluxcd.io/v1beta2
apiVersion: image.toolkit.fluxcd.io/v1
kind: ImagePolicy
metadata:
name: paas-demo
@@ -93,7 +93,7 @@ spec:
interval: 30s
---
# Flux ImageRepository (R-UPD)
apiVersion: image.toolkit.fluxcd.io/v1beta2
apiVersion: image.toolkit.fluxcd.io/v1
kind: ImageRepository
metadata:
name: baseline-demo
@@ -103,7 +103,7 @@ spec:
interval: 1h0m0s
---
# Flux ImagePolicy (R-UPD)
apiVersion: image.toolkit.fluxcd.io/v1beta2
apiVersion: image.toolkit.fluxcd.io/v1
kind: ImagePolicy
metadata:
name: baseline-demo
@@ -212,7 +212,7 @@ spec:
description: 'sonarr has been unreachable for 5m (SLI: up).'
---
# Flux ImageRepository (R-UPD)
apiVersion: image.toolkit.fluxcd.io/v1beta2
apiVersion: image.toolkit.fluxcd.io/v1
kind: ImageRepository
metadata:
name: sonarr
@@ -222,7 +222,7 @@ spec:
interval: 1h0m0s
---
# Flux ImagePolicy (R-UPD)
apiVersion: image.toolkit.fluxcd.io/v1beta2
apiVersion: image.toolkit.fluxcd.io/v1
kind: ImagePolicy
metadata:
name: sonarr
@@ -212,7 +212,7 @@ spec:
description: 'sonarr has been unreachable for 5m (SLI: up).'
---
# Flux ImageRepository (R-UPD)
apiVersion: image.toolkit.fluxcd.io/v1beta2
apiVersion: image.toolkit.fluxcd.io/v1
kind: ImageRepository
metadata:
name: sonarr
@@ -222,7 +222,7 @@ spec:
interval: 1h0m0s
---
# Flux ImagePolicy (R-UPD)
apiVersion: image.toolkit.fluxcd.io/v1beta2
apiVersion: image.toolkit.fluxcd.io/v1
kind: ImagePolicy
metadata:
name: sonarr
@@ -72,7 +72,7 @@ spec:
# resolution — proving it advanced the selection with zero hand-authored change.
# =========================================================================================
kubectl -n "$NS" apply -f - <<'EOF'
apiVersion: image.toolkit.fluxcd.io/v1beta2
apiVersion: image.toolkit.fluxcd.io/v1
kind: ImageRepository
metadata:
name: podinfo
@@ -80,7 +80,7 @@ spec:
image: ghcr.io/stefanprodan/podinfo
interval: 1m
---
apiVersion: image.toolkit.fluxcd.io/v1beta2
apiVersion: image.toolkit.fluxcd.io/v1
kind: ImagePolicy
metadata:
name: podinfo-stable
@@ -94,7 +94,7 @@ spec:
semver:
range: '>=6.0.0 <7.0.0'
---
apiVersion: image.toolkit.fluxcd.io/v1beta2
apiVersion: image.toolkit.fluxcd.io/v1
kind: ImagePolicy
metadata:
name: podinfo-pinned
@@ -15,7 +15,7 @@
# flux-system install (bootstrap/flux/bootstrap.sh `--components-extra`), so the image.toolkit CRDs
# pre-exist before reconcile — this CR applies cleanly without the F-MON1 controllers/configs split
# (the CRD is present at bootstrap, exactly like GitRepository/Kustomization are). See README.md.
apiVersion: image.toolkit.fluxcd.io/v1beta2
apiVersion: image.toolkit.fluxcd.io/v1
kind: ImageUpdateAutomation
metadata:
name: flux-image-automation
@@ -11,7 +11,7 @@
#
# See ./README.md for the field-by-field contract.
# ---------------------------------------------------------------------------------------------------
apiVersion: image.toolkit.fluxcd.io/v1beta2
apiVersion: image.toolkit.fluxcd.io/v1
kind: ImageRepository
metadata:
name: pihole
@@ -21,7 +21,7 @@ spec:
interval: 6h # scan schedule; nearest Flux duration to cadence "0 4 * * *" (daily-ish)
# provider: generic # dockerhub anon; a pull secret goes here if registry rate-limits bite
---
apiVersion: image.toolkit.fluxcd.io/v1beta2
apiVersion: image.toolkit.fluxcd.io/v1
kind: ImagePolicy
metadata:
name: pihole