Skip to content

Commit 5ab23e1

Browse files
committed
Refactor support export Kuttl tests and add README
1 parent 1024184 commit 5ab23e1

14 files changed

+251
-237
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# create a LimitRange
2+
apiVersion: v1
3+
kind: LimitRange
4+
metadata:
5+
name: kuttl-test-limitrange
6+
spec:
7+
limits:
8+
- type: PersistentVolumeClaim
9+
max:
10+
storage: 2Gi
11+
min:
12+
storage: 500Mi
13+
14+
---
15+
# create an Ingress
16+
apiVersion: networking.k8s.io/v1
17+
kind: Ingress
18+
metadata:
19+
name: kuttl-test-ingress
20+
annotations:
21+
nginx.ingress.kubernetes.io/rewrite-target: /
22+
spec:
23+
ingressClassName: simple-example
24+
rules:
25+
- http:
26+
paths:
27+
- path: /testpath
28+
pathType: Prefix
29+
backend:
30+
service:
31+
name: test
32+
port:
33+
number: 80
Lines changed: 6 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,9 @@
1-
apiVersion: postgres-operator.crunchydata.com/v1beta1
2-
kind: PostgresCluster
1+
apiVersion: v1
2+
kind: LimitRange
33
metadata:
4-
name: kuttl-support-monitoring-cluster
5-
spec:
6-
backups:
7-
pgbackrest:
8-
repos:
9-
- name: repo1
10-
volume:
11-
volumeClaimSpec:
12-
accessModes:
13-
- "ReadWriteOnce"
14-
resources:
15-
requests:
16-
storage: 1Gi
17-
instances:
18-
- dataVolumeClaimSpec:
19-
accessModes:
20-
- "ReadWriteOnce"
21-
resources:
22-
requests:
23-
storage: 1Gi
24-
replicas: 1
25-
postgresVersion: 14
26-
status:
27-
instances:
28-
- name: "00"
29-
readyReplicas: 1
30-
replicas: 1
31-
updatedReplicas: 1
32-
monitoring: {}
4+
name: kuttl-test-limitrange
335
---
34-
apiVersion: apps/v1
35-
kind: Deployment
6+
apiVersion: networking.k8s.io/v1
7+
kind: Ingress
368
metadata:
37-
name: crunchy-prometheus
38-
status:
39-
availableReplicas: 1
40-
observedGeneration: 1
41-
readyReplicas: 1
42-
replicas: 1
43-
updatedReplicas: 1
44-
---
45-
apiVersion: apps/v1
46-
kind: Deployment
47-
metadata:
48-
name: crunchy-grafana
49-
status:
50-
availableReplicas: 1
51-
observedGeneration: 1
52-
readyReplicas: 1
53-
replicas: 1
54-
updatedReplicas: 1
55-
---
56-
apiVersion: apps/v1
57-
kind: Deployment
58-
metadata:
59-
name: crunchy-alertmanager
60-
status:
61-
availableReplicas: 1
62-
observedGeneration: 1
63-
readyReplicas: 1
64-
replicas: 1
65-
updatedReplicas: 1
9+
name: kuttl-test-ingress

testing/kuttl/e2e/support-export/21--support_export.yaml

Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,42 +2,57 @@
22
apiVersion: kuttl.dev/v1beta1
33
kind: TestStep
44
commands:
5-
- script: kubectl-pgo --namespace $NAMESPACE support export kuttl-support-monitoring-cluster -o .
5+
- script: kubectl-pgo --namespace $NAMESPACE support export kuttl-support-cluster -o .
66
- script: tar -xf ./crunchy_k8s_support_export_*.tar.gz
77
- script: |
88
#!/bin/bash
99
10-
CLEANUP="rm -r ./kuttl-support-monitoring-cluster ./monitoring ./crunchy_k8s_support_export_*.tar.gz"
11-
CLUSTER_DIR="./kuttl-support-monitoring-cluster/logs/"
12-
MONITORING_DIR="./monitoring/logs/"
10+
CLEANUP="rm -r ./kuttl-support-cluster ./crunchy_k8s_support_export_*.tar.gz"
1311
14-
# check for exporter, prometheus, grafana and alertmanager logs
15-
found=$(find ${CLUSTER_DIR} -name "exporter" | wc -l)
16-
if [ "${found}" -eq 0 ]; then
17-
echo "exporter not found"
12+
# LimitRange directory and list file path
13+
LR_DIR="./kuttl-support-cluster/limitranges/"
14+
LR_LIST="${LR_DIR}list"
15+
16+
# check for limitrange object name
17+
LRO=$(awk 'NR==2 {print $1}' "${LR_LIST}")
18+
[[ "${LRO}" == 'kuttl-test-limitrange' ]] || {
19+
echo "Expected 'kuttl-test-limitrange' limitrange, got:"
20+
echo "${LRO}"
1821
eval "$CLEANUP"
1922
exit 1
20-
fi
23+
}
2124
22-
found=$(find ${MONITORING_DIR} -name "prometheus" | wc -l)
23-
if [ "${found}" -eq 0 ]; then
24-
echo "prometheus not found"
25+
# check for a .yaml file for the limitrange object
26+
LR_FILE="${LR_DIR}kuttl-test-limitrange.yaml"
27+
if [ ! -f ${LR_FILE} ]
28+
then
29+
echo "Expected directory with file, ${LR_FILE}, got:"
30+
ls ${LR_DIR}
2531
eval "$CLEANUP"
2632
exit 1
2733
fi
2834
29-
found=$(find ${MONITORING_DIR} -name "grafana" | wc -l)
30-
if [ "${found}" -eq 0 ]; then
31-
echo "grafana not found"
35+
# Ingress directory and list file path
36+
I_DIR="./kuttl-support-cluster/ingresses/"
37+
I_LIST="${I_DIR}list"
38+
39+
# check for ingress object name
40+
IO=$(awk 'NR==2 {print $1}' ${I_LIST})
41+
[[ "${IO}" == 'kuttl-test-ingress' ]] || {
42+
echo "Expected 'kuttl-test-ingress' ingress, got:"
43+
echo "${IO}"
3244
eval "$CLEANUP"
3345
exit 1
34-
fi
46+
}
3547
36-
found=$(find ${MONITORING_DIR} -name "alertmanager" | wc -l)
37-
if [ "${found}" -eq 0 ]; then
38-
echo "alertmanager not found"
48+
# check for a .yaml file for the ingress object
49+
I_FILE="${I_DIR}kuttl-test-ingress.yaml"
50+
if [ ! -f ${I_FILE} ]
51+
then
52+
echo "Expected directory with file, ${I_FILE}, got:"
53+
ls ${I_DIR}
3954
eval "$CLEANUP"
4055
exit 1
4156
fi
4257
43-
- script: rm -r ./kuttl-support-monitoring-cluster ./monitoring ./crunchy_k8s_support_export_*.tar.gz
58+
- script: rm -r ./kuttl-support-cluster ./crunchy_k8s_support_export_*.tar.gz

testing/kuttl/e2e/support-export/22--cleanup.yaml

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,9 @@ delete:
44
- apiVersion: postgres-operator.crunchydata.com/v1beta1
55
kind: PostgresCluster
66
name: kuttl-support-cluster
7-
- apiVersion: postgres-operator.crunchydata.com/v1beta1
8-
kind: PostgresCluster
9-
name: kuttl-support-monitoring-cluster
10-
- apiVersion: apps/v1
11-
kind: Deployment
12-
name: crunchy-prometheus
13-
- apiVersion: apps/v1
14-
kind: Deployment
15-
name: crunchy-grafana
16-
- apiVersion: apps/v1
17-
kind: Deployment
18-
name: crunchy-alertmanager
7+
- apiVersion: v1
8+
kind: LimitRange
9+
name: kuttl-test-limitrange
10+
- apiVersion: networking.k8s.io/v1
11+
kind: Ingress
12+
name: kuttl-test-ingress
Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,14 @@
1-
---
21
apiVersion: postgres-operator.crunchydata.com/v1beta1
32
kind: PostgresCluster
43
metadata:
54
name: kuttl-support-cluster
65
---
7-
apiVersion: postgres-operator.crunchydata.com/v1beta1
8-
kind: PostgresCluster
9-
metadata:
10-
name: kuttl-support-monitoring-cluster
11-
---
12-
apiVersion: apps/v1
13-
kind: Deployment
14-
metadata:
15-
name: crunchy-prometheus
16-
---
17-
apiVersion: apps/v1
18-
kind: Deployment
6+
apiVersion: v1
7+
kind: LimitRange
198
metadata:
20-
name: crunchy-grafana
9+
name: kuttl-test-limitrange
2110
---
22-
apiVersion: apps/v1
23-
kind: Deployment
11+
apiVersion: networking.k8s.io/v1
12+
kind: Ingress
2413
metadata:
25-
name: crunchy-alertmanager
14+
name: kuttl-test-ingress

testing/kuttl/e2e/support-export/20--create_cluster_with_monitoring.yaml renamed to testing/kuttl/e2e/support-export/30--create_cluster_with_monitoring.yaml

File renamed without changes.

testing/kuttl/e2e/support-export/30--create_cluster_with_other.yaml

Lines changed: 0 additions & 56 deletions
This file was deleted.

testing/kuttl/e2e/support-export/30-assert.yaml

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
apiVersion: postgres-operator.crunchydata.com/v1beta1
22
kind: PostgresCluster
33
metadata:
4-
name: kuttl-support-cluster-other
4+
name: kuttl-support-monitoring-cluster
55
spec:
66
backups:
77
pgbackrest:
@@ -29,13 +29,37 @@ status:
2929
readyReplicas: 1
3030
replicas: 1
3131
updatedReplicas: 1
32+
monitoring: {}
3233
---
33-
apiVersion: v1
34-
kind: LimitRange
34+
apiVersion: apps/v1
35+
kind: Deployment
3536
metadata:
36-
name: storagelimits
37+
name: crunchy-prometheus
38+
status:
39+
availableReplicas: 1
40+
observedGeneration: 1
41+
readyReplicas: 1
42+
replicas: 1
43+
updatedReplicas: 1
3744
---
38-
apiVersion: networking.k8s.io/v1
39-
kind: Ingress
45+
apiVersion: apps/v1
46+
kind: Deployment
4047
metadata:
41-
name: minimal-test-ingress
48+
name: crunchy-grafana
49+
status:
50+
availableReplicas: 1
51+
observedGeneration: 1
52+
readyReplicas: 1
53+
replicas: 1
54+
updatedReplicas: 1
55+
---
56+
apiVersion: apps/v1
57+
kind: Deployment
58+
metadata:
59+
name: crunchy-alertmanager
60+
status:
61+
availableReplicas: 1
62+
observedGeneration: 1
63+
readyReplicas: 1
64+
replicas: 1
65+
updatedReplicas: 1

0 commit comments

Comments
 (0)