Skip to content

Commit 75e397b

Browse files
committed
feat: add helm unit tests for new servicemonitor resource
1 parent 4d2baeb commit 75e397b

2 files changed

Lines changed: 82 additions & 0 deletions

File tree

charts/connaisseur/.helmignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,5 @@
2121
.idea/
2222
*.tmproj
2323
.vscode/
24+
# helm unittest suites
25+
tests/
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
suite: servicemonitor
2+
templates:
3+
- servicemonitor.yaml
4+
tests:
5+
- it: renders nothing when serviceMonitor is disabled (default)
6+
asserts:
7+
- hasDocuments:
8+
count: 0
9+
10+
- it: renders a ServiceMonitor when enabled
11+
set:
12+
kubernetes.serviceMonitor.enabled: true
13+
asserts:
14+
- hasDocuments:
15+
count: 1
16+
- isKind:
17+
of: ServiceMonitor
18+
- isAPIVersion:
19+
of: monitoring.coreos.com/v1
20+
- equal:
21+
path: metadata.name
22+
value: connaisseur-svc
23+
24+
- it: scrapes the http port over HTTPS at /metrics with default tlsConfig
25+
set:
26+
kubernetes.serviceMonitor.enabled: true
27+
asserts:
28+
- equal:
29+
path: spec.endpoints[0].port
30+
value: http
31+
- equal:
32+
path: spec.endpoints[0].scheme
33+
value: https
34+
- equal:
35+
path: spec.endpoints[0].path
36+
value: /metrics
37+
- equal:
38+
path: spec.endpoints[0].interval
39+
value: 30s
40+
- equal:
41+
path: spec.endpoints[0].scrapeTimeout
42+
value: 10s
43+
- equal:
44+
path: spec.endpoints[0].tlsConfig.insecureSkipVerify
45+
value: true
46+
47+
- it: targets the connaisseur service via selector labels
48+
set:
49+
kubernetes.serviceMonitor.enabled: true
50+
asserts:
51+
- equal:
52+
path: spec.selector.matchLabels["app.kubernetes.io/name"]
53+
value: connaisseur
54+
- equal:
55+
path: spec.namespaceSelector.matchNames[0]
56+
value: NAMESPACE
57+
58+
- it: merges additionalLabels into metadata labels
59+
set:
60+
kubernetes.serviceMonitor.enabled: true
61+
kubernetes.serviceMonitor.additionalLabels:
62+
release: kube-prometheus-stack
63+
asserts:
64+
- equal:
65+
path: metadata.labels.release
66+
value: kube-prometheus-stack
67+
68+
- it: honors a custom tlsConfig override
69+
set:
70+
kubernetes.serviceMonitor.enabled: true
71+
kubernetes.serviceMonitor.tlsConfig:
72+
serverName: connaisseur-svc.connaisseur.svc
73+
insecureSkipVerify: false
74+
asserts:
75+
- equal:
76+
path: spec.endpoints[0].tlsConfig.serverName
77+
value: connaisseur-svc.connaisseur.svc
78+
- equal:
79+
path: spec.endpoints[0].tlsConfig.insecureSkipVerify
80+
value: false

0 commit comments

Comments
 (0)