feat(common): Release common 4.0.0 (#398)

Co-authored-by: lab-assistant[bot] <180935599+lab-assistant[bot]@users.noreply.github.com>
This commit is contained in:
Bernd Schorgers 2025-05-16 08:40:39 +02:00
parent 1e210f43e3
commit a01a89cb13
No known key found for this signature in database
327 changed files with 11181 additions and 7330 deletions

View file

@ -0,0 +1,46 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: networkPolicy - fields - podSelector
templates:
- common.yaml
values:
- ../_values/controllers_main_default_container.yaml
tests:
- it: networkpolicy targets the correct controller by default
set:
networkpolicies:
main:
controller: main
policyTypes:
- Ingress
- Egress
rules: {}
documentSelector:
path: $[?(@.kind == "NetworkPolicy")].metadata.name
value: release-name
asserts:
- equal:
path: spec.podSelector
value:
matchLabels:
app.kubernetes.io/controller: main
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/name: RELEASE-NAME
- it: networkpolicy targets supports custom podSelector
set:
networkpolicies:
main:
controller: main
policyTypes:
- Ingress
- Egress
podSelector: {}
rules: {}
documentSelector:
path: $[?(@.kind == "NetworkPolicy")].metadata.name
value: release-name
asserts:
- equal:
path: spec.podSelector
value: {}

View file

@ -0,0 +1,33 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: networkPolicy - fields - rules
templates:
- common.yaml
values:
- ../_values/controllers_main_default_container.yaml
tests:
- it: networkpolicy rules are passed through
set:
networkpolicies:
main:
controller: main
policyTypes:
- Ingress
- Egress
rules:
ingress:
- {}
egress:
- {}
documentSelector:
path: $[?(@.kind == "NetworkPolicy")].metadata.name
value: release-name
asserts:
- equal:
path: spec.ingress
value:
- {}
- equal:
path: spec.egress
value:
- {}

View file

@ -0,0 +1,51 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: "networkPolicy - metadata - annotations"
templates:
- common.yaml
values:
- ../_values/controllers_main_default_container.yaml
set:
networkpolicies.main:
controller: main
policyTypes:
- Ingress
- Egress
rules: {}
tests:
- it: no annotations are set by default
documentSelector:
path: $[?(@.kind == "NetworkPolicy")].metadata.name
value: release-name
asserts:
- notExists:
path: metadata.annotations
- it: custom annotations
set:
networkpolicies.main.annotations:
test_annotation: test
documentSelector:
path: $[?(@.kind == "NetworkPolicy")].metadata.name
value: release-name
asserts:
- equal:
path: metadata.annotations
value:
test_annotation: test
- it: custom annotations mixed with global annotations
set:
global.annotations:
global_annotation: test
networkpolicies.main.annotations:
test_annotation: test
documentSelector:
path: $[?(@.kind == "NetworkPolicy")].metadata.name
value: release-name
asserts:
- equal:
path: metadata.annotations
value:
global_annotation: test
test_annotation: test

View file

@ -0,0 +1,64 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: "networkPolicy - metadata - labels"
templates:
- common.yaml
values:
- ../_values/controllers_main_default_container.yaml
set:
networkpolicies.main:
controller: main
policyTypes:
- Ingress
- Egress
rules: {}
tests:
- it: default labels
documentSelector:
path: $[?(@.kind == "NetworkPolicy")].metadata.name
value: release-name
asserts:
- 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 labels
set:
networkpolicies.main.labels:
test_label: test
documentSelector:
path: $[?(@.kind == "NetworkPolicy")].metadata.name
value: release-name
asserts:
- 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 labels mixed with global labels
set:
global.labels:
global_label: test
networkpolicies.main.labels:
test_label: test
documentSelector:
path: $[?(@.kind == "NetworkPolicy")].metadata.name
value: release-name
asserts:
- 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

View file

@ -0,0 +1,201 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: networkPolicy - metadata - name
templates:
- common.yaml
values:
- ../_values/controllers_main_default_container.yaml
set:
networkpolicies.main:
controller: main
policyTypes:
- Ingress
- Egress
rules: {}
tests:
- it: name defaults to chart fullName
asserts:
- containsDocument:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
name: release-name
any: true
- it: forceRename
set:
networkpolicies.main.forceRename: forceRename
asserts:
- containsDocument:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
name: forcerename
any: true
- it: forceRename with template
set:
networkpolicies.main.forceRename: "{{ .Chart.Name }}"
asserts:
- containsDocument:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
name: common-test
any: true
- it: prefix
set:
networkpolicies.main.prefix: prefix
asserts:
- containsDocument:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
name: prefix-release-name
any: true
- it: prefix with template
set:
networkpolicies.main.prefix: "{{ .Chart.Name }}"
asserts:
- containsDocument:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
name: common-test-release-name
any: true
- it: suffix
set:
networkpolicies.main.suffix: suffix
asserts:
- containsDocument:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
name: release-name-suffix
any: true
- it: suffix with template
set:
networkpolicies.main.suffix: "{{ .Chart.Name }}"
asserts:
- containsDocument:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
name: release-name-common-test
any: true
- it: both prefix and suffix
set:
networkpolicies.main.prefix: prefix
networkpolicies.main.suffix: suffix
asserts:
- containsDocument:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
name: prefix-release-name-suffix
any: true
- it: prefix, suffix and forceRename (illegal combination)
set:
networkpolicies.main.forceRename: forceRename
networkpolicies.main.prefix: prefix
networkpolicies.main.suffix: suffix
asserts:
- failedTemplate:
errorPattern: "values don't meet the specifications of the schema"
- it: multiple items
set:
networkpolicies.second:
controller: main
policyTypes:
- Ingress
- Egress
rules: {}
asserts:
- containsDocument:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
name: release-name-main
any: true
- containsDocument:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
name: release-name-second
any: true
- it: multiple items with prefix
set:
networkpolicies.second:
prefix: prefix
controller: main
policyTypes:
- Ingress
- Egress
rules: {}
asserts:
- containsDocument:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
name: release-name-main
any: true
- containsDocument:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
name: prefix-release-name-second
any: true
- it: multiple items with suffix
set:
networkpolicies.second:
suffix: suffix
controller: main
policyTypes:
- Ingress
- Egress
rules: {}
asserts:
- containsDocument:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
name: release-name-main
any: true
- containsDocument:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
name: release-name-second-suffix
any: true
- it: multiple items with prefix and suffix
set:
networkpolicies.second:
prefix: prefix
suffix: suffix
controller: main
policyTypes:
- Ingress
- Egress
rules: {}
asserts:
- containsDocument:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
name: release-name-main
any: true
- containsDocument:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
name: prefix-release-name-second-suffix
any: true
- it: multiple items with prefix, suffix and forceRename (illegal combination)
set:
networkpolicies.second:
forceRename: forceRename
prefix: prefix
suffix: suffix
controller: main
policyTypes:
- Ingress
- Egress
rules: {}
asserts:
- failedTemplate:
errorPattern: "values don't meet the specifications of the schema"

View file

@ -1,94 +0,0 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: networkPolicy metadata
set:
networkpolicies.main:
controller: main
policyTypes:
- Ingress
- Egress
rules: {}
templates:
- common.yaml
values:
- ../_values/controllers_main_default_container.yaml
tests:
- it: default metadata should pass
asserts:
- documentIndex: &NetworkPolicyDocument 1
isKind:
of: NetworkPolicy
- documentIndex: *NetworkPolicyDocument
notExists:
path: metadata.annotations
- documentIndex: *NetworkPolicyDocument
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:
networkpolicies:
main:
annotations:
test_annotation: test
labels:
test_label: test
asserts:
- documentIndex: &NetworkPolicyDocument 1
isKind:
of: NetworkPolicy
- documentIndex: *NetworkPolicyDocument
equal:
path: metadata.annotations
value:
test_annotation: test
- documentIndex: *NetworkPolicyDocument
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
networkpolicies:
main:
annotations:
test_annotation: test
labels:
test_label: test
asserts:
- documentIndex: &NetworkPolicyDocument 1
isKind:
of: NetworkPolicy
- documentIndex: *NetworkPolicyDocument
equal:
path: metadata.annotations
value:
global_annotation: test
test_annotation: test
- documentIndex: *NetworkPolicyDocument
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

View file

@ -1,85 +0,0 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: networkPolicy names
templates:
- common.yaml
values:
- ../_values/controllers_main_default_container.yaml
tests:
- it: default should pass
set:
networkpolicies:
main:
controller: main
policyTypes:
- Ingress
- Egress
rules: {}
asserts:
- hasDocuments:
count: 2
- documentIndex: &NetworkPolicyDocument 1
isKind:
of: NetworkPolicy
- documentIndex: *NetworkPolicyDocument
equal:
path: metadata.name
value: RELEASE-NAME
- it: custom name suffix should pass
set:
networkpolicies:
main:
controller: main
policyTypes:
- Ingress
- Egress
rules: {}
nameOverride: block-ingress
asserts:
- documentIndex: &NetworkPolicyDocument 1
isKind:
of: NetworkPolicy
- documentIndex: *NetworkPolicyDocument
equal:
path: metadata.name
value: RELEASE-NAME-block-ingress
- it: multiple networkpolicies can be enabled
set:
networkpolicies:
primary:
controller: main
policyTypes:
- Ingress
- Egress
rules: {}
secondary:
controller: main
policyTypes:
- Ingress
- Egress
rules: {}
asserts:
- hasDocuments:
count: 3
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: &firstNetworkPolicyDocument 1
isKind:
of: NetworkPolicy
- documentIndex: *firstNetworkPolicyDocument
equal:
path: metadata.name
value: RELEASE-NAME-primary
- documentIndex: 2
isKind:
of: NetworkPolicy
- documentIndex: &secondNetworkPolicyDocument 2
isKind:
of: NetworkPolicy
- documentIndex: *secondNetworkPolicyDocument
equal:
path: metadata.name
value: RELEASE-NAME-secondary

View file

@ -0,0 +1,57 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: networkPolicy - presence
templates:
- common.yaml
values:
- ../_values/controllers_main_default_container.yaml
tests:
- it: main networkpolicy is disabled by default
asserts:
- not: true
containsDocument:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
any: true
- it: main networkpolicy can be enabled
set:
networkpolicies.main:
controller: main
policyTypes:
- Ingress
- Egress
rules: {}
asserts:
- containsDocument:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
name: release-name
any: true
- it: multiple networkpolicies can be enabled
set:
networkpolicies:
primary:
controller: main
policyTypes:
- Ingress
- Egress
rules: {}
secondary:
controller: main
policyTypes:
- Ingress
- Egress
rules: {}
asserts:
- containsDocument:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
name: release-name-primary
any: true
- containsDocument:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
name: release-name-secondary
any: true

View file

@ -1,17 +1,17 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: NetworkPolicy validations
suite: networkPolicy - validations
templates:
- common.yaml
values:
- ../_values/controllers_main_default_container.yaml
set:
networkpolicies:
main:
controller: ""
rules: {}
tests:
- it: networkpolicy requires either controller reference or podSelector
set:
networkpolicies:
main:
controller: ""
rules: {}
asserts:
- failedTemplate:
errorMessage: "controller reference or podSelector is required for NetworkPolicy. (NetworkPolicy main)"
@ -22,7 +22,6 @@ tests:
main:
controller: main
policyTypes: []
rules: {}
asserts:
- failedTemplate:
errorMessage: "policyTypes is required for NetworkPolicy. (NetworkPolicy main)"
@ -34,7 +33,6 @@ tests:
controller: main
policyTypes:
- test
rules: {}
asserts:
- failedTemplate:
errorMessage: "Not a valid policyType for NetworkPolicy. (NetworkPolicy main, value test)"

View file

@ -1,103 +0,0 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: NetworkPolicy values
templates:
- common.yaml
values:
- ../_values/controllers_main_default_container.yaml
tests:
- it: main networkpolicy is disabled by default
asserts:
- hasDocuments:
count: 1
- documentIndex: 0
not: true
isKind:
of: NetworkPolicy
- it: main networkpolicy can be enabled
set:
networkpolicies.main:
controller: main
policyTypes:
- Ingress
- Egress
rules: {}
asserts:
- hasDocuments:
count: 2
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 1
isKind:
of: NetworkPolicy
- it: networkpolicy targets the correct controller
set:
networkpolicies:
main:
controller: main
policyTypes:
- Ingress
- Egress
rules: {}
asserts:
- documentIndex: &NetworkPolicyDocument 1
isKind:
of: NetworkPolicy
- documentIndex: *NetworkPolicyDocument
equal:
path: spec.podSelector
value:
matchLabels:
app.kubernetes.io/component: main
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/name: RELEASE-NAME
- it: networkpolicy targets supports custom podSelector
set:
networkpolicies:
main:
controller: main
policyTypes:
- Ingress
- Egress
podSelector: {}
rules: {}
asserts:
- documentIndex: &NetworkPolicyDocument 1
isKind:
of: NetworkPolicy
- documentIndex: *NetworkPolicyDocument
equal:
path: spec.podSelector
value: {}
- it: networkpolicy rules are passed through
set:
networkpolicies:
main:
controller: main
policyTypes:
- Ingress
- Egress
rules:
ingress:
- {}
egress:
- {}
asserts:
- documentIndex: &NetworkPolicyDocument 1
isKind:
of: NetworkPolicy
- documentIndex: *NetworkPolicyDocument
equal:
path: spec.ingress
value:
- {}
- documentIndex: *NetworkPolicyDocument
equal:
path: spec.egress
value:
- {}