feat(common): Release common library 3.7.1 (#383)

Co-authored-by: Aisling McGinn <me@aisling.dev>
This commit is contained in:
Bernd Schorgers 2025-02-11 13:23:27 +01:00 committed by GitHub
parent c94a28baa3
commit 433f6d132b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
146 changed files with 232 additions and 222 deletions

View file

@ -0,0 +1,115 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: ingress metadata
templates:
- common.yaml
values:
- ../_values/ingress_main_default_hosts.yaml
- ../_values/controllers_main_default_container.yaml
tests:
- it: default metadata should pass
asserts:
- documentIndex: &IngressDocument 1
isKind:
of: Ingress
- documentIndex: *IngressDocument
notExists:
path: metadata.annotations
- documentIndex: *IngressDocument
equal:
path: metadata.labels
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: common-test-1.0.0
- it: custom metadata should pass
set:
ingress.main:
annotations:
test_annotation: test
labels:
test_label: test
asserts:
- documentIndex: &IngressDocument 1
isKind:
of: Ingress
- documentIndex: *IngressDocument
equal:
path: metadata.annotations
value:
test_annotation: test
- documentIndex: *IngressDocument
equal:
path: metadata.labels
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: common-test-1.0.0
test_label: test
- it: custom metadata with global metadata should pass
set:
global:
labels:
global_label: test
annotations:
global_annotation: test
ingress.main:
annotations:
test_annotation: test
labels:
test_label: test
asserts:
- documentIndex: &IngressDocument 1
isKind:
of: Ingress
- documentIndex: *IngressDocument
equal:
path: metadata.annotations
value:
global_annotation: test
test_annotation: test
- documentIndex: *IngressDocument
equal:
path: metadata.labels
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME
global_label: test
helm.sh/chart: common-test-1.0.0
test_label: test
- it: custom metadata with templates should pass
set:
ingress.main:
annotations:
template_annotation1: "{{ .Release.Name | lower }}"
template_annotation2: "{{ .Chart.Name | lower }}"
labels:
template_label1: "{{ .Release.Name | lower }}"
template_label2: "{{ .Chart.Name | lower }}"
asserts:
- documentIndex: &IngressDocument 1
isKind:
of: Ingress
- documentIndex: *IngressDocument
equal:
path: metadata.annotations["template_annotation1"]
value: release-name
- documentIndex: *IngressDocument
equal:
path: metadata.annotations["template_annotation2"]
value: common-test
- documentIndex: *IngressDocument
equal:
path: metadata.labels["template_label1"]
value: release-name
- documentIndex: *IngressDocument
equal:
path: metadata.labels["template_label2"]
value: common-test

View file

@ -0,0 +1,113 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: ingress presence
templates:
- common.yaml
values:
- ../_values/controllers_main_default_container.yaml
- ../_values/controllers_main_default_container.yaml
tests:
- it: default should pass
asserts:
- hasDocuments:
count: 1
- documentIndex: 0
not: true
isKind:
of: Ingress
- it: explicitly disabled should pass
values:
- ../_values/ingress_main_default_hosts.yaml
set:
ingress.main.enabled: false
asserts:
- hasDocuments:
count: 1
- documentIndex: 0
not: true
isKind:
of: Ingress
- it: explicitly enabled should pass
values:
- ../_values/ingress_main_default_hosts.yaml
set:
ingress.main.enabled: true
asserts:
- hasDocuments:
count: 2
- documentIndex: 0
not: true
isKind:
of: Ingress
- documentIndex: 1
isKind:
of: Ingress
- it: multiple ingress should pass
values:
- ../_values/service_main_default.yaml
- ../_values/ingress_main_default_hosts.yaml
set:
ingress.test:
hosts:
- host: "chart-example.local"
paths:
- path: /
service:
identifier: main
port: http
asserts:
- hasDocuments:
count: 4
- documentIndex: 0
not: true
isKind:
of: Ingress
- documentIndex: 1
not: true
isKind:
of: Ingress
- documentIndex: &FirstIngressDocument 2
isKind:
of: Ingress
- documentIndex: *FirstIngressDocument
equal:
path: metadata.name
value: RELEASE-NAME-main
- documentIndex: &SecondIngressDocument 3
isKind:
of: Ingress
- documentIndex: *SecondIngressDocument
equal:
path: metadata.name
value: RELEASE-NAME-test
- it: multiple ingress with explicit disabled should pass
values:
- ../_values/ingress_main_default_hosts.yaml
set:
ingress.test:
enabled: false
hosts:
- host: "chart-example.local"
paths:
- path: /
service:
identifier: main
port: http
asserts:
- hasDocuments:
count: 2
- documentIndex: 0
not: true
isKind:
of: Ingress
- documentIndex: &FirstIngressDocument 1
isKind:
of: Ingress
- documentIndex: *FirstIngressDocument
equal:
path: metadata.name
value: RELEASE-NAME

View file

@ -0,0 +1,143 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: ingress service reference
templates:
- common.yaml
values:
- ../_values/ingress_main_default_hosts.yaml
- ../_values/controllers_main_default_container.yaml
tests:
- it: default should pass
set:
service:
main:
controller: main
ports:
http:
port: &httpPort 8081
asserts:
- documentIndex: &IngressDocument 2
isKind:
of: Ingress
- documentIndex: *IngressDocument
equal:
path: spec.rules[0].http.paths[0].backend
value:
service:
name: RELEASE-NAME
port:
number: *httpPort
- it: custom service reference should pass
set:
ingress.main:
hosts:
- host: chart-test.local
paths:
- path: /
service:
name: pathService
port: 1234
asserts:
- documentIndex: &IngressDocument 1
isKind:
of: Ingress
- documentIndex: *IngressDocument
equal:
path: spec.rules[0].http.paths[0].backend
value:
service:
name: pathService
port:
number: 1234
- it: custom service reference with template should pass
set:
ingress.main:
hosts:
- host: chart-test.local
paths:
- path: /
service:
name: "{{ .Release.Name }}"
port: 1234
asserts:
- documentIndex: &IngressDocument 1
isKind:
of: Ingress
- documentIndex: *IngressDocument
equal:
path: spec.rules[0].http.paths[0].backend
value:
service:
name: RELEASE-NAME
port:
number: 1234
- it: multiple hosts with port name references should pass
set:
service:
main:
controller: main
ports:
http:
port: &httpPort 8081
http2:
enabled: true
port: &http2Port 1880
ingress:
main:
className: "nginx"
hosts:
- host: http.chart-test.local
paths:
- path: /
pathType: Prefix
service:
identifier: main
port: http
- host: http2.chart-test.local
paths:
- path: /
pathType: Prefix
service:
identifier: main
port: http2
asserts:
- documentIndex: &IngressDocument 2
isKind:
of: Ingress
# First Ingress host
- documentIndex: *IngressDocument
equal:
path: spec.rules[0].host
value: http.chart-test.local
- documentIndex: *IngressDocument
equal:
path: spec.rules[0].http.paths[0].path
value: "/"
- documentIndex: *IngressDocument
equal:
path: spec.rules[0].http.paths[0].backend.service.name
value: "RELEASE-NAME"
- documentIndex: *IngressDocument
equal:
path: spec.rules[0].http.paths[0].backend.service.port.number
value: *httpPort
# Second Ingress host
- documentIndex: *IngressDocument
equal:
path: spec.rules[1].host
value: http2.chart-test.local
- documentIndex: *IngressDocument
equal:
path: spec.rules[1].http.paths[0].path
value: "/"
- documentIndex: *IngressDocument
equal:
path: spec.rules[1].http.paths[0].backend.service.name
value: "RELEASE-NAME"
- documentIndex: *IngressDocument
equal:
path: spec.rules[1].http.paths[0].backend.service.port.number
value: *http2Port

View file

@ -0,0 +1,90 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: ingress tls
templates:
- common.yaml
values:
- ../_values/ingress_main_default_hosts.yaml
- ../_values/controllers_main_default_container.yaml
tests:
- it: default should pass
asserts:
- documentIndex: &IngressDocument 1
isKind:
of: Ingress
- documentIndex: *IngressDocument
notExists:
path: spec.tls
- it: tls enabled should pass
set:
ingress.main:
tls:
- secretName: test
hosts:
- hostname
asserts:
- documentIndex: &IngressDocument 1
isKind:
of: Ingress
- documentIndex: *IngressDocument
equal:
path: spec.tls[0]
value:
secretName: test
hosts:
- hostname
- it: tls enabled without secret should pass
set:
ingress.main:
tls:
- hosts:
- hostname
asserts:
- documentIndex: &IngressDocument 1
isKind:
of: Ingress
- documentIndex: *IngressDocument
equal:
path: spec.tls[0]
value:
hosts:
- hostname
- it: tls enabled with secret template should pass
set:
ingress.main:
tls:
- secretName: "{{ .Release.Name }}-secret"
hosts:
- hostname
asserts:
- documentIndex: &IngressDocument 1
isKind:
of: Ingress
- documentIndex: *IngressDocument
equal:
path: spec.tls[0]
value:
secretName: RELEASE-NAME-secret
hosts:
- hostname
- it: tls enabled with secret template evaluate empty should pass
set:
ingress.main:
tls:
- secretName: '{{ "" }}'
hosts:
- hostname
asserts:
- documentIndex: &IngressDocument 1
isKind:
of: Ingress
- documentIndex: *IngressDocument
equal:
path: spec.tls[0]
value:
hosts:
- hostname

View file

@ -0,0 +1,132 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: ingress values
templates:
- common.yaml
values:
- ../_values/ingress_main_default_hosts.yaml
- ../_values/service_main_default.yaml
- ../_values/controllers_main_default_container.yaml
tests:
- it: default should pass
asserts:
- documentIndex: &IngressDocument 2
isKind:
of: Ingress
- documentIndex: *IngressDocument
equal:
path: spec.rules[0].host
value: chart-example.local
- documentIndex: *IngressDocument
equal:
path: spec.rules[0].http.paths[0].path
value: "/"
- it: nameOverride should pass
set:
ingress.main:
nameOverride: test
asserts:
- documentIndex: &IngressDocument 2
isKind:
of: Ingress
- documentIndex: *IngressDocument
equal:
path: metadata.name
value: RELEASE-NAME-test
- it: nameOverride with template should pass
set:
ingress.main:
nameOverride: "{{ .Release.Name }}"
asserts:
- documentIndex: &IngressDocument 2
isKind:
of: Ingress
- documentIndex: *IngressDocument
equal:
path: metadata.name
value: RELEASE-NAME
- it: custom host and path should pass
set:
ingress.main:
hosts:
- host: chart-test.local
paths:
- path: /test
service:
identifier: main
asserts:
- documentIndex: &IngressDocument 2
isKind:
of: Ingress
- documentIndex: *IngressDocument
equal:
path: spec.rules[0].host
value: chart-test.local
- documentIndex: *IngressDocument
equal:
path: spec.rules[0].http.paths[0].path
value: "/test"
- it: host with template should pass
set:
ingress.main:
hosts:
- host: "{{ .Release.Name }}.hostname"
paths:
- path: /
service:
identifier: main
port: http
asserts:
- documentIndex: &IngressDocument 2
isKind:
of: Ingress
- documentIndex: *IngressDocument
equal:
path: spec.rules[0].host
value: RELEASE-NAME.hostname
- it: path with template should pass
set:
ingress.main:
hosts:
- host: chart-test.local
paths:
- path: "/{{ .Release.Name }}.path"
service:
identifier: main
asserts:
- documentIndex: &IngressDocument 2
isKind:
of: Ingress
- documentIndex: *IngressDocument
equal:
path: spec.rules[0].http.paths[0].path
value: "/RELEASE-NAME.path"
- it: with defaultBackend should pass
set:
ingress.main:
defaultBackend:
resource:
apiGroup: k8s.example.com
kind: StorageBucket
name: static-assets
asserts:
- documentIndex: &IngressDocument 2
isKind:
of: Ingress
- documentIndex: *IngressDocument
equal:
path: spec.defaultBackend
value:
resource:
apiGroup: k8s.example.com
kind: StorageBucket
name: static-assets
- documentIndex: *IngressDocument
notExists:
path: spec.rules