runtime_class_name_test.yaml 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. suite: pod runtime class name test
  2. templates:
  3. - common.yaml
  4. tests:
  5. - it: should pass with empty runtimeClassName
  6. set:
  7. podOptions:
  8. runtimeClassName: ""
  9. workload:
  10. workload-name1:
  11. enabled: true
  12. primary: true
  13. type: Deployment
  14. podSpec: {}
  15. asserts:
  16. - documentIndex: &deploymentDoc 0
  17. isKind:
  18. of: Deployment
  19. - documentIndex: *deploymentDoc
  20. isNull:
  21. path: spec.template.spec.runtimeClassName
  22. - it: should pass with runtimeClassName from "global"
  23. set:
  24. podOptions:
  25. runtimeClassName: some-runtime-class
  26. workload:
  27. workload-name1:
  28. enabled: true
  29. primary: true
  30. type: Deployment
  31. podSpec: {}
  32. asserts:
  33. - documentIndex: *deploymentDoc
  34. equal:
  35. path: spec.template.spec.runtimeClassName
  36. value: some-runtime-class
  37. - it: should pass with runtimeClassName from "pod"
  38. set:
  39. podOptions:
  40. runtimeClassName: some-runtime-class
  41. workload:
  42. workload-name1:
  43. enabled: true
  44. primary: true
  45. type: Deployment
  46. podSpec:
  47. runtimeClassName: some-other-runtime-class
  48. asserts:
  49. - documentIndex: *deploymentDoc
  50. equal:
  51. path: spec.template.spec.runtimeClassName
  52. value: some-other-runtime-class
  53. - it: should pass with runtimeClassName from "pod" with tpl
  54. set:
  55. runtimeClass: some-other-runtime-class
  56. podOptions:
  57. runtimeClassName: some-runtime-class
  58. workload:
  59. workload-name1:
  60. enabled: true
  61. primary: true
  62. type: Deployment
  63. podSpec:
  64. runtimeClassName: "{{ .Values.runtimeClass }}"
  65. asserts:
  66. - documentIndex: *deploymentDoc
  67. equal:
  68. path: spec.template.spec.runtimeClassName
  69. value: some-other-runtime-class
  70. - it: should pass with runtimeClassName from ixChartContext with targetSelector
  71. set:
  72. scaleGPU:
  73. - gpu:
  74. key: value
  75. targetSelector:
  76. workload-name1:
  77. - container-name1
  78. workload-name3:
  79. - container-name1
  80. global:
  81. ixChartContext:
  82. addNvidiaRuntimeClass: true
  83. nvidiaRuntimeClassName: ix-runtime
  84. podOptions:
  85. runtimeClassName: some-class
  86. workload:
  87. workload-name1:
  88. enabled: true
  89. primary: true
  90. type: Deployment
  91. podSpec:
  92. runtimeClassName: some-other-class
  93. workload-name2:
  94. enabled: true
  95. primary: false
  96. type: Deployment
  97. podSpec:
  98. runtimeClassName: some-class
  99. workload-name3:
  100. enabled: true
  101. primary: false
  102. type: Deployment
  103. podSpec:
  104. runtimeClassName: some-class
  105. asserts:
  106. - documentIndex: *deploymentDoc
  107. equal:
  108. path: spec.template.spec.runtimeClassName
  109. value: ix-runtime
  110. - documentIndex: &deploymentDoc 1
  111. isKind:
  112. of: Deployment
  113. - documentIndex: *deploymentDoc
  114. equal:
  115. path: spec.template.spec.runtimeClassName
  116. value: some-class
  117. - documentIndex: &otherDeploymentDoc 2
  118. isKind:
  119. of: Deployment
  120. - documentIndex: *otherDeploymentDoc
  121. equal:
  122. path: spec.template.spec.runtimeClassName
  123. value: ix-runtime
  124. - it: should pass with runtimeClassName from ixChartContext without targetSelector (on primary workload)
  125. set:
  126. scaleGPU:
  127. - gpu:
  128. key: value
  129. global:
  130. ixChartContext:
  131. addNvidiaRuntimeClass: true
  132. nvidiaRuntimeClassName: ix-runtime
  133. workload:
  134. workload-name1:
  135. enabled: true
  136. primary: true
  137. type: Job
  138. podSpec:
  139. restartPolicy: Never
  140. runtimeClassName: some-other-class
  141. workload-name2:
  142. enabled: true
  143. primary: false
  144. type: CronJob
  145. schedule: "* * * * *"
  146. podSpec:
  147. restartPolicy: Never
  148. asserts:
  149. - documentIndex: &jobDoc 0
  150. isKind:
  151. of: Job
  152. - documentIndex: *jobDoc
  153. equal:
  154. path: spec.template.spec.runtimeClassName
  155. value: ix-runtime
  156. - documentIndex: &cronJobDoc 1
  157. isKind:
  158. of: CronJob
  159. - documentIndex: *cronJobDoc
  160. isNull:
  161. path: spec.jobTemplate.spec.template.spec.runtimeClassName
  162. - it: should pass with runtimeClassName not set from ixChartContext without gpu value
  163. set:
  164. scaleGPU:
  165. - gpu: {}
  166. targetSelector:
  167. workload-name1:
  168. - container-name1
  169. global:
  170. ixChartContext:
  171. addNvidiaRuntimeClass: true
  172. nvidiaRuntimeClassName: ix-runtime
  173. workload:
  174. workload-name1:
  175. enabled: true
  176. primary: true
  177. type: Job
  178. podSpec:
  179. restartPolicy: Never
  180. runtimeClassName: some-other-class
  181. asserts:
  182. - documentIndex: *jobDoc
  183. isKind:
  184. of: Job
  185. - documentIndex: *jobDoc
  186. equal:
  187. path: spec.template.spec.runtimeClassName
  188. value: some-other-class