Skip to content

Running E2E for aws (e2e/infracosts) #438

Running E2E for aws (e2e/infracosts)

Running E2E for aws (e2e/infracosts) #438

Workflow file for this run

---
name: E2E
run-name: Running E2E for ${{ inputs.cloud }} (${{ github.ref_name }})
on:
workflow_call:
inputs:
cloud:
default: aws
required: false
type: string
use_helm:
default: false
required: false
type: boolean
version:
default: ci
required: false
type: string
workflow_dispatch:
inputs:
cloud:
description: Cloud to run against
required: false
default: "aws"
type: choice
options:
- aws
- azurerm
- google
use_helm:
description: Indicates we install the controller via official helm chart
required: false
type: boolean
default: false
version:
description: Version of controller to check against
required: false
default: ci
jobs:
controller-image:
if: (github.event.inputs || inputs).version == 'ci'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build
uses: docker/[email protected]
with:
context: .
file: images/Dockerfile.controller
tags: ghcr.io/appvia/terranetes-controller:ci
outputs: type=docker,dest=/tmp/controller-image.tar
- name: Save
uses: actions/upload-artifact@v4
with:
name: controller-image-${{ github.run_id }}-${{ (github.event.inputs || inputs).cloud }}
path: /tmp/controller-image.tar
retention-days: 1
executor-image:
if: (github.event.inputs || inputs).version == 'ci'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build
uses: docker/[email protected]
with:
context: .
file: images/Dockerfile.executor
tags: ghcr.io/appvia/terranetes-executor:ci
outputs: type=docker,dest=/tmp/executor-image.tar
- name: Save
uses: actions/upload-artifact@v4
with:
name: executor-image-${{ github.run_id }}-${{ (github.event.inputs || inputs).cloud }}
path: /tmp/executor-image.tar
retention-days: 1
e2e:
if: always()
needs:
- controller-image
- executor-image
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Requirements
run: |
sudo apt update -y
sudo apt install bats jq
- name: Install Kubectl
uses: azure/setup-kubectl@v4
with:
version: v1.28.0
- name: Install Kind
run: |
curl -sL https://github.com/kubernetes-sigs/kind/releases/download/v0.20.0/kind-linux-amd64 -o kind
chmod +x kind
kind create cluster
- name: Retrieve Controller Image
if: (github.event.inputs || inputs).version == 'ci'
uses: actions/download-artifact@v4
with:
name: controller-image-${{ github.run_id }}-${{ (github.event.inputs || inputs).cloud }}
path: /tmp
- name: Retrieve Executor Image
if: (github.event.inputs || inputs).version == 'ci'
uses: actions/download-artifact@v4
with:
name: executor-image-${{ github.run_id }}-${{ (github.event.inputs || inputs).cloud }}
path: /tmp
- name: Load images
if: (github.event.inputs || inputs).version == 'ci'
run: |
kind load image-archive /tmp/controller-image.tar
kind load image-archive /tmp/executor-image.tar
- name: Running E2E
run: |
test/e2e/check-suite.sh \
--cloud ${{ (github.event.inputs || inputs).cloud }} \
--use-chart ${{ (github.event.inputs || inputs).use_helm }} \
--version ${{ (github.event.inputs || inputs).version }}
env:
ARM_CLIENT_ID: ${{ secrets.E2E_ARM_CLIENT_ID }}
ARM_CLIENT_SECRET: ${{ secrets.E2E_ARM_CLIENT_SECRET }}
ARM_SUBSCRIPTION_ID: ${{ secrets.E2E_ARM_SUBSCRIPTION_ID }}
ARM_TENANT_ID: ${{ secrets.E2E_ARM_TENANT_ID }}
AWS_ACCESS_KEY_ID: ${{ secrets.E2E_AWS_ACCESS_KEY_ID }}
AWS_REGION: ${{ secrets.E2E_AWS_REGION }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.E2E_AWS_SECRET_ACCESS_KEY }}
DIAGNOSTICS: ${{ secrets.DIAGNOSTICS }}
E2E_SSH_DEPLOYMENT_KEY: ${{ secrets.E2E_SSH_DEPLOYMENT_KEY }}
GOOGLE_CREDENTIALS: ${{ secrets.GOOGLE_CREDENTIALS }}
INFRACOST_API_KEY: ${{ secrets.INFRACOST_API_KEY }}