mirror of
https://github.com/bjw-s-labs/helm-charts.git
synced 2025-07-04 08:57:04 +02:00
feat(common): Release v2.5.0 (#258)
Co-authored-by: Maurits <75321636+maurits-funda@users.noreply.github.com> Co-authored-by: Noam Lerner <bugok@users.noreply.github.com>
This commit is contained in:
parent
1582fe27c4
commit
a548690b00
25 changed files with 670 additions and 56 deletions
|
@ -18,6 +18,9 @@ tests:
|
|||
controllers.main.containers.main.envFrom:
|
||||
- secretRef:
|
||||
name: myCustomSecret
|
||||
prefix: test
|
||||
- configMapRef:
|
||||
name: myCustomConfig
|
||||
asserts:
|
||||
- documentIndex: &DeploymentDoc 0
|
||||
isKind:
|
||||
|
@ -28,3 +31,100 @@ tests:
|
|||
value:
|
||||
secretRef:
|
||||
name: myCustomSecret
|
||||
prefix: test
|
||||
- documentIndex: *DeploymentDoc
|
||||
equal:
|
||||
path: spec.template.spec.containers[0].envFrom[1]
|
||||
value:
|
||||
configMapRef:
|
||||
name: myCustomConfig
|
||||
|
||||
- it: envFrom configmap identifier reference should pass
|
||||
set:
|
||||
controllers.main.containers.main.envFrom:
|
||||
- configMap: config
|
||||
prefix: test
|
||||
- configMapRef:
|
||||
identifier: config
|
||||
asserts:
|
||||
- documentIndex: &DeploymentDoc 0
|
||||
isKind:
|
||||
of: Deployment
|
||||
- documentIndex: *DeploymentDoc
|
||||
equal:
|
||||
path: spec.template.spec.containers[0].envFrom[0]
|
||||
value:
|
||||
configMapRef:
|
||||
name: RELEASE-NAME-config
|
||||
prefix: test
|
||||
- documentIndex: *DeploymentDoc
|
||||
equal:
|
||||
path: spec.template.spec.containers[0].envFrom[1]
|
||||
value:
|
||||
configMapRef:
|
||||
name: RELEASE-NAME-config
|
||||
|
||||
- it: envFrom Secret identifier reference should pass
|
||||
set:
|
||||
controllers.main.containers.main.envFrom:
|
||||
- secret: secret
|
||||
prefix: test
|
||||
- secretRef:
|
||||
identifier: secret
|
||||
prefix: test
|
||||
asserts:
|
||||
- documentIndex: &DeploymentDoc 0
|
||||
isKind:
|
||||
of: Deployment
|
||||
- documentIndex: *DeploymentDoc
|
||||
equal:
|
||||
path: spec.template.spec.containers[0].envFrom[0]
|
||||
value:
|
||||
secretRef:
|
||||
name: RELEASE-NAME-secret
|
||||
prefix: test
|
||||
- documentIndex: *DeploymentDoc
|
||||
equal:
|
||||
path: spec.template.spec.containers[0].envFrom[1]
|
||||
value:
|
||||
secretRef:
|
||||
name: RELEASE-NAME-secret
|
||||
prefix: test
|
||||
|
||||
- it: envFrom with templated name reference should pass
|
||||
set:
|
||||
controllers.main.containers.main.envFrom:
|
||||
- configMap: "{{ .Release.Name }}-config"
|
||||
- configMapRef:
|
||||
name: "{{ .Release.Name }}-config2"
|
||||
- secret: "{{ .Release.Name }}-secret"
|
||||
- secretRef:
|
||||
name: "{{ .Release.Name }}-secret2"
|
||||
asserts:
|
||||
- documentIndex: &DeploymentDoc 0
|
||||
isKind:
|
||||
of: Deployment
|
||||
- documentIndex: *DeploymentDoc
|
||||
equal:
|
||||
path: spec.template.spec.containers[0].envFrom[0]
|
||||
value:
|
||||
configMapRef:
|
||||
name: RELEASE-NAME-config
|
||||
- documentIndex: *DeploymentDoc
|
||||
equal:
|
||||
path: spec.template.spec.containers[0].envFrom[1]
|
||||
value:
|
||||
configMapRef:
|
||||
name: RELEASE-NAME-config2
|
||||
- documentIndex: *DeploymentDoc
|
||||
equal:
|
||||
path: spec.template.spec.containers[0].envFrom[2]
|
||||
value:
|
||||
secretRef:
|
||||
name: RELEASE-NAME-secret
|
||||
- documentIndex: *DeploymentDoc
|
||||
equal:
|
||||
path: spec.template.spec.containers[0].envFrom[3]
|
||||
value:
|
||||
secretRef:
|
||||
name: RELEASE-NAME-secret2
|
||||
|
|
|
@ -56,6 +56,7 @@ tests:
|
|||
main:
|
||||
- path: /data/config.yaml
|
||||
readOnly: false
|
||||
mountPropagation: HostToContainer
|
||||
subPath: config.yaml
|
||||
second-container:
|
||||
- path: /appdata/config
|
||||
|
@ -79,6 +80,7 @@ tests:
|
|||
- mountPath: /data/config.yaml
|
||||
name: data
|
||||
subPath: config.yaml
|
||||
mountPropagation: HostToContainer
|
||||
- documentIndex: *FirstDeploymentDoc
|
||||
equal:
|
||||
path: spec.template.spec.containers[1].volumeMounts
|
||||
|
|
|
@ -13,6 +13,9 @@ tests:
|
|||
- documentIndex: &ControllerDoc 0
|
||||
isKind:
|
||||
of: CronJob
|
||||
- documentIndex: *ControllerDoc
|
||||
notExists:
|
||||
path: spec.suspend
|
||||
- documentIndex: *ControllerDoc
|
||||
equal:
|
||||
path: spec.schedule
|
||||
|
@ -45,6 +48,7 @@ tests:
|
|||
pod:
|
||||
restartPolicy: OnFailure
|
||||
cronjob:
|
||||
suspend: &CronJobSuspended true
|
||||
schedule: &CronJobSchedule "0 3 * * *"
|
||||
concurrencyPolicy: &CronJobConcurrencyPolicy "Test"
|
||||
failedJobsHistory: &CronJobFailedJobsHistory 2
|
||||
|
@ -54,6 +58,10 @@ tests:
|
|||
- documentIndex: &ControllerDoc 0
|
||||
isKind:
|
||||
of: CronJob
|
||||
- documentIndex: *ControllerDoc
|
||||
equal:
|
||||
path: spec.suspend
|
||||
value: *CronJobSuspended
|
||||
- documentIndex: *ControllerDoc
|
||||
equal:
|
||||
path: spec.schedule
|
||||
|
|
57
charts/library/common-test/tests/controller/job_test.yaml
Normal file
57
charts/library/common-test/tests/controller/job_test.yaml
Normal file
|
@ -0,0 +1,57 @@
|
|||
---
|
||||
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
|
||||
suite: job configuration
|
||||
templates:
|
||||
- common.yaml
|
||||
tests:
|
||||
- it: default job configuration should pass
|
||||
set:
|
||||
controllers:
|
||||
main:
|
||||
type: job
|
||||
asserts:
|
||||
- documentIndex: &ControllerDoc 0
|
||||
isKind:
|
||||
of: Job
|
||||
- documentIndex: *ControllerDoc
|
||||
notExists:
|
||||
path: spec.suspend
|
||||
- documentIndex: *ControllerDoc
|
||||
notExists:
|
||||
path: spec.ttlSecondsAfterFinished
|
||||
- documentIndex: *ControllerDoc
|
||||
equal:
|
||||
path: spec.template.spec.restartPolicy
|
||||
value: Never
|
||||
|
||||
- it: custom job configuration should pass
|
||||
set:
|
||||
controllers:
|
||||
main:
|
||||
type: job
|
||||
pod:
|
||||
restartPolicy: OnFailure
|
||||
job:
|
||||
suspend: &JobSuspended true
|
||||
ttlSecondsAfterFinished: &ttlSecondsAfterFinished 3600
|
||||
backoffLimit: 3
|
||||
asserts:
|
||||
- documentIndex: &ControllerDoc 0
|
||||
isKind:
|
||||
of: Job
|
||||
- documentIndex: *ControllerDoc
|
||||
equal:
|
||||
path: spec.suspend
|
||||
value: *JobSuspended
|
||||
- documentIndex: *ControllerDoc
|
||||
equal:
|
||||
path: spec.ttlSecondsAfterFinished
|
||||
value: *ttlSecondsAfterFinished
|
||||
- documentIndex: *ControllerDoc
|
||||
equal:
|
||||
path: spec.template.spec.restartPolicy
|
||||
value: OnFailure
|
||||
- documentIndex: *ControllerDoc
|
||||
equal:
|
||||
path: spec.backoffLimit
|
||||
value: 3
|
|
@ -0,0 +1,118 @@
|
|||
---
|
||||
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
|
||||
suite: controller metadata job
|
||||
templates:
|
||||
- common.yaml
|
||||
tests:
|
||||
- it: default metadata should pass
|
||||
set:
|
||||
controllers.main.type: job
|
||||
asserts:
|
||||
- documentIndex: &ControllerDoc 0
|
||||
isKind:
|
||||
of: Job
|
||||
- documentIndex: *ControllerDoc
|
||||
notExists:
|
||||
path: metadata.annotations
|
||||
- documentIndex: *ControllerDoc
|
||||
equal:
|
||||
path: metadata.labels
|
||||
value:
|
||||
app.kubernetes.io/component: main
|
||||
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:
|
||||
controllers:
|
||||
main:
|
||||
type: job
|
||||
annotations:
|
||||
test_annotation: test
|
||||
labels:
|
||||
test_label: test
|
||||
asserts:
|
||||
- documentIndex: &ControllerDoc 0
|
||||
isKind:
|
||||
of: Job
|
||||
- documentIndex: *ControllerDoc
|
||||
equal:
|
||||
path: metadata.annotations
|
||||
value:
|
||||
test_annotation: test
|
||||
- documentIndex: *ControllerDoc
|
||||
equal:
|
||||
path: metadata.labels
|
||||
value:
|
||||
app.kubernetes.io/component: main
|
||||
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
|
||||
controllers:
|
||||
main:
|
||||
type: job
|
||||
annotations:
|
||||
test_annotation: test
|
||||
labels:
|
||||
test_label: test
|
||||
asserts:
|
||||
- documentIndex: &ControllerDoc 0
|
||||
isKind:
|
||||
of: Job
|
||||
- documentIndex: *ControllerDoc
|
||||
equal:
|
||||
path: metadata.annotations
|
||||
value:
|
||||
global_annotation: test
|
||||
test_annotation: test
|
||||
- documentIndex: *ControllerDoc
|
||||
equal:
|
||||
path: metadata.labels
|
||||
value:
|
||||
app.kubernetes.io/component: main
|
||||
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: jobTemplate metadata should pass
|
||||
set:
|
||||
controllers:
|
||||
main:
|
||||
type: job
|
||||
pod:
|
||||
annotations:
|
||||
test_annotation: test
|
||||
labels:
|
||||
test_label: test
|
||||
asserts:
|
||||
- documentIndex: &ControllerDoc 0
|
||||
isKind:
|
||||
of: Job
|
||||
- documentIndex: *ControllerDoc
|
||||
equal:
|
||||
path: spec.template.metadata.annotations
|
||||
value:
|
||||
test_annotation: test
|
||||
- documentIndex: *ControllerDoc
|
||||
equal:
|
||||
path: spec.template.metadata.labels
|
||||
value:
|
||||
app.kubernetes.io/component: main
|
||||
app.kubernetes.io/instance: RELEASE-NAME
|
||||
app.kubernetes.io/name: RELEASE-NAME
|
||||
test_label: test
|
54
charts/library/common-test/tests/pvc/values_test.yaml
Normal file
54
charts/library/common-test/tests/pvc/values_test.yaml
Normal file
|
@ -0,0 +1,54 @@
|
|||
---
|
||||
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
|
||||
suite: pvc values
|
||||
templates:
|
||||
- common.yaml
|
||||
tests:
|
||||
- it: default enabled should pass
|
||||
set:
|
||||
persistence.test:
|
||||
type: persistentVolumeClaim
|
||||
accessMode: ReadWriteOnce
|
||||
size: 1Gi
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 3
|
||||
- documentIndex: &PersistentVolumeClaimDocument 0
|
||||
isKind:
|
||||
of: PersistentVolumeClaim
|
||||
- documentIndex: *PersistentVolumeClaimDocument
|
||||
equal:
|
||||
path: metadata.name
|
||||
value: RELEASE-NAME-test
|
||||
|
||||
- it: explicit enabled should pass
|
||||
set:
|
||||
persistence.test:
|
||||
enabled: true
|
||||
type: persistentVolumeClaim
|
||||
accessMode: ReadWriteOnce
|
||||
size: 1Gi
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 3
|
||||
- documentIndex: &PersistentVolumeClaimDocument 0
|
||||
isKind:
|
||||
of: PersistentVolumeClaim
|
||||
- documentIndex: *PersistentVolumeClaimDocument
|
||||
equal:
|
||||
path: metadata.name
|
||||
value: RELEASE-NAME-test
|
||||
|
||||
- it: explicit disabled
|
||||
set:
|
||||
persistence.test:
|
||||
enabled: false
|
||||
type: persistentVolumeClaim
|
||||
accessMode: ReadWriteOnce
|
||||
size: 1Gi
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 2
|
||||
- documentIndex: &PersistentVolumeClaimDocument 0
|
||||
isKind:
|
||||
of: Deployment
|
|
@ -151,3 +151,49 @@ tests:
|
|||
value:
|
||||
mySelector:
|
||||
test: "true"
|
||||
- it: a serviceMonitor is created with targetLabels
|
||||
set:
|
||||
serviceMonitor:
|
||||
main:
|
||||
enabled: true
|
||||
endpoints:
|
||||
- port: http
|
||||
scheme: http
|
||||
path: /metrics
|
||||
interval: 1m
|
||||
scrapeTimeout: 10s
|
||||
targetLabels:
|
||||
- testlabel1
|
||||
- testlabel2
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 3
|
||||
- documentIndex: &ServiceMonitorDocument 2
|
||||
isKind:
|
||||
of: ServiceMonitor
|
||||
- documentIndex: *ServiceMonitorDocument
|
||||
equal:
|
||||
path: metadata.name
|
||||
value: RELEASE-NAME
|
||||
- documentIndex: *ServiceMonitorDocument
|
||||
equal:
|
||||
path: spec.selector.matchLabels
|
||||
value:
|
||||
app.kubernetes.io/instance: RELEASE-NAME
|
||||
app.kubernetes.io/name: RELEASE-NAME
|
||||
app.kubernetes.io/service: RELEASE-NAME
|
||||
- documentIndex: *ServiceMonitorDocument
|
||||
equal:
|
||||
path: spec.endpoints
|
||||
value:
|
||||
- port: http
|
||||
scheme: http
|
||||
path: /metrics
|
||||
interval: 1m
|
||||
scrapeTimeout: 10s
|
||||
- documentIndex: *ServiceMonitorDocument
|
||||
equal:
|
||||
path: spec.targetLabels
|
||||
value:
|
||||
- testlabel1
|
||||
- testlabel2
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue