You've already forked reposilite-charts
fix(secret): enforce basic auth credentials
This patch remove generation of a random string for the username and password of the basic auth credentials. The problem with the random generated basic auth credentials is, that this leads to a new shasum of the secret. GitOps tools like ArgoCD detects a drift trigger a rolling update. To avoid this must now the basic auth credentials be defined to enable prometheus metrics.
This commit is contained in:
@@ -14,6 +14,6 @@ metadata:
|
|||||||
name: {{ include "reposilite.secrets.prometheusBasicAuth.name" . }}
|
name: {{ include "reposilite.secrets.prometheusBasicAuth.name" . }}
|
||||||
namespace: {{ .Release.Namespace }}
|
namespace: {{ .Release.Namespace }}
|
||||||
stringData:
|
stringData:
|
||||||
password: {{ default (randAlphaNum 16) .Values.prometheus.metrics.secret.new.basicAuthPassword }}
|
password: {{ required "Password for basic auth is required!" .Values.prometheus.metrics.secret.new.basicAuthPassword }}
|
||||||
username: {{ default (randAlphaNum 16) .Values.prometheus.metrics.secret.new.basicAuthUsername }}
|
username: {{ required "Username for basic auth is required!" .Values.prometheus.metrics.secret.new.basicAuthUsername }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@@ -13,6 +13,8 @@ tests:
|
|||||||
set:
|
set:
|
||||||
prometheus.metrics.enabled: true
|
prometheus.metrics.enabled: true
|
||||||
prometheus.metrics.podMonitor.enabled: true
|
prometheus.metrics.podMonitor.enabled: true
|
||||||
|
prometheus.metrics.secret.new.basicAuthPassword: "my-password"
|
||||||
|
prometheus.metrics.secret.new.basicAuthUsername: "my-username"
|
||||||
asserts:
|
asserts:
|
||||||
- exists:
|
- exists:
|
||||||
path: spec.template.metadata.annotations.checksum/secret-reposilite-unittest-basic-auth-credentials
|
path: spec.template.metadata.annotations.checksum/secret-reposilite-unittest-basic-auth-credentials
|
||||||
|
@@ -13,6 +13,8 @@ tests:
|
|||||||
set:
|
set:
|
||||||
prometheus.metrics.enabled: true
|
prometheus.metrics.enabled: true
|
||||||
prometheus.metrics.serviceMonitor.enabled: true
|
prometheus.metrics.serviceMonitor.enabled: true
|
||||||
|
prometheus.metrics.secret.new.basicAuthPassword: "my-password"
|
||||||
|
prometheus.metrics.secret.new.basicAuthUsername: "my-username"
|
||||||
asserts:
|
asserts:
|
||||||
- exists:
|
- exists:
|
||||||
path: spec.template.metadata.annotations.checksum/secret-reposilite-unittest-basic-auth-credentials
|
path: spec.template.metadata.annotations.checksum/secret-reposilite-unittest-basic-auth-credentials
|
||||||
|
@@ -13,9 +13,29 @@ tests:
|
|||||||
- hasDocuments:
|
- hasDocuments:
|
||||||
count: 0
|
count: 0
|
||||||
|
|
||||||
|
- it: Throw error for missing basic auth password
|
||||||
|
set:
|
||||||
|
prometheus.metrics.enabled: true
|
||||||
|
# prometheus.metrics.secret.new.basicAuthPassword: "my-password"
|
||||||
|
prometheus.metrics.secret.new.basicAuthUsername: "my-username"
|
||||||
|
asserts:
|
||||||
|
- failedTemplate:
|
||||||
|
errorMessage: "Password for basic auth is required!"
|
||||||
|
|
||||||
|
- it: Throw error for missing basic auth username
|
||||||
|
set:
|
||||||
|
prometheus.metrics.enabled: true
|
||||||
|
prometheus.metrics.secret.new.basicAuthPassword: "my-password"
|
||||||
|
# prometheus.metrics.secret.new.basicAuthUsername: "my-username"
|
||||||
|
asserts:
|
||||||
|
- failedTemplate:
|
||||||
|
errorMessage: "Username for basic auth is required!"
|
||||||
|
|
||||||
- it: Rendering secret with default values.
|
- it: Rendering secret with default values.
|
||||||
set:
|
set:
|
||||||
prometheus.metrics.enabled: true
|
prometheus.metrics.enabled: true
|
||||||
|
prometheus.metrics.secret.new.basicAuthPassword: "my-password"
|
||||||
|
prometheus.metrics.secret.new.basicAuthUsername: "my-username"
|
||||||
asserts:
|
asserts:
|
||||||
- hasDocuments:
|
- hasDocuments:
|
||||||
count: 1
|
count: 1
|
||||||
@@ -51,13 +71,13 @@ tests:
|
|||||||
asserts:
|
asserts:
|
||||||
- hasDocuments:
|
- hasDocuments:
|
||||||
count: 1
|
count: 1
|
||||||
- exists:
|
- isSubset:
|
||||||
path: metadata.annotations
|
path: metadata.annotations
|
||||||
value:
|
content:
|
||||||
foo: bar
|
foo: bar
|
||||||
- exists:
|
- isSubset:
|
||||||
path: metadata.labels
|
path: metadata.labels
|
||||||
value:
|
content:
|
||||||
bar: foo
|
bar: foo
|
||||||
- equal:
|
- equal:
|
||||||
path: metadata.name
|
path: metadata.name
|
||||||
|
@@ -53,13 +53,13 @@ tests:
|
|||||||
asserts:
|
asserts:
|
||||||
- hasDocuments:
|
- hasDocuments:
|
||||||
count: 1
|
count: 1
|
||||||
- exists:
|
- isSubset:
|
||||||
path: metadata.annotations
|
path: metadata.annotations
|
||||||
value:
|
content:
|
||||||
foo: bar
|
foo: bar
|
||||||
- exists:
|
- isSubset:
|
||||||
path: metadata.labels
|
path: metadata.labels
|
||||||
value:
|
content:
|
||||||
bar: foo
|
bar: foo
|
||||||
- equal:
|
- equal:
|
||||||
path: metadata.name
|
path: metadata.name
|
||||||
|
@@ -78,35 +78,35 @@ tests:
|
|||||||
service.internalTrafficPolicy: ""
|
service.internalTrafficPolicy: ""
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: No internal traffic policy defined!
|
errorMessage: No internal traffic policy defined!
|
||||||
|
|
||||||
- it: Require port.
|
- it: Require port.
|
||||||
set:
|
set:
|
||||||
service.port: ""
|
service.port: ""
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: No service port defined!
|
errorMessage: No service port defined!
|
||||||
|
|
||||||
- it: Require scheme.
|
- it: Require scheme.
|
||||||
set:
|
set:
|
||||||
service.scheme: ""
|
service.scheme: ""
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: No service scheme defined!
|
errorMessage: The scheme of the serviceMonitor is not defined!
|
||||||
|
|
||||||
- it: Require sessionAffinity.
|
- it: Require sessionAffinity.
|
||||||
set:
|
set:
|
||||||
service.sessionAffinity: ""
|
service.sessionAffinity: ""
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: No session affinity defined!
|
errorMessage: No session affinity defined!
|
||||||
|
|
||||||
- it: Require service type.
|
- it: Require service type.
|
||||||
set:
|
set:
|
||||||
service.type: ""
|
service.type: ""
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: No service type defined!
|
errorMessage: No service type defined!
|
||||||
|
|
||||||
- it: Render service with custom annotations and labels.
|
- it: Render service with custom annotations and labels.
|
||||||
set:
|
set:
|
||||||
|
Reference in New Issue
Block a user