-
Notifications
You must be signed in to change notification settings - Fork 36
143 lines (125 loc) · 3.27 KB
/
tests-deployment.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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
name: Test Deployment
run-name: "${{ github.ref_name }}: Test Deployment"
on:
workflow_dispatch:
pull_request:
push:
branches:
- main
schedule:
# Run every Saturday at midnight.
- cron: '0 0 * * 6'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
# Test cluster deployment.
test-cluster:
if: github.event_name == 'push' || github.event_name == 'pull_request'
name: Cluster
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
manager:
- kubespray
- k3s
k8s:
- v1.28.10
- v1.29.5
distro:
- ubuntu22
networkPlugin:
- calico # K3s will use flannel
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup environment
uses: ./.github/actions/runner-setup
- name: Deploy cluster
run: |
./scripts/deploy-cluster.sh k8s \
${{ matrix.distro }} \
${{ matrix.networkPlugin }} \
${{ matrix.k8s }} \
${{ matrix.manager }}
- name: Test
run: |
./scripts/test-cluster.sh
# Test multiple k8s versions using the default distro and network plugin.
test-single-node-quick:
if: github.event_name == 'push' || github.event_name == 'pull_request'
name: Node
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
manager:
- k3s
- kubespray
k8sVersion:
- v1.28.10
- v1.29.5
distro:
- ubuntu22
networkPlugin:
- calico # K3s will use flannel
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup environment
uses: ./.github/actions/runner-setup
- name: Deploy cluster
run: |
./scripts/deploy-node.sh k8s \
${{ matrix.distro }} \
${{ matrix.networkPlugin }} \
${{ matrix.k8sVersion }} \
${{ matrix.manager }}
- name: Test
run: |
./scripts/test-cluster.sh
- name: Destroy cluster
run: |
./scripts/destroy-cluster.sh k8s
# Test most combinations of managers, versions, distros,
# and network plugins. Run this only on schedule.
test-single-node-all:
if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
name: Node Matrix
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
manager:
- k3s
- kubespray
k8sVersion:
- v1.27.14
- v1.28.10
- v1.29.5
distro:
- ubuntu22
- debian12
- centos9
- rocky9
networkPlugin:
- calico
- cilium
- flannel
- kube-router
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup environment
uses: ./.github/actions/runner-setup
- name: Deploy single node
run: |
./scripts/deploy-node.sh k8s \
${{ matrix.distro }} \
${{ matrix.networkPlugin }} \
${{ matrix.k8sVersion }} \
${{ matrix.manager }}
- name: Test
run: |
./scripts/test-cluster.sh