metadata_test.yaml 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. suite: deployment metadata test
  2. templates:
  3. - common.yaml
  4. chart:
  5. appVersion: &appVer v9.9.9
  6. tests:
  7. - it: should pass with deployment created with labels and annotations
  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. workload:
  21. workload-name:
  22. enabled: true
  23. primary: true
  24. type: Deployment
  25. labels:
  26. label1: "{{ .Values.label1 }}"
  27. label2: label2
  28. annotations:
  29. annotation1: "{{ .Values.annotation1 }}"
  30. annotation2: annotation2
  31. podSpec:
  32. labels:
  33. pod-label1: pod-label1
  34. pod-label2: "{{ .Values.label2 }}"
  35. annotations:
  36. pod-annotation1: pod-annotation1
  37. pod-annotation2: "{{ .Values.annotation2 }}"
  38. asserts:
  39. - documentIndex: &deploymentDoc 0
  40. isKind:
  41. of: Deployment
  42. - documentIndex: *deploymentDoc
  43. equal:
  44. path: metadata.annotations
  45. value:
  46. annotation1: annotation1
  47. annotation2: annotation2
  48. g_annotation1: global_annotation1
  49. g_annotation2: global_annotation2
  50. - documentIndex: *deploymentDoc
  51. equal:
  52. path: metadata.labels
  53. value:
  54. app: common-test-1.0.0
  55. release: RELEASE-NAME
  56. helm-revision: "0"
  57. helm.sh/chart: common-test-1.0.0
  58. app.kubernetes.io/managed-by: Helm
  59. app.kubernetes.io/version: *appVer
  60. g_label1: global_label1
  61. g_label2: global_label2
  62. label1: label1
  63. label2: label2
  64. - documentIndex: *deploymentDoc
  65. equal:
  66. path: spec.selector.matchLabels
  67. value:
  68. pod.name: workload-name
  69. app.kubernetes.io/name: common-test
  70. app.kubernetes.io/instance: RELEASE-NAME
  71. - documentIndex: *deploymentDoc
  72. equal:
  73. path: spec.template.metadata.labels
  74. value:
  75. pod.name: workload-name
  76. app: common-test-1.0.0
  77. release: RELEASE-NAME
  78. app.kubernetes.io/instance: RELEASE-NAME
  79. app.kubernetes.io/managed-by: Helm
  80. app.kubernetes.io/name: common-test
  81. app.kubernetes.io/version: v9.9.9
  82. helm-revision: "0"
  83. helm.sh/chart: common-test-1.0.0
  84. g_label1: global_label1
  85. g_label2: global_label2
  86. pod-label1: pod-label1
  87. pod-label2: global_label2
  88. - documentIndex: *deploymentDoc
  89. matchRegex:
  90. path: spec.template.metadata.annotations.rollme
  91. pattern: '^[0-9a-zA-Z]{5}$'
  92. - it: should pass with 2 deployment created with correct selector labels
  93. set:
  94. workload:
  95. workload-name:
  96. enabled: true
  97. primary: true
  98. type: Deployment
  99. podSpec: {}
  100. other-workload-name:
  101. enabled: true
  102. primary: false
  103. type: Deployment
  104. podSpec: {}
  105. asserts:
  106. - documentIndex: *deploymentDoc
  107. isKind:
  108. of: Deployment
  109. - documentIndex: *deploymentDoc
  110. equal:
  111. path: metadata.name
  112. value: release-name-common-test-other-workload-name
  113. - documentIndex: *deploymentDoc
  114. equal:
  115. path: spec.selector.matchLabels
  116. value:
  117. pod.name: other-workload-name
  118. app.kubernetes.io/name: common-test
  119. app.kubernetes.io/instance: RELEASE-NAME
  120. - documentIndex: *deploymentDoc
  121. isSubset:
  122. path: spec.template.metadata.labels
  123. content:
  124. pod.name: other-workload-name
  125. app.kubernetes.io/instance: RELEASE-NAME
  126. app.kubernetes.io/name: common-test
  127. - documentIndex: &otherDeploymentDoc 1
  128. isKind:
  129. of: Deployment
  130. - documentIndex: *otherDeploymentDoc
  131. equal:
  132. path: metadata.name
  133. value: release-name-common-test
  134. - documentIndex: *otherDeploymentDoc
  135. equal:
  136. path: spec.selector.matchLabels
  137. value:
  138. pod.name: workload-name
  139. app.kubernetes.io/name: common-test
  140. app.kubernetes.io/instance: RELEASE-NAME
  141. - documentIndex: *otherDeploymentDoc
  142. isSubset:
  143. path: spec.template.metadata.labels
  144. content:
  145. pod.name: workload-name
  146. app.kubernetes.io/instance: RELEASE-NAME
  147. app.kubernetes.io/name: common-test