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,56 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: serviceAccount - fields - secrets
templates:
- common.yaml
set:
serviceAccount.main: {}
values:
- ../_values/controllers_main_default_container.yaml
tests:
- it: serviceAccount is created without a static token by default
asserts:
- documentSelector:
path: $[?(@.kind == "ServiceAccount")].metadata.name
value: release-name
notExists:
path: secrets
- not: true
containsDocument:
apiVersion: v1
kind: Secret
name: release-name-main-sa-token
any: true
- it: serviceAccount can be created without a static token
set:
serviceAccount.main.staticToken: false
asserts:
- documentSelector:
path: $[?(@.kind == "ServiceAccount")].metadata.name
value: release-name
notExists:
path: secrets
- not: true
containsDocument:
apiVersion: v1
kind: Secret
name: release-name-main-sa-token
any: true
- it: serviceAccount can be created with a static token
set:
serviceAccount.main.staticToken: true
asserts:
- documentSelector:
path: $[?(@.kind == "ServiceAccount")].metadata.name
value: release-name
equal:
path: secrets
value:
- name: release-name-main-sa-token
- containsDocument:
apiVersion: v1
kind: Secret
name: release-name-main-sa-token
any: true

View file

@ -0,0 +1,47 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: serviceAccount - metadata - annotations
templates:
- common.yaml
values:
- ../_values/controllers_main_default_container.yaml
set:
serviceAccount:
main: {}
tests:
- it: no annotations are set by default
documentSelector:
path: $[?(@.kind == "ServiceAccount")].metadata.name
value: release-name
asserts:
- notExists:
path: metadata.annotations
- it: custom annotations
set:
serviceAccount.main.annotations:
test_annotation: test
documentSelector:
path: $[?(@.kind == "ServiceAccount")].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
serviceAccount.main.annotations:
test_annotation: test
documentSelector:
path: $[?(@.kind == "ServiceAccount")].metadata.name
value: release-name
asserts:
- equal:
path: metadata.annotations
value:
global_annotation: test
test_annotation: test

View file

@ -0,0 +1,60 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: serviceAccount - metadata - labels
templates:
- common.yaml
values:
- ../_values/controllers_main_default_container.yaml
set:
serviceAccount:
main: {}
tests:
- it: default labels
documentSelector:
path: $[?(@.kind == "ServiceAccount")].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:
serviceAccount.main.labels:
test_label: test
documentSelector:
path: $[?(@.kind == "ServiceAccount")].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
serviceAccount.main.labels:
test_label: test
documentSelector:
path: $[?(@.kind == "ServiceAccount")].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,171 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: serviceAccount - metadata - name
templates:
- common.yaml
values:
- ../_values/controllers_main_default_container.yaml
set:
serviceAccount.main: {}
tests:
- it: name defaults to chart fullName
asserts:
- containsDocument:
kind: ServiceAccount
apiVersion: v1
name: release-name
any: true
- it: forceRename
set:
serviceAccount.main.forceRename: forceRename
asserts:
- containsDocument:
kind: ServiceAccount
apiVersion: v1
name: forcerename
any: true
- it: forceRename with template
set:
serviceAccount.main.forceRename: "{{ .Chart.Name }}"
asserts:
- containsDocument:
kind: ServiceAccount
apiVersion: v1
name: common-test
any: true
- it: prefix
set:
serviceAccount.main.prefix: prefix
asserts:
- containsDocument:
kind: ServiceAccount
apiVersion: v1
name: prefix-release-name
any: true
- it: prefix with template
set:
serviceAccount.main.prefix: "{{ .Chart.Name }}"
asserts:
- containsDocument:
kind: ServiceAccount
apiVersion: v1
name: common-test-release-name
any: true
- it: suffix
set:
serviceAccount.main.suffix: suffix
asserts:
- containsDocument:
kind: ServiceAccount
apiVersion: v1
name: release-name-suffix
any: true
- it: suffix with template
set:
serviceAccount.main.suffix: "{{ .Chart.Name }}"
asserts:
- containsDocument:
kind: ServiceAccount
apiVersion: v1
name: release-name-common-test
any: true
- it: both prefix and suffix
set:
serviceAccount.main.prefix: prefix
serviceAccount.main.suffix: suffix
asserts:
- containsDocument:
kind: ServiceAccount
apiVersion: v1
name: prefix-release-name-suffix
any: true
- it: prefix, suffix and forceRename (illegal combination)
set:
serviceAccount.main.forceRename: forceRename
serviceAccount.main.prefix: prefix
serviceAccount.main.suffix: suffix
asserts:
- failedTemplate:
errorPattern: "values don't meet the specifications of the schema"
- it: multiple items
set:
serviceAccount.second: {}
asserts:
- containsDocument:
kind: ServiceAccount
apiVersion: v1
name: release-name-main
any: true
- containsDocument:
kind: ServiceAccount
apiVersion: v1
name: release-name-second
any: true
- it: multiple items with prefix
set:
serviceAccount.second:
prefix: prefix
asserts:
- containsDocument:
kind: ServiceAccount
apiVersion: v1
name: release-name-main
any: true
- containsDocument:
kind: ServiceAccount
apiVersion: v1
name: prefix-release-name-second
any: true
- it: multiple items with suffix
set:
serviceAccount.second:
suffix: suffix
asserts:
- containsDocument:
kind: ServiceAccount
apiVersion: v1
name: release-name-main
any: true
- containsDocument:
kind: ServiceAccount
apiVersion: v1
name: release-name-second-suffix
any: true
- it: multiple items with prefix and suffix
set:
serviceAccount.second:
prefix: prefix
suffix: suffix
asserts:
- containsDocument:
kind: ServiceAccount
apiVersion: v1
name: release-name-main
any: true
- containsDocument:
kind: ServiceAccount
apiVersion: v1
name: prefix-release-name-second-suffix
any: true
- it: multiple items with prefix, suffix and forceRename (illegal combination)
set:
serviceAccount.second:
forceRename: forceRename
prefix: prefix
suffix: suffix
asserts:
- failedTemplate:
errorPattern: "values don't meet the specifications of the schema"

View file

@ -0,0 +1,65 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: serviceAccount - presence
templates:
- common.yaml
values:
- ../_values/controllers_main_default_container.yaml
tests:
- it: serviceAccount is not created by default
asserts:
- not: true
containsDocument:
apiVersion: v1
kind: ServiceAccount
any: true
- it: serviceAccounts are enabled by default
set:
serviceAccount:
main: {}
asserts:
- containsDocument:
kind: ServiceAccount
apiVersion: v1
name: release-name
any: true
- it: serviceAccounts can be disabled
set:
serviceAccount:
default:
enabled: false
asserts:
- not: true
containsDocument:
apiVersion: v1
kind: ServiceAccount
name: release-name
any: true
- it: multiple serviceAccounts can be enabled
set:
serviceAccount:
myAccount: {}
mySA: {}
mySA2:
enabled: false
asserts:
- containsDocument:
kind: ServiceAccount
apiVersion: v1
name: release-name-myaccount
any: true
- not: true
containsDocument:
apiVersion: v1
kind: ServiceAccount
name: release-name-mysa2
any: true
- not: true
containsDocument:
apiVersion: v1
kind: Secret
name: release-name-mysa2-sa-token
any: true

View file

@ -1,256 +0,0 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: serviceAccount values
templates:
- common.yaml
values:
- ../_values/controllers_main_default_container.yaml
tests:
- it: a serviceAccount is not created by default
asserts:
- hasDocuments:
count: 1
- documentIndex: 0
not: true
isKind:
of: ServiceAccount
- it: a serviceAccount is not created when disabled
set:
serviceAccount:
create: false
asserts:
- hasDocuments:
count: 1
- documentIndex: 0
not: true
isKind:
of: ServiceAccount
- it: controller uses named ServiceAccount by default
set:
serviceAccount:
create: false
name: &ServiceAccountName test
asserts:
- hasDocuments:
count: 1
- documentIndex: &DeploymentDocument 0
isKind:
of: Deployment
- documentIndex: *DeploymentDocument
equal:
path: spec.template.spec.serviceAccountName
value: *ServiceAccountName
- it: controller uses `default` ServiceAccount if flag is enabled
set:
enforceServiceAccountCreation: true
serviceAccount:
create: false
name: test
asserts:
- hasDocuments:
count: 1
- documentIndex: &DeploymentDocument 0
isKind:
of: Deployment
- documentIndex: *DeploymentDocument
equal:
path: spec.template.spec.serviceAccountName
value: default
- it: a serviceAccount and Secret are created when enabled
set:
serviceAccount:
create: true
asserts:
- hasDocuments:
count: 3
- documentIndex: &ServiceAccountDocument 0
isKind:
of: ServiceAccount
- documentIndex: &DeploymentDocument 1
isKind:
of: Deployment
- documentIndex: &SecretDocument 2
isKind:
of: Secret
- documentIndex: *ServiceAccountDocument
equal:
path: metadata.name
value: &ServiceAccountName RELEASE-NAME
- documentIndex: *ServiceAccountDocument
equal:
path: secrets
value:
- name: RELEASE-NAME-default-sa-token
- documentIndex: *DeploymentDocument
equal:
path: spec.template.spec.serviceAccountName
value: *ServiceAccountName
- documentIndex: *SecretDocument
equal:
path: metadata.annotations
value:
kubernetes.io/service-account.name: RELEASE-NAME
- it: a serviceAccount and Secret are created with custom name
set:
serviceAccount:
create: true
name: &ServiceAccountName myAccount
asserts:
- hasDocuments:
count: 3
- documentIndex: &ServiceAccountDocument 0
isKind:
of: ServiceAccount
- documentIndex: &DeploymentDocument 1
isKind:
of: Deployment
- documentIndex: &SecretDocument 2
isKind:
of: Secret
- documentIndex: *ServiceAccountDocument
equal:
path: metadata.name
value: *ServiceAccountName
- documentIndex: *ServiceAccountDocument
equal:
path: secrets
value:
- name: RELEASE-NAME-default-sa-token
- documentIndex: *DeploymentDocument
equal:
path: spec.template.spec.serviceAccountName
value: *ServiceAccountName
- documentIndex: *SecretDocument
equal:
path: metadata.annotations
value:
kubernetes.io/service-account.name: *ServiceAccountName
- it: multiple serviceAccounts and Secrets are created when enabled
set:
serviceAccount:
create: true
name: &ServiceAccountName myAccount
extraServiceAccounts:
mySA:
create: true
asserts:
- hasDocuments:
count: 5
- documentIndex: &ServiceAccountDocument 0
isKind:
of: ServiceAccount
- documentIndex: &ServiceAccountDocument2 1
isKind:
of: ServiceAccount
- documentIndex: &DeploymentDocument 2
isKind:
of: Deployment
- documentIndex: &SecretDocument 3
isKind:
of: Secret
- documentIndex: &SecretDocument2 4
isKind:
of: Secret
- documentIndex: *ServiceAccountDocument
equal:
path: metadata.name
value: *ServiceAccountName
- documentIndex: *ServiceAccountDocument2
equal:
path: metadata.name
value: RELEASE-NAME-mySA
- documentIndex: *ServiceAccountDocument
equal:
path: secrets
value:
- name: RELEASE-NAME-default-sa-token
- documentIndex: *ServiceAccountDocument2
equal:
path: secrets
value:
- name: RELEASE-NAME-mySA-sa-token
- documentIndex: *DeploymentDocument
equal:
path: spec.template.spec.serviceAccountName
value: *ServiceAccountName
- documentIndex: *SecretDocument
equal:
path: metadata.annotations
value:
kubernetes.io/service-account.name: *ServiceAccountName
- documentIndex: *SecretDocument2
equal:
path: metadata.annotations
value:
kubernetes.io/service-account.name: RELEASE-NAME-mySA
- it: multiple serviceAccounts and Secrets are created with custom names
set:
serviceAccount:
create: true
name: &ServiceAccountName myAccount
extraServiceAccounts:
mySA:
create: true
name: &ServiceAccountName2 mySAcustom
mySA2:
create: false
name: &ServiceAccountName3 mySAcustom2
asserts:
- hasDocuments:
count: 5
- documentIndex: &ServiceAccountDocument 0
isKind:
of: ServiceAccount
- documentIndex: &ServiceAccountDocument2 1
isKind:
of: ServiceAccount
- documentIndex: &DeploymentDocument 2
isKind:
of: Deployment
- documentIndex: &SecretDocument 3
isKind:
of: Secret
- documentIndex: &SecretDocument2 4
isKind:
of: Secret
- documentIndex: *ServiceAccountDocument
equal:
path: metadata.name
value: *ServiceAccountName
- documentIndex: *ServiceAccountDocument2
equal:
path: metadata.name
value: *ServiceAccountName2
- documentIndex: *ServiceAccountDocument
equal:
path: secrets
value:
- name: RELEASE-NAME-default-sa-token
- documentIndex: *ServiceAccountDocument2
equal:
path: secrets
value:
- name: RELEASE-NAME-mySA-sa-token
- documentIndex: *DeploymentDocument
equal:
path: spec.template.spec.serviceAccountName
value: *ServiceAccountName
- documentIndex: *SecretDocument
equal:
path: metadata.annotations
value:
kubernetes.io/service-account.name: *ServiceAccountName
- documentIndex: *SecretDocument2
equal:
path: metadata.annotations
value:
kubernetes.io/service-account.name: *ServiceAccountName2