cert_controller_test.yaml 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. suite: test cert controller deployment
  2. templates:
  3. - cert-controller-deployment.yaml
  4. - cert-controller-service.yaml
  5. tests:
  6. - it: should match snapshot of default values
  7. templates:
  8. - cert-controller-deployment.yaml
  9. asserts:
  10. - matchSnapshot: {}
  11. - it: should set imagePullPolicy to Always
  12. set:
  13. certController.image.pullPolicy: Always
  14. templates:
  15. - cert-controller-deployment.yaml
  16. asserts:
  17. - equal:
  18. path: spec.template.spec.containers[0].imagePullPolicy
  19. value: Always
  20. - it: should imagePullPolicy to be default value IfNotPresent
  21. templates:
  22. - cert-controller-deployment.yaml
  23. asserts:
  24. - equal:
  25. path: spec.template.spec.containers[0].imagePullPolicy
  26. value: IfNotPresent
  27. - it: should add a init container
  28. templates:
  29. - cert-controller-deployment.yaml
  30. set:
  31. certController.extraInitContainers:
  32. - name: foo
  33. image: example.com/external-secrets/init-image:{{ .Chart.Version }}
  34. restartPolicy: Always
  35. asserts:
  36. - equal:
  37. path: spec.template.spec.initContainers[0].name
  38. value: foo
  39. - matchRegex:
  40. path: spec.template.spec.initContainers[0].image
  41. pattern: ^example\.com/external-secrets/init-image:[0-9]+\.[0-9]+\.[0-9]+$
  42. - equal:
  43. path: spec.template.spec.initContainers[0].restartPolicy
  44. value: Always
  45. - it: should override securityContext
  46. set:
  47. certController.podSecurityContext:
  48. runAsUser: 2000
  49. certController.securityContext:
  50. runAsUser: 3000
  51. templates:
  52. - cert-controller-deployment.yaml
  53. asserts:
  54. - equal:
  55. path: spec.template.spec.securityContext
  56. value:
  57. runAsUser: 2000
  58. - equal:
  59. path: spec.template.spec.containers[0].securityContext
  60. value:
  61. allowPrivilegeEscalation: false
  62. capabilities:
  63. drop:
  64. - ALL
  65. readOnlyRootFilesystem: true
  66. runAsNonRoot: true
  67. runAsUser: 3000
  68. seccompProfile:
  69. type: RuntimeDefault
  70. - it: should override hostNetwork
  71. set:
  72. certController.hostNetwork: true
  73. templates:
  74. - cert-controller-deployment.yaml
  75. asserts:
  76. - equal:
  77. path: spec.template.spec.hostNetwork
  78. value: true
  79. - it: should override readinessProbe port
  80. set:
  81. certController.readinessProbe.port: 8082
  82. templates:
  83. - cert-controller-deployment.yaml
  84. asserts:
  85. - equal:
  86. path: spec.template.spec.containers[0].args[7]
  87. value: "--healthz-addr=:8082"
  88. - it: should override metrics port
  89. set:
  90. certController.metrics.listen.port: 8888
  91. templates:
  92. - cert-controller-deployment.yaml
  93. asserts:
  94. - equal:
  95. path: spec.template.spec.containers[0].args[6]
  96. value: "--metrics-addr=:8888"
  97. - it: should override image flavour
  98. set:
  99. certController.image.repository: ghcr.io/external-secrets/external-secrets
  100. certController.image.tag: v0.9.8
  101. certController.image.flavour: ubi-boringssl
  102. templates:
  103. - cert-controller-deployment.yaml
  104. asserts:
  105. - equal:
  106. path: spec.template.spec.containers[0].image
  107. value: ghcr.io/external-secrets/external-secrets:v0.9.8-ubi-boringssl
  108. - it: should override image flavour
  109. set:
  110. certController.image.repository: example.com/external-secrets/external-secrets
  111. certController.image.tag: v0.9.9-ubi
  112. templates:
  113. - cert-controller-deployment.yaml
  114. asserts:
  115. - equal:
  116. path: spec.template.spec.containers[0].image
  117. value: example.com/external-secrets/external-secrets:v0.9.9-ubi
  118. - it: should render service without metrics label when metrics is enabled
  119. set:
  120. certController.metrics.service.enabled: true
  121. templates:
  122. - cert-controller-service.yaml
  123. asserts:
  124. - hasDocuments:
  125. count: 1
  126. - isNull:
  127. path: metadata.labels["app.kubernetes.io/metrics"]
  128. - it: should render service with metrics label when APIVersions are present and serviceMonitor is enabled
  129. set:
  130. serviceMonitor.enabled: true
  131. capabilities:
  132. apiVersions:
  133. - "monitoring.coreos.com/v1"
  134. templates:
  135. - cert-controller-service.yaml
  136. asserts:
  137. - hasDocuments:
  138. count: 1
  139. - equal:
  140. path: metadata.labels["app.kubernetes.io/metrics"]
  141. value: "cert-controller"
  142. - it: should not render service when APIVersions is not present but serviceMonitor is enabled
  143. set:
  144. serviceMonitor.enabled: true
  145. templates:
  146. - cert-controller-service.yaml
  147. asserts:
  148. - hasDocuments:
  149. count: 0
  150. - it: should not render service when APIVersions is present and serviceMonitor is disabled
  151. set:
  152. serviceMonitor.enabled: false
  153. capabilities:
  154. apiVersions:
  155. - "monitoring.coreos.com/v1"
  156. templates:
  157. - cert-controller-service.yaml
  158. asserts:
  159. - hasDocuments:
  160. count: 0
  161. - it: should not render service when APIVersions is not present and serviceMonitor is disabled
  162. set:
  163. serviceMonitor.enabled: false
  164. templates:
  165. - cert-controller-service.yaml
  166. asserts:
  167. - hasDocuments:
  168. count: 0