runtime_class_name_test.yaml 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  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. runtimeClassName: some-other-class
  140. workload-name2:
  141. enabled: true
  142. primary: false
  143. type: CronJob
  144. schedule: "* * * * *"
  145. podSpec: {}
  146. asserts:
  147. - documentIndex: &jobDoc 0
  148. isKind:
  149. of: Job
  150. - documentIndex: *jobDoc
  151. equal:
  152. path: spec.template.spec.runtimeClassName
  153. value: ix-runtime
  154. - documentIndex: &cronJobDoc 1
  155. isKind:
  156. of: CronJob
  157. - documentIndex: *cronJobDoc
  158. isNull:
  159. path: spec.jobTemplate.spec.template.spec.runtimeClassName
  160. - it: should pass with runtimeClassName not set from ixChartContext without gpu value
  161. set:
  162. scaleGPU:
  163. - gpu: {}
  164. targetSelector:
  165. workload-name1:
  166. - container-name1
  167. global:
  168. ixChartContext:
  169. addNvidiaRuntimeClass: true
  170. nvidiaRuntimeClassName: ix-runtime
  171. workload:
  172. workload-name1:
  173. enabled: true
  174. primary: true
  175. type: Job
  176. podSpec:
  177. runtimeClassName: some-other-class
  178. asserts:
  179. - documentIndex: *jobDoc
  180. isKind:
  181. of: Job
  182. - documentIndex: *jobDoc
  183. equal:
  184. path: spec.template.spec.runtimeClassName
  185. value: some-other-class