Skip to content

Commit bc72420

Browse files
authored
Merge pull request #523 from linode/e2e-tests-ccm-log-debugging
[test][improvement] Standardize bash error handling and add CCM log collection for e2e tests
2 parents 39b5474 + c02c91d commit bc72420

47 files changed

Lines changed: 387 additions & 110 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

e2e/bgp-test/lb-cilium-bgp/chainsaw-test.yaml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ metadata:
77
all:
88
spec:
99
namespace: "cilium-bgp-test"
10+
catch:
11+
- script:
12+
content: |
13+
set -euo pipefail
14+
echo "Test failed. Fetching CCM logs..."
15+
kubectl logs -n kube-system daemonsets/ccm-linode | grep "cilium-bgp-test" | tail -100
1016
steps:
1117
- name: Check if CCM is deployed
1218
try:
@@ -61,7 +67,7 @@ spec:
6167
try:
6268
- script:
6369
content: |
64-
set -e
70+
set -euo pipefail
6571
6672
delete_nanode() {
6773
local NANODE_RESPONSE=$(curl -s -H "Authorization: Bearer $LINODE_TOKEN" \

e2e/subnet-test/chainsaw-test.yaml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,18 @@ spec:
1010
- name: fwname
1111
value: (join('-', ['ccm-fwtest', env('CLUSTER_NAME')]))
1212
namespace: "subnet-filtering-test"
13+
catch:
14+
- script:
15+
content: |
16+
set -euo pipefail
17+
echo "Test failed. Fetching CCM logs..."
18+
kubectl logs -n kube-system daemonsets/ccm-linode | grep "subnet-filtering-test" | tail -100
1319
steps:
1420
- name: Check if the CCM for each cluster focus on their individual subnets
1521
try:
1622
- script:
1723
content: |
18-
set -e
24+
set -euo pipefail
1925
2026
if [ -z "$FIRST_CONFIG" ] || [ -z "$SECOND_CONFIG" ] || [ -z "$LINODE_TOKEN" ]; then
2127
echo "Error: FIRST_CONFIG, SECOND_CONFIG, and LINODE_TOKEN environment variables must be set"

e2e/test/fw-use-specified-nb/chainsaw-test.yaml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,12 @@ spec:
1111
- name: fwname
1212
value: (join('-', ['ccm-fwtest', env('CLUSTER_NAME')]))
1313
namespace: "fw-use-specified-nb"
14+
catch:
15+
- script:
16+
content: |
17+
set -euo pipefail
18+
echo "Test failed. Fetching CCM logs..."
19+
kubectl logs -n kube-system daemonsets/ccm-linode | grep "fw-use-specified-nb" | tail -100
1420
steps:
1521
- name: Create firewall, Create pods and services
1622
try:
@@ -19,7 +25,7 @@ spec:
1925
- name: FWLABEL
2026
value: ($fwname)
2127
content: |
22-
set -e
28+
set -euo pipefail
2329
2430
create_fw=$(curl -s --write-out "%{http_code}\n" --output /dev/null --request POST \
2531
-H "Authorization: Bearer $LINODE_TOKEN" \
@@ -79,7 +85,7 @@ spec:
7985
- name: FWLABEL
8086
value: ($fwname)
8187
content: |
82-
set -e
88+
set -euo pipefail
8389
re='^[0-9]+$'
8490
8591
fwid=$(curl -s \

e2e/test/lb-created-with-invalid-ip/chainsaw-test.yaml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,18 @@ metadata:
88
lke:
99
spec:
1010
namespace: "lb-created-with-invalid-ip"
11+
catch:
12+
- script:
13+
content: |
14+
set -euo pipefail
15+
echo "Test failed. Fetching CCM logs..."
16+
kubectl logs -n kube-system daemonsets/ccm-linode | grep "lb-created-with-invalid-ip" | tail -100
1117
steps:
1218
- name: create reserved ip and nodebalancer resources
1319
try:
1420
- script:
1521
content: |
16-
set -e
22+
set -euo pipefail
1723
1824
invalid_ip="100.1000.1000.1000"
1925
@@ -41,7 +47,7 @@ spec:
4147
cleanup:
4248
- script:
4349
content: |
44-
set -e
50+
set -euo pipefail
4551
4652
delete_cm=$(kubectl delete configmap invalid-ip-config -n $NAMESPACE)
4753
if [[ "$delete_cm" == "configmap \"invalid-ip-config\" deleted" ]]; then
@@ -66,7 +72,7 @@ spec:
6672
try:
6773
- script:
6874
content: |
69-
set -e
75+
set -euo pipefail
7076
sleep 30
7177
invalid_ip=$(kubectl get configmap invalid-ip-config -o=jsonpath='{.data.InvalidIP}' -n $NAMESPACE)
7278
if [[ -z "$invalid_ip" ]]; then

e2e/test/lb-created-with-new-nb-id/chainsaw-test.yaml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@ metadata:
88
lke:
99
spec:
1010
namespace: "lb-created-with-new-nb-id"
11+
catch:
12+
- script:
13+
content: |
14+
set -euo pipefail
15+
echo "Test failed. Fetching CCM logs..."
16+
kubectl logs -n kube-system daemonsets/ccm-linode | grep "lb-created-with-new-nb-id" | tail -100
1117
steps:
1218
- name: Create dummy service
1319
try:
@@ -34,7 +40,7 @@ spec:
3440
- name: nbconf
3541
value: (json_parse($stdout))
3642
content: |
37-
set -e
43+
set -euo pipefail
3844
3945
re='^[0-9]+$'
4046
LABEL="ccm-$(head /dev/urandom | tr -dc 'a-z0-9' | head -c 5)"
@@ -80,7 +86,7 @@ spec:
8086
try:
8187
- script:
8288
content: |
83-
set -e
89+
set -euo pipefail
8490
8591
expectedId=$(kubectl get svc svc-test -n $NAMESPACE -o json | jq -r .metadata.annotations[])
8692
nbid=$(KUBECONFIG=$KUBECONFIG NAMESPACE=$NAMESPACE LINODE_TOKEN=$LINODE_TOKEN ../scripts/get-nb-id.sh)
@@ -95,7 +101,7 @@ spec:
95101
try:
96102
- script:
97103
content: |
98-
set -e
104+
set -euo pipefail
99105
100106
re='^[0-9]+$'
101107

e2e/test/lb-created-with-reserved-ip-and-nb-id-annotations/chainsaw-test.yaml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@ metadata:
88
lke:
99
spec:
1010
namespace: "lb-created-with-reserved-and-nb-id-annotations"
11+
catch:
12+
- script:
13+
content: |
14+
set -euo pipefail
15+
echo "Test failed. Fetching CCM logs..."
16+
kubectl logs -n kube-system daemonsets/ccm-linode | grep "lb-created-with-reserved-and-nb-id-annotations" | tail -100
1117
steps:
1218
- name: Create dummy service
1319
try:
@@ -31,7 +37,7 @@ spec:
3137
try:
3238
- script:
3339
content: |
34-
set -e
40+
set -euo pipefail
3541
3642
re='^((25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})\.){3}(25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})$'
3743
@@ -88,7 +94,7 @@ spec:
8894
cleanup:
8995
- script:
9096
content: |
91-
set -e
97+
set -euo pipefail
9298
9399
reserved_ip=$(kubectl get configmap nb-config -o=jsonpath='{.data.Reserved_IP}' -n $NAMESPACE)
94100
if [ -z "$reserved_ip" ]; then
@@ -132,7 +138,7 @@ spec:
132138
try:
133139
- script:
134140
content: |
135-
set -e
141+
set -euo pipefail
136142
137143
reserved_ip=$(kubectl get configmap nb-config -o=jsonpath='{.data.Reserved_IP}' -n $NAMESPACE)
138144
if [ -z "$reserved_ip" ]; then
@@ -166,4 +172,4 @@ spec:
166172
(contains($stdout, 'No service ip found for service svc-test')): false
167173
(contains($stdout, 'IPs do not match')): false
168174
(contains($stdout, 'NB IDs do not match')): false
169-
175+

e2e/test/lb-created-with-reserved-ip-attached-to-nb/chainsaw-test.yaml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@ metadata:
88
lke:
99
spec:
1010
namespace: "lb-created-with-reserved-ip-attached-to-nb"
11+
catch:
12+
- script:
13+
content: |
14+
set -euo pipefail
15+
echo "Test failed. Fetching CCM logs..."
16+
kubectl logs -n kube-system daemonsets/ccm-linode | grep "lb-created-with-reserved-ip-attached-to-nb" | tail -100
1117
steps:
1218
- name: Create dummy service
1319
try:
@@ -32,7 +38,7 @@ spec:
3238
try:
3339
- script:
3440
content: |
35-
set -e
41+
set -euo pipefail
3642
3743
re='^((25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})\.){3}(25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})$'
3844
@@ -89,7 +95,7 @@ spec:
8995
cleanup:
9096
- script:
9197
content: |
92-
set -e
98+
set -euo pipefail
9399
94100
reserved_ip=$(kubectl get configmap nb-config -o=jsonpath='{.data.Reserved_IP}' -n $NAMESPACE)
95101
if [ -z "$reserved_ip" ]; then
@@ -150,7 +156,7 @@ spec:
150156
try:
151157
- script:
152158
content: |
153-
set -e
159+
set -euo pipefail
154160
155161
reserved_ip=$(kubectl get configmap nb-config -o=jsonpath='{.data.Reserved_IP}' -n $NAMESPACE)
156162
if [ -z "$reserved_ip" ]; then
@@ -179,4 +185,4 @@ spec:
179185
(contains($stdout, 'No reserved ip found in configmap')): false
180186
(contains($stdout, 'Service ip found for service svc-test. Expected to be empty')): false
181187
(contains($stdout, 'IPs do not match')): true
182-
188+

e2e/test/lb-created-with-reserved-ip-change-ip-concurrently/chainsaw-test.yaml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,19 @@ metadata:
88
lke:
99
spec:
1010
namespace: "lb-created-with-reserved-ip-change-ip-concurrently"
11+
catch:
12+
- script:
13+
content: |
14+
set -euo pipefail
15+
echo "Test failed. Fetching CCM logs..."
16+
kubectl logs -n kube-system daemonsets/ccm-linode | grep "lb-created-with-reserved-ip-change-ip-concurrently" | tail -100
1117
steps:
1218
- name: create reserved ip and nodebalancer resources
1319
try:
1420
- script:
1521
content: |
22+
set -euo pipefail
1623
#!/bin/bash
17-
set -e
1824
1925
re='^((25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})\.){3}(25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})$'
2026
@@ -72,7 +78,7 @@ spec:
7278
cleanup:
7379
- script:
7480
content: |
75-
set -e
81+
set -euo pipefail
7682
7783
reserved_ip=$(kubectl get configmap reserved-ip-config -o=jsonpath='{.data.ReservedIP}' -n $NAMESPACE)
7884
if [ -z "$reserved_ip" ]; then
@@ -133,8 +139,8 @@ spec:
133139
try:
134140
- script:
135141
content: |
142+
set -euo pipefail
136143
#!/bin/bash
137-
set -e
138144
139145
patch_annotation() {
140146
VALUE=$1
@@ -188,7 +194,7 @@ spec:
188194
try:
189195
- script:
190196
content: |
191-
set -e
197+
set -euo pipefail
192198
193199
reserved_ip=$(kubectl get configmap reserved-ip-config -o=jsonpath='{.data.ReservedIP}' -n $NAMESPACE)
194200
if [ -z "$reserved_ip" ]; then

e2e/test/lb-created-with-reserved-ip-change-ip-unreserved/chainsaw-test.yaml

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,19 @@ metadata:
88
lke:
99
spec:
1010
namespace: "lb-created-with-reserved-ip-change-ip-unreserved"
11+
catch:
12+
- script:
13+
content: |
14+
set -euo pipefail
15+
echo "Test failed. Fetching CCM logs..."
16+
kubectl logs -n kube-system daemonsets/ccm-linode | grep "lb-created-with-reserved-ip-change-ip-unreserved" | tail -100
1117
steps:
1218
- name: create reserved ip and nodebalancer resources
1319
try:
1420
- script:
1521
content: |
22+
set -euo pipefail
1623
#!/bin/bash
17-
set -e
1824
1925
re='^((25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})\.){3}(25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})$'
2026
@@ -57,7 +63,7 @@ spec:
5763
cleanup:
5864
- script:
5965
content: |
60-
set -e
66+
set -euo pipefail
6167
6268
reserved_ip=$(kubectl get configmap reserved-ip-config -o=jsonpath='{.data.ReservedIP}' -n $NAMESPACE)
6369
if [ -z "$reserved_ip" ]; then
@@ -100,8 +106,8 @@ spec:
100106
try:
101107
- script:
102108
content: |
109+
set -euo pipefail
103110
#!/bin/bash
104-
set -e
105111
106112
reserved_ip=$(kubectl get configmap reserved-ip-config -o=jsonpath='{.data.ReservedIP}' -n $NAMESPACE)
107113
if [ -z "$reserved_ip" ]; then
@@ -145,7 +151,7 @@ spec:
145151
try:
146152
- script:
147153
content: |
148-
set -e
154+
set -euo pipefail
149155
150156
reserved_ip=$(kubectl get configmap reserved-ip-config -o=jsonpath='{.data.ReservedIP}' -n $NAMESPACE)
151157
if [ -z "$reserved_ip" ]; then
@@ -170,4 +176,4 @@ spec:
170176
(contains($stdout, 'No reserved ip found in configmap')): false
171177
(contains($stdout, 'No service ip found for service svc-test')): false
172178
(contains($stdout, 'IPs do not match')): false
173-
179+

0 commit comments

Comments
 (0)