Skip to content

Test EKS Cluster

Test EKS Cluster #219

Workflow file for this run

name: Test EKS Cluster
on:
schedule:
- cron: '0 7 * * *' ## Every day at 0700 UTC
workflow_dispatch: ## Give us the ability to run this manually
inputs:
cluster_name:
type: string
default: zarf-nightly-eks-e2e-test
description: Name of the eks cluster that the test will create
instance_type:
type: string
default: t3.medium
description: EC2 instance type to use for the EKS cluster nodes
permissions:
id-token: write
contents: read
# Abort prior jobs in the same workflow / PR
concurrency:
group: e2e-eks-${{ github.ref }}
cancel-in-progress: true
jobs:
validate:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
- name: Setup golang
uses: ./.github/actions/golang
- name: Setup NodeJS
uses: ./.github/actions/node
- name: Build binary and zarf packages
uses: ./.github/actions/packages
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@8c3f20df09ac63af7b3ae3d7c91f105f857d8497 # v4.0.0
with:
role-to-assume: ${{ secrets.AWS_NIGHTLY_ROLE }}
aws-region: us-east-1
role-duration-seconds: 14400
- name: Build the eks package
run: ./build/zarf package create packages/distros/eks -o build --confirm
- name: Deploy the eks package
run: |
./build/zarf package deploy build/zarf-package-distro-eks-multi-0.0.3.tar.zst \
--components=deploy-eks-cluster \
--set=EKS_CLUSTER_NAME=${{ inputs.cluster_name || 'zarf-nightly-eks-e2e-test' }} \
--set=EKS_INSTANCE_TYPE=${{ inputs.instance_type || 't3.medium' }} \
--confirm
- name: Run tests
run: make test-e2e ARCH=amd64
- name: Teardown the cluster
if: always()
run: |
./build/zarf package deploy build/zarf-package-distro-eks-multi-0.0.3.tar.zst \
--components=teardown-eks-cluster \
--set=EKS_CLUSTER_NAME=${{ inputs.cluster_name || 'zarf-nightly-eks-e2e-test' }} \
--confirm
- name: Save logs
if: always()
uses: ./.github/actions/save-logs
- name: Send trigger to Slack on workflow failure
if: failure()
uses: ./.github/actions/slack
with:
slack-webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }}