-
Notifications
You must be signed in to change notification settings - Fork 12
93 lines (78 loc) · 2.81 KB
/
e2e.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
name: CI E2E
on:
pull_request:
branches:
- 'main'
- 'release-0.11'
defaults:
run:
shell: bash
jobs:
e2e-ic:
runs-on: ubuntu-22.04
env:
# TODO
RTE_CONTAINER_IMAGE: quay.io/k8stopologyawarewg/resource-topology-exporter:ci
E2E_TOPOLOGY_MANAGER_POLICY: single-numa-node
E2E_TOPOLOGY_MANAGER_SCOPE: container
E2E_NODE_REFERENCE: true
RTE_POLL_INTERVAL: 10s
RTE_VERBOSE: 6
steps:
- name: checkout sources
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: setup golang
uses: actions/setup-go@v3
id: go
with:
go-version: 1.20.7
- name: show tool versions
run: |
go version
kind version
- name: build test binary
run: |
make build-e2e
- name: build image
run: |
RTE_CONTAINER_IMAGE=${RTE_CONTAINER_IMAGE} RUNTIME=docker make image
- name: generate manifests
run: |
RTE_CONTAINER_IMAGE=${RTE_CONTAINER_IMAGE} RTE_POLL_INTERVAL=${RTE_POLL_INTERVAL} RTE_VERBOSE=${RTE_VERBOSE} make gen-manifests | tee rte-e2e.yaml
- name: create K8S kind cluster
run: |
# kind is part of 20.04 image, see: https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-README.md
# see image listing in https://github.com/kubernetes-sigs/kind/releases/tag/v0.20.0
kind create cluster --config=hack/kind-config-e2e.yaml --image kindest/node:v1.27.3@sha256:3966ac761ae0136263ffdb6cfd4db23ef8a83cba8a463690e98317add2c9ba72
kind load docker-image ${RTE_CONTAINER_IMAGE}
- name: deploy RTE
run: |
# TODO: what about the other workers (if any)?
kubectl label node kind-worker node-role.kubernetes.io/worker=''
kubectl create -f rte-e2e.yaml
- name: cluster info
run: |
kubectl get nodes
kubectl get pods -A
kubectl describe pod -l name=resource-topology || :
kubectl logs -l name=resource-topology -c resource-topology-exporter-container || :
- name: cluster ready
run: |
hack/check-ds.sh
kubectl logs -l name=resource-topology -c resource-topology-exporter-container || :
kubectl get noderesourcetopologies.topology.node.k8s.io -A -o yaml
- name: deploy sample-devices
run: |
hack/deploy-devices.sh
hack/check-ds.sh default device-plugin-a-ds
kubectl describe nodes -l node-role.kubernetes.io/worker= || :
- name: run E2E tests
run: |
export KUBECONFIG=${HOME}/.kube/config
_out/rte-e2e.test -ginkgo.v -ginkgo.focus='\[(RTE|TopologyUpdater)\].*\[(Local|InfraConsuming|Monitoring)\]'
- name: show RTE logs
if: ${{ failure() }}
run: |
kubectl logs -l name=resource-topology -c resource-topology-exporter-container || :