Skip to content

E2E

E2E #58

Workflow file for this run

name: E2E
on:
workflow_dispatch:
inputs:
git_ref:
type: string
region:
type: choice
options:
- "us-east-2"
- "us-west-2"
default: "us-east-2"
suite:
type: choice
required: true
options:
- Integration
- Machine
- Consolidation
- Utilization
- Interruption
- Drift
- Chaos
- IPv6
- Scale
k8s_version:
type: choice
options:
- "1.23"
- "1.24"
- "1.25"
- "1.26"
- "1.27"
default: "1.27"
enable_metrics:
type: boolean
default: false
workflow_call:
inputs:
git_ref:
type: string
region:
type: string
default: "us-east-2"
suite:
type: string
required: true
event_name:
type: string
required: true
k8s_version:
type: string
default: "1.27"
enable_metrics:
type: boolean
default: false
secrets:
SLACK_WEBHOOK_URL:
required: true
permissions:
id-token: write # This is required for requesting the JWT
contents: read # This is required for actions/checkout
statuses: write
jobs:
run-suite:
name: suite-${{ inputs.suite }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
ref: ${{ inputs.git_ref }}
- if: always() && inputs.event_name == 'workflow_run'
uses: ./.github/actions/commit-status/start
with:
name: "${{ github.workflow }} / e2e (${{ inputs.suite }}) / ${{ github.job }} (snapshot)"
git_ref: ${{ inputs.git_ref }}
- name: configure aws credentials
uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: arn:aws:iam::${{ vars.ACCOUNT_ID }}:role/${{ vars.ROLE_NAME }}
aws-region: ${{ inputs.region }}
role-duration-seconds: 21600
# - name: add jitter on cluster creation
# run: |
# # Creating jitter so that we can stagger cluster creation to avoid throttling
# sleep $(( $RANDOM % 60 + 1 ))
# - name: generate cluster name
# run: |
# CLUSTER_NAME=$(echo ${{ inputs.suite }}-$RANDOM$RANDOM | awk '{print tolower($0)}')
# echo "Using cluster name \"$CLUSTER_NAME\""
# echo CLUSTER_NAME=$CLUSTER_NAME >> $GITHUB_ENV
# - name: create eks cluster '${{ env.CLUSTER_NAME }}'
# uses: ./.github/actions/e2e/create-cluster
# with:
# account_id: ${{ vars.ACCOUNT_ID }}
# role: ${{ vars.ROLE_NAME }}
# region: ${{ inputs.region }}
# cluster_name: ${{ env.CLUSTER_NAME }}
# k8s_version: ${{ inputs.k8s_version }}
# ip_family: ${{ inputs.suite == 'IPv6' && 'IPv6' || 'IPv4' }} # Set the value to IPv6 if IPv6 suite, else IPv4
# git_ref: ${{ inputs.git_ref }}
# - name: install prometheus
# uses: ./.github/actions/e2e/install-prometheus
# with:
# account_id: ${{ vars.ACCOUNT_ID }}
# role: ${{ vars.ROLE_NAME }}
# region: ${{ vars.PROMETHEUS_REGION }}
# cluster_name: ${{ env.CLUSTER_NAME }}
# workspace_id: ${{ vars.WORKSPACE_ID }}
# git_ref: ${{ inputs.git_ref }}
# - name: install karpenter
# uses: ./.github/actions/e2e/install-karpenter
# with:
# account_id: ${{ vars.ACCOUNT_ID }}
# role: ${{ vars.ROLE_NAME }}
# region: ${{ inputs.region }}
# cluster_name: ${{ env.CLUSTER_NAME }}
# git_ref: ${{ inputs.git_ref }}
# - name: run the ${{ inputs.suite }} test suite
# run: |
# aws eks update-kubeconfig --name ${{ env.CLUSTER_NAME }}
# FOCUS="should deprovision nodes that have drifted due to securitygroup" ENABLE_METRICS=${{ inputs.enable_metrics }} METRICS_REGION=${{ vars.TIMESTREAM_REGION }} GIT_REF="$(git rev-parse HEAD)" make e2etests
# - name: notify slack of success or failure
# uses: ./.github/actions/e2e/slack/notify
# if: (success() || failure()) && inputs.event_name != 'workflow_run' && inputs.event_name != 'conformance'
# with:
# url: ${{ secrets.SLACK_WEBHOOK_URL }}
# suite: ${{ inputs.suite }}
# k8s_version: ${{ inputs.k8s_version }}
# event_name: ${{ inputs.event_name }}
# git_ref: ${{ inputs.git_ref }}
# - name: dump logs on failure
# uses: ./.github/actions/e2e/dump-logs
# if: failure() || cancelled()
# with:
# account_id: ${{ vars.ACCOUNT_ID }}
# role: ${{ vars.ROLE_NAME }}
# region: ${{ inputs.region }}
# cluster_name: ${{ env.CLUSTER_NAME }}
- name: cleanup karpenter and cluster '${{ env.CLUSTER_NAME }}' resources
uses: ./.github/actions/e2e/cleanup
if: always()
with:
account_id: ${{ vars.ACCOUNT_ID }}
role: ${{ vars.ROLE_NAME }}
region: ${{ inputs.region }}
cluster_name: aengeda-karpenter-playground-us-west-2
git_ref: ${{ inputs.git_ref }}
# - if: always() && inputs.event_name == 'workflow_run'
# uses: ./.github/actions/commit-status/end
# with:
# name: "${{ github.workflow }} / e2e (${{ inputs.suite }}) / ${{ github.job }} (snapshot)"
# git_ref: ${{ inputs.git_ref }}