33#
44# Creates three clearly-named clusters:
55#
6- # flux9s-simple — Flux 2.8 .x (current repo CRD baseline) ; day-to-day dev testing
7- # flux9s-stress — Flux 2.5 .x; 40+ resources of every kind for page-scroll / large lists
6+ # flux9s-simple — Flux 2.9 .x + source-watcher ; day-to-day dev testing (steps, AG, events)
7+ # flux9s-stress — Flux 2.7 .x; 40+ resources of every kind for page-scroll / large lists
88# flux9s-legacy — Flux 2.2.x with OCIRepository/Bucket at v1beta2; tests the
99# version-fallback logic (flux9s tries v1 first, then v1beta2)
1010#
1616# ./scripts/dev-clusters.sh simple # build flux9s-simple only
1717# ./scripts/dev-clusters.sh stress # build flux9s-stress only
1818# ./scripts/dev-clusters.sh legacy # build flux9s-legacy only
19+ # ./scripts/dev-clusters.sh ci # build simple + legacy (live-test set)
1920# ./scripts/dev-clusters.sh all # build all three clusters
2021# ./scripts/dev-clusters.sh delete # delete all kind clusters and exit
2122
@@ -37,7 +38,7 @@ STRESS_CLUSTER="flux9s-stress"
3738LEGACY_CLUSTER=" flux9s-legacy"
3839
3940FLUX_OPERATOR_CHART=" oci://ghcr.io/controlplaneio-fluxcd/charts/flux-operator"
40- FLUX_OPERATOR_VERSION=" 0.48 .0"
41+ FLUX_OPERATOR_VERSION=" 0.55 .0"
4142DEPLOY_WAIT_TIMEOUT=" ${FLUX9S_DEV_DEPLOY_WAIT_TIMEOUT:- 5s} "
4243CRD_WAIT_RETRIES=" ${FLUX9S_DEV_CRD_WAIT_RETRIES:- 5} "
4344CRD_WAIT_SLEEP_SECONDS=" ${FLUX9S_DEV_CRD_WAIT_SLEEP_SECONDS:- 3} "
@@ -302,7 +303,7 @@ run_build() {
302303# ── cluster builders ───────────────────────────────────────────────────────────
303304
304305build_simple_cluster () {
305- header " Building $SIMPLE_CLUSTER (Flux 2.8.x — current repo CRD baseline)"
306+ header " Building $SIMPLE_CLUSTER (Flux 2.9.x + source-watcher — current repo CRD baseline)"
306307
307308 kind create cluster --name " $SIMPLE_CLUSTER " --wait 60s
308309 local ctx=" kind-${SIMPLE_CLUSTER} "
@@ -311,6 +312,21 @@ build_simple_cluster() {
311312 apply_fluxinstance " $ctx " " ${MANIFEST_DIR} /fluxinstance.yaml"
312313 wait_for_flux_crds " $ctx "
313314
315+ # source-watcher CRDs (simple cluster only — the medium/legacy instances
316+ # don't run the source-watcher component)
317+ info " Waiting for source-watcher CRDs …"
318+ for crd in \
319+ artifactgenerators.source.extensions.fluxcd.io \
320+ externalartifacts.source.toolkit.fluxcd.io; do
321+ local retries=" $CRD_WAIT_RETRIES "
322+ while ! kubectl --context " $ctx " get crd " $crd " & > /dev/null; do
323+ retries=$(( retries - 1 ))
324+ [ $retries -le 0 ] && { warn " Timed out waiting for $crd – skipping" ; break ; }
325+ sleep " $CRD_WAIT_SLEEP_SECONDS "
326+ done
327+ success " $crd "
328+ done
329+
314330 apply_simple_manifests " $ctx " " flux-resources"
315331
316332 success " Cluster $SIMPLE_CLUSTER is ready"
@@ -320,7 +336,7 @@ build_simple_cluster() {
320336}
321337
322338build_stress_cluster () {
323- header " Building $STRESS_CLUSTER (Flux 2.5 .x — stress/page-scroll testing)"
339+ header " Building $STRESS_CLUSTER (Flux 2.7 .x — stress/page-scroll testing)"
324340
325341 kind create cluster --name " $STRESS_CLUSTER " --wait 60s
326342 local ctx=" kind-${STRESS_CLUSTER} "
@@ -407,13 +423,19 @@ main() {
407423 run_build " $SIMPLE_CLUSTER " build_simple_cluster
408424 run_build " $STRESS_CLUSTER " build_stress_cluster
409425 ;;
426+ # The live-test set (.github/workflows/live-tests.yml): the clusters
427+ # tests/live_tests.rs asserts against, skipping the heavy stress cluster.
428+ ci)
429+ run_build " $SIMPLE_CLUSTER " build_simple_cluster
430+ run_build " $LEGACY_CLUSTER " build_legacy_cluster
431+ ;;
410432 all)
411433 run_build " $SIMPLE_CLUSTER " build_simple_cluster
412434 run_build " $STRESS_CLUSTER " build_stress_cluster
413435 run_build " $LEGACY_CLUSTER " build_legacy_cluster
414436 ;;
415437 * )
416- die " Unknown mode '$mode '. Use: both | simple | stress | legacy | all | delete"
438+ die " Unknown mode '$mode '. Use: both | simple | stress | legacy | ci | all | delete"
417439 ;;
418440 esac
419441
@@ -422,10 +444,10 @@ main() {
422444 echo " Available clusters:"
423445 kind get clusters 2> /dev/null | sed ' s/^/ • kind-/'
424446 echo
425- echo " Day-to-day dev (Flux 2.8 .x, current repo CRDs):"
447+ echo " Day-to-day dev (Flux 2.9 .x, current repo CRDs):"
426448 echo " kubectl config use-context kind-${SIMPLE_CLUSTER} && cargo run"
427449 echo
428- echo " Page-scroll stress testing (Flux 2.5 .x):"
450+ echo " Page-scroll stress testing (Flux 2.7 .x):"
429451 echo " kubectl config use-context kind-${STRESS_CLUSTER} && cargo run"
430452 echo " → Press Ctrl+f / Ctrl+b to page through the list"
431453 echo
0 commit comments