Files
truecharts/charts/library/common-test/tests/ingress/rules_test.yaml
T
2024-10-19 20:21:36 +02:00

251 lines
7.5 KiB
YAML

suite: ingress - rules test
templates:
- common.yaml
chart:
appVersion: &appVer v9.9.9
release:
name: test-release-name
namespace: test-release-namespace
tests:
- it: should pass with ingress created with ingressClassName
set:
service:
my-service:
enabled: true
primary: true
ports:
main:
enabled: true
primary: true
port: 80
ingress:
my-ingress:
enabled: true
primary: true
ingressClassName: some-class
hosts:
- host: test-host
paths:
- path: /test-path
integrations: &integrations
traefik:
enabled: false
asserts:
- documentIndex: &ingressDoc 1
isKind:
of: Ingress
- documentIndex: *ingressDoc
equal:
path: metadata.name
value: test-release-name-common-test
- documentIndex: *ingressDoc
equal:
path: spec.ingressClassName
value: some-class
- it: should pass with ingress created with rules
set:
service:
my-service:
enabled: true
primary: true
ports:
main:
enabled: true
primary: true
port: 80
someHost: test-host
somePath: /test-path
someType: Exact
ingress:
my-ingress:
enabled: true
primary: true
hosts: &hosts
- host: "{{ .Values.someHost }}"
paths:
- path: "{{ .Values.somePath }}"
pathType: "{{ .Values.someType }}"
- host: "*.test-other-host"
paths:
- path: /test-other-path
- path: /test-other-path2
overrideService:
name: some-other-service
expandObjectName: false
port: 8080
- host: "host-target-primary-service"
paths:
- path: /subpath
overrideService:
# It is primary, so the backend target
# must be just the fullname
name: my-service
port: 8080
- host: "host-target-override-no-expand"
paths:
- path: /subpath2
overrideService:
name: my-custom-service
expandObjectName: false
port: 8080
- host: "host-without-explicit-paths"
- host: "host-without-explicit-path"
paths:
- pathType: Exact
integrations: *integrations
asserts:
- documentIndex: &ingressDoc 1
isKind:
of: Ingress
- documentIndex: *ingressDoc
equal:
path: metadata.name
value: test-release-name-common-test
- documentIndex: *ingressDoc
equal:
path: spec.rules
value:
- host: test-host
http:
paths:
- path: /test-path
pathType: Exact
backend:
service:
name: test-release-name-common-test
port:
number: 80
- host: "*.test-other-host"
http:
paths:
- path: /test-other-path
pathType: Prefix
backend:
service:
name: test-release-name-common-test
port:
number: 80
- path: /test-other-path2
pathType: Prefix
backend:
service:
name: some-other-service
port:
number: 8080
- host: "host-target-primary-service"
http:
paths:
- path: /subpath
pathType: Prefix
backend:
service:
name: test-release-name-common-test
port:
number: 8080
- host: host-target-override-no-expand
http:
paths:
- path: /subpath2
pathType: Prefix
backend:
service:
name: my-custom-service
port:
number: 8080
- host: "host-without-explicit-paths"
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: test-release-name-common-test
port:
number: 80
- host: "host-without-explicit-path"
http:
paths:
- path: /
pathType: Exact
backend:
service:
name: test-release-name-common-test
port:
number: 80
- it: should pass with ingress created with rules with targetSelector
set:
service:
my-service:
enabled: true
primary: true
ports:
main:
enabled: true
primary: true
port: 80
my-service2:
enabled: true
ports:
my-port2:
enabled: true
port: 9000
ingress:
my-ingress:
enabled: true
primary: true
targetSelector:
my-service2: my-port2
hosts: &hosts
- host: test-host
paths:
- path: /test-path
- host: test-other-host
paths:
- path: /test-other-path
- path: /test-other-path2
overrideService:
name: other-service
port: 8080
integrations: *integrations
asserts:
- documentIndex: &ingressDoc 2
isKind:
of: Ingress
- documentIndex: *ingressDoc
equal:
path: metadata.name
value: test-release-name-common-test
- documentIndex: *ingressDoc
equal:
path: spec.rules
value:
- host: test-host
http:
paths:
- path: /test-path
pathType: Prefix
backend:
service:
name: test-release-name-common-test-my-service2
port:
number: 9000
- host: test-other-host
http:
paths:
- path: /test-other-path
pathType: Prefix
backend:
service:
name: test-release-name-common-test-my-service2
port:
number: 9000
- path: /test-other-path2
pathType: Prefix
backend:
service:
name: test-release-name-common-test-other-service
port:
number: 8080