pv_metadata_test.yaml 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. suite: pv metadata test
  2. templates:
  3. - common.yaml
  4. chart:
  5. appVersion: &appVer v9.9.9
  6. tests:
  7. - it: should pass with pv created with labels and annotations (nfs-pv-pvc)
  8. set:
  9. label1: label1
  10. label2: global_label2
  11. annotation1: annotation1
  12. annotation2: global_annotation2
  13. global:
  14. labels:
  15. g_label1: global_label1
  16. g_label2: "{{ .Values.label2 }}"
  17. annotations:
  18. g_annotation1: global_annotation1
  19. g_annotation2: "{{ .Values.annotation2 }}"
  20. persistence:
  21. my-volume1:
  22. enabled: true
  23. type: nfs-pv-pvc
  24. server: my-server
  25. share: /my-path
  26. labels:
  27. label1: "{{ .Values.label1 }}"
  28. label2: label2
  29. annotations:
  30. annotation1: "{{ .Values.annotation1 }}"
  31. annotation2: annotation2
  32. asserts:
  33. - documentIndex: &pvDoc 0
  34. isKind:
  35. of: PersistentVolume
  36. - documentIndex: *pvDoc
  37. isAPIVersion:
  38. of: v1
  39. - documentIndex: *pvDoc
  40. equal:
  41. path: metadata.annotations
  42. value:
  43. annotation1: annotation1
  44. annotation2: annotation2
  45. g_annotation1: global_annotation1
  46. g_annotation2: global_annotation2
  47. pv.kubernetes.io/provisioned-by: nfs.csi.k8s.io
  48. - documentIndex: *pvDoc
  49. equal:
  50. path: metadata.labels
  51. value:
  52. app: common-test-1.0.0
  53. release: RELEASE-NAME
  54. helm-revision: "0"
  55. helm.sh/chart: common-test-1.0.0
  56. app.kubernetes.io/instance: RELEASE-NAME
  57. app.kubernetes.io/managed-by: Helm
  58. app.kubernetes.io/version: *appVer
  59. app.kubernetes.io/name: common-test
  60. g_label1: global_label1
  61. g_label2: global_label2
  62. label1: label1
  63. label2: label2
  64. - it: should pass with pvc created with retain set to true (nfs-pv-pvc)
  65. set:
  66. persistence:
  67. my-volume1:
  68. enabled: true
  69. type: nfs-pv-pvc
  70. server: my-server
  71. share: /my-path
  72. retain: true
  73. asserts:
  74. - documentIndex: *pvDoc
  75. isKind:
  76. of: PersistentVolume
  77. - documentIndex: *pvDoc
  78. equal:
  79. path: metadata.annotations
  80. value:
  81. "helm.sh/resource-policy": keep
  82. pv.kubernetes.io/provisioned-by: nfs.csi.k8s.io
  83. - documentIndex: *pvDoc
  84. equal:
  85. path: metadata.labels
  86. value:
  87. app: common-test-1.0.0
  88. release: RELEASE-NAME
  89. helm-revision: "0"
  90. helm.sh/chart: common-test-1.0.0
  91. app.kubernetes.io/instance: RELEASE-NAME
  92. app.kubernetes.io/managed-by: Helm
  93. app.kubernetes.io/version: *appVer
  94. app.kubernetes.io/name: common-test
  95. - it: should pass with pv created with labels and annotations (smb-pv-pvc)
  96. set:
  97. label1: label1
  98. label2: global_label2
  99. annotation1: annotation1
  100. annotation2: global_annotation2
  101. global:
  102. labels:
  103. g_label1: global_label1
  104. g_label2: "{{ .Values.label2 }}"
  105. annotations:
  106. g_annotation1: global_annotation1
  107. g_annotation2: "{{ .Values.annotation2 }}"
  108. persistence:
  109. my-volume1:
  110. enabled: true
  111. type: smb-pv-pvc
  112. server: my-server
  113. share: my-path
  114. username: my-user
  115. password: my-password
  116. labels:
  117. label1: "{{ .Values.label1 }}"
  118. label2: label2
  119. annotations:
  120. annotation1: "{{ .Values.annotation1 }}"
  121. annotation2: annotation2
  122. asserts:
  123. - documentIndex: &secretDoc 0
  124. isKind:
  125. of: Secret
  126. - documentIndex: *secretDoc
  127. isAPIVersion:
  128. of: v1
  129. - documentIndex: *secretDoc
  130. equal:
  131. path: metadata.annotations
  132. value:
  133. annotation1: annotation1
  134. annotation2: annotation2
  135. g_annotation1: global_annotation1
  136. g_annotation2: global_annotation2
  137. - documentIndex: *secretDoc
  138. equal:
  139. path: metadata.labels
  140. value:
  141. app: common-test-1.0.0
  142. release: RELEASE-NAME
  143. helm-revision: "0"
  144. helm.sh/chart: common-test-1.0.0
  145. app.kubernetes.io/instance: RELEASE-NAME
  146. app.kubernetes.io/managed-by: Helm
  147. app.kubernetes.io/version: *appVer
  148. app.kubernetes.io/name: common-test
  149. g_label1: global_label1
  150. g_label2: global_label2
  151. label1: label1
  152. label2: label2
  153. - documentIndex: &pvDoc 1
  154. isKind:
  155. of: PersistentVolume
  156. - documentIndex: *pvDoc
  157. isAPIVersion:
  158. of: v1
  159. - documentIndex: *pvDoc
  160. equal:
  161. path: metadata.annotations
  162. value:
  163. annotation1: annotation1
  164. annotation2: annotation2
  165. g_annotation1: global_annotation1
  166. g_annotation2: global_annotation2
  167. pv.kubernetes.io/provisioned-by: smb.csi.k8s.io
  168. - documentIndex: *pvDoc
  169. equal:
  170. path: metadata.labels
  171. value:
  172. app: common-test-1.0.0
  173. release: RELEASE-NAME
  174. helm-revision: "0"
  175. helm.sh/chart: common-test-1.0.0
  176. app.kubernetes.io/instance: RELEASE-NAME
  177. app.kubernetes.io/managed-by: Helm
  178. app.kubernetes.io/version: *appVer
  179. app.kubernetes.io/name: common-test
  180. g_label1: global_label1
  181. g_label2: global_label2
  182. label1: label1
  183. label2: label2
  184. - it: should pass with pvc created with retain set to true (smb-pv-pvc)
  185. set:
  186. persistence:
  187. my-volume1:
  188. enabled: true
  189. type: smb-pv-pvc
  190. server: my-server
  191. share: my-path
  192. username: my-user
  193. password: my-password
  194. retain: true
  195. asserts:
  196. - documentIndex: *secretDoc
  197. isKind:
  198. of: Secret
  199. - documentIndex: *secretDoc
  200. isAPIVersion:
  201. of: v1
  202. - documentIndex: *secretDoc
  203. isNull:
  204. path: metadata.annotations
  205. - documentIndex: *pvDoc
  206. isKind:
  207. of: PersistentVolume
  208. - documentIndex: *pvDoc
  209. equal:
  210. path: metadata.annotations
  211. value:
  212. "helm.sh/resource-policy": keep
  213. pv.kubernetes.io/provisioned-by: smb.csi.k8s.io
  214. - documentIndex: *pvDoc
  215. equal:
  216. path: metadata.labels
  217. value:
  218. app: common-test-1.0.0
  219. release: RELEASE-NAME
  220. helm-revision: "0"
  221. helm.sh/chart: common-test-1.0.0
  222. app.kubernetes.io/instance: RELEASE-NAME
  223. app.kubernetes.io/managed-by: Helm
  224. app.kubernetes.io/version: *appVer
  225. app.kubernetes.io/name: common-test