@@ -18,6 +18,9 @@ templates:
1818 - secrets_st2auth.yaml
1919 - secrets_st2chatops.yaml
2020
21+ # TODO: test initContainers that use st2.packs.images[].securityContext
22+ # (there is no good way to select initContainers)
23+
2124tests :
2225 - it : Deployment and Job Pods+Containers have no SecurityContext by default
2326 templates :
3437 # job-st2-apikey-load
3538 # job-st2-key-load
3639 # job-st2-register-content
40+ # job-ensure-packs-volumes-are-writable
3741 # extra_hooks job
3842 set :
3943 st2chatops :
@@ -135,7 +139,16 @@ tests:
135139 template : deployments.yaml
136140 set :
137141 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]
139152 rbac : { enabled: true } # enable rbac job
140153
141154 podSecurityContext : *global_pod_security_context
@@ -159,8 +172,14 @@ tests:
159172 securityContext : *security_context_override
160173
161174 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+
164183 asserts :
165184 - hasDocuments :
166185 count : 13
@@ -231,16 +250,201 @@ tests:
231250 # st2client pod
232251 - notEqual : *global_pod_security_context_assert
233252 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
234306 - equal : *override_pod_security_context_assert
235307 documentIndex : 12
236308
237309 # st2client container
238310 - notEqual : *global_container0_security_context_assert
239311 documentIndex : 12
312+ - notEqual : *override_container0_security_context_assert_2
313+ documentIndex : 12
240314 - equal : *override_container0_security_context_assert
241315 documentIndex : 12
242316 # path can only select one element, not all initContainers (if present).
243317 # - notEqual: *global_initcontainers_security_context_assert
244318 # documentIndex: 12
319+ # - notEqual: *override_initcontainers_security_context_assert_2
320+ # documentIndex: 12
245321 # - equal: *override_initcontainers_security_context_assert
246322 # 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