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

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

View file

@ -0,0 +1,218 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: serviceMonitor values
templates:
- common.yaml
values:
- ../_values/controllers_main_default_container.yaml
tests:
- it: a serviceMonitor is not created by default
asserts:
- not: true
containsDocument:
kind: ServiceMonitor
apiVersion: monitoring.coreos.com/v1
name: RELEASE-NAME
- it: a serviceMonitor is not created when disabled
set:
serviceMonitor:
main:
enabled: false
serviceName: "{{ .Release.Name }}"
asserts:
- not: true
containsDocument:
kind: ServiceMonitor
apiVersion: monitoring.coreos.com/v1
name: RELEASE-NAME
- it: a serviceMonitor can be configured
set:
serviceMonitor:
main:
labels:
test.label: testvalue
serviceName: "{{ .Release.Name }}"
endpoints:
- port: http
scheme: http
path: /metrics
interval: 1m
scrapeTimeout: 10s
documentSelector: &ServiceMonitorSelector
path: $[?(@.kind == "ServiceMonitor")].metadata.name
value: RELEASE-NAME
asserts:
- equal:
path: spec.namespaceSelector
value:
matchNames:
- NAMESPACE
- equal:
path: spec.jobLabel
value: RELEASE-NAME
- equal:
path: spec.selector.matchLabels
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/name: RELEASE-NAME
app.kubernetes.io/service: RELEASE-NAME
- equal:
path: spec.endpoints
value:
- port: http
scheme: http
path: /metrics
interval: 1m
scrapeTimeout: 10s
- 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: testvalue
- it: a serviceMonitor can be created with a nameOverride
set:
serviceMonitor:
main:
nameOverride: test
serviceName: "{{ .Release.Name }}"
endpoints:
- port: http
scheme: http
path: /metrics
interval: 1m
scrapeTimeout: 10s
documentSelector:
path: $[?(@.kind == "ServiceMonitor")].metadata.name
value: RELEASE-NAME-test
asserts:
- equal:
path: spec.selector.matchLabels
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/name: RELEASE-NAME
app.kubernetes.io/service: RELEASE-NAME
- it: a templated service can be configured
set:
serviceMonitor:
main:
serviceName: "{{ .Release.Name }}"
endpoints:
- port: http
scheme: http
path: /metrics
interval: 1m
scrapeTimeout: 10s
documentSelector: *ServiceMonitorSelector
asserts:
- equal:
path: spec.selector.matchLabels
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/name: RELEASE-NAME
app.kubernetes.io/service: RELEASE-NAME
- it: a custom selector can be configured
set:
serviceMonitor:
main:
selector:
matchExpressions:
- {key: k8s-app, operator: Exists}
endpoints:
- port: http
scheme: http
path: /metrics
interval: 1m
scrapeTimeout: 10s
documentSelector: *ServiceMonitorSelector
asserts:
- equal:
path: spec.selector
value:
matchExpressions:
- key: k8s-app
operator: Exists
- it: targetLabels can be configured
set:
serviceMonitor:
main:
enabled: true
serviceName: "{{ .Release.Name }}"
endpoints:
- port: http
scheme: http
path: /metrics
interval: 1m
scrapeTimeout: 10s
targetLabels:
- testlabel1
- testlabel2
documentSelector: *ServiceMonitorSelector
asserts:
- equal:
path: spec.selector.matchLabels
value:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/name: RELEASE-NAME
app.kubernetes.io/service: RELEASE-NAME
- equal:
path: spec.endpoints
value:
- port: http
scheme: http
path: /metrics
interval: 1m
scrapeTimeout: 10s
- equal:
path: spec.targetLabels
value:
- testlabel1
- testlabel2
- it: a serviceMonitor can be configured with templated endpoints
set:
serviceMonitor:
main:
labels:
test.label: testvalue
serviceName: "{{ .Release.Name }}"
endpoints:
- port: http
scheme: http
path: /metrics
interval: 1m
scrapeTimeout: 10s
basicAuth:
username:
name: "{{.Release.Name}}-secret"
key: USERNAME
password:
name: "{{.Release.Name}}-secret"
key: PASSWORD
documentSelector: &ServiceMonitorSelector
path: $[?(@.kind == "ServiceMonitor")].metadata.name
value: RELEASE-NAME
asserts:
- equal:
path: spec.endpoints
value:
- port: http
scheme: http
path: /metrics
interval: 1m
scrapeTimeout: 10s
basicAuth:
username:
name: RELEASE-NAME-secret
key: USERNAME
password:
name: RELEASE-NAME-secret
key: PASSWORD