un-rc tag #12
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Upgrade fleet in latest Rancher to dev version and run MC tests | |
name: E2E Upgrade Fleet in Rancher To HEAD | |
on: | |
schedule: | |
# Run everyday day at 1:00 PM | |
- cron: '0 13 * * *' | |
workflow_dispatch: | |
inputs: | |
ref: | |
description: "checkout git branch/tag" | |
required: true | |
default: "master" | |
enable_tmate: | |
description: 'Enable debugging via tmate' | |
required: false | |
default: "false" | |
push: | |
tags: [ 'v*' ] | |
paths-ignore: | |
- 'scripts/**' | |
- '*.md' | |
env: | |
GOARCH: amd64 | |
CGO_ENABLED: 0 | |
SETUP_K3D_VERSION: 'v5.5.1' | |
SETUP_K3S_VERSION: 'v1.26.8-k3s1' | |
jobs: | |
rancher-integration: | |
runs-on: ubuntu-latest | |
steps: | |
- | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ref: ${{ github.event.inputs.ref }} | |
- | |
uses: actions/setup-go@v4 | |
with: | |
go-version-file: 'go.mod' | |
check-latest: true | |
- | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cache/go-build | |
~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
- | |
name: Install Ginkgo CLI | |
run: go install github.com/onsi/ginkgo/v2/ginkgo | |
- | |
uses: actions/cache@v3 | |
id: rancher-cli-cache | |
with: | |
path: /home/runner/.local/bin | |
key: ${{ runner.os }}-rancher-cli-2.6.0 | |
- | |
name: Install Rancher CLI | |
if: steps.rancher-cli-cache.outputs.cache-hit != 'true' | |
run: | | |
# download an older CLI to avoid https://github.com/rancher/rancher/issues/37574 | |
mkdir -p /home/runner/.local/bin | |
wget -q https://github.com/rancher/cli/releases/download/v2.6.0/rancher-linux-amd64-v2.6.0.tar.gz | |
tar -xz --strip-components=2 -f rancher-linux-amd64-v2.6.0.tar.gz -C /home/runner/.local/bin | |
rancher --version | |
- | |
name: Build fleet binaries | |
run: | | |
go build -o bin/fleetcontroller-linux-$GOARCH ./cmd/fleetcontroller | |
go build -o "bin/fleet-linux-$GOARCH" ./cmd/fleetcli | |
go build -o "bin/fleetagent-linux-$GOARCH" ./cmd/fleetagent | |
- | |
name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- | |
name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- | |
name: Get uuid | |
id: uuid | |
run: echo "::set-output name=uuid::$(uuidgen)" | |
- | |
id: meta-fleet | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
ttl.sh/rancher/fleet-${{ steps.uuid.outputs.uuid }} | |
tags: type=raw,value=1h | |
- | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
file: package/Dockerfile | |
build-args: | | |
ARCH=${{ env.GOARCH }} | |
push: true | |
tags: ${{ steps.meta-fleet.outputs.tags }} | |
labels: ${{ steps.meta-fleet.outputs.labels }} | |
- | |
id: meta-fleet-agent | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
ttl.sh/rancher/fleet-agent-${{ steps.uuid.outputs.uuid }} | |
tags: type=raw,value=1h | |
- | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
file: package/Dockerfile.agent | |
build-args: | | |
ARCH=${{ env.GOARCH }} | |
push: true | |
tags: ${{ steps.meta-fleet-agent.outputs.tags }} | |
labels: ${{ steps.meta-fleet-agent.outputs.labels }} | |
- | |
name: Set up k3d control-plane cluster | |
uses: AbsaOSS/k3d-action@v2 | |
with: | |
k3d-version: ${{ env.SETUP_K3D_VERSION }} | |
cluster-name: "upstream" | |
args: >- | |
-p "80:80@agent:0:direct" | |
-p "443:443@agent:0:direct" | |
--api-port 6443 | |
--agents 1 | |
--k3s-arg '--kubelet-arg=eviction-hard=imagefs.available<1%,nodefs.available<1%@agent:*' | |
--k3s-arg '--kubelet-arg=eviction-minimum-reclaim=imagefs.available=1%,nodefs.available=1%@agent:*' | |
--network "nw01" | |
--image docker.io/rancher/k3s:${{ env.SETUP_K3S_VERSION }} | |
- | |
name: Set up k3d downstream cluster | |
uses: AbsaOSS/k3d-action@v2 | |
with: | |
k3d-version: ${{ env.SETUP_K3D_VERSION }} | |
cluster-name: "downstream" | |
args: >- | |
-p "81:80@agent:0:direct" | |
-p "444:443@agent:0:direct" | |
--api-port 6644 | |
--agents 1 | |
--k3s-arg '--kubelet-arg=eviction-hard=imagefs.available<1%,nodefs.available<1%@agent:*' | |
--k3s-arg '--kubelet-arg=eviction-minimum-reclaim=imagefs.available=1%,nodefs.available=1%@agent:*' | |
--network "nw01" | |
--image docker.io/rancher/k3s:${{ env.SETUP_K3S_VERSION }} | |
- | |
name: Set up tmate debug session | |
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.enable_tmate == 'true' }} | |
uses: mxschmitt/action-tmate@v3 | |
timeout-minutes: 15 | |
with: | |
limit-access-to-actor: true | |
- | |
name: Set up latest Rancher | |
env: | |
external_ip: "172.18.0.1.sslip.io" | |
run: | | |
./.github/scripts/setup-latest-rancher.sh | |
- | |
name: Register Rancher's downstream clusters | |
env: | |
external_ip: "172.18.0.1.sslip.io" | |
run: | | |
./.github/scripts/wait-for-loadbalancer.sh | |
./.github/scripts/register-downstream-clusters.sh | |
# wait for cluster to settle | |
sleep 30 | |
./.github/scripts/label-downstream-cluster.sh | |
- | |
name: Deploy development fleet | |
run: | | |
echo "${{ steps.meta-fleet.outputs.tags }} ${{ steps.meta-fleet-agent.outputs.tags }}" | |
./.github/scripts/upgrade-rancher-fleet-to-dev-fleet.sh ${{ steps.meta-fleet.outputs.tags }} ${{ steps.meta-fleet-agent.outputs.tags }} | |
- | |
name: E2E tests for examples | |
env: | |
FLEET_E2E_NS: fleet-local | |
FLEET_E2E_NS_DOWNSTREAM: fleet-local | |
run: | | |
kubectl config use-context k3d-upstream | |
ginkgo e2e/multi-cluster | |
- | |
name: Dump failed environment | |
if: failure() | |
run: | | |
./.github/scripts/dump-failed-k3ds.sh | |
- | |
name: Upload logs | |
uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: gha-fleet-rancher-logs-${{ github.sha }}-${{ github.run_id }} | |
path: | | |
tmp/*.json | |
tmp/*.log | |
retention-days: 2 |