envFixed_test.yaml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482
  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: NVIDIA_VISIBLE_DEVICES
  49. value: "void"
  50. - name: S6_READ_ONLY_ROOT
  51. value: "1"
  52. - it: should create the correct fixed envs when running as root
  53. set:
  54. image: *image
  55. TZ: Europe/London
  56. securityContext:
  57. container:
  58. runAsUser: 0
  59. runAsGroup: 0
  60. runAsNonRoot: false
  61. workload:
  62. workload-name:
  63. enabled: true
  64. primary: true
  65. type: Deployment
  66. podSpec:
  67. containers:
  68. container-name1:
  69. enabled: true
  70. primary: true
  71. imageSelector: image
  72. probes: *probes
  73. asserts:
  74. - documentIndex: &deploymentDoc 0
  75. isKind:
  76. of: Deployment
  77. - documentIndex: *deploymentDoc
  78. isAPIVersion:
  79. of: apps/v1
  80. - documentIndex: *deploymentDoc
  81. isSubset:
  82. path: spec.template.spec.containers[0]
  83. content:
  84. env:
  85. - name: TZ
  86. value: Europe/London
  87. - name: UMASK
  88. value: "002"
  89. - name: UMASK_SET
  90. value: "002"
  91. - name: NVIDIA_VISIBLE_DEVICES
  92. value: "void"
  93. - name: PUID
  94. value: "568"
  95. - name: USER_ID
  96. value: "568"
  97. - name: UID
  98. value: "568"
  99. - name: PGID
  100. value: "568"
  101. - name: GROUP_ID
  102. value: "568"
  103. - name: GID
  104. value: "568"
  105. - name: S6_READ_ONLY_ROOT
  106. value: "1"
  107. - it: should create the correct fixed envs when running as root and changed fsGroup
  108. set:
  109. image: *image
  110. TZ: Europe/London
  111. securityContext:
  112. container:
  113. runAsUser: 0
  114. runAsGroup: 0
  115. runAsNonRoot: false
  116. workload:
  117. workload-name:
  118. enabled: true
  119. primary: true
  120. type: Deployment
  121. podSpec:
  122. securityContext:
  123. fsGroup: 1000
  124. containers:
  125. container-name1:
  126. enabled: true
  127. primary: true
  128. imageSelector: image
  129. probes: *probes
  130. asserts:
  131. - documentIndex: &deploymentDoc 0
  132. isKind:
  133. of: Deployment
  134. - documentIndex: *deploymentDoc
  135. isAPIVersion:
  136. of: apps/v1
  137. - documentIndex: *deploymentDoc
  138. isSubset:
  139. path: spec.template.spec.containers[0]
  140. content:
  141. env:
  142. - name: TZ
  143. value: Europe/London
  144. - name: UMASK
  145. value: "002"
  146. - name: UMASK_SET
  147. value: "002"
  148. - name: NVIDIA_VISIBLE_DEVICES
  149. value: "void"
  150. - name: PUID
  151. value: "568"
  152. - name: USER_ID
  153. value: "568"
  154. - name: UID
  155. value: "568"
  156. - name: PGID
  157. value: "1000"
  158. - name: GROUP_ID
  159. value: "1000"
  160. - name: GID
  161. value: "1000"
  162. - name: S6_READ_ONLY_ROOT
  163. value: "1"
  164. - it: should create the correct fixed envs when running as root and not readonly
  165. set:
  166. image: *image
  167. TZ: Europe/London
  168. securityContext:
  169. container:
  170. runAsUser: 0
  171. runAsGroup: 0
  172. runAsNonRoot: false
  173. readOnlyRootFilesystem: false
  174. workload:
  175. workload-name:
  176. enabled: true
  177. primary: true
  178. type: Deployment
  179. podSpec:
  180. containers:
  181. container-name1:
  182. enabled: true
  183. primary: true
  184. imageSelector: image
  185. probes: *probes
  186. asserts:
  187. - documentIndex: &deploymentDoc 0
  188. isKind:
  189. of: Deployment
  190. - documentIndex: *deploymentDoc
  191. isAPIVersion:
  192. of: apps/v1
  193. - documentIndex: *deploymentDoc
  194. isSubset:
  195. path: spec.template.spec.containers[0]
  196. content:
  197. env:
  198. - name: TZ
  199. value: Europe/London
  200. - name: UMASK
  201. value: "002"
  202. - name: UMASK_SET
  203. value: "002"
  204. - name: NVIDIA_VISIBLE_DEVICES
  205. value: "void"
  206. - name: PUID
  207. value: "568"
  208. - name: USER_ID
  209. value: "568"
  210. - name: UID
  211. value: "568"
  212. - name: PGID
  213. value: "568"
  214. - name: GROUP_ID
  215. value: "568"
  216. - name: GID
  217. value: "568"
  218. - it: should create the correct fixed envs with GPU
  219. set:
  220. scaleGPU:
  221. - gpu:
  222. nvidia.com/gpu: 1
  223. targetSelector:
  224. workload-name:
  225. - container-name1
  226. image: *image
  227. TZ: Europe/London
  228. resources:
  229. NVIDIA_CAPS:
  230. - compute
  231. - video
  232. workload:
  233. workload-name:
  234. enabled: true
  235. primary: true
  236. type: Deployment
  237. podSpec:
  238. containers:
  239. container-name1:
  240. enabled: true
  241. primary: true
  242. imageSelector: image
  243. probes: *probes
  244. asserts:
  245. - documentIndex: &deploymentDoc 0
  246. isKind:
  247. of: Deployment
  248. - documentIndex: *deploymentDoc
  249. isAPIVersion:
  250. of: apps/v1
  251. - documentIndex: *deploymentDoc
  252. isSubset:
  253. path: spec.template.spec.containers[0]
  254. content:
  255. env:
  256. - name: TZ
  257. value: Europe/London
  258. - name: UMASK
  259. value: "002"
  260. - name: UMASK_SET
  261. value: "002"
  262. - name: NVIDIA_DRIVER_CAPABILITIES
  263. value: "compute,video"
  264. - name: S6_READ_ONLY_ROOT
  265. value: "1"
  266. - it: should create the correct fixed envs with GPU and overridden on container level
  267. set:
  268. scaleGPU:
  269. - gpu:
  270. nvidia.com/gpu: 1
  271. targetSelector:
  272. workload-name:
  273. - container-name1
  274. image: *image
  275. TZ: Europe/London
  276. resources:
  277. NVIDIA_CAPS:
  278. - compute
  279. - video
  280. workload:
  281. workload-name:
  282. enabled: true
  283. primary: true
  284. type: Deployment
  285. podSpec:
  286. containers:
  287. container-name1:
  288. enabled: true
  289. primary: true
  290. imageSelector: image
  291. probes: *probes
  292. fixedEnv:
  293. NVIDIA_CAPS:
  294. - all
  295. asserts:
  296. - documentIndex: &deploymentDoc 0
  297. isKind:
  298. of: Deployment
  299. - documentIndex: *deploymentDoc
  300. isAPIVersion:
  301. of: apps/v1
  302. - documentIndex: *deploymentDoc
  303. isSubset:
  304. path: spec.template.spec.containers[0]
  305. content:
  306. env:
  307. - name: TZ
  308. value: Europe/London
  309. - name: UMASK
  310. value: "002"
  311. - name: UMASK_SET
  312. value: "002"
  313. - name: NVIDIA_DRIVER_CAPABILITIES
  314. value: "all"
  315. - name: S6_READ_ONLY_ROOT
  316. value: "1"
  317. - it: should create the correct fixed envs with PUID set to 0 on container level
  318. set:
  319. image: *image
  320. workload:
  321. workload-name:
  322. enabled: true
  323. primary: true
  324. type: Deployment
  325. podSpec:
  326. containers:
  327. container-name1:
  328. enabled: true
  329. primary: true
  330. imageSelector: image
  331. probes: *probes
  332. fixedEnv:
  333. PUID: 0
  334. securityContext:
  335. runAsUser: 0
  336. runAsGroup: 0
  337. runAsNonRoot: false
  338. asserts:
  339. - documentIndex: &deploymentDoc 0
  340. isKind:
  341. of: Deployment
  342. - documentIndex: *deploymentDoc
  343. isAPIVersion:
  344. of: apps/v1
  345. - documentIndex: *deploymentDoc
  346. isSubset:
  347. path: spec.template.spec.containers[0]
  348. content:
  349. env:
  350. - name: TZ
  351. value: UTC
  352. - name: UMASK
  353. value: "002"
  354. - name: UMASK_SET
  355. value: "002"
  356. - name: NVIDIA_VISIBLE_DEVICES
  357. value: "void"
  358. - name: PUID
  359. value: "0"
  360. - name: USER_ID
  361. value: "0"
  362. - name: UID
  363. value: "0"
  364. - name: PGID
  365. value: "568"
  366. - name: GROUP_ID
  367. value: "568"
  368. - name: GID
  369. value: "568"
  370. - name: S6_READ_ONLY_ROOT
  371. value: "1"
  372. - it: should create the correct fixed envs with large int values
  373. set:
  374. image: *image
  375. workload:
  376. workload-name:
  377. enabled: true
  378. primary: true
  379. type: Deployment
  380. podSpec:
  381. securityContext:
  382. fsGroup: 100000514
  383. containers:
  384. container-name1:
  385. enabled: true
  386. primary: true
  387. imageSelector: image
  388. probes: *probes
  389. fixedEnv:
  390. PUID: 200000514
  391. securityContext:
  392. runAsUser: 0
  393. runAsGroup: 0
  394. runAsNonRoot: false
  395. asserts:
  396. - documentIndex: &deploymentDoc 0
  397. isKind:
  398. of: Deployment
  399. - documentIndex: *deploymentDoc
  400. isAPIVersion:
  401. of: apps/v1
  402. - documentIndex: *deploymentDoc
  403. isSubset:
  404. path: spec.template.spec.containers[0]
  405. content:
  406. env:
  407. - name: TZ
  408. value: UTC
  409. - name: UMASK
  410. value: "002"
  411. - name: UMASK_SET
  412. value: "002"
  413. - name: NVIDIA_VISIBLE_DEVICES
  414. value: "void"
  415. - name: PUID
  416. value: "200000514"
  417. - name: USER_ID
  418. value: "200000514"
  419. - name: UID
  420. value: "200000514"
  421. - name: PGID
  422. value: "100000514"
  423. - name: GROUP_ID
  424. value: "100000514"
  425. - name: GID
  426. value: "100000514"
  427. - name: S6_READ_ONLY_ROOT
  428. value: "1"
  429. # # Failures
  430. - it: it should fail with NVIDIA_CAPS having invalid values
  431. set:
  432. image: *image
  433. workload:
  434. workload-name:
  435. enabled: true
  436. primary: true
  437. type: Deployment
  438. podSpec:
  439. containers:
  440. container-name1:
  441. enabled: true
  442. primary: true
  443. imageSelector: image
  444. probes: *probes
  445. fixedEnv:
  446. NVIDIA_CAPS:
  447. - invalid
  448. - compute
  449. asserts:
  450. - failedTemplate:
  451. errorMessage: Container - Expected <fixedEnv.NVIDIA_CAPS> entry to be one of [all, compute, utility, graphics, video], but got [invalid]
  452. - it: it should fail with NVIDIA_CAPS not having unique values
  453. set:
  454. image: *image
  455. workload:
  456. workload-name:
  457. enabled: true
  458. primary: true
  459. type: Deployment
  460. podSpec:
  461. containers:
  462. container-name1:
  463. enabled: true
  464. primary: true
  465. imageSelector: image
  466. probes: *probes
  467. fixedEnv:
  468. NVIDIA_CAPS:
  469. - compute
  470. - compute
  471. asserts:
  472. - failedTemplate:
  473. errorMessage: Container - Expected <fixedEnv.NVIDIA_CAPS> to have only unique values, but got [compute, compute]