123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391 |
- suite: service validation test
- templates:
- - common.yaml
- tests:
- - it: should fail without primary service
- set:
- service:
- service-name:
- enabled: true
- asserts:
- - failedTemplate:
- errorMessage: Service - At least one enabled service must be primary
- - it: should fail with more than one primary service
- set:
- service:
- service-name1:
- enabled: true
- primary: true
- service-name2:
- enabled: true
- primary: true
- asserts:
- - failedTemplate:
- errorMessage: Service - Only one service can be primary
- - it: should fail without primary port in service
- set:
- service:
- service-name1:
- enabled: true
- primary: true
- ports:
- port-name:
- enabled: true
- asserts:
- - failedTemplate:
- errorMessage: Service - At least one enabled port in service must be primary
- - it: should fail with more than one primary port in service
- set:
- service:
- service-name1:
- enabled: true
- primary: true
- ports:
- port-name1:
- enabled: true
- primary: true
- port-name2:
- enabled: true
- primary: true
- asserts:
- - failedTemplate:
- errorMessage: Service - Only one port per service can be primary
- - it: should fail with no enabled ports in enabled service
- set:
- service:
- service-name1:
- enabled: true
- primary: true
- ports:
- port-name1:
- enabled: true
- primary: true
- port-name2:
- enabled: true
- primary: true
- asserts:
- - failedTemplate:
- errorMessage: Service - Only one port per service can be primary
- - it: should fail with annotations not a dict
- set:
- service:
- service-name1:
- enabled: true
- primary: true
- annotations: not-a-dict
- ports:
- port-name1:
- enabled: true
- primary: true
- asserts:
- - failedTemplate:
- errorMessage: Service - Expected <annotations> to be a dictionary, but got [string]
- - it: should fail with labels not a dict
- set:
- service:
- service-name1:
- enabled: true
- primary: true
- labels: not-a-dict
- ports:
- port-name1:
- enabled: true
- primary: true
- asserts:
- - failedTemplate:
- errorMessage: Service - Expected <labels> to be a dictionary, but got [string]
- - it: should fail with pod targetSelector not a string
- set:
- service:
- service-name1:
- enabled: true
- primary: true
- targetSelector:
- pod: not-a-string
- ports:
- port-name1:
- enabled: true
- primary: true
- asserts:
- - failedTemplate:
- errorMessage: Service - Expected <targetSelector> to be [string], but got [map]
- - it: should fail with container targetSelector not a string
- set:
- service:
- service-name1:
- enabled: true
- primary: true
- ports:
- port-name1:
- enabled: true
- primary: true
- targetSelector:
- container: not-a-string
- asserts:
- - failedTemplate:
- errorMessage: Service - Expected <port.targetSelector> to be [string], but got [map]
- - it: should fail with selected pod not defined
- set:
- service:
- service-name1:
- enabled: true
- primary: true
- targetSelector: some-pod-name
- ports:
- port-name:
- enabled: true
- primary: true
- port: 12345
- workload:
- main:
- enabled: true
- primary: true
- type: Deployment
- podSpec: {}
- asserts:
- - failedTemplate:
- errorMessage: Service - Selected pod [some-pod-name] is not defined
- - it: should fail with selected pod not enabled
- set:
- service:
- service-name1:
- enabled: true
- primary: true
- targetSelector: some-pod-name
- ports:
- port-name:
- enabled: true
- primary: true
- port: 12345
- workload:
- some-pod-name:
- enabled: false
- primary: true
- type: Deployment
- podSpec: {}
- asserts:
- - failedTemplate:
- errorMessage: Service - Selected pod [some-pod-name] is not enabled
- - it: should fail with invalid port protocol
- set:
- service:
- service-name1:
- enabled: true
- primary: true
- ports:
- port-name1:
- enabled: true
- primary: true
- port: 12345
- protocol: not-a-protocol
- asserts:
- - failedTemplate:
- errorMessage: Service - Expected <port.protocol> to be one of [tcp, udp, http, https] but got [not-a-protocol]
- - it: should fail without port number
- set:
- service:
- service-name1:
- enabled: true
- primary: true
- ports:
- port-name1:
- enabled: true
- primary: true
- port:
- asserts:
- - failedTemplate:
- errorMessage: Service - Expected non-empty <port.port>
- - it: should fail with invalid service type
- set:
- service:
- service-name1:
- enabled: true
- primary: true
- type: not-a-type
- ports:
- port-name1:
- enabled: true
- primary: true
- asserts:
- - failedTemplate:
- errorMessage: Service - Expected <type> to be one of [ClusterIP, NodePort] but got [not-a-type]
- - it: should fail with invalid ipFamilyPolicy
- set:
- service:
- service-name1:
- enabled: true
- primary: true
- type: ClusterIP
- ipFamilyPolicy: not-a-policy
- ports:
- port-name1:
- enabled: true
- primary: true
- port: 12345
- workload:
- some-pod-name:
- enabled: true
- primary: true
- type: Deployment
- podSpec: {}
- asserts:
- - failedTemplate:
- errorMessage: Service - Expected <ipFamilyPolicy> to be one of [SingleStack, PreferDualStack, RequireDualStack], but got [not-a-policy]
- - it: should fail with ipFamilies not a list
- set:
- service:
- service-name1:
- enabled: true
- primary: true
- type: ClusterIP
- ipFamilies: not-a-list
- ports:
- port-name1:
- enabled: true
- primary: true
- port: 12345
- workload:
- some-pod-name:
- enabled: true
- primary: true
- type: Deployment
- podSpec: {}
- asserts:
- - failedTemplate:
- errorMessage: Service - Expected <ipFamilies> to be a list, but got a [string]
- - it: should fail with invalid ipFamilies
- set:
- service:
- service-name1:
- enabled: true
- primary: true
- type: ClusterIP
- ipFamilies:
- - not-a-family
- ports:
- port-name1:
- enabled: true
- primary: true
- port: 12345
- workload:
- some-pod-name:
- enabled: true
- primary: true
- type: Deployment
- podSpec: {}
- asserts:
- - failedTemplate:
- errorMessage: Service - Expected <ipFamilies> to be one of [IPv4, IPv6], but got [not-a-family]
- - it: should fail with invalid sessionAffinity
- set:
- service:
- service-name1:
- enabled: true
- primary: true
- type: ClusterIP
- sessionAffinity: not-an-affinity
- ports:
- port-name1:
- enabled: true
- primary: true
- port: 12345
- workload:
- some-pod-name:
- enabled: true
- primary: true
- type: Deployment
- podSpec: {}
- asserts:
- - failedTemplate:
- errorMessage: Service - Expected <sessionAffinity> to be one of [ClientIP, None], but got [not-an-affinity]
- - it: should fail with invalid timeoutSeconds in sessionAffinityConfig
- set:
- service:
- service-name1:
- enabled: true
- primary: true
- type: ClusterIP
- sessionAffinity: ClientIP
- sessionAffinityConfig:
- clientIP:
- timeoutSeconds: -1
- ports:
- port-name1:
- enabled: true
- primary: true
- port: 12345
- workload:
- some-pod-name:
- enabled: true
- primary: true
- type: Deployment
- podSpec: {}
- asserts:
- - failedTemplate:
- errorMessage: Service - Expected <sessionAffinityConfig.clientIP.timeoutSeconds> to be between [0 - 86400], but got [-1]
- - it: should fail without nodePort number on NodePort
- set:
- service:
- service-name1:
- enabled: true
- primary: true
- type: NodePort
- ports:
- port-name1:
- enabled: true
- primary: true
- port: 80
- nodePort:
- workload:
- some-pod-name:
- enabled: true
- primary: true
- type: Deployment
- podSpec: {}
- asserts:
- - failedTemplate:
- errorMessage: Service - Expected non-empty <nodePort> on NodePort service type
- - it: should fail with nodePort lower than the minimum on NodePort
- set:
- global:
- minNodePort: 10000
- service:
- service-name1:
- enabled: true
- primary: true
- type: NodePort
- ports:
- port-name1:
- enabled: true
- primary: true
- port: 80
- nodePort: 9999
- workload:
- some-pod-name:
- enabled: true
- primary: true
- type: Deployment
- podSpec: {}
- asserts:
- - failedTemplate:
- errorMessage: Service - Expected <nodePort> to be higher than [10000], but got [9999]
|