volume_secret_test.yaml 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. suite: pod secret volume test
  2. templates:
  3. - common.yaml
  4. tests:
  5. - it: should pass with secret volume
  6. set:
  7. some_object: some-object-name
  8. some_mode: "0777"
  9. workload:
  10. workload-name1:
  11. enabled: true
  12. primary: true
  13. type: Deployment
  14. podSpec: {}
  15. persistence:
  16. secret-vol:
  17. enabled: true
  18. type: secret
  19. objectName: "{{ .Values.some_object }}"
  20. defaultMode: "{{ .Values.some_mode }}"
  21. asserts:
  22. - documentIndex: &deploymentDoc 0
  23. isKind:
  24. of: Deployment
  25. - documentIndex: *deploymentDoc
  26. contains:
  27. path: spec.template.spec.volumes
  28. content:
  29. name: secret-vol
  30. secret:
  31. secretName: release-name-common-test-some-object-name
  32. defaultMode: 0777
  33. - it: should pass with secret volume with items
  34. set:
  35. some_object: some-object-name
  36. some_mode: "0777"
  37. some_key: some-key
  38. some_path: some-path
  39. workload:
  40. workload-name1:
  41. enabled: true
  42. primary: true
  43. type: Deployment
  44. podSpec: {}
  45. persistence:
  46. secret-vol:
  47. enabled: true
  48. type: secret
  49. objectName: "{{ .Values.some_object }}"
  50. defaultMode: "{{ .Values.some_mode }}"
  51. items:
  52. - key: "{{ .Values.some_key }}"
  53. path: "{{ .Values.some_path }}"
  54. - key: some-other-key
  55. path: some-other-path
  56. asserts:
  57. - documentIndex: *deploymentDoc
  58. isKind:
  59. of: Deployment
  60. - documentIndex: *deploymentDoc
  61. contains:
  62. path: spec.template.spec.volumes
  63. content:
  64. name: secret-vol
  65. secret:
  66. secretName: release-name-common-test-some-object-name
  67. defaultMode: 0777
  68. items:
  69. - key: some-key
  70. path: some-path
  71. - key: some-other-key
  72. path: some-other-path
  73. - it: should pass with secret volume without expanding object name
  74. set:
  75. some_object: some-object-name
  76. workload:
  77. workload-name1:
  78. enabled: true
  79. primary: true
  80. type: Deployment
  81. podSpec: {}
  82. persistence:
  83. secret-vol:
  84. enabled: true
  85. type: secret
  86. objectName: "{{ .Values.some_object }}"
  87. expandObjectName: false
  88. asserts:
  89. - documentIndex: *deploymentDoc
  90. isKind:
  91. of: Deployment
  92. - documentIndex: *deploymentDoc
  93. contains:
  94. path: spec.template.spec.volumes
  95. content:
  96. name: secret-vol
  97. secret:
  98. secretName: some-object-name
  99. # Failures
  100. - it: should fail without objectName in secret
  101. set:
  102. workload:
  103. some-workload:
  104. enabled: true
  105. primary: true
  106. type: Deployment
  107. podSpec: {}
  108. persistence:
  109. volume1:
  110. enabled: true
  111. type: secret
  112. objectName: ""
  113. asserts:
  114. - failedTemplate:
  115. errorMessage: Persistence - Expected non-empty <objectName> on <secret> type
  116. - it: should fail with empty objectName in secret
  117. set:
  118. workload:
  119. some-workload:
  120. enabled: true
  121. primary: true
  122. type: Deployment
  123. podSpec: {}
  124. persistence:
  125. volume1:
  126. enabled: true
  127. type: secret
  128. objectName: ""
  129. asserts:
  130. - failedTemplate:
  131. errorMessage: Persistence - Expected non-empty <objectName> on <secret> type
  132. - it: should fail with defaultMode not a string in secret
  133. set:
  134. workload:
  135. some-workload:
  136. enabled: true
  137. primary: true
  138. type: Deployment
  139. podSpec: {}
  140. persistence:
  141. volume1:
  142. enabled: true
  143. type: secret
  144. objectName: some-object-name
  145. defaultMode: 1234
  146. asserts:
  147. - failedTemplate:
  148. errorMessage: Persistence - Expected <defaultMode> to be [string], but got [float64]
  149. - it: should fail with defaultMode not in format of "0000"-"0777" in secret
  150. set:
  151. workload:
  152. some-workload:
  153. enabled: true
  154. primary: true
  155. type: Deployment
  156. podSpec: {}
  157. persistence:
  158. volume1:
  159. enabled: true
  160. type: secret
  161. objectName: some-object-name
  162. defaultMode: "123"
  163. asserts:
  164. - failedTemplate:
  165. errorMessage: Persistence - Expected <defaultMode> to have be in format of ["0777"], but got ["123"]
  166. - it: should fail without key in items in secret
  167. set:
  168. workload:
  169. some-workload:
  170. enabled: true
  171. primary: true
  172. type: Deployment
  173. podSpec: {}
  174. persistence:
  175. volume1:
  176. enabled: true
  177. type: secret
  178. objectName: some-object-name
  179. items:
  180. - key: ""
  181. path: some-path
  182. asserts:
  183. - failedTemplate:
  184. errorMessage: Persistence - Expected non-empty <items.key>
  185. - it: should fail without path in items in secret
  186. set:
  187. workload:
  188. some-workload:
  189. enabled: true
  190. primary: true
  191. type: Deployment
  192. podSpec: {}
  193. persistence:
  194. volume1:
  195. enabled: true
  196. type: secret
  197. objectName: some-object-name
  198. items:
  199. - key: some-key
  200. path: ""
  201. asserts:
  202. - failedTemplate:
  203. errorMessage: Persistence - Expected non-empty <items.path>