Skip to content

test: add kind kwok e2es to presubmit #9

test: add kind kwok e2es to presubmit

test: add kind kwok e2es to presubmit #9

Workflow file for this run

name: kind-e2e
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
jobs:
test-kind:
permissions:
issues: write
runs-on: ubuntu-latest
strategy:
matrix:
k8sVersion: ["1.25.x", "1.26.x", "1.27.x", "1.28.x", "1.29.x", "1.30.x"]
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Set up Python 3.10
uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1
with:
python-version: "3.10"
- uses: ./.github/actions/install-deps
with:
k8sVersion: ${{ matrix.k8sVersion }}
- name: Kind Cluster
uses: helm/kind-action@0025e74a8c7512023d06dc019c617aa3cf561fde # v1.10.0
- name: check kind cluster and taint nodes
shell: bash
run: |
kubectl config current-context
kubectl get nodes
kubectl taint nodes chart-testing-control-plane CriticalAddonsOnly:NoSchedule
- name: install prometheus
uses: ./.github/actions/install-prometheus
- name: install pyroscope
uses: ./.github/actions/install-pyroscope
- name: install kwok and controller
shell: bash
run: |
make toolchain
make install-kwok
export KWOK_REPO=kind.local
export KIND_CLUSTER_NAME=chart-testing
make apply-with-kind
- name: ping cluster
shell: bash
run: |
sleep 15
kubectl get pods -n kube-system | grep karpenter
kubectl get nodepools
kubectl get pods -A
kubectl describe nodes
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
with:
repository: nathangeology/karpenter_evaluate
path: ./karpenter_eval/ # Installs to a folder in the Karpenter repo for the test
ref: "3f4cebb703bd136f5034c8b5bf3e6c32e97d1ae6"
fetch-depth: 0
- name: install KPI report dependencies
shell: bash
run: |
pip install pandas==2.2.2
pip install pyarrow==16.1.0
pip install tabulate==0.9.0
pip install prometheus-api-client==0.5.5
pip install ./karpenter_eval/
- name: run test suites
shell: bash
run: |
OUTPUT_DIR=$(mktemp -d)
export OUTPUT_DIR
make e2etests
python ./karpenter_eval/main.py
- name: cleanup
shell: bash
run: |
kubectl delete nodepools --all
make delete
make uninstall-kwok