@@ -18,6 +18,9 @@ templates:
18
18
- secrets_st2auth.yaml
19
19
- secrets_st2chatops.yaml
20
20
21
+ # TODO: test initContainers that use st2.packs.images[].securityContext
22
+ # (there is no good way to select initContainers)
23
+
21
24
tests :
22
25
- it : Deployment and Job Pods+Containers have no SecurityContext by default
23
26
templates :
34
37
# job-st2-apikey-load
35
38
# job-st2-key-load
36
39
# job-st2-register-content
40
+ # job-ensure-packs-volumes-are-writable
37
41
# extra_hooks job
38
42
set :
39
43
st2chatops :
@@ -135,7 +139,16 @@ tests:
135
139
template : deployments.yaml
136
140
set :
137
141
st2 :
138
- packs : { sensors: [] } # ensure only 1 sensor
142
+ packs :
143
+ sensors : [] # ensure only 1 sensor
144
+ # images: &st2_packs_images
145
+ # - repository: index.docker.io/stackstorm
146
+ # name: st2packs
147
+ # tag: example
148
+ # securityContext: &st2packs_security_context
149
+ # capabilities:
150
+ # drop: [ALL]
151
+ # add: [kill, net_raw, chown, fowner]
139
152
rbac : { enabled: true } # enable rbac job
140
153
141
154
podSecurityContext : *global_pod_security_context
@@ -159,8 +172,14 @@ tests:
159
172
securityContext : *security_context_override
160
173
161
174
st2client :
162
- podSecurityContext : *pod_security_context_override
163
- securityContext : *security_context_override
175
+ podSecurityContext : &pod_security_context_override_2
176
+ fsGroup : 8888
177
+ supplementalGroups : [4444]
178
+ securityContext : &security_context_override_2
179
+ capabilities :
180
+ drop : [ALL]
181
+ add : [kill, net_raw, chown]
182
+
164
183
asserts :
165
184
- hasDocuments :
166
185
count : 13
@@ -231,16 +250,201 @@ tests:
231
250
# st2client pod
232
251
- notEqual : *global_pod_security_context_assert
233
252
documentIndex : 12
253
+ - notEqual : *override_pod_security_context_assert
254
+ documentIndex : 12
255
+ - equal : &override_pod_security_context_assert_2
256
+ path : spec.template.spec.securityContext
257
+ value : *pod_security_context_override_2
258
+ documentIndex : 12
259
+
260
+ # st2client container
261
+ - notEqual : *global_container0_security_context_assert
262
+ documentIndex : 12
263
+ - notEqual : *override_container0_security_context_assert
264
+ documentIndex : 12
265
+ - equal : &override_container0_security_context_assert_2
266
+ path : spec.template.spec.containers[0].securityContext
267
+ value : *security_context_override_2
268
+ documentIndex : 12
269
+ # path can only select one element, not all initContainers (if present).
270
+ # - notEqual: *global_initcontainers_security_context_assert
271
+ # documentIndex: 12
272
+ # - notEqual: *override_initcontainers_security_context_assert
273
+ # documentIndex: 12
274
+ # - equal: &override_initcontainers_security_context_assert_2
275
+ # path: spec.template.spec.initContainers[].securityContext
276
+ # value: *security_context_override
277
+ # documentIndex: 12
278
+
279
+ - it : st2client Deployment Pod+Containers default to st2actionrunner SecurityContext overrides
280
+ template : deployments.yaml
281
+ set :
282
+ st2 :
283
+ packs :
284
+ sensors : [] # ensure only 1 sensor
285
+ # images: *st2_packs_images
286
+ rbac : { enabled: true } # enable rbac job
287
+
288
+ podSecurityContext : *global_pod_security_context
289
+ securityContext : *global_security_context
290
+
291
+ st2actionrunner :
292
+ podSecurityContext : *pod_security_context_override
293
+ securityContext : *security_context_override
294
+
295
+ # st2client: no override defined
296
+
297
+ asserts :
298
+ - hasDocuments :
299
+ count : 13
300
+
301
+ # st2client pod
302
+ - notEqual : *global_pod_security_context_assert
303
+ documentIndex : 12
304
+ - notEqual : *override_pod_security_context_assert_2
305
+ documentIndex : 12
234
306
- equal : *override_pod_security_context_assert
235
307
documentIndex : 12
236
308
237
309
# st2client container
238
310
- notEqual : *global_container0_security_context_assert
239
311
documentIndex : 12
312
+ - notEqual : *override_container0_security_context_assert_2
313
+ documentIndex : 12
240
314
- equal : *override_container0_security_context_assert
241
315
documentIndex : 12
242
316
# path can only select one element, not all initContainers (if present).
243
317
# - notEqual: *global_initcontainers_security_context_assert
244
318
# documentIndex: 12
319
+ # - notEqual: *override_initcontainers_security_context_assert_2
320
+ # documentIndex: 12
245
321
# - equal: *override_initcontainers_security_context_assert
246
322
# documentIndex: 12
323
+
324
+ # overrides for register-content job and extra_hooks job(s)
325
+ # document indexes: 3, 5
326
+
327
+ - it : extra_hooks Jobs Pod+Containers accept SecurityContext overrides
328
+ template : jobs.yaml
329
+ set :
330
+ st2 :
331
+ packs :
332
+ sensors : [] # ensure only 1 sensor
333
+ images : []
334
+ volumes : *volumes_enabled
335
+ configs : {} # has one core.yaml config file by default (dicts get merged)
336
+ rbac : { enabled: true } # enable rbac job
337
+
338
+ podSecurityContext : *global_pod_security_context
339
+ securityContext : *global_security_context
340
+
341
+ st2actionrunner :
342
+ podSecurityContext : *pod_security_context_override
343
+ securityContext : *security_context_override
344
+
345
+ jobs :
346
+ extra_hooks :
347
+ - name : upgrade-warning
348
+ hook : pre-upgrade, pre-rollback
349
+ hook_weight : -5
350
+ podSecurityContext : *pod_security_context_override_2
351
+ securityContext : *security_context_override_2
352
+
353
+ asserts :
354
+ - hasDocuments :
355
+ count : 6
356
+
357
+ # extra_hooks job pod
358
+ - notEqual : *global_pod_security_context_assert
359
+ documentIndex : 5
360
+ - notEqual : *override_pod_security_context_assert
361
+ documentIndex : 5
362
+ - equal : *override_pod_security_context_assert_2
363
+ documentIndex : 5
364
+
365
+ # extra_hooks job container
366
+ - notEqual : *global_container0_security_context_assert
367
+ documentIndex : 5
368
+ - notEqual : *override_container0_security_context_assert
369
+ documentIndex : 5
370
+ - equal : *override_container0_security_context_assert_2
371
+ documentIndex : 5
372
+ # path can only select one element, not all initContainers (if present).
373
+ # - notEqual: *global_initcontainers_security_context_assert
374
+ # documentIndex: 5
375
+ # - notEqual: *override_initcontainers_security_context_assert
376
+ # documentIndex: 5
377
+ # - equal: *override_initcontainers_security_context_assert_2
378
+ # documentIndex: 5
379
+
380
+ - it : register-content and extra_hooks Jobs Pod+Containers default to st2actionrunner SecurityContext overrides
381
+ template : jobs.yaml
382
+ set :
383
+ st2 :
384
+ packs :
385
+ sensors : [] # ensure only 1 sensor
386
+ images : []
387
+ volumes : *volumes_enabled
388
+ configs : {} # has one core.yaml config file by default (dicts get merged)
389
+ rbac : { enabled: true } # enable rbac job
390
+
391
+ podSecurityContext : *global_pod_security_context
392
+ securityContext : *global_security_context
393
+
394
+ st2actionrunner :
395
+ podSecurityContext : *pod_security_context_override
396
+ securityContext : *security_context_override
397
+
398
+ jobs :
399
+ extra_hooks : *jobs_extra_hooks
400
+ # does not override podSecurityContext or securityContext
401
+
402
+ asserts :
403
+ - hasDocuments :
404
+ count : 6
405
+
406
+ # job-register-content pod
407
+ - notEqual : *global_pod_security_context_assert
408
+ documentIndex : 3
409
+ - notEqual : *override_pod_security_context_assert_2
410
+ documentIndex : 3
411
+ - equal : *override_pod_security_context_assert
412
+ documentIndex : 3
413
+
414
+ # job-register-content container
415
+ - notEqual : *global_container0_security_context_assert
416
+ documentIndex : 3
417
+ - notEqual : *override_container0_security_context_assert_2
418
+ documentIndex : 3
419
+ - equal : *override_container0_security_context_assert
420
+ documentIndex : 3
421
+ # path can only select one element, not all initContainers (if present).
422
+ # - notEqual: *global_initcontainers_security_context_assert
423
+ # documentIndex: 3
424
+ # - notEqual: *override_initcontainers_security_context_assert_2
425
+ # documentIndex: 3
426
+ # - equal: *override_initcontainers_security_context_assert
427
+ # documentIndex: 3
428
+
429
+ # extra_hooks job pod
430
+ - notEqual : *global_pod_security_context_assert
431
+ documentIndex : 5
432
+ - notEqual : *override_pod_security_context_assert_2
433
+ documentIndex : 5
434
+ - equal : *override_pod_security_context_assert
435
+ documentIndex : 5
436
+
437
+ # extra_hooks job container
438
+ - notEqual : *global_container0_security_context_assert
439
+ documentIndex : 5
440
+ - notEqual : *override_container0_security_context_assert_2
441
+ documentIndex : 5
442
+ - equal : *override_container0_security_context_assert
443
+ documentIndex : 5
444
+ # path can only select one element, not all initContainers (if present).
445
+ # - notEqual: *global_initcontainers_security_context_assert
446
+ # documentIndex: 5
447
+ # - notEqual: *override_initcontainers_security_context_assert_2
448
+ # documentIndex: 5
449
+ # - equal: *override_initcontainers_security_context_assert
450
+ # documentIndex: 5
0 commit comments