Skip to content

Commit a8ca314

Browse files
authored
refactor tests to simplify / DRY label tests (#354)
1 parent eedb404 commit a8ca314

File tree

2 files changed

+74
-192
lines changed

2 files changed

+74
-192
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
## In Development
44
* BREAKING: Use the standardized labels recommended in the Helm docs. You can use `migrations/v1.0/standardize-labels.sh` to prepare an existing cluster before running `helm update`. (#351) (by @cognifloyd)
55
* Drop support for `networking.k8s.io/v1beta1` which was removed in kubernetes v1.22 (EOL 2022-10-28) (#353) (by @cognifloyd)
6+
* Reduce duplication in label tests (#354) (by @cognifloyd)
67

78
## v0.110.0
89
* Switch st2 to `v3.8` as a new default stable version (#347)

tests/unit/labels_test.yaml

Lines changed: 73 additions & 192 deletions
Original file line numberDiff line numberDiff line change
@@ -63,48 +63,48 @@ tests:
6363
- isNotNull:
6464
path: spec.template.metadata.labels.[app.kubernetes.io/name]
6565

66-
- equal:
66+
- equal: &metadata_labels_instance
6767
path: metadata.labels.[app.kubernetes.io/instance]
6868
value: some-release-name
6969
- equal:
7070
path: spec.selector.matchLabels.[app.kubernetes.io/instance]
7171
value: some-release-name
72-
- equal:
72+
- equal: &spec_template_metadata_labels_instance
7373
path: spec.template.metadata.labels.[app.kubernetes.io/instance]
7474
value: some-release-name
7575

76-
- matchRegex:
76+
- matchRegex: &regex_metadata_labels_component_backend_or_frontend
7777
path: metadata.labels.[app.kubernetes.io/component]
7878
pattern: ^(backend|frontend)$
79-
- matchRegex:
79+
- matchRegex: &regex_spec_template_metadata_labels_component_backend_or_frontend
8080
path: spec.template.metadata.labels.[app.kubernetes.io/component]
8181
pattern: ^(backend|frontend)$
8282

83-
- equal:
83+
- equal: &metadata_labels_part_of
8484
path: metadata.labels.[app.kubernetes.io/part-of]
8585
value: stackstorm
86-
- equal:
86+
- equal: &spec_template_metadata_labels_part_of
8787
path: spec.template.metadata.labels.[app.kubernetes.io/part-of]
8888
value: stackstorm
8989

90-
- equal:
90+
- equal: &metadata_labels_app_version
9191
path: metadata.labels.[app.kubernetes.io/version]
9292
value: *appVersion
93-
- equal:
93+
- equal: &spec_template_metadata_labels_app_version
9494
path: spec.template.metadata.labels.[app.kubernetes.io/version]
9595
value: *appVersion
9696

97-
- equal:
97+
- equal: &metadata_labels_chart
9898
path: metadata.labels.[helm.sh/chart]
9999
value: stackstorm-ha-1.0.999
100-
- equal:
100+
- equal: &spec_template_metadata_labels_chart
101101
path: spec.template.metadata.labels.[helm.sh/chart]
102102
value: stackstorm-ha-1.0.999
103103

104-
- equal:
104+
- equal: &metadata_labels_managed_by
105105
path: metadata.labels.[app.kubernetes.io/managed-by]
106106
value: Helm
107-
- equal:
107+
- equal: &spec_template_metadata_labels_managed_by
108108
path: spec.template.metadata.labels.[app.kubernetes.io/managed-by]
109109
value: Helm
110110

@@ -140,47 +140,23 @@ tests:
140140
- isNotNull:
141141
path: spec.template.metadata.labels.[app.kubernetes.io/name]
142142

143-
- equal:
144-
path: metadata.labels.[app.kubernetes.io/instance]
145-
value: some-release-name
146-
- equal:
147-
path: spec.template.metadata.labels.[app.kubernetes.io/instance]
148-
value: some-release-name
143+
- equal: *metadata_labels_instance
144+
- equal: *spec_template_metadata_labels_instance
149145

150-
- matchRegex:
151-
path: metadata.labels.[app.kubernetes.io/component]
152-
pattern: ^(backend|frontend)$
153-
- matchRegex:
154-
path: spec.template.metadata.labels.[app.kubernetes.io/component]
155-
pattern: ^(backend|frontend)$
146+
- matchRegex: *regex_metadata_labels_component_backend_or_frontend
147+
- matchRegex: *regex_spec_template_metadata_labels_component_backend_or_frontend
156148

157-
- equal:
158-
path: metadata.labels.[app.kubernetes.io/part-of]
159-
value: stackstorm
160-
- equal:
161-
path: spec.template.metadata.labels.[app.kubernetes.io/part-of]
162-
value: stackstorm
149+
- equal: *metadata_labels_part_of
150+
- equal: *spec_template_metadata_labels_part_of
163151

164-
- equal:
165-
path: metadata.labels.[app.kubernetes.io/version]
166-
value: *appVersion
167-
- equal:
168-
path: spec.template.metadata.labels.[app.kubernetes.io/version]
169-
value: *appVersion
152+
- equal: *metadata_labels_app_version
153+
- equal: *spec_template_metadata_labels_app_version
170154

171-
- equal:
172-
path: metadata.labels.[helm.sh/chart]
173-
value: stackstorm-ha-1.0.999
174-
- equal:
175-
path: spec.template.metadata.labels.[helm.sh/chart]
176-
value: stackstorm-ha-1.0.999
155+
- equal: *metadata_labels_chart
156+
- equal: *spec_template_metadata_labels_chart
177157

178-
- equal:
179-
path: metadata.labels.[app.kubernetes.io/managed-by]
180-
value: Helm
181-
- equal:
182-
path: spec.template.metadata.labels.[app.kubernetes.io/managed-by]
183-
value: Helm
158+
- equal: *metadata_labels_managed_by
159+
- equal: *spec_template_metadata_labels_managed_by
184160

185161
- it: Services have required labels
186162
template: services.yaml
@@ -195,24 +171,12 @@ tests:
195171

196172
- isNotNull:
197173
path: metadata.labels.[app.kubernetes.io/name]
198-
- equal:
199-
path: metadata.labels.[app.kubernetes.io/instance]
200-
value: some-release-name
201-
- matchRegex:
202-
path: metadata.labels.[app.kubernetes.io/component]
203-
pattern: ^(backend|frontend)$
204-
- equal:
205-
path: metadata.labels.[app.kubernetes.io/part-of]
206-
value: stackstorm
207-
- equal:
208-
path: metadata.labels.[app.kubernetes.io/version]
209-
value: *appVersion
210-
- equal:
211-
path: metadata.labels.[helm.sh/chart]
212-
value: stackstorm-ha-1.0.999
213-
- equal:
214-
path: metadata.labels.[app.kubernetes.io/managed-by]
215-
value: Helm
174+
- equal: *metadata_labels_instance
175+
- matchRegex: *regex_metadata_labels_component_backend_or_frontend
176+
- equal: *metadata_labels_part_of
177+
- equal: *metadata_labels_app_version
178+
- equal: *metadata_labels_chart
179+
- equal: *metadata_labels_managed_by
216180

217181
- it: ServiceAccount has required labels
218182
template: service-account.yaml
@@ -226,24 +190,14 @@ tests:
226190
- equal:
227191
path: metadata.labels.[app.kubernetes.io/name]
228192
value: stackstorm-ha
229-
- equal:
230-
path: metadata.labels.[app.kubernetes.io/instance]
231-
value: some-release-name
232-
- equal:
193+
- equal: *metadata_labels_instance
194+
- equal: &metadata_labels_component_backend
233195
path: metadata.labels.[app.kubernetes.io/component]
234196
value: backend
235-
- equal:
236-
path: metadata.labels.[app.kubernetes.io/part-of]
237-
value: stackstorm
238-
- equal:
239-
path: metadata.labels.[app.kubernetes.io/version]
240-
value: *appVersion
241-
- equal:
242-
path: metadata.labels.[helm.sh/chart]
243-
value: stackstorm-ha-1.0.999
244-
- equal:
245-
path: metadata.labels.[app.kubernetes.io/managed-by]
246-
value: Helm
197+
- equal: *metadata_labels_part_of
198+
- equal: *metadata_labels_app_version
199+
- equal: *metadata_labels_chart
200+
- equal: *metadata_labels_managed_by
247201

248202
- it: ServiceAccount accepts custom labels
249203
template: service-account.yaml
@@ -278,24 +232,14 @@ tests:
278232
- equal:
279233
path: metadata.labels.[app.kubernetes.io/name]
280234
value: ingress
281-
- equal:
282-
path: metadata.labels.[app.kubernetes.io/instance]
283-
value: some-release-name
235+
- equal: *metadata_labels_instance
284236
- equal:
285237
path: metadata.labels.[app.kubernetes.io/component]
286238
value: frontend
287-
- equal:
288-
path: metadata.labels.[app.kubernetes.io/part-of]
289-
value: stackstorm
290-
- equal:
291-
path: metadata.labels.[app.kubernetes.io/version]
292-
value: *appVersion
293-
- equal:
294-
path: metadata.labels.[helm.sh/chart]
295-
value: stackstorm-ha-1.0.999
296-
- equal:
297-
path: metadata.labels.[app.kubernetes.io/managed-by]
298-
value: Helm
239+
- equal: *metadata_labels_part_of
240+
- equal: *metadata_labels_app_version
241+
- equal: *metadata_labels_chart
242+
- equal: *metadata_labels_managed_by
299243

300244
- it: ConfigMaps and Secrets have required labels
301245
templates:
@@ -316,27 +260,15 @@ tests:
316260
asserts:
317261
- hasDocuments:
318262
count: 1
319-
- equal:
263+
- equal: &metadata_labels_app_eq_st2
320264
path: metadata.labels.[app.kubernetes.io/name]
321265
value: st2
322-
- equal:
323-
path: metadata.labels.[app.kubernetes.io/instance]
324-
value: some-release-name
325-
- equal:
326-
path: metadata.labels.[app.kubernetes.io/component]
327-
value: backend
328-
- equal:
329-
path: metadata.labels.[app.kubernetes.io/part-of]
330-
value: stackstorm
331-
- equal:
332-
path: metadata.labels.[app.kubernetes.io/version]
333-
value: *appVersion
334-
- equal:
335-
path: metadata.labels.[helm.sh/chart]
336-
value: stackstorm-ha-1.0.999
337-
- equal:
338-
path: metadata.labels.[app.kubernetes.io/managed-by]
339-
value: Helm
266+
- equal: *metadata_labels_instance
267+
- equal: *metadata_labels_component_backend
268+
- equal: *metadata_labels_part_of
269+
- equal: *metadata_labels_app_version
270+
- equal: *metadata_labels_chart
271+
- equal: *metadata_labels_managed_by
340272

341273
- it: RBAC ConfigMaps have required labels
342274
templates:
@@ -349,27 +281,13 @@ tests:
349281
asserts:
350282
- hasDocuments:
351283
count: 3
352-
- equal:
353-
path: metadata.labels.[app.kubernetes.io/name]
354-
value: st2
355-
- equal:
356-
path: metadata.labels.[app.kubernetes.io/instance]
357-
value: some-release-name
358-
- equal:
359-
path: metadata.labels.[app.kubernetes.io/component]
360-
value: backend
361-
- equal:
362-
path: metadata.labels.[app.kubernetes.io/part-of]
363-
value: stackstorm
364-
- equal:
365-
path: metadata.labels.[app.kubernetes.io/version]
366-
value: *appVersion
367-
- equal:
368-
path: metadata.labels.[helm.sh/chart]
369-
value: stackstorm-ha-1.0.999
370-
- equal:
371-
path: metadata.labels.[app.kubernetes.io/managed-by]
372-
value: Helm
284+
- equal: *metadata_labels_app_eq_st2
285+
- equal: *metadata_labels_instance
286+
- equal: *metadata_labels_component_backend
287+
- equal: *metadata_labels_part_of
288+
- equal: *metadata_labels_app_version
289+
- equal: *metadata_labels_chart
290+
- equal: *metadata_labels_managed_by
373291

374292
- it: st2chatops Secret has required labels
375293
templates:
@@ -384,28 +302,15 @@ tests:
384302
- equal:
385303
path: metadata.labels.[app.kubernetes.io/name]
386304
value: st2chatops
387-
- equal:
388-
path: metadata.labels.[app.kubernetes.io/instance]
389-
value: some-release-name
390-
- equal:
391-
path: metadata.labels.[app.kubernetes.io/component]
392-
value: backend
393-
- equal:
394-
path: metadata.labels.[app.kubernetes.io/part-of]
395-
value: stackstorm
396-
- equal:
397-
path: metadata.labels.[app.kubernetes.io/version]
398-
value: *appVersion
399-
- equal:
400-
path: metadata.labels.[helm.sh/chart]
401-
value: stackstorm-ha-1.0.999
402-
- equal:
403-
path: metadata.labels.[app.kubernetes.io/managed-by]
404-
value: Helm
305+
- equal: *metadata_labels_instance
306+
- equal: *metadata_labels_component_backend
307+
- equal: *metadata_labels_part_of
308+
- equal: *metadata_labels_app_version
309+
- equal: *metadata_labels_chart
310+
- equal: *metadata_labels_managed_by
405311

406312
- it: st2web ConfigMap has required labels
407313
templates:
408-
#- configmaps_post-start-scripts.yaml # needs postStartScript for each service
409314
- configmaps_st2web.yaml
410315
chart: *chart
411316
set:
@@ -421,24 +326,14 @@ tests:
421326
- equal:
422327
path: metadata.labels.[app.kubernetes.io/name]
423328
value: st2 # should this be st2web?
424-
- equal:
425-
path: metadata.labels.[app.kubernetes.io/instance]
426-
value: some-release-name
329+
- equal: *metadata_labels_instance
427330
- equal:
428331
path: metadata.labels.[app.kubernetes.io/component]
429332
value: backend # should this be frontend?
430-
- equal:
431-
path: metadata.labels.[app.kubernetes.io/part-of]
432-
value: stackstorm
433-
- equal:
434-
path: metadata.labels.[app.kubernetes.io/version]
435-
value: *appVersion
436-
- equal:
437-
path: metadata.labels.[helm.sh/chart]
438-
value: stackstorm-ha-1.0.999
439-
- equal:
440-
path: metadata.labels.[app.kubernetes.io/managed-by]
441-
value: Helm
333+
- equal: *metadata_labels_part_of
334+
- equal: *metadata_labels_app_version
335+
- equal: *metadata_labels_chart
336+
- equal: *metadata_labels_managed_by
442337

443338
- it: post-start-script ConfigMaps have required labels
444339
templates:
@@ -464,24 +359,10 @@ tests:
464359
asserts:
465360
- hasDocuments:
466361
count: 14
467-
- equal:
468-
path: metadata.labels.[app.kubernetes.io/name]
469-
value: st2
470-
- equal:
471-
path: metadata.labels.[app.kubernetes.io/instance]
472-
value: some-release-name
473-
- equal:
474-
path: metadata.labels.[app.kubernetes.io/component]
475-
value: backend
476-
- equal:
477-
path: metadata.labels.[app.kubernetes.io/part-of]
478-
value: stackstorm
479-
- equal:
480-
path: metadata.labels.[app.kubernetes.io/version]
481-
value: *appVersion
482-
- equal:
483-
path: metadata.labels.[helm.sh/chart]
484-
value: stackstorm-ha-1.0.999
485-
- equal:
486-
path: metadata.labels.[app.kubernetes.io/managed-by]
487-
value: Helm
362+
- equal: *metadata_labels_app_eq_st2
363+
- equal: *metadata_labels_instance
364+
- equal: *metadata_labels_component_backend
365+
- equal: *metadata_labels_part_of
366+
- equal: *metadata_labels_app_version
367+
- equal: *metadata_labels_chart
368+
- equal: *metadata_labels_managed_by

0 commit comments

Comments
 (0)