dns_config_test.yaml 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. suite: pod dns config test
  2. templates:
  3. - common.yaml
  4. tests:
  5. - it: should pass with empty dnsConfig
  6. set:
  7. podOptions:
  8. dnsConfig:
  9. nameservers: []
  10. searches: []
  11. options: []
  12. workload:
  13. workload-name1:
  14. enabled: true
  15. primary: true
  16. type: Deployment
  17. podSpec: {}
  18. asserts:
  19. - documentIndex: &deploymentDoc 0
  20. isKind:
  21. of: Deployment
  22. - documentIndex: *deploymentDoc
  23. isNull:
  24. path: spec.template.spec.dnsConfig
  25. - it: should pass with dnsConfig from "global"
  26. set:
  27. podOptions:
  28. dnsConfig:
  29. nameservers:
  30. - 1.1.1.1
  31. - 2.2.2.2
  32. searches:
  33. - example.com
  34. - example.org
  35. options:
  36. - name: ndots
  37. value: "2"
  38. - name: edns0
  39. workload:
  40. workload-name1:
  41. enabled: true
  42. primary: true
  43. type: Deployment
  44. podSpec: {}
  45. asserts:
  46. - documentIndex: *deploymentDoc
  47. equal:
  48. path: spec.template.spec.dnsConfig
  49. value:
  50. nameservers:
  51. - 1.1.1.1
  52. - 2.2.2.2
  53. searches:
  54. - example.com
  55. - example.org
  56. options:
  57. - name: ndots
  58. value: "2"
  59. - name: edns0
  60. - it: should pass with dnsPolicy from "pod"
  61. set:
  62. podOptions:
  63. dnsConfig:
  64. nameservers:
  65. - 1.1.1.1
  66. searches:
  67. - example.org
  68. options:
  69. - name: edns0
  70. workload:
  71. workload-name1:
  72. enabled: true
  73. primary: true
  74. type: Deployment
  75. podSpec:
  76. dnsConfig:
  77. nameservers:
  78. - 1.1.1.1
  79. - 2.2.2.2
  80. searches:
  81. - example.com
  82. - example.org
  83. options:
  84. - name: ndots
  85. value: "2"
  86. - name: edns0
  87. asserts:
  88. - documentIndex: *deploymentDoc
  89. equal:
  90. path: spec.template.spec.dnsConfig
  91. value:
  92. nameservers:
  93. - 1.1.1.1
  94. - 2.2.2.2
  95. searches:
  96. - example.com
  97. - example.org
  98. options:
  99. - name: ndots
  100. value: "2"
  101. - name: edns0
  102. - it: should pass with dnsPolicy from "pod" with tpl
  103. set:
  104. ns1: 1.1.1.1
  105. s1: example.com
  106. property: ndots
  107. value: 2
  108. workload:
  109. workload-name1:
  110. enabled: true
  111. primary: true
  112. type: Deployment
  113. podSpec:
  114. dnsPolicy: None
  115. dnsConfig:
  116. nameservers:
  117. - "{{ .Values.ns1 }}"
  118. - 2.2.2.2
  119. searches:
  120. - "{{ .Values.s1 }}"
  121. - example.org
  122. options:
  123. - name: "{{ .Values.property }}"
  124. value: "{{ .Values.value }}"
  125. - name: edns0
  126. asserts:
  127. - documentIndex: *deploymentDoc
  128. equal:
  129. path: spec.template.spec.dnsConfig
  130. value:
  131. nameservers:
  132. - 1.1.1.1
  133. - 2.2.2.2
  134. searches:
  135. - example.com
  136. - example.org
  137. options:
  138. - name: ndots
  139. value: "2"
  140. - name: edns0
  141. # Failures
  142. - it: should fail with dnsPolicy set to None and no nameservers
  143. set:
  144. podOptions:
  145. dnsPolicy: None
  146. workload:
  147. workload-name1:
  148. enabled: true
  149. primary: true
  150. type: Deployment
  151. podSpec:
  152. dnsConfig:
  153. nameservers: []
  154. asserts:
  155. - failedTemplate:
  156. errorMessage: Expected non-empty <dnsConfig.nameservers> with <dnsPolicy> set to [None].
  157. - it: should fail with dnsPolicy set to None and no searches
  158. set:
  159. podOptions:
  160. dnsPolicy: None
  161. workload:
  162. workload-name1:
  163. enabled: true
  164. primary: true
  165. type: Deployment
  166. podSpec:
  167. dnsConfig:
  168. nameservers:
  169. - 1.1.1.1
  170. searches: []
  171. asserts:
  172. - failedTemplate:
  173. errorMessage: Expected non-empty <dnsConfig.searches> with <dnsPolicy> set to [None].
  174. - it: should fail with dnsPolicy set to None and no options
  175. set:
  176. podOptions:
  177. dnsPolicy: None
  178. workload:
  179. workload-name1:
  180. enabled: true
  181. primary: true
  182. type: Deployment
  183. podSpec:
  184. dnsConfig:
  185. nameservers:
  186. - 1.1.1.1
  187. searches:
  188. - example.com
  189. options: []
  190. asserts:
  191. - failedTemplate:
  192. errorMessage: Expected non-empty <dnsConfig.options> with <dnsPolicy> set to [None].
  193. - it: should fail with more than 3 nameservers
  194. set:
  195. workload:
  196. workload-name1:
  197. enabled: true
  198. primary: true
  199. type: Deployment
  200. podSpec:
  201. dnsConfig:
  202. nameservers:
  203. - 1.1.1.1
  204. - 1.1.1.1
  205. - 1.1.1.1
  206. - 1.1.1.1
  207. asserts:
  208. - failedTemplate:
  209. errorMessage: Expected no more than [3] <dnsConfig.nameservers>, but got [4]
  210. - it: should fail with more than 6 Searches
  211. set:
  212. workload:
  213. workload-name1:
  214. enabled: true
  215. primary: true
  216. type: Deployment
  217. podSpec:
  218. dnsConfig:
  219. searches:
  220. - example.com
  221. - example.com
  222. - example.com
  223. - example.com
  224. - example.com
  225. - example.com
  226. - example.com
  227. asserts:
  228. - failedTemplate:
  229. errorMessage: Expected no more than [6] <dnsConfig.searches>, but got [7]