controller_test.yaml 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. suite: test controller deployment
  2. templates:
  3. - deployment.yaml
  4. tests:
  5. - it: should match snapshot of default values
  6. asserts:
  7. - matchSnapshot: {}
  8. - it: should set imagePullPolicy to Always
  9. set:
  10. image.pullPolicy: Always
  11. asserts:
  12. - equal:
  13. path: spec.template.spec.containers[0].imagePullPolicy
  14. value: Always
  15. - it: should imagePullPolicy to be default value IfNotPresent
  16. asserts:
  17. - equal:
  18. path: spec.template.spec.containers[0].imagePullPolicy
  19. value: IfNotPresent
  20. - it: should override securityContext
  21. set:
  22. podSecurityContext:
  23. runAsUser: 2000
  24. securityContext:
  25. runAsUser: 3000
  26. asserts:
  27. - equal:
  28. path: spec.template.spec.securityContext
  29. value:
  30. runAsUser: 2000
  31. - equal:
  32. path: spec.template.spec.containers[0].securityContext
  33. value:
  34. allowPrivilegeEscalation: false
  35. capabilities:
  36. drop:
  37. - ALL
  38. readOnlyRootFilesystem: true
  39. runAsNonRoot: true
  40. runAsUser: 3000
  41. seccompProfile:
  42. type: RuntimeDefault
  43. - it: should override hostNetwork
  44. set:
  45. hostNetwork: true
  46. asserts:
  47. - equal:
  48. path: spec.template.spec.hostNetwork
  49. value: true
  50. - it: should override metrics port
  51. set:
  52. metrics.listen.port: 8888
  53. asserts:
  54. - contains:
  55. path: spec.template.spec.containers[0].args
  56. content: "--metrics-addr=:8888"
  57. - it: should override image flavour
  58. set:
  59. image.repository: ghcr.io/external-secrets/external-secrets
  60. image.tag: v0.9.8
  61. image.flavour: ubi-boringssl
  62. asserts:
  63. - equal:
  64. path: spec.template.spec.containers[0].image
  65. value: ghcr.io/external-secrets/external-secrets:v0.9.8-ubi-boringssl
  66. - it: should override image flavour
  67. set:
  68. image.repository: example.com/external-secrets/external-secrets
  69. image.tag: v0.9.9-ubi
  70. asserts:
  71. - equal:
  72. path: spec.template.spec.containers[0].image
  73. value: example.com/external-secrets/external-secrets:v0.9.9-ubi
  74. - it: should add a init container
  75. set:
  76. extraInitContainers:
  77. - name: foo
  78. image: example.com/external-secrets/init-image:{{ .Chart.Version }}
  79. restartPolicy: Always
  80. asserts:
  81. - equal:
  82. path: spec.template.spec.initContainers[0].name
  83. value: foo
  84. - matchRegex:
  85. path: spec.template.spec.initContainers[0].image
  86. pattern: ^example\.com/external-secrets/init-image:[0-9]+\.[0-9]+\.[0-9]+$
  87. - equal:
  88. path: spec.template.spec.initContainers[0].restartPolicy
  89. value: Always
  90. - it: should override the deployment strategy
  91. set:
  92. strategy:
  93. rollingUpdate:
  94. maxSurge: 1
  95. maxUnavailable: 0
  96. asserts:
  97. - equal:
  98. path: spec.strategy.rollingUpdate.maxSurge
  99. value: 1
  100. - equal:
  101. path: spec.strategy.rollingUpdate.maxUnavailable
  102. value: 0
  103. - it: should add livenessProbe if define
  104. set:
  105. livenessProbe:
  106. enabled: true
  107. spec:
  108. initialDelaySeconds: 10
  109. periodSeconds: 10
  110. timeoutSeconds: 10
  111. failureThreshold: 10
  112. successThreshold: 10
  113. httpGet:
  114. path: /healthz
  115. port: 8080
  116. scheme: HTTP
  117. asserts:
  118. - equal:
  119. path: spec.template.spec.containers[0].livenessProbe.httpGet.port
  120. value: 8080
  121. - it: should update args with enableHTTP2=true
  122. set:
  123. enableHTTP2: true
  124. asserts:
  125. - contains:
  126. path: spec.template.spec.containers[0].args
  127. content: "--enable-http2=true"
  128. - it: should not have enableHTTP2 flag by default
  129. asserts:
  130. - notContains:
  131. path: spec.template.spec.containers[0].args
  132. content: "--enable-http2"