feat(common): Release 2.0.0-beta.2 (#176)

This commit is contained in:
Bᴇʀɴᴅ Sᴄʜᴏʀɢᴇʀs 2023-09-14 15:40:49 +02:00 committed by GitHub
parent ed407c00df
commit 9928235b84
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
80 changed files with 1306 additions and 161 deletions

View file

@ -30,7 +30,15 @@ jobs:
matrix: matrix:
chart: ${{ fromJSON(inputs.chartsToTest) }} chart: ${{ fromJSON(inputs.chartsToTest) }}
k8s_version: k8s_version:
["v1.22.17", "v1.23.17", "v1.24.13", "v1.25.9", "v1.26.4", "v1.27.1"] [
"v1.22.17",
"v1.23.17",
"v1.24.17",
"v1.25.13",
"v1.26.8",
"v1.27.5",
"v1.28.1",
]
fail-fast: false fail-fast: false
steps: steps:
- name: Checkout - name: Checkout

View file

@ -2,6 +2,7 @@ controllers:
main: main:
containers: containers:
main: main:
order: 1
image: image:
repository: ghcr.io/mendhak/http-https-echo repository: ghcr.io/mendhak/http-https-echo
tag: 30 tag: 30
@ -19,7 +20,7 @@ controllers:
startup: startup:
enabled: true enabled: true
second-container: a-container:
image: image:
repository: ghcr.io/mendhak/http-https-echo repository: ghcr.io/mendhak/http-https-echo
tag: 30 tag: 30

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: configmap metadata suite: configmap metadata
templates: templates:
- common.yaml - common.yaml
@ -14,7 +16,7 @@ tests:
isKind: isKind:
of: ConfigMap of: ConfigMap
- documentIndex: *ConfigmapDocument - documentIndex: *ConfigmapDocument
isNull: notExists:
path: metadata.annotations path: metadata.annotations
- documentIndex: *ConfigmapDocument - documentIndex: *ConfigmapDocument
equal: equal:

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: configMap names suite: configMap names
templates: templates:
- common.yaml - common.yaml
@ -48,13 +50,13 @@ tests:
isKind: isKind:
of: ConfigMap of: ConfigMap
- documentIndex: *FirstConfigmapDocument - documentIndex: *FirstConfigmapDocument
isNotNull: isNotNullOrEmpty:
path: metadata.name path: metadata.name
- documentIndex: &SecondConfigmapDocument 3 - documentIndex: &SecondConfigmapDocument 3
isKind: isKind:
of: ConfigMap of: ConfigMap
- documentIndex: *SecondConfigmapDocument - documentIndex: *SecondConfigmapDocument
isNotNull: isNotNullOrEmpty:
path: metadata.name path: metadata.name
- it: default name should pass - it: default name should pass

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: configmap Pod metadata suite: configmap Pod metadata
templates: templates:
- common.yaml - common.yaml

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: container args override suite: container args override
templates: templates:
- common.yaml - common.yaml
@ -8,7 +10,7 @@ tests:
isKind: isKind:
of: Deployment of: Deployment
- documentIndex: 0 - documentIndex: 0
isNull: notExists:
path: spec.template.spec.containers[0].args path: spec.template.spec.containers[0].args
- it: single string should pass - it: single string should pass

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: container command override suite: container command override
templates: templates:
- common.yaml - common.yaml
@ -8,7 +10,7 @@ tests:
isKind: isKind:
of: Deployment of: Deployment
- documentIndex: 0 - documentIndex: 0
isNull: notExists:
path: spec.template.spec.containers[0].command path: spec.template.spec.containers[0].command
- it: single string should pass - it: single string should pass

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: container env values suite: container env values
templates: templates:
- common.yaml - common.yaml
@ -8,7 +10,7 @@ tests:
isKind: isKind:
of: Deployment of: Deployment
- documentIndex: *DeploymentDoc - documentIndex: *DeploymentDoc
isNull: notExists:
path: spec.template.spec.containers[0].env path: spec.template.spec.containers[0].env
- it: KeyValue string should pass - it: KeyValue string should pass

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: container envFrom values suite: container envFrom values
templates: templates:
- common.yaml - common.yaml
@ -8,7 +10,7 @@ tests:
isKind: isKind:
of: Deployment of: Deployment
- documentIndex: *DeploymentDoc - documentIndex: *DeploymentDoc
isNull: notExists:
path: spec.template.spec.containers[0].envFrom path: spec.template.spec.containers[0].envFrom
- it: explicit envFrom should pass - it: explicit envFrom should pass

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: container image tag suite: container image tag
templates: templates:
- common.yaml - common.yaml

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: container name suite: container name
templates: templates:
- common.yaml - common.yaml

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: container ports suite: container ports
templates: templates:
- common.yaml - common.yaml
@ -8,7 +10,7 @@ tests:
isKind: isKind:
of: Deployment of: Deployment
- documentIndex: 0 - documentIndex: 0
isNull: notExists:
path: spec.template.spec.containers[0].ports path: spec.template.spec.containers[0].ports
- it: custom port should pass - it: custom port should pass

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: container probes suite: container probes
templates: templates:
- common.yaml - common.yaml
@ -145,13 +147,13 @@ tests:
isKind: isKind:
of: Deployment of: Deployment
- documentIndex: 0 - documentIndex: 0
isNull: notExists:
path: spec.template.spec.containers[0].livenessProbe path: spec.template.spec.containers[0].livenessProbe
- documentIndex: 0 - documentIndex: 0
isNull: notExists:
path: spec.template.spec.containers[0].readinessProbe path: spec.template.spec.containers[0].readinessProbe
- documentIndex: 0 - documentIndex: 0
isNull: notExists:
path: spec.template.spec.containers[0].startupProbe path: spec.template.spec.containers[0].startupProbe
- it: AUTO type probe should pass - it: AUTO type probe should pass

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: container volumeMounts suite: container volumeMounts
templates: templates:
- common.yaml - common.yaml
@ -8,7 +10,7 @@ tests:
isKind: isKind:
of: Deployment of: Deployment
- documentIndex: *DeploymentDoc - documentIndex: *DeploymentDoc
isNull: notExists:
path: spec.template.spec.containers[0].volumeMounts path: spec.template.spec.containers[0].volumeMounts
- it: default should pass - it: default should pass

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: cronjob configuration suite: cronjob configuration
templates: templates:
- common.yaml - common.yaml
@ -28,7 +30,7 @@ tests:
path: spec.failedJobsHistoryLimit path: spec.failedJobsHistoryLimit
value: 1 value: 1
- documentIndex: *ControllerDoc - documentIndex: *ControllerDoc
isNull: notExists:
path: spec.jobTemplate.spec.ttlSecondsAfterFinished path: spec.jobTemplate.spec.ttlSecondsAfterFinished
- documentIndex: *ControllerDoc - documentIndex: *ControllerDoc
equal: equal:

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: controller metadata cronjob suite: controller metadata cronjob
templates: templates:
- common.yaml - common.yaml
@ -10,7 +12,7 @@ tests:
isKind: isKind:
of: CronJob of: CronJob
- documentIndex: *ControllerDoc - documentIndex: *ControllerDoc
isNull: notExists:
path: metadata.annotations path: metadata.annotations
- documentIndex: *ControllerDoc - documentIndex: *ControllerDoc
equal: equal:

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: controller metadata daemonset suite: controller metadata daemonset
templates: templates:
- common.yaml - common.yaml
@ -10,7 +12,7 @@ tests:
isKind: isKind:
of: DaemonSet of: DaemonSet
- documentIndex: *ControllerDoc - documentIndex: *ControllerDoc
isNull: notExists:
path: metadata.annotations path: metadata.annotations
- documentIndex: *ControllerDoc - documentIndex: *ControllerDoc
equal: equal:

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: controller metadata deployment suite: controller metadata deployment
templates: templates:
- common.yaml - common.yaml
@ -10,7 +12,7 @@ tests:
isKind: isKind:
of: Deployment of: Deployment
- documentIndex: *ControllerDoc - documentIndex: *ControllerDoc
isNull: notExists:
path: metadata.annotations path: metadata.annotations
- documentIndex: *ControllerDoc - documentIndex: *ControllerDoc
equal: equal:

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: controller metadata statefulset suite: controller metadata statefulset
templates: templates:
- common.yaml - common.yaml
@ -10,7 +12,7 @@ tests:
isKind: isKind:
of: StatefulSet of: StatefulSet
- documentIndex: *ControllerDoc - documentIndex: *ControllerDoc
isNull: notExists:
path: metadata.annotations path: metadata.annotations
- documentIndex: *ControllerDoc - documentIndex: *ControllerDoc
equal: equal:

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: controller types suite: controller types
templates: templates:
- common.yaml - common.yaml

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: ingress metadata suite: ingress metadata
templates: templates:
- common.yaml - common.yaml
@ -10,7 +12,7 @@ tests:
isKind: isKind:
of: Ingress of: Ingress
- documentIndex: *IngressDocument - documentIndex: *IngressDocument
isNull: notExists:
path: metadata.annotations path: metadata.annotations
- documentIndex: *IngressDocument - documentIndex: *IngressDocument
equal: equal:

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: ingress presence suite: ingress presence
templates: templates:
- common.yaml - common.yaml

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: ingress service reference suite: ingress service reference
templates: templates:
- common.yaml - common.yaml

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: ingress tls suite: ingress tls
templates: templates:
- common.yaml - common.yaml
@ -10,7 +12,7 @@ tests:
isKind: isKind:
of: Ingress of: Ingress
- documentIndex: *IngressDocument - documentIndex: *IngressDocument
isNull: notExists:
path: spec.tls path: spec.tls
- it: tls enabled should pass - it: tls enabled should pass

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: ingress values suite: ingress values
templates: templates:
- common.yaml - common.yaml

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: nameOverride tests suite: nameOverride tests
templates: templates:
- common.yaml - common.yaml

View file

@ -0,0 +1,89 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: networkPolicy metadata
templates:
- common.yaml
tests:
- it: default metadata should pass
set:
networkpolicies:
main:
enabled: true
asserts:
- documentIndex: &NetworkPolicyDocument 2
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:
enabled: true
annotations:
test_annotation: test
labels:
test_label: test
asserts:
- documentIndex: &NetworkPolicyDocument 2
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:
enabled: true
annotations:
test_annotation: test
labels:
test_label: test
asserts:
- documentIndex: &NetworkPolicyDocument 2
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

@ -0,0 +1,36 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: networkPolicy names
templates:
- common.yaml
tests:
- it: default should pass
set:
networkpolicies:
main:
enabled: true
asserts:
- hasDocuments:
count: 3
- documentIndex: &NetworkPolicyDocument 2
isKind:
of: NetworkPolicy
- documentIndex: *NetworkPolicyDocument
equal:
path: metadata.name
value: RELEASE-NAME
- it: custom name suffix should pass
set:
networkpolicies:
main:
enabled: true
nameOverride: block-ingress
asserts:
- documentIndex: &NetworkPolicyDocument 2
isKind:
of: NetworkPolicy
- documentIndex: *NetworkPolicyDocument
equal:
path: metadata.name
value: RELEASE-NAME-block-ingress

View file

@ -0,0 +1,36 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: NetworkPolicy validations
templates:
- common.yaml
tests:
- it: networkpolicy requires either controller reference or podSelector
set:
networkpolicies:
main:
enabled: true
controller: ""
asserts:
- failedTemplate:
errorMessage: "controller reference or podSelector is required for NetworkPolicy. (NetworkPolicy main)"
- it: policyTypes is required
set:
networkpolicies:
main:
enabled: true
policyTypes: []
asserts:
- failedTemplate:
errorMessage: "policyTypes is required for NetworkPolicy. (NetworkPolicy main)"
- it: policyTypes values check
set:
networkpolicies:
main:
enabled: true
policyTypes:
- test
asserts:
- failedTemplate:
errorMessage: "Not a valid policyType for NetworkPolicy. (NetworkPolicy main, value test)"

View file

@ -0,0 +1,95 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: NetworkPolicy values
templates:
- common.yaml
tests:
- it: main networkpolicy is disabled by default
asserts:
- hasDocuments:
count: 2
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 1
isKind:
of: Service
- it: main networkpolicy can be enabled
set:
networkpolicies:
main:
enabled: true
asserts:
- hasDocuments:
count: 3
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 1
isKind:
of: Service
- documentIndex: 2
isKind:
of: NetworkPolicy
- it: networkpolicy targets the correct controller
set:
networkpolicies:
main:
enabled: true
controller: main
asserts:
- documentIndex: &NetworkPolicyDocument 2
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:
enabled: true
controller: main
podSelector: {}
asserts:
- documentIndex: &NetworkPolicyDocument 2
isKind:
of: NetworkPolicy
- documentIndex: *NetworkPolicyDocument
equal:
path: spec.podSelector
value: {}
- it: networkpolicy rules are passed through
set:
networkpolicies:
main:
enabled: true
controller: main
rules:
ingress:
- {}
egress:
- {}
asserts:
- documentIndex: &NetworkPolicyDocument 2
isKind:
of: NetworkPolicy
- documentIndex: *NetworkPolicyDocument
equal:
path: spec.ingress
value:
- {}
- documentIndex: *NetworkPolicyDocument
equal:
path: spec.egress
value:
- {}

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: persistence claimnames suite: persistence claimnames
templates: templates:
- common.yaml - common.yaml

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: persistence emptydir suite: persistence emptydir
templates: templates:
- common.yaml - common.yaml

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: persistence hostpath suite: persistence hostpath
templates: templates:
- common.yaml - common.yaml

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: persistence types suite: persistence types
templates: templates:
- common.yaml - common.yaml

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: persistence volumeclaimtemplates suite: persistence volumeclaimtemplates
templates: templates:
- common.yaml - common.yaml

View file

@ -0,0 +1,81 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: pod sidecar containers
templates:
- common.yaml
tests:
- it: with default order
set:
controllers.main.containers:
additional1:
image:
repository: test
tag: test
additional2:
image:
repository: test
tag: test
asserts:
- documentIndex: &DeploymentDocument 0
isKind:
of: Deployment
- documentIndex: &DeploymentDocument 0
lengthEqual:
path: spec.template.spec.containers
count: 3
- documentIndex: *DeploymentDocument
equal:
path: spec.template.spec.containers[0].name
value: main
- documentIndex: *DeploymentDocument
equal:
path: spec.template.spec.containers[1].name
value: additional1
- documentIndex: *DeploymentDocument
equal:
path: spec.template.spec.containers[2].name
value: additional2
- it: with custom order
set:
controllers.main.containers:
main:
order: 2
additional1:
order: 3
image:
repository: test
tag: test
additional2:
order: 1
image:
repository: test
tag: test
additional3:
image:
repository: test
tag: test
asserts:
- documentIndex: &DeploymentDocument 0
isKind:
of: Deployment
- documentIndex: &DeploymentDocument 0
lengthEqual:
path: spec.template.spec.containers
count: 4
- documentIndex: *DeploymentDocument
equal:
path: spec.template.spec.containers[0].name
value: additional2
- documentIndex: *DeploymentDocument
equal:
path: spec.template.spec.containers[1].name
value: main
- documentIndex: *DeploymentDocument
equal:
path: spec.template.spec.containers[2].name
value: additional1
- documentIndex: *DeploymentDocument
equal:
path: spec.template.spec.containers[3].name
value: additional3

View file

@ -0,0 +1,89 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: pod affinity
templates:
- common.yaml
tests:
- it: default should pass
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
notExists:
path: spec.template.spec.affinity
- it: defaultPodOption should pass
set:
defaultPodOptions:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: topology.kubernetes.io/zone
operator: In
values:
- antarctica-east1
- antarctica-west1
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
equal:
path: spec.template.spec.affinity
value:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: topology.kubernetes.io/zone
operator: In
values:
- antarctica-east1
- antarctica-west1
- it: defaultPodOption with pod override should pass
set:
defaultPodOptions:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: topology.kubernetes.io/zone
operator: In
values:
- antarctica-east1
- antarctica-west1
controllers:
main:
pod:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: topology.kubernetes.io/zone
operator: In
values:
- asia-east1
- asia-west1
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
equal:
path: spec.template.spec.affinity
value:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: topology.kubernetes.io/zone
operator: In
values:
- asia-east1
- asia-west1

View file

@ -0,0 +1,59 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: pod dnsConfig
templates:
- common.yaml
tests:
- it: default should pass
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
notExists:
path: spec.template.spec.dnsConfig
- it: defaultPodOption should pass
set:
defaultPodOptions:
dnsConfig:
options:
- name: ndots
value: "1"
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
equal:
path: spec.template.spec.dnsConfig
value:
options:
- name: ndots
value: "1"
- it: defaultPodOption with pod override should pass
set:
defaultPodOptions:
dnsConfig:
options:
- name: ndots
value: "1"
controllers:
main:
pod:
dnsConfig:
options:
- name: ndots
value: "5"
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
equal:
path: spec.template.spec.dnsConfig
value:
options:
- name: ndots
value: "5"

View file

@ -1,4 +1,6 @@
suite: pod network ---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: pod dnsPolicy
templates: templates:
- common.yaml - common.yaml
tests: tests:
@ -7,27 +9,6 @@ tests:
- documentIndex: 0 - documentIndex: 0
isKind: isKind:
of: Deployment of: Deployment
- documentIndex: 0
equal:
path: spec.template.spec.hostNetwork
value: false
- documentIndex: 0
equal:
path: spec.template.spec.dnsPolicy
value: ClusterFirst
- it: hostNetwork disabled should pass
set:
defaultPodOptions:
hostNetwork: false
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
equal:
path: spec.template.spec.hostNetwork
value: false
- documentIndex: 0 - documentIndex: 0
equal: equal:
path: spec.template.spec.dnsPolicy path: spec.template.spec.dnsPolicy
@ -41,10 +22,6 @@ tests:
- documentIndex: 0 - documentIndex: 0
isKind: isKind:
of: Deployment of: Deployment
- documentIndex: 0
equal:
path: spec.template.spec.hostNetwork
value: true
- documentIndex: 0 - documentIndex: 0
equal: equal:
path: spec.template.spec.dnsPolicy path: spec.template.spec.dnsPolicy

View file

@ -0,0 +1,62 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: pod hostAliases
templates:
- common.yaml
tests:
- it: default should pass
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
notExists:
path: spec.template.spec.hostAliases
- it: defaultPodOption should pass
set:
defaultPodOptions:
hostAliases:
- ip: "192.168.1.100"
hostnames:
- "example.com"
- "www.example.com"
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
equal:
path: spec.template.spec.hostAliases
value:
- ip: "192.168.1.100"
hostnames:
- "example.com"
- "www.example.com"
- it: defaultPodOption with pod override should pass
set:
defaultPodOptions:
hostAliases:
- ip: "192.168.1.100"
hostnames:
- "example.com"
- "www.example.com"
controllers:
main:
pod:
hostAliases:
- ip: "127.0.0.1"
hostnames:
- "localhost"
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
equal:
path: spec.template.spec.hostAliases
value:
- ip: "127.0.0.1"
hostnames:
- "localhost"

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: pod security suite: pod security
templates: templates:
- common.yaml - common.yaml

View file

@ -0,0 +1,41 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: pod hostNetwork
templates:
- common.yaml
tests:
- it: default should pass
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
equal:
path: spec.template.spec.hostNetwork
value: false
- it: hostNetwork disabled should pass
set:
defaultPodOptions:
hostNetwork: false
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
equal:
path: spec.template.spec.hostNetwork
value: false
- it: hostNetwork enabled should pass
set:
defaultPodOptions:
hostNetwork: true
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
equal:
path: spec.template.spec.hostNetwork
value: true

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: pod security suite: pod security
templates: templates:
- common.yaml - common.yaml

View file

@ -0,0 +1,49 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: pod imagePullSecrets
templates:
- common.yaml
tests:
- it: default should pass
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
notExists:
path: spec.template.spec.imagePullSecrets
- it: defaultPodOption should pass
set:
defaultPodOptions:
imagePullSecrets:
- name: my-pull-secret
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
equal:
path: spec.template.spec.imagePullSecrets
value:
- name: my-pull-secret
- it: defaultPodOption with pod override should pass
set:
defaultPodOptions:
imagePullSecrets:
- name: my-pull-secret
controllers:
main:
pod:
imagePullSecrets:
- name: my-other-secret
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
equal:
path: spec.template.spec.imagePullSecrets
value:
- name: my-other-secret

View file

@ -0,0 +1,49 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: pod nodeSelector
templates:
- common.yaml
tests:
- it: default should pass
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
notExists:
path: spec.template.spec.nodeSelector
- it: defaultPodOption should pass
set:
defaultPodOptions:
nodeSelector:
disktype: ssd
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
equal:
path: spec.template.spec.nodeSelector
value:
disktype: ssd
- it: defaultPodOption with pod override should pass
set:
defaultPodOptions:
nodeSelector:
disktype: ssd
controllers:
main:
pod:
nodeSelector:
disktype: hdd
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
equal:
path: spec.template.spec.nodeSelector
value:
disktype: hdd

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: pod replicas suite: pod replicas
templates: templates:
- common.yaml - common.yaml

View file

@ -0,0 +1,64 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: pod securityContext
templates:
- common.yaml
tests:
- it: default should pass
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
notExists:
path: spec.template.spec.securityContext
- it: defaultPodOption should pass
set:
defaultPodOptions:
securityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
fsGroupChangePolicy: OnRootMismatch
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
equal:
path: spec.template.spec.securityContext
value:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
fsGroupChangePolicy: OnRootMismatch
- it: defaultPodOption with pod override should pass
set:
defaultPodOptions:
securityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
fsGroupChangePolicy: OnRootMismatch
controllers:
main:
pod:
securityContext:
runAsUser: 568
runAsGroup: 568
fsGroup: 568
fsGroupChangePolicy: OnRootMismatch
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
equal:
path: spec.template.spec.securityContext
value:
runAsUser: 568
runAsGroup: 568
fsGroup: 568
fsGroupChangePolicy: OnRootMismatch

View file

@ -0,0 +1,64 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: pod tolerations
templates:
- common.yaml
tests:
- it: default should pass
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
notExists:
path: spec.template.spec.tolerations
- it: defaultPodOption should pass
set:
defaultPodOptions:
tolerations:
- key: "key1"
operator: "Equal"
value: "value1"
effect: "NoSchedule"
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
equal:
path: spec.template.spec.tolerations
value:
- key: "key1"
operator: "Equal"
value: "value1"
effect: "NoSchedule"
- it: defaultPodOption with pod override should pass
set:
defaultPodOptions:
tolerations:
- key: "key1"
operator: "Equal"
value: "value1"
effect: "NoSchedule"
controllers:
main:
pod:
tolerations:
- key: "master"
operator: "Equal"
value: "value1"
effect: "NoSchedule"
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
equal:
path: spec.template.spec.tolerations
value:
- key: "master"
operator: "Equal"
value: "value1"
effect: "NoSchedule"

View file

@ -0,0 +1,74 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: pod topologySpreadConstraints
templates:
- common.yaml
tests:
- it: default should pass
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
notExists:
path: spec.template.spec.topologySpreadConstraints
- it: defaultPodOption should pass
set:
defaultPodOptions:
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
app: foo
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
equal:
path: spec.template.spec.topologySpreadConstraints
value:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
app: foo
- it: defaultPodOption with pod override should pass
set:
defaultPodOptions:
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
app: foo
controllers:
main:
pod:
topologySpreadConstraints:
- maxSkew: 2
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
app: foo
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
equal:
path: spec.template.spec.topologySpreadConstraints
value:
- maxSkew: 2
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
app: foo

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: pod initContainers suite: pod initContainers
templates: templates:
- common.yaml - common.yaml
@ -41,3 +43,46 @@ tests:
value: value:
name: template name: template
value: RELEASE-NAME-admin value: RELEASE-NAME-admin
- it: disabled should pass
set:
controllers.main.initContainers:
init1:
enabled: false
image:
repository: ghcr.io/mendhak/http-https-echo
asserts:
- documentIndex: &DeploymentDocument 0
isKind:
of: Deployment
- documentIndex: *DeploymentDocument
notExists:
path: spec.template.spec.initContainers
- it: custom order should pass
set:
controllers.main.initContainers:
init1:
order: 2
image:
repository: ghcr.io/mendhak/http-https-echo
init2:
order: 1
image:
repository: ghcr.io/mendhak/http-https-echo
asserts:
- documentIndex: &DeploymentDocument 0
isKind:
of: Deployment
- documentIndex: *DeploymentDocument
lengthEqual:
path: spec.template.spec.initContainers
count: 2
- documentIndex: *DeploymentDocument
equal:
path: spec.template.spec.initContainers[0].name
value: init2
- documentIndex: *DeploymentDocument
equal:
path: spec.template.spec.initContainers[1].name
value: init1

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: pod sidecar containers suite: pod sidecar containers
templates: templates:
- common.yaml - common.yaml
@ -16,7 +18,7 @@ tests:
of: Deployment of: Deployment
- documentIndex: 0 - documentIndex: 0
equal: equal:
path: spec.template.spec.containers[0].name path: spec.template.spec.containers[1].name
value: template-test value: template-test
- it: with implicit name should pass - it: with implicit name should pass
@ -32,7 +34,7 @@ tests:
of: Deployment of: Deployment
- documentIndex: 0 - documentIndex: 0
equal: equal:
path: spec.template.spec.containers[0].name path: spec.template.spec.containers[1].name
value: additional1 value: additional1
- it: with templated name should pass - it: with templated name should pass
@ -49,7 +51,7 @@ tests:
of: Deployment of: Deployment
- documentIndex: 0 - documentIndex: 0
equal: equal:
path: spec.template.spec.containers[0].name path: spec.template.spec.containers[1].name
value: RELEASE-NAME-container value: RELEASE-NAME-container
- it: with custom env vars dict should pass - it: with custom env vars dict should pass
@ -73,31 +75,31 @@ tests:
of: Deployment of: Deployment
- documentIndex: *DeploymentDocument - documentIndex: *DeploymentDocument
equal: equal:
path: spec.template.spec.containers[1].env[0] path: spec.template.spec.containers[0].env[0]
value: value:
name: main_env name: main_env
value: "value" value: "value"
- documentIndex: *DeploymentDocument - documentIndex: *DeploymentDocument
equal: equal:
path: spec.template.spec.containers[0].env[0] path: spec.template.spec.containers[1].env[0]
value: value:
name: float name: float
value: "1.5" value: "1.5"
- documentIndex: *DeploymentDocument - documentIndex: *DeploymentDocument
equal: equal:
path: spec.template.spec.containers[0].env[1] path: spec.template.spec.containers[1].env[1]
value: value:
name: int name: int
value: "1" value: "1"
- documentIndex: *DeploymentDocument - documentIndex: *DeploymentDocument
equal: equal:
path: spec.template.spec.containers[0].env[2] path: spec.template.spec.containers[1].env[2]
value: value:
name: string name: string
value: value_of_env value: value_of_env
- documentIndex: *DeploymentDocument - documentIndex: *DeploymentDocument
equal: equal:
path: spec.template.spec.containers[0].env[3] path: spec.template.spec.containers[1].env[3]
value: value:
name: template name: template
value: RELEASE-NAME-admin value: RELEASE-NAME-admin

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: pvc metadata suite: pvc metadata
templates: templates:
- common.yaml - common.yaml
@ -10,7 +12,7 @@ tests:
isKind: isKind:
of: PersistentVolumeClaim of: PersistentVolumeClaim
- documentIndex: *PersistentVolumeClaimDocument - documentIndex: *PersistentVolumeClaimDocument
isNull: notExists:
path: metadata.annotations path: metadata.annotations
- documentIndex: *PersistentVolumeClaimDocument - documentIndex: *PersistentVolumeClaimDocument
equal: equal:

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: pvc names suite: pvc names
templates: templates:
- common.yaml - common.yaml

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: pvc storageclass suite: pvc storageclass
templates: templates:
- common.yaml - common.yaml
@ -10,7 +12,7 @@ tests:
isKind: isKind:
of: PersistentVolumeClaim of: PersistentVolumeClaim
- documentIndex: *PersistentVolumeClaimDocument - documentIndex: *PersistentVolumeClaimDocument
isNull: notExists:
path: spec.storageClassName path: spec.storageClassName
- it: custom should pass - it: custom should pass

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: route metadata suite: route metadata
templates: templates:
- common.yaml - common.yaml
@ -14,7 +16,7 @@ tests:
isKind: isKind:
of: HTTPRoute of: HTTPRoute
- documentIndex: *routeDocument - documentIndex: *routeDocument
isNull: notExists:
path: metadata.annotations path: metadata.annotations
- documentIndex: *routeDocument - documentIndex: *routeDocument
equal: equal:

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: route presence suite: route presence
templates: templates:
- common.yaml - common.yaml

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: ingress service reference suite: ingress service reference
templates: templates:
- common.yaml - common.yaml

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: route values suite: route values
templates: templates:
- common.yaml - common.yaml
@ -118,7 +120,7 @@ tests:
isKind: isKind:
of: GRPCRoute of: GRPCRoute
- documentIndex: &HTTPRouteDocument 2 - documentIndex: &HTTPRouteDocument 2
isNull: notExists:
path: spec.rules[0].matches path: spec.rules[0].matches
- documentIndex: &HTTPRouteDocument 3 - documentIndex: &HTTPRouteDocument 3
isKind: isKind:
@ -134,19 +136,19 @@ tests:
isKind: isKind:
of: TCPRoute of: TCPRoute
- documentIndex: &HTTPRouteDocument 4 - documentIndex: &HTTPRouteDocument 4
isNull: notExists:
path: spec.rules[0].matches path: spec.rules[0].matches
- documentIndex: &HTTPRouteDocument 5 - documentIndex: &HTTPRouteDocument 5
isKind: isKind:
of: TLSRoute of: TLSRoute
- documentIndex: &HTTPRouteDocument 5 - documentIndex: &HTTPRouteDocument 5
isNull: notExists:
path: spec.rules[0].matches path: spec.rules[0].matches
- documentIndex: &HTTPRouteDocument 6 - documentIndex: &HTTPRouteDocument 6
isKind: isKind:
of: UDPRoute of: UDPRoute
- documentIndex: &HTTPRouteDocument 6 - documentIndex: &HTTPRouteDocument 6
isNull: notExists:
path: spec.rules[0].matches path: spec.rules[0].matches
- it: hostnames shouldn't be used for TCPRoutes and UDPRoutes - it: hostnames shouldn't be used for TCPRoutes and UDPRoutes
@ -173,13 +175,13 @@ tests:
isKind: isKind:
of: TCPRoute of: TCPRoute
- documentIndex: &HTTPRouteDocument 2 - documentIndex: &HTTPRouteDocument 2
isNull: notExists:
path: spec.hostnames path: spec.hostnames
- documentIndex: &HTTPRouteDocument 3 - documentIndex: &HTTPRouteDocument 3
isKind: isKind:
of: UDPRoute of: UDPRoute
- documentIndex: &HTTPRouteDocument 3 - documentIndex: &HTTPRouteDocument 3
isNull: notExists:
path: spec.hostnames path: spec.hostnames
- it: sectionName in parentRefs should be optional - it: sectionName in parentRefs should be optional
@ -201,7 +203,7 @@ tests:
isKind: isKind:
of: HTTPRoute of: HTTPRoute
- documentIndex: &HTTPRouteDocument 2 - documentIndex: &HTTPRouteDocument 2
isNull: notExists:
path: spec.parentRefs[0].sectionName path: spec.parentRefs[0].sectionName
- documentIndex: &HTTPRouteDocument 3 - documentIndex: &HTTPRouteDocument 3
isKind: isKind:

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: secret metadata suite: secret metadata
templates: templates:
- common.yaml - common.yaml
@ -14,7 +16,7 @@ tests:
isKind: isKind:
of: Secret of: Secret
- documentIndex: *SecretDocument - documentIndex: *SecretDocument
isNull: notExists:
path: metadata.annotations path: metadata.annotations
- documentIndex: *SecretDocument - documentIndex: *SecretDocument
equal: equal:

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: secret names suite: secret names
templates: templates:
- common.yaml - common.yaml
@ -48,13 +50,13 @@ tests:
isKind: isKind:
of: Secret of: Secret
- documentIndex: *FirstSecretDocument - documentIndex: *FirstSecretDocument
isNotNull: isNotNullOrEmpty:
path: metadata.name path: metadata.name
- documentIndex: &SecondSecretDocument 3 - documentIndex: &SecondSecretDocument 3
isKind: isKind:
of: Secret of: Secret
- documentIndex: *SecondSecretDocument - documentIndex: *SecondSecretDocument
isNotNull: isNotNullOrEmpty:
path: metadata.name path: metadata.name
- it: default name should pass - it: default name should pass

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: secret Pod metadata suite: secret Pod metadata
templates: templates:
- common.yaml - common.yaml

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: service metadata suite: service metadata
templates: templates:
- common.yaml - common.yaml
@ -8,7 +10,7 @@ tests:
isKind: isKind:
of: Service of: Service
- documentIndex: *ServiceDocument - documentIndex: *ServiceDocument
isNull: notExists:
path: metadata.annotations path: metadata.annotations
- documentIndex: *ServiceDocument - documentIndex: *ServiceDocument
equal: equal:

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: service names suite: service names
templates: templates:
- common.yaml - common.yaml

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: service protocols suite: service protocols
templates: templates:
- common.yaml - common.yaml
@ -50,7 +52,7 @@ tests:
path: spec.ports[0].protocol path: spec.ports[0].protocol
value: TCP value: TCP
- documentIndex: *ServiceDocument - documentIndex: *ServiceDocument
isNull: notExists:
path: metadata.annotations path: metadata.annotations
- it: explicit HTTPS should pass - it: explicit HTTPS should pass

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: service ports suite: service ports
templates: templates:
- common.yaml - common.yaml

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: serviceAccount values suite: serviceAccount values
templates: templates:
- common.yaml - common.yaml

View file

@ -1,3 +1,5 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: serviceMonitor values suite: serviceMonitor values
templates: templates:
- common.yaml - common.yaml

View file

@ -3,7 +3,7 @@ apiVersion: v2
name: common name: common
description: Function library for Helm charts description: Function library for Helm charts
type: library type: library
version: 2.0.0-beta.1 version: 2.0.0-beta.2
kubeVersion: ">=1.22.0-0" kubeVersion: ">=1.22.0-0"
keywords: keywords:
- common - common
@ -17,3 +17,10 @@ annotations:
artifacthub.io/changes: |- artifacthub.io/changes: |-
- kind: changed - kind: changed
description: Many things :P description: Many things :P
- kind: removed
description: |-
**BREAKING CHANGE** Removed support for add-ons. These can be configured through other means nowadays.
- kind: added
description: Added support for ordering (init)Containers within a controller.
- kind: added
description: Added support for creating Network Policies.

View file

@ -1,6 +1,6 @@
# common # common
![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: library](https://img.shields.io/badge/Type-library-informational?style=flat-square) ![Version: 2.0.0-beta.2](https://img.shields.io/badge/Version-2.0.0--beta.2-informational?style=flat-square) ![Type: library](https://img.shields.io/badge/Type-library-informational?style=flat-square)
Function library for Helm charts Function library for Helm charts
@ -29,7 +29,7 @@ Include this chart as a dependency in your `Chart.yaml` e.g.
# Chart.yaml # Chart.yaml
dependencies: dependencies:
- name: common - name: common
version: 2.0.0 version: 2.0.0-beta.2
repository: https://bjw-s.github.io/helm-charts/ repository: https://bjw-s.github.io/helm-charts/
``` ```
@ -64,6 +64,7 @@ N/A
| controllers.main.containers.main.image.tag | string | `nil` | image tag | | controllers.main.containers.main.image.tag | string | `nil` | image tag |
| controllers.main.containers.main.lifecycle | object | `{}` | Configure the lifecycle for the container | | controllers.main.containers.main.lifecycle | object | `{}` | Configure the lifecycle for the container |
| controllers.main.containers.main.nameOverride | string | `nil` | Override the container name | | controllers.main.containers.main.nameOverride | string | `nil` | Override the container name |
| controllers.main.containers.main.order | int | 99 | Override the default container order Containers get sorted alphanumerically by the `<order>-<identifier>` combination. |
| controllers.main.containers.main.probes | object | See below | [[ref]](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) | | controllers.main.containers.main.probes | object | See below | [[ref]](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) |
| controllers.main.containers.main.probes.liveness | object | See below | Liveness probe configuration | | controllers.main.containers.main.probes.liveness | object | See below | Liveness probe configuration |
| controllers.main.containers.main.probes.liveness.custom | bool | `false` | Set this to `true` if you wish to specify your own livenessProbe | | controllers.main.containers.main.probes.liveness.custom | bool | `false` | Set this to `true` if you wish to specify your own livenessProbe |
@ -93,7 +94,7 @@ N/A
| controllers.main.cronjob.successfulJobsHistory | int | `1` | The number of succesful Jobs to keep | | controllers.main.cronjob.successfulJobsHistory | int | `1` | The number of succesful Jobs to keep |
| controllers.main.cronjob.ttlSecondsAfterFinished | string | `nil` | If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted. | | controllers.main.cronjob.ttlSecondsAfterFinished | string | `nil` | If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted. |
| controllers.main.enabled | bool | `true` | enable the controller. | | controllers.main.enabled | bool | `true` | enable the controller. |
| controllers.main.initContainers | object | `{}` | Specify any initContainers here as dictionary items. Each initContainer should have its own key. The dictionary item key will determine the order. Helm templates can be used. | | controllers.main.initContainers | object | `{}` | Specify any initContainers here as dictionary items. Each initContainer should have its own key initContainers get sorted alphanumerically by the `<order>-<identifier>` combination. |
| controllers.main.labels | object | `{}` | Set labels on the deployment/statefulset/daemonset/cronjob | | controllers.main.labels | object | `{}` | Set labels on the deployment/statefulset/daemonset/cronjob |
| controllers.main.replicas | int | `1` | Number of desired pods. When using a HorizontalPodAutoscaler, set this to `null`. | | controllers.main.replicas | int | `1` | Number of desired pods. When using a HorizontalPodAutoscaler, set this to `null`. |
| controllers.main.revisionHistoryLimit | int | `3` | ReplicaSet revision history limit | | controllers.main.revisionHistoryLimit | int | `3` | ReplicaSet revision history limit |

View file

@ -0,0 +1,49 @@
{{/*
This template serves as a blueprint for all networkPolicy objects that are created
within the common library.
*/}}
{{- define "bjw-s.common.class.networkpolicy" -}}
{{- $rootContext := .rootContext -}}
{{- $networkPolicyObject := .object -}}
{{- $labels := merge
($networkPolicyObject.labels | default dict)
(include "bjw-s.common.lib.metadata.allLabels" $rootContext | fromYaml)
-}}
{{- $annotations := merge
($networkPolicyObject.annotations | default dict)
(include "bjw-s.common.lib.metadata.globalAnnotations" $rootContext | fromYaml)
-}}
{{- $podSelector := dict -}}
{{- if (hasKey $networkPolicyObject "podSelector") -}}
{{- $podSelector = $networkPolicyObject.podSelector -}}
{{- else -}}
{{- $podSelector = dict "matchLabels" (merge
($networkPolicyObject.extraSelectorLabels | default dict)
(dict "app.kubernetes.io/component" $networkPolicyObject.controller)
(include "bjw-s.common.lib.metadata.selectorLabels" $rootContext | fromYaml)
) -}}
{{- end -}}
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: {{ $networkPolicyObject.name }}
{{- with $labels }}
labels: {{- toYaml . | nindent 4 -}}
{{- end }}
{{- with $annotations }}
annotations: {{- toYaml . | nindent 4 -}}
{{- end }}
spec:
podSelector: {{- toYaml $podSelector | nindent 4 }}
{{- with $networkPolicyObject.policyTypes }}
policyTypes: {{- toYaml . | nindent 4 -}}
{{- end }}
{{- with $networkPolicyObject.rules.ingress }}
ingress: {{- tpl (toYaml .) $rootContext | nindent 4 -}}
{{- end }}
{{- with $networkPolicyObject.rules.egress }}
egress: {{- tpl (toYaml .) $rootContext | nindent 4 -}}
{{- end }}
{{- end -}}

View file

@ -1,58 +0,0 @@
{{- /* TODO: Remove this file */ -}}
{{/* Volumes included by the controller */}}
{{- define "bjw-s.common.lib.container.volumeMounts" -}}
{{- range $persistenceIndex, $persistenceItem := .Values.persistence }}
{{- if $persistenceItem.enabled -}}
{{- if kindIs "slice" $persistenceItem.subPath -}}
{{- if $persistenceItem.mountPath -}}
{{- fail (printf "Cannot use persistence.mountPath with a subPath list (%s)" $persistenceIndex) }}
{{- end -}}
{{- range $subPathIndex, $subPathItem := $persistenceItem.subPath }}
- name: {{ $persistenceIndex }}
subPath: {{ required "subPaths as a list of maps require a path field" $subPathItem.path }}
mountPath: {{ required "subPaths as a list of maps require an explicit mountPath field" $subPathItem.mountPath }}
{{- with $subPathItem.readOnly }}
readOnly: {{ . }}
{{- end }}
{{- with $subPathItem.mountPropagation }}
mountPropagation: {{ . }}
{{- end }}
{{- end -}}
{{- else -}}
{{/* Set the default mountPath to /<name_of_the_peristence_item> */}}
{{- $mountPath := (printf "/%v" $persistenceIndex) -}}
{{- if eq "hostPath" (default "pvc" $persistenceItem.type) -}}
{{- $mountPath = $persistenceItem.hostPath -}}
{{- end -}}
{{/* Use the specified mountPath if provided */}}
{{- with $persistenceItem.mountPath -}}
{{- $mountPath = . -}}
{{- end }}
{{- if ne $mountPath "-" }}
- name: {{ $persistenceIndex }}
mountPath: {{ $mountPath }}
{{- with $persistenceItem.subPath }}
subPath: {{ . }}
{{- end }}
{{- with $persistenceItem.readOnly }}
readOnly: {{ . }}
{{- end }}
{{- with $persistenceItem.mountPropagation }}
mountPropagation: {{ . }}
{{- end }}
{{- end }}
{{- end -}}
{{- end -}}
{{- end }}
{{- if eq .Values.controller.type "statefulset" }}
{{- range $index, $vct := .Values.volumeClaimTemplates }}
- mountPath: {{ $vct.mountPath }}
name: {{ $vct.name }}
{{- if $vct.subPath }}
subPath: {{ $vct.subPath }}
{{- end }}
{{- end }}
{{- end }}
{{- end -}}

View file

@ -15,7 +15,7 @@ Return the enabled containers for a controller.
{{- end -}} {{- end -}}
{{- if $containerEnabled -}} {{- if $containerEnabled -}}
{{- $_ := set $enabledContainers $name . -}} {{- $_ := set $enabledContainers $name $container -}}
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}

View file

@ -0,0 +1,22 @@
{{/*
Validate networkPolicy values
*/}}
{{- define "bjw-s.common.lib.networkpolicy.validate" -}}
{{- $rootContext := .rootContext -}}
{{- $networkpolicyObject := .object -}}
{{- if and (not (hasKey $networkpolicyObject "podSelector")) (empty (get $networkpolicyObject "controller")) -}}
{{- fail (printf "controller reference or podSelector is required for NetworkPolicy. (NetworkPolicy %s)" $networkpolicyObject.identifier) -}}
{{- end -}}
{{- if empty (get $networkpolicyObject "policyTypes") -}}
{{- fail (printf "policyTypes is required for NetworkPolicy. (NetworkPolicy %s)" $networkpolicyObject.identifier) -}}
{{- end -}}
{{- $allowedpolicyTypes := list "Ingress" "Egress" -}}
{{- range $networkpolicyObject.policyTypes -}}
{{- if not (has . $allowedpolicyTypes) -}}
{{- fail (printf "Not a valid policyType for NetworkPolicy. (NetworkPolicy %s, value %s)" $networkpolicyObject.identifier .) -}}
{{- end -}}
{{- end -}}
{{- end -}}

View file

@ -0,0 +1,24 @@
{{/*
Convert networkPolicy values to an object
*/}}
{{- define "bjw-s.common.lib.networkpolicy.valuesToObject" -}}
{{- $rootContext := .rootContext -}}
{{- $identifier := .id -}}
{{- $objectValues := .values -}}
{{- /* Determine and inject the networkPolicy name */ -}}
{{- $objectName := (include "bjw-s.common.lib.chart.names.fullname" $rootContext) -}}
{{- if $objectValues.nameOverride -}}
{{- $objectName = printf "%s-%s" $objectName $objectValues.nameOverride -}}
{{- else -}}
{{- if ne $identifier "main" -}}
{{- $objectName = printf "%s-%s" $objectName $identifier -}}
{{- end -}}
{{- end -}}
{{- $_ := set $objectValues "name" $objectName -}}
{{- $_ := set $objectValues "identifier" $identifier -}}
{{- /* Return the networkPolicy object */ -}}
{{- $objectValues | toYaml -}}
{{- end -}}

View file

@ -19,7 +19,7 @@ runtimeClassName: {{ . | trim }}
schedulerName: {{ . | trim }} schedulerName: {{ . | trim }}
{{- end -}} {{- end -}}
{{- with ($controllerObject.pod.securityContext) }} {{- with ($controllerObject.pod.securityContext) }}
securityContext: {{ . | trim | nindent 2 }} securityContext: {{ . | toYaml | nindent 2 }}
{{- end -}} {{- end -}}
{{- with ($controllerObject.pod.hostname) }} {{- with ($controllerObject.pod.hostname) }}
hostname: {{ . | trim }} hostname: {{ . | trim }}
@ -29,13 +29,13 @@ hostNetwork: {{ $controllerObject.pod.hostNetwork }}
hostPID: {{ $controllerObject.pod.hostPID }} hostPID: {{ $controllerObject.pod.hostPID }}
dnsPolicy: {{ include "bjw-s.common.lib.pod.field.dnsPolicy" (dict "ctx" $ctx) | trim }} dnsPolicy: {{ include "bjw-s.common.lib.pod.field.dnsPolicy" (dict "ctx" $ctx) | trim }}
{{- with $controllerObject.pod.dnsConfig }} {{- with $controllerObject.pod.dnsConfig }}
dnsConfig: {{ . | trim | nindent 2 }} dnsConfig: {{ . | toYaml | nindent 2 }}
{{- end -}} {{- end -}}
{{- with $controllerObject.pod.hostAliases }} {{- with $controllerObject.pod.hostAliases }}
hostAliases: {{ . | trim | nindent 2 }} hostAliases: {{ . | toYaml | nindent 2 }}
{{- end -}} {{- end -}}
{{- with $controllerObject.pod.imagePullSecrets }} {{- with $controllerObject.pod.imagePullSecrets }}
imagePullSecrets: {{ . | trim | nindent 2 }} imagePullSecrets: {{ . | toYaml | nindent 2 }}
{{- end -}} {{- end -}}
{{- with $controllerObject.pod.terminationGracePeriodSeconds }} {{- with $controllerObject.pod.terminationGracePeriodSeconds }}
terminationGracePeriodSeconds: {{ . | trim }} terminationGracePeriodSeconds: {{ . | trim }}
@ -44,16 +44,16 @@ terminationGracePeriodSeconds: {{ . | trim }}
restartPolicy: {{ . | trim }} restartPolicy: {{ . | trim }}
{{- end -}} {{- end -}}
{{- with $controllerObject.pod.nodeSelector }} {{- with $controllerObject.pod.nodeSelector }}
nodeSelector: {{ . | trim | nindent 2 }} nodeSelector: {{ . | toYaml | nindent 2 }}
{{- end -}} {{- end -}}
{{- with $controllerObject.pod.affinity }} {{- with $controllerObject.pod.affinity }}
affinity: {{ . | trim | nindent 2 }} affinity: {{ . | toYaml | nindent 2 }}
{{- end -}} {{- end -}}
{{- with $controllerObject.pod.topologySpreadConstraints }} {{- with $controllerObject.pod.topologySpreadConstraints }}
topologySpreadConstraints: {{ . | trim | nindent 2 }} topologySpreadConstraints: {{ . | toYaml | nindent 2 }}
{{- end -}} {{- end -}}
{{- with $controllerObject.pod.tolerations }} {{- with $controllerObject.pod.tolerations }}
tolerations: {{ . | trim | nindent 2 }} tolerations: {{ . | toYaml | nindent 2 }}
{{- end }} {{- end }}
{{- with (include "bjw-s.common.lib.pod.field.initContainers" (dict "ctx" $ctx) | trim) }} {{- with (include "bjw-s.common.lib.pod.field.initContainers" (dict "ctx" $ctx) | trim) }}
initContainers: {{ . | nindent 2 }} initContainers: {{ . | nindent 2 }}

View file

@ -6,6 +6,7 @@ Returns the value for containers
{{- $controllerObject := .ctx.controllerObject -}} {{- $controllerObject := .ctx.controllerObject -}}
{{- /* Default to empty list */ -}} {{- /* Default to empty list */ -}}
{{- $orderedContainers := dict -}}
{{- $containers := list -}} {{- $containers := list -}}
{{- /* Fetch configured containers for this controller */ -}} {{- /* Fetch configured containers for this controller */ -}}
@ -19,7 +20,13 @@ Returns the value for containers
{{- /* Generate the Container spec */ -}} {{- /* Generate the Container spec */ -}}
{{- $renderedContainer := include "bjw-s.common.lib.container.spec" (dict "rootContext" $rootContext "controllerObject" $controllerObject "containerObject" $containerObject) | fromYaml -}} {{- $renderedContainer := include "bjw-s.common.lib.container.spec" (dict "rootContext" $rootContext "controllerObject" $controllerObject "containerObject" $containerObject) | fromYaml -}}
{{- $containers = append $containers $renderedContainer -}}
{{- $containerOrder := (dig "order" 99 $containerValues) -}}
{{- $_ := set $orderedContainers (printf "%v-%s" $containerOrder $key) $renderedContainer -}}
{{- end -}}
{{- range $key, $containerValues := $orderedContainers -}}
{{- $containers = append $containers $containerValues -}}
{{- end -}} {{- end -}}
{{- if not (empty $containers) -}} {{- if not (empty $containers) -}}

View file

@ -6,10 +6,18 @@ Returns the value for initContainers
{{- $controllerObject := .ctx.controllerObject -}} {{- $controllerObject := .ctx.controllerObject -}}
{{- /* Default to empty list */ -}} {{- /* Default to empty list */ -}}
{{- $orderedContainers := dict -}}
{{- $containers := list -}} {{- $containers := list -}}
{{- /* Fetch configured containers for this controller */ -}} {{- /* Fetch configured containers for this controller */ -}}
{{- range $key, $containerValues := $controllerObject.initContainers -}} {{- range $key, $containerValues := $controllerObject.initContainers -}}
{{- /* Enable container by default, but allow override */ -}}
{{- $containerEnabled := true -}}
{{- if hasKey $containerValues "enabled" -}}
{{- $containerEnabled = $containerValues.enabled -}}
{{- end -}}
{{- if $containerEnabled -}}
{{- /* Create object from the container values */ -}} {{- /* Create object from the container values */ -}}
{{- $containerObject := (include "bjw-s.common.lib.container.valuesToObject" (dict "rootContext" $ "id" $key "values" $containerValues)) | fromYaml -}} {{- $containerObject := (include "bjw-s.common.lib.container.valuesToObject" (dict "rootContext" $ "id" $key "values" $containerValues)) | fromYaml -}}
@ -18,7 +26,14 @@ Returns the value for initContainers
{{- /* Generate the Container spec */ -}} {{- /* Generate the Container spec */ -}}
{{- $renderedContainer := include "bjw-s.common.lib.container.spec" (dict "rootContext" $rootContext "containerObject" $containerObject) | fromYaml -}} {{- $renderedContainer := include "bjw-s.common.lib.container.spec" (dict "rootContext" $rootContext "containerObject" $containerObject) | fromYaml -}}
{{- $containers = append $containers $renderedContainer -}}
{{- $containerOrder := (dig "order" 99 $containerValues) -}}
{{- $_ := set $orderedContainers (printf "%v-%s" $containerOrder $key) $renderedContainer -}}
{{- end -}}
{{- end -}}
{{- range $key, $containerValues := $orderedContainers -}}
{{- $containers = append $containers $containerValues -}}
{{- end -}} {{- end -}}
{{- if not (empty $containers) -}} {{- if not (empty $containers) -}}

View file

@ -12,4 +12,5 @@ Secondary entrypoint and primary loader for the common chart
{{- include "bjw-s.common.render.routes" . | nindent 0 -}} {{- include "bjw-s.common.render.routes" . | nindent 0 -}}
{{- include "bjw-s.common.render.configMaps" . | nindent 0 -}} {{- include "bjw-s.common.render.configMaps" . | nindent 0 -}}
{{- include "bjw-s.common.render.secrets" . | nindent 0 -}} {{- include "bjw-s.common.render.secrets" . | nindent 0 -}}
{{- include "bjw-s.common.render.networkpolicies" . | nindent 0 -}}
{{- end -}} {{- end -}}

View file

@ -0,0 +1,26 @@
{{/*
Renders the networkPolicy objects required by the chart.
*/}}
{{- define "bjw-s.common.render.networkpolicies" -}}
{{- /* Generate named networkPolicy as required */ -}}
{{- range $key, $networkPolicy := .Values.networkpolicies }}
{{- /* Enable networkPolicy by default, but allow override */ -}}
{{- $networkPolicyEnabled := true -}}
{{- if hasKey $networkPolicy "enabled" -}}
{{- $networkPolicyEnabled = $networkPolicy.enabled -}}
{{- end -}}
{{- if $networkPolicyEnabled -}}
{{- $networkPolicyValues := (mustDeepCopy $networkPolicy) -}}
{{- /* Create object from the raw networkPolicy values */ -}}
{{- $networkPolicyObject := (include "bjw-s.common.lib.networkpolicy.valuesToObject" (dict "rootContext" $ "id" $key "values" $networkPolicyValues)) | fromYaml -}}
{{- /* Perform validations on the networkPolicy before rendering */ -}}
{{- include "bjw-s.common.lib.networkpolicy.validate" (dict "rootContext" $ "object" $networkPolicyObject) -}}
{{/* Include the networkPolicy class */}}
{{- include "bjw-s.common.class.networkpolicy" (dict "rootContext" $ "object" $networkPolicyObject) | nindent 0 -}}
{{- end -}}
{{- end -}}
{{- end -}}

View file

@ -176,6 +176,11 @@ controllers:
# -- Override the container name # -- Override the container name
nameOverride: nameOverride:
# -- Override the default container order
# Containers get sorted alphanumerically by the `<order>-<identifier>` combination.
# @default -- 99
order: 1
image: image:
# -- image repository # -- image repository
repository: repository:
@ -309,8 +314,8 @@ controllers:
terminationMessagePolicy: terminationMessagePolicy:
# -- Specify any initContainers here as dictionary items. # -- Specify any initContainers here as dictionary items.
# Each initContainer should have its own key. The dictionary item key will determine the order. # Each initContainer should have its own key
# Helm templates can be used. # initContainers get sorted alphanumerically by the `<order>-<identifier>` combination.
initContainers: {} initContainers: {}
serviceAccount: serviceAccount:
@ -626,3 +631,32 @@ persistence:
# readOnly: false # readOnly: false
# subPath: config.yaml # subPath: config.yaml
advancedMounts: {} advancedMounts: {}
# -- Configure the networkPolicies for the chart here.
# Additional networkPolicies can be added by adding a dictionary key similar to the 'main' networkPolicy.
# @default -- See below
networkpolicies:
main:
# -- Enables or disables the networkPolicy item. Defaults to true
enabled: false
# -- Configure which controller this networkPolicy should target
controller: main
# -- Define a custom podSelector for the networkPolicy. This takes precedence over targeting a controller.
# podSelector: {}
# -- The policyTypes for this networkPolicy
policyTypes:
- Ingress
- Egress
# -- The rulesets for this networkPolicy
# [[ref]](https://kubernetes.io/docs/concepts/services-networking/network-policies/#networkpolicy-resource)
rules:
# -- The ingress rules for this networkPolicy. Allows all ingress traffic by default.
ingress:
- {}
# -- The egress rules for this networkPolicy. Allows all egress traffic by default.
egress:
- {}