envFixed_test.yaml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414
  1. suite: container envFixed test
  2. templates:
  3. - common.yaml
  4. tests:
  5. - it: should create the correct fixed envs
  6. set:
  7. image: &image
  8. repository: nginx
  9. tag: 1.19.0
  10. pullPolicy: IfNotPresent
  11. TZ: Europe/London
  12. workload:
  13. workload-name:
  14. enabled: true
  15. primary: true
  16. type: Deployment
  17. podSpec:
  18. containers:
  19. container-name1:
  20. enabled: true
  21. primary: true
  22. imageSelector: image
  23. probes: &probes
  24. liveness:
  25. enabled: false
  26. readiness:
  27. enabled: false
  28. startup:
  29. enabled: false
  30. asserts:
  31. - documentIndex: &deploymentDoc 0
  32. isKind:
  33. of: Deployment
  34. - documentIndex: *deploymentDoc
  35. isAPIVersion:
  36. of: apps/v1
  37. - documentIndex: *deploymentDoc
  38. isSubset:
  39. path: spec.template.spec.containers[0]
  40. content:
  41. env:
  42. - name: TZ
  43. value: Europe/London
  44. - name: UMASK
  45. value: "002"
  46. - name: UMASK_SET
  47. value: "002"
  48. - name: S6_READ_ONLY_ROOT
  49. value: "1"
  50. - it: should create the correct fixed envs when running as root
  51. set:
  52. image: *image
  53. TZ: Europe/London
  54. securityContext:
  55. container:
  56. runAsUser: 0
  57. runAsGroup: 0
  58. runAsNonRoot: false
  59. workload:
  60. workload-name:
  61. enabled: true
  62. primary: true
  63. type: Deployment
  64. podSpec:
  65. containers:
  66. container-name1:
  67. enabled: true
  68. primary: true
  69. imageSelector: image
  70. probes: *probes
  71. asserts:
  72. - documentIndex: &deploymentDoc 0
  73. isKind:
  74. of: Deployment
  75. - documentIndex: *deploymentDoc
  76. isAPIVersion:
  77. of: apps/v1
  78. - documentIndex: *deploymentDoc
  79. isSubset:
  80. path: spec.template.spec.containers[0]
  81. content:
  82. env:
  83. - name: TZ
  84. value: Europe/London
  85. - name: UMASK
  86. value: "002"
  87. - name: UMASK_SET
  88. value: "002"
  89. - name: PUID
  90. value: "568"
  91. - name: USER_ID
  92. value: "568"
  93. - name: UID
  94. value: "568"
  95. - name: PGID
  96. value: "568"
  97. - name: GROUP_ID
  98. value: "568"
  99. - name: GID
  100. value: "568"
  101. - name: S6_READ_ONLY_ROOT
  102. value: "1"
  103. - it: should create the correct fixed envs when running as root and changed fsGroup
  104. set:
  105. image: *image
  106. TZ: Europe/London
  107. securityContext:
  108. container:
  109. runAsUser: 0
  110. runAsGroup: 0
  111. runAsNonRoot: false
  112. workload:
  113. workload-name:
  114. enabled: true
  115. primary: true
  116. type: Deployment
  117. podSpec:
  118. securityContext:
  119. fsGroup: 1000
  120. containers:
  121. container-name1:
  122. enabled: true
  123. primary: true
  124. imageSelector: image
  125. probes: *probes
  126. asserts:
  127. - documentIndex: &deploymentDoc 0
  128. isKind:
  129. of: Deployment
  130. - documentIndex: *deploymentDoc
  131. isAPIVersion:
  132. of: apps/v1
  133. - documentIndex: *deploymentDoc
  134. isSubset:
  135. path: spec.template.spec.containers[0]
  136. content:
  137. env:
  138. - name: TZ
  139. value: Europe/London
  140. - name: UMASK
  141. value: "002"
  142. - name: UMASK_SET
  143. value: "002"
  144. - name: PUID
  145. value: "568"
  146. - name: USER_ID
  147. value: "568"
  148. - name: UID
  149. value: "568"
  150. - name: PGID
  151. value: "1000"
  152. - name: GROUP_ID
  153. value: "1000"
  154. - name: GID
  155. value: "1000"
  156. - name: S6_READ_ONLY_ROOT
  157. value: "1"
  158. - it: should create the correct fixed envs when running as root and not readonly
  159. set:
  160. image: *image
  161. TZ: Europe/London
  162. securityContext:
  163. container:
  164. runAsUser: 0
  165. runAsGroup: 0
  166. runAsNonRoot: false
  167. readOnlyRootFilesystem: false
  168. workload:
  169. workload-name:
  170. enabled: true
  171. primary: true
  172. type: Deployment
  173. podSpec:
  174. containers:
  175. container-name1:
  176. enabled: true
  177. primary: true
  178. imageSelector: image
  179. probes: *probes
  180. asserts:
  181. - documentIndex: &deploymentDoc 0
  182. isKind:
  183. of: Deployment
  184. - documentIndex: *deploymentDoc
  185. isAPIVersion:
  186. of: apps/v1
  187. - documentIndex: *deploymentDoc
  188. isSubset:
  189. path: spec.template.spec.containers[0]
  190. content:
  191. env:
  192. - name: TZ
  193. value: Europe/London
  194. - name: UMASK
  195. value: "002"
  196. - name: UMASK_SET
  197. value: "002"
  198. - name: PUID
  199. value: "568"
  200. - name: USER_ID
  201. value: "568"
  202. - name: UID
  203. value: "568"
  204. - name: PGID
  205. value: "568"
  206. - name: GROUP_ID
  207. value: "568"
  208. - name: GID
  209. value: "568"
  210. - it: should create the correct fixed envs with GPU
  211. set:
  212. scaleGPU:
  213. - gpu:
  214. nvidia.com/gpu: 1
  215. targetSelector:
  216. workload-name:
  217. - container-name1
  218. image: *image
  219. TZ: Europe/London
  220. resources:
  221. NVIDIA_CAPS:
  222. - compute
  223. - video
  224. workload:
  225. workload-name:
  226. enabled: true
  227. primary: true
  228. type: Deployment
  229. podSpec:
  230. containers:
  231. container-name1:
  232. enabled: true
  233. primary: true
  234. imageSelector: image
  235. probes: *probes
  236. asserts:
  237. - documentIndex: &deploymentDoc 0
  238. isKind:
  239. of: Deployment
  240. - documentIndex: *deploymentDoc
  241. isAPIVersion:
  242. of: apps/v1
  243. - documentIndex: *deploymentDoc
  244. isSubset:
  245. path: spec.template.spec.containers[0]
  246. content:
  247. env:
  248. - name: TZ
  249. value: Europe/London
  250. - name: UMASK
  251. value: "002"
  252. - name: UMASK_SET
  253. value: "002"
  254. - name: NVIDIA_DRIVER_CAPABILITIES
  255. value: "compute,video"
  256. - name: S6_READ_ONLY_ROOT
  257. value: "1"
  258. - it: should create the correct fixed envs with GPU and overridden on container level
  259. set:
  260. scaleGPU:
  261. - gpu:
  262. nvidia.com/gpu: 1
  263. targetSelector:
  264. workload-name:
  265. - container-name1
  266. image: *image
  267. TZ: Europe/London
  268. resources:
  269. NVIDIA_CAPS:
  270. - compute
  271. - video
  272. workload:
  273. workload-name:
  274. enabled: true
  275. primary: true
  276. type: Deployment
  277. podSpec:
  278. containers:
  279. container-name1:
  280. enabled: true
  281. primary: true
  282. imageSelector: image
  283. probes: *probes
  284. fixedEnv:
  285. NVIDIA_CAPS:
  286. - all
  287. asserts:
  288. - documentIndex: &deploymentDoc 0
  289. isKind:
  290. of: Deployment
  291. - documentIndex: *deploymentDoc
  292. isAPIVersion:
  293. of: apps/v1
  294. - documentIndex: *deploymentDoc
  295. isSubset:
  296. path: spec.template.spec.containers[0]
  297. content:
  298. env:
  299. - name: TZ
  300. value: Europe/London
  301. - name: UMASK
  302. value: "002"
  303. - name: UMASK_SET
  304. value: "002"
  305. - name: NVIDIA_DRIVER_CAPABILITIES
  306. value: "all"
  307. - name: S6_READ_ONLY_ROOT
  308. value: "1"
  309. - it: should create the correct fixed envs with PUID set to 0 on container level
  310. set:
  311. image: *image
  312. workload:
  313. workload-name:
  314. enabled: true
  315. primary: true
  316. type: Deployment
  317. podSpec:
  318. containers:
  319. container-name1:
  320. enabled: true
  321. primary: true
  322. imageSelector: image
  323. probes: *probes
  324. fixedEnv:
  325. PUID: 0
  326. securityContext:
  327. runAsUser: 0
  328. runAsGroup: 0
  329. runAsNonRoot: false
  330. asserts:
  331. - documentIndex: &deploymentDoc 0
  332. isKind:
  333. of: Deployment
  334. - documentIndex: *deploymentDoc
  335. isAPIVersion:
  336. of: apps/v1
  337. - documentIndex: *deploymentDoc
  338. isSubset:
  339. path: spec.template.spec.containers[0]
  340. content:
  341. env:
  342. - name: TZ
  343. value: UTC
  344. - name: UMASK
  345. value: "002"
  346. - name: UMASK_SET
  347. value: "002"
  348. - name: PUID
  349. value: "0"
  350. - name: USER_ID
  351. value: "0"
  352. - name: UID
  353. value: "0"
  354. - name: PGID
  355. value: "568"
  356. - name: GROUP_ID
  357. value: "568"
  358. - name: GID
  359. value: "568"
  360. - name: S6_READ_ONLY_ROOT
  361. value: "1"
  362. # Failures
  363. - it: it should fail with NVIDIA_CAPS having invalid values
  364. set:
  365. image: *image
  366. workload:
  367. workload-name:
  368. enabled: true
  369. primary: true
  370. type: Deployment
  371. podSpec:
  372. containers:
  373. container-name1:
  374. enabled: true
  375. primary: true
  376. imageSelector: image
  377. probes: *probes
  378. fixedEnv:
  379. NVIDIA_CAPS:
  380. - invalid
  381. - compute
  382. asserts:
  383. - failedTemplate:
  384. errorMessage: Container - Expected <fixedEnv.NVIDIA_CAPS> entry to be one of [all, compute, utility, graphics, video], but got [invalid]
  385. - it: it should fail with NVIDIA_CAPS not having unique values
  386. set:
  387. image: *image
  388. workload:
  389. workload-name:
  390. enabled: true
  391. primary: true
  392. type: Deployment
  393. podSpec:
  394. containers:
  395. container-name1:
  396. enabled: true
  397. primary: true
  398. imageSelector: image
  399. probes: *probes
  400. fixedEnv:
  401. NVIDIA_CAPS:
  402. - compute
  403. - compute
  404. asserts:
  405. - failedTemplate:
  406. errorMessage: Container - Expected <fixedEnv.NVIDIA_CAPS> to have only unique values, but got [compute, compute]