-
Notifications
You must be signed in to change notification settings - Fork 8
144 lines (128 loc) · 4.68 KB
/
ci.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
144
name: CI
on:
push:
branches: [ "*" ]
paths-ignore:
- '**.md'
- '**.sh'
pull_request:
branches: [ "*" ]
paths-ignore:
- '**.md'
- '**.sh'
schedule:
- cron: 0 3 * * *
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
bfd: ["true", "false"]
crd: ["true", "false"]
ic: ["true", "false"]
env:
# ovn-kubernetes
ENABLE_MULTI_NET: "true"
KIND_INSTALL_INGRESS: "false"
KIND_INSTALL_METALLB: "false"
KIND_INSTALL_PLUGINS: "true"
KIND_IPV4_SUPPORT: "true"
KIND_IPV6_SUPPORT: "false"
KUBECONFIG: "/home/runner/ovn.conf"
OVN_DISABLE_SNAT_MULTIPLE_GWS: "true"
OVN_ENABLE_INTERCONNECT: ${{ matrix.ic }}
OVN_GATEWAY_MODE: "shared"
OVN_HYBRID_OVERLAY_ENABLE: "false"
# web-burner
BFD: ${{ matrix.bfd }}
BRIDGE: "breth0"
BURST: "20"
CRD: ${{ matrix.crd }}
ES_SERVER: ""
ES_INDEX: ""
ICNI: "true"
INDEXING: ""
KUBE_BURNER_RELEASE: "1.9.5"
LIMITCOUNT: "1"
PROBE: "true"
QPS: "20"
SCALE: "1"
SRIOV: "false"
steps:
- uses: actions/checkout@v4
with:
repository: 'ovn-org/ovn-kubernetes'
fetch-depth: 1
- name: Free up disk space
run: sudo eatmydata apt-get remove --auto-remove -y aspnetcore-* dotnet-* libmono-* mono-* msbuild php-* php7* ghc-* zulu-* || echo "Freed"
- name: Disable ufw
# For IPv6 and Dualstack, ufw (Uncomplicated Firewall) should be disabled.
# Not needed for KIND deployments, so just disable all the time.
run: |
sudo ufw disable
- name: Docker setup
# Mimic Scale Lab
run: |
echo '{"bip":"172.17.0.1/16","default-address-pools":[{"base":"192.168.216.0/21","size":21},{"base":"172.17.0.0/12","size":16}]}' | sudo tee /etc/docker/daemon.json
docker network prune
sudo systemctl restart docker
- name: Kind setup
timeout-minutes: 30
run: |
make -C test install-kind
kubectl get po -A
- name: Kube-burner setup
run: |
curl https://github.com/cloud-bulldozer/kube-burner/releases/download/v${KUBE_BURNER_RELEASE}/kube-burner-V${KUBE_BURNER_RELEASE}-Linux-x86_64.tar.gz -Lo kube-burner.tar.gz
sudo tar -xvzf kube-burner.tar.gz -C /usr/local/bin/
kube-burner version
- name: Cordon master node
run: |
kubectl cordon ovn-control-plane
- uses: actions/checkout@v4
- name: Label worker-lb node
# ovn-worker for lbs/serving pods and ovn-worker2 for apps/served pods
run: |
docker ps
kubectl label node ovn-worker node-role.kubernetes.io/worker-spk="" --overwrite=true
kubectl get node -o wide
- name: Create lb/serving pods
timeout-minutes: 15
run: |
echo "BFD: $BFD"
echo "CRD: $CRD"
kube-burner init -c workload/cfg_icni2_serving_resource_init.yml --uuid 1234 --timeout 10m
kubectl get po -A -o wide
continue-on-error: true
- name: Describe lb/serving pod
timeout-minutes: 2
run: |
kubectl -n serving-ns-0 describe $(kubectl get po -n serving-ns-0 -o name | head -n1)
- name: Create node-density app/served pods
timeout-minutes: 10
run: |
echo 5000 | sudo tee /proc/sys/kernel/keys/maxkeys
kube-burner init -c workload/cfg_icni2_node_density2.yml --uuid 1235
kubectl get ns
kubectl get po -n served-ns-0 -o wide | head
echo "Number of serving running pods (expect 4):"
SERVING_PODS=$(kubectl get po -A | grep serving | grep Running | wc -l)
echo $SERVING_PODS
echo "Number of served running pods (expect 61):"
SERVED_PODS=$(kubectl get po -A | grep served | grep Running | wc -l)
echo $SERVED_PODS
echo "Number of serving deployments (expect 4):"
SERVING_DEPLOYS=$(kubectl get deploy -A | grep serving | wc -l)
echo $SERVING_DEPLOYS
echo "Number of served deployments (expect 1):"
SERVED_DEPLOYS=$(kubectl get deploy -A | grep served | wc -l)
echo $SERVED_DEPLOYS
echo "Number of served services (expect 1):"
SERVED_SVCS=$(kubectl get service -A | grep served | wc -l)
echo $SERVED_SVCS
if [ $SERVING_PODS != 4 ] || [ $SERVED_PODS != 61 ] || [ $SERVING_DEPLOYS != 4 ] || [ $SERVED_DEPLOYS != 1 ] || [ $SERVED_SVCS != 1 ] ; then
echo "Incorrect number of objects"
exit 1
fi