|
12 | 12 | type: string |
13 | 13 | required: true |
14 | 14 | description: "sbcli branch / version tag to bootstrap the cluster with (e.g. R25.10-Hotfix)" |
15 | | - BASE_SPDK_IMAGE: |
| 15 | + CUSTOM_IMAGES: |
16 | 16 | type: string |
17 | | - default: "" |
18 | | - description: "SPDK image for the base deployment (empty = bootstrap default)" |
| 17 | + default: 'base_spdk="" target_spdk="" base_docker="" target_docker=""' |
| 18 | + description: "Image overrides: set base_spdk, target_spdk, base_docker and/or target_docker values, leave as \"\" to skip." |
19 | 19 | TARGET_SBCLI_BRANCH: |
20 | 20 | type: string |
21 | 21 | required: true |
22 | 22 | description: "sbcli branch / version tag to upgrade to (e.g. main)" |
23 | | - TARGET_SPDK_IMAGE: |
24 | | - type: string |
25 | | - default: "" |
26 | | - description: "SPDK image for the target version (empty = default)" |
27 | 23 | STORAGE_PRIVATE_IPS: |
28 | 24 | type: string |
29 | 25 | default: "192.168.10.205 192.168.10.206 192.168.10.207 192.168.10.208" |
@@ -120,17 +116,13 @@ on: |
120 | 116 | BASE_SBCLI_BRANCH: |
121 | 117 | description: "sbcli branch / version tag to bootstrap the cluster with (e.g. R25.10-Hotfix)" |
122 | 118 | required: true |
123 | | - BASE_SPDK_IMAGE: |
124 | | - description: "SPDK image for the base deployment (empty = bootstrap default)" |
| 119 | + CUSTOM_IMAGES: |
| 120 | + description: "Image overrides: set base_spdk, target_spdk, base_docker and/or target_docker values, leave as \"\" to skip." |
125 | 121 | required: false |
126 | | - default: "" |
| 122 | + default: 'base_spdk="" target_spdk="" base_docker="" target_docker=""' |
127 | 123 | TARGET_SBCLI_BRANCH: |
128 | 124 | description: "sbcli branch / version tag to upgrade to (e.g. main)" |
129 | 125 | required: true |
130 | | - TARGET_SPDK_IMAGE: |
131 | | - description: "SPDK image for the target version (empty = default)" |
132 | | - required: false |
133 | | - default: "" |
134 | 126 |
|
135 | 127 | # ── Run-specific ───────────────────────────────────────────────────────── |
136 | 128 | BOOTSTRAP_IS_SINGLE_NODE: |
@@ -168,10 +160,9 @@ jobs: |
168 | 160 |
|
169 | 161 | env: |
170 | 162 | # Upgrade-specific |
171 | | - BASE_SBCLI_BRANCH: ${{ inputs.BASE_SBCLI_BRANCH }} |
172 | | - BASE_SPDK_IMAGE: ${{ inputs.BASE_SPDK_IMAGE || '' }} |
| 163 | + BASE_SBCLI_BRANCH: ${{ inputs.BASE_SBCLI_BRANCH }} |
173 | 164 | TARGET_SBCLI_BRANCH: ${{ inputs.TARGET_SBCLI_BRANCH }} |
174 | | - TARGET_SPDK_IMAGE: ${{ inputs.TARGET_SPDK_IMAGE || '' }} |
| 165 | + CUSTOM_IMAGES: ${{ inputs.CUSTOM_IMAGES || 'base_spdk="" target_spdk="" base_docker="" target_docker=""' }} |
175 | 166 |
|
176 | 167 | # Cluster/lab env |
177 | 168 | STORAGE_PRIVATE_IPS: ${{ inputs.STORAGE_PRIVATE_IPS || '192.168.10.205 192.168.10.206 192.168.10.207 192.168.10.208' }} |
@@ -348,16 +339,33 @@ jobs: |
348 | 339 | exit 1 |
349 | 340 | fi |
350 | 341 |
|
351 | | - - name: Export BASE_SPDK_IMAGE env (only if provided) |
| 342 | + - name: Parse CUSTOM_IMAGES overrides |
352 | 343 | shell: bash |
353 | 344 | run: | |
354 | 345 | set -euxo pipefail |
355 | | - if [[ -n "${BASE_SPDK_IMAGE}" ]]; then |
356 | | - echo "SIMPLY_BLOCK_SPDK_ULTRA_IMAGE=${BASE_SPDK_IMAGE}" >> "$GITHUB_ENV" |
357 | | - echo "Base SPDK image exported: ${BASE_SPDK_IMAGE}" |
358 | | - else |
359 | | - echo "Base SPDK image not provided; bootstrap will use its default" |
360 | | - fi |
| 346 | + custom="${CUSTOM_IMAGES}" |
| 347 | + for item in $custom; do |
| 348 | + key="${item%%=*}" |
| 349 | + value="${item#*=}" |
| 350 | + value="${value//\"/}" |
| 351 | + if [[ -z "$value" ]]; then |
| 352 | + echo "Skipping $key (empty)" |
| 353 | + continue |
| 354 | + fi |
| 355 | + case "$key" in |
| 356 | + base_spdk) echo "BASE_SPDK_IMAGE=$value" >> "$GITHUB_ENV" |
| 357 | + echo "SIMPLY_BLOCK_SPDK_ULTRA_IMAGE=$value" >> "$GITHUB_ENV" |
| 358 | + echo "Base SPDK image set: $value" ;; |
| 359 | + target_spdk) echo "TARGET_SPDK_IMAGE=$value" >> "$GITHUB_ENV" |
| 360 | + echo "Target SPDK image set: $value" ;; |
| 361 | + base_docker) echo "BASE_DOCKER_IMAGE=$value" >> "$GITHUB_ENV" |
| 362 | + echo "SIMPLY_BLOCK_DOCKER_IMAGE=$value" >> "$GITHUB_ENV" |
| 363 | + echo "Base Docker image set: $value" ;; |
| 364 | + target_docker) echo "TARGET_DOCKER_IMAGE=$value" >> "$GITHUB_ENV" |
| 365 | + echo "Target Docker image set: $value" ;; |
| 366 | + *) echo "Unknown image key: $key (ignored)" ;; |
| 367 | + esac |
| 368 | + done |
361 | 369 |
|
362 | 370 | - name: Resolve KEY_PATH and validate key exists |
363 | 371 | shell: bash |
@@ -600,10 +608,13 @@ jobs: |
600 | 608 | chmod +x ./bootstrap-cluster.sh |
601 | 609 |
|
602 | 610 | extra_args=() |
603 | | - # BASE_SPDK_IMAGE exported as SIMPLY_BLOCK_SPDK_ULTRA_IMAGE in an earlier step |
| 611 | + # Images exported by the "Parse CUSTOM_IMAGES overrides" step |
604 | 612 | if [[ -n "${SIMPLY_BLOCK_SPDK_ULTRA_IMAGE-}" ]]; then |
605 | 613 | extra_args+=( --spdk-image "${SIMPLY_BLOCK_SPDK_ULTRA_IMAGE}" ) |
606 | 614 | fi |
| 615 | + if [[ -n "${SIMPLY_BLOCK_DOCKER_IMAGE-}" ]]; then |
| 616 | + extra_args+=( --docker-image "${SIMPLY_BLOCK_DOCKER_IMAGE}" ) |
| 617 | + fi |
607 | 618 | if [[ "${{ inputs.BOOTSTRAP_IS_SINGLE_NODE }}" == "true" ]]; then |
608 | 619 | extra_args+=( --is-single-node true ) |
609 | 620 | fi |
@@ -744,8 +755,9 @@ jobs: |
744 | 755 | python3 -u upgrade_e2e.py \ |
745 | 756 | --base_version "${BASE_SBCLI_BRANCH}" \ |
746 | 757 | --target_version "${TARGET_SBCLI_BRANCH}" \ |
747 | | - --base_spdk_image "${BASE_SPDK_IMAGE}" \ |
748 | | - --target_spdk_image "${TARGET_SPDK_IMAGE}" \ |
| 758 | + --base_spdk_image "${BASE_SPDK_IMAGE:-}" \ |
| 759 | + --target_spdk_image "${TARGET_SPDK_IMAGE:-}" \ |
| 760 | + --target_docker_image "${TARGET_DOCKER_IMAGE:-}" \ |
749 | 761 | "${TESTNAME_ARGS[@]}" \ |
750 | 762 | 2>&1 | tee output.log |
751 | 763 |
|
|
0 commit comments