-
Notifications
You must be signed in to change notification settings - Fork 5
83 lines (79 loc) · 2.83 KB
/
e2e.yaml
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
name: E2E
on:
workflow_dispatch: {}
pull_request:
branches:
- main
- release-*
env:
GO_VERSION: '1.22'
GO_REQUIRED_MIN_VERSION: ''
USE_EXISTING_CLUSTER: false # set to true to use an existing kind cluster for debugging with act
permissions:
contents: read
jobs:
e2e:
runs-on: ubuntu-latest
steps:
- name: add permisson to docker.sock
run: sudo chown runner:docker /var/run/docker.sock
if: ${{ env.ACT }} # this step only runs locally when using the https://github.com/nektos/act to debug the e2e
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
- name: Install kind
uses: helm/[email protected]
with:
version: v0.22.0
install_only: true
- name: Test kind works and there is no cluster started
run: |
[[ $(kind get clusters | wc -l) -eq 0 ]]
- name: Set KUBECONFIG dir
run: |
mkdir -p /home/runner/.kube
- name: Create Hub cluster
run: |
kind create cluster --name hub
env:
KUBECONFIG: /home/runner/.kube/hub-kubeconfig
- name: Create Spoke cluster
run: |
kind create cluster --name spoke
env:
KUBECONFIG: /home/runner/.kube/spoke-kubeconfig
- name: Test Hub and Spoke clusters
run: |
kubectl cluster-info --kubeconfig /home/runner/.kube/hub-kubeconfig
kubectl get pods -A --kubeconfig /home/runner/.kube/hub-kubeconfig
kubectl cluster-info --kubeconfig /home/runner/.kube/spoke-kubeconfig
kubectl get pods -A --kubeconfig /home/runner/.kube/spoke-kubeconfig
- name: Create internal kubeconfigs
run: |
kind get kubeconfig --internal --name hub > /home/runner/.kube/hub-internal-kubeconfig
kind get kubeconfig --internal --name spoke > /home/runner/.kube/spoke-internal-kubeconfig
- name: Install MCE+Policy
run: |
echo $PULLSECRET > /home/runner/pullsecret.json
make e2e-install
env:
KUBECONFIG: /home/runner/.kube/hub-kubeconfig
PULLSECRETFILE: /home/runner/pullsecret.json
PULLSECRET: ${{ secrets.IMAGE_PULL_SECRET }}
- name: Import hosted cluster
run: |
make e2e-import-cluster
env:
KUBECONFIG: /home/runner/.kube/hub-kubeconfig
MANAGED_CLUSTER_NAME: spoke
MANAGED_KUBECONFIG: /home/runner/.kube/spoke-internal-kubeconfig
EXTERNAL_MANAGED_KUBECONFIG: /home/runner/.kube/spoke-internal-kubeconfig
- name: Run e2e
run: |
make test-e2e
env:
KUBECONFIG: /home/runner/.kube/hub-kubeconfig
MANAGED_CLUSTER_NAME: spoke