Skip to content

dev-scripts: Spawn arbitrary amount of downstream clusters #1067

dev-scripts: Spawn arbitrary amount of downstream clusters

dev-scripts: Spawn arbitrary amount of downstream clusters #1067

# Upgrade Fleet standalone from latest released to dev version
name: E2E Upgrade Fleet Standalone to HEAD
on:
schedule:
- cron: '0 8 */2 * *'
pull_request:
env:
GOARCH: amd64
CGO_ENABLED: 0
SETUP_K3D_VERSION: 'v5.7.4'
jobs:
fleet-upgrade-test:
runs-on: runs-on,runner=8cpu-linux-x64,mem=16,run-id=${{ github.run_id }}
strategy:
matrix:
k3s:
- name: k3s-new
version: v1.31.1-k3s1
name: fleet-upgrade-test-${{ matrix.k3s.name }}
steps:
-
uses: actions/checkout@v4
with:
fetch-depth: 0
-
uses: actions/setup-go@v5
with:
go-version-file: 'go.mod'
check-latest: true
-
name: Install Ginkgo CLI
run: go install github.com/onsi/ginkgo/v2/ginkgo
-
name: Install crust-gather CLI
run: curl -sSfL https://github.com/crust-gather/crust-gather/raw/main/install.sh | sh -s -- --yes
-
name: Install k3d
run: curl --silent --fail https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | TAG=${{ env.SETUP_K3D_VERSION }} bash
-
name: Provision k3d Cluster
run: |
k3d cluster create upstream --wait \
--agents 1 \
--network "nw01" \
--image docker.io/rancher/k3s:${{matrix.k3s.version}}
-
name: Deploy Latest Release
run: |
./.github/scripts/deploy-fleet-latest-release.sh
-
name: Create example workload
run: |
kubectl apply -n fleet-local -f e2e/assets/installation/simple.yaml
-
name: Build Fleet Binaries
run: |
./.github/scripts/build-fleet-binaries.sh
-
name: Build Docker Images
run: |
./.github/scripts/build-fleet-images.sh
-
name: Import Images Into k3d
run: |
./.github/scripts/k3d-import-retry.sh rancher/fleet:dev rancher/fleet-agent:dev -c upstream
-
name: Verify Example Workload
run: |
# we waited long enough by importing the image first
kubectl get configmap -n simple-example | grep -q -m 1 "simple-config"
-
name: Upgrade to Dev Version
run: |
./.github/scripts/deploy-fleet.sh
-
name: Verify Installation
env:
FLEET_E2E_NS: fleet-local
run: |
ginkgo --github-output --label-filter="!multi-cluster" e2e/installation
-
name: Upload Logs
uses: actions/upload-artifact@v4
if: failure()
with:
name: gha-fleet-e2e-logs-${{ github.sha }}-${{ matrix.k3s.version }}-${{ github.run_id }}
path: |
tmp/upstream
retention-days: 2