-
Notifications
You must be signed in to change notification settings - Fork 0
117 lines (102 loc) · 3.94 KB
/
smoke-test.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
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
name: Smoke test
on:
pull_request: {}
push:
branches:
- master
env:
KIND_VERSION: v0.8.1
KIND_CONFIG: .github/kind-config.yaml
CONFORMANCE_TEMPLATE: examples/kubernetes/connectivity-check/connectivity-check.yaml
jobs:
preflight-clusterrole:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Check pre-flight clusterrole
run: |
cd install/kubernetes/cilium/charts
echo "Checking for differences between preflight and agent clusterrole"
diff \
-I '^[ ]\{2\}name: cilium.*' \
-I '^Keep file in synced with.*' \
agent/templates/clusterrole.yaml \
preflight/templates/clusterrole.yaml
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Run helm lint
run: |
make -C install/kubernetes lint
quick-install:
strategy:
matrix:
target:
- name: quick-install
template: install/kubernetes/quick-install.yaml
- name: experimental-install
template: install/kubernetes/experimental-install.yaml
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Check ${{ matrix.target.template }}
run: |
make -C install/kubernetes ${{ matrix.target.name }}
git diff --exit-code
- name: Create kind cluster
uses: helm/[email protected]
with:
version: ${{ env.KIND_VERSION }}
config: ${{ env.KIND_CONFIG }}
- name: Run ${{ matrix.target.name }}
run: |
kubectl apply -f ${{ matrix.target.template }}
kubectl wait -n kube-system --for=condition=Ready --all pod --timeout=5m
# To make sure that cilium CRD is available (default timeout is 5m)
# https://github.com/cilium/cilium/blob/master/operator/crd.go#L34
kubectl wait --for condition=Established crd/ciliumnetworkpolicies.cilium.io --timeout=5m
- name: Run conformance test (e.g. connectivity check)
run: |
kubectl apply -f ${{ env.CONFORMANCE_TEMPLATE }}
kubectl wait --for=condition=Available --all deployment --timeout=5m
conformance-test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Build docker images
run: |
make docker-image-no-clean
make docker-operator-generic-image
- name: Create kind cluster
uses: helm/[email protected]
with:
version: ${{ env.KIND_VERSION }}
config: ${{ env.KIND_CONFIG }}
- name: Load local images into kind cluster
run: |
kind load docker-image --name chart-testing cilium/cilium:latest
kind load docker-image --name chart-testing cilium/operator-generic:latest
- name: Install cilium chart
run: |
helm install cilium ./install/kubernetes/cilium \
--wait \
--namespace kube-system \
--set global.nodeinit.enabled=true \
--set global.kubeProxyReplacement=partial \
--set global.hostServices.enabled=false \
--set global.externalIPs.enabled=true \
--set global.nodePort.enabled=true \
--set global.hostPort.enabled=true \
--set config.ipam=kubernetes \
--set global.pullPolicy=Never
kubectl wait -n kube-system --for=condition=Ready --all pod --timeout=5m
# To make sure that cilium CRD is available (default timeout is 5m)
# https://github.com/cilium/cilium/blob/master/operator/crd.go#L34
kubectl wait --for condition=Established crd/ciliumnetworkpolicies.cilium.io --timeout=5m
- name: Run conformance test (e.g. connectivity check)
run: |
kubectl apply -f ${{ env.CONFORMANCE_TEMPLATE }}
kubectl wait --for=condition=Available --all deployment --timeout=5m