Compare commits

...

12 Commits

Author SHA1 Message Date
42af0f9739 fix(serviceAccount): remove top level dict .spec
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2024-11-25 19:35:46 +01:00
5c0f2fb310 core(chart): add further chart labels for search engine
All checks were successful
continuous-integration/drone/push Build is passing
2024-11-25 19:08:36 +01:00
c211bd7a61 fix: rename chart repository
Some checks failed
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is failing
2024-11-25 19:01:37 +01:00
6d2a3675b1 fix(ci): rename chart repository
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2024-11-25 18:48:31 +01:00
ab3b254bf8 core(renovate): init configuration
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2024-11-25 18:18:07 +01:00
f70814269a core(ci): rename workflows and jobs
All checks were successful
continuous-integration/drone/push Build is passing
2024-11-25 18:11:32 +01:00
036645a5bc core(ci): split into dedicated workflows
All checks were successful
continuous-integration/drone/push Build is passing
2024-11-25 18:08:18 +01:00
0281c5d3cf core(ci): add test for correct README
Some checks failed
continuous-integration/drone/push Build is failing
2024-11-25 18:03:44 +01:00
79b55fa69b core(ci): add test for correct README
Some checks reported errors
continuous-integration/drone/push Build encountered an error
2024-11-25 18:03:14 +01:00
03d20b1373 core(ci): use helm unittest instead of helm lint
All checks were successful
continuous-integration/drone/push Build is passing
2024-11-25 17:56:51 +01:00
ddb891869a doc(README): add drone badge
Some checks failed
continuous-integration/drone/push Build is failing
2024-11-25 17:54:03 +01:00
cfdebc24ce core(ci): add drone configuration 2024-11-25 17:51:56 +01:00
6 changed files with 269 additions and 23 deletions

208
.drone.yml Normal file
View File

@ -0,0 +1,208 @@
---
kind: pipeline
type: kubernetes
name: Linters
clone:
disable: true
platform:
os: linux
arch: amd64
steps:
- name: clone repository
image: git.cryptic.systems/volker.raschek/git:1.3.1
- name: helm lint
commands:
- helm lint
image: git.cryptic.systems/volker.raschek/helm:3.16.1
resources:
limits:
cpu: 150
memory: 150M
- name: markdown lint
commands:
- markdownlint *.md
image: git.cryptic.systems/volker.raschek/markdownlint:0.41.0
resources:
limits:
cpu: 150
memory: 150M
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
resources:
limits:
cpu: 150
memory: 150M
when:
status:
- changed
- failure
trigger:
event:
exclude:
- tag
---
kind: pipeline
type: kubernetes
name: Unit tests
clone:
disable: true
platform:
os: linux
arch: amd64
steps:
- name: clone repository
image: git.cryptic.systems/volker.raschek/git:1.3.1
- name: helm unittest
commands:
- helm unittest --strict --file 'unittests/**/*.yaml' ./
image: git.cryptic.systems/volker.raschek/helm:3.16.1
resources:
limits:
cpu: 150
memory: 150M
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
resources:
limits:
cpu: 150
memory: 150M
when:
status:
- changed
- failure
trigger:
event:
exclude:
- tag
---
kind: pipeline
type: kubernetes
name: Generate README.md
clone:
disable: true
platform:
os: linux
arch: amd64
steps:
- name: clone repository
image: git.cryptic.systems/volker.raschek/git:1.3.1
- name: generate README
commands:
- npm install
- npm run readme:parameters
- npm run readme:lint
image: docker.io/library/node:22.9.0-alpine
resources:
limits:
cpu: 150
memory: 150M
- name: detect diff
commands:
- git diff --exit-code --name-only README.md
image: git.cryptic.systems/volker.raschek/git:1.3.1
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
resources:
limits:
cpu: 150
memory: 150M
when:
status:
- changed
- failure
trigger:
event:
exclude:
- tag
---
kind: pipeline
type: kubernetes
name: Release
clone:
disable: true
platform:
os: linux
steps:
- name: clone repository
image: git.cryptic.systems/volker.raschek/git:1.3.1
- name: release-helm-chart
commands:
- helm repo add prometheus-exporters https://charts.cryptic.systems/prometheus-exporters
- helm package --version ${DRONE_TAG} .
- helm cm-push ${DRONE_REPO_NAME}-${DRONE_TAG}.tgz prometheus-exporters
environment:
HELM_REPO_PASSWORD:
from_secret: helm_repo_password
HELM_REPO_USERNAME:
from_secret: helm_repo_username
image: git.cryptic.systems/volker.raschek/helm:3.16.1
resources:
limits:
cpu: 150
memory: 150M
trigger:
event:
- tag
repo:
- volker.raschek/prometheus-postgres-exporter

View File

@ -10,8 +10,9 @@ appVersion: "0.15.0"
keywords: keywords:
- prometheus - prometheus
- prometheus exporter - prometheus-exporter
- postgres - postgres-postgres-exporter
- postgres-exporter
sources: sources:
- https://github.com/prometheus-community/postgres_exporter - https://github.com/prometheus-community/postgres_exporter

View File

@ -1,5 +1,7 @@
# Prometheus PostgreSQL exporter # Prometheus PostgreSQL exporter
[![Build Status](https://drone.cryptic.systems/api/badges/volker.raschek/prometheus-postgres-exporter/status.svg)](https://drone.cryptic.systems/volker.raschek/prometheus-postgres-exporter)
This helm chart enables the deployment of a Prometheus metrics exporter for PostgreSQL databases and allows the This helm chart enables the deployment of a Prometheus metrics exporter for PostgreSQL databases and allows the
individual configuration of additional containers/initContainers, mounting of volumes, defining additional environment individual configuration of additional containers/initContainers, mounting of volumes, defining additional environment
variables, apply a user-defined web-config.yaml and much more. variables, apply a user-defined web-config.yaml and much more.
@ -27,9 +29,9 @@ chart is tested for deployment scenarios with ArgoCD.
> time is not possible. > time is not possible.
```bash ```bash
helm repo add prometheus-exporter https://charts.cryptic.systems/prometheus-exporter helm repo add prometheus-exporters https://charts.cryptic.systems/prometheus-exporters
helm repo update helm repo update
helm install prometheus-exporter/prometheus-postgres-exporter prometheus-postgres-exporter \ helm install prometheus-exporters/prometheus-postgres-exporter prometheus-postgres-exporter \
--set 'config.database.secret.databaseUsername=postgres' \ --set 'config.database.secret.databaseUsername=postgres' \
--set 'config.database.secret.databasePassword=postgres' \ --set 'config.database.secret.databasePassword=postgres' \
--set 'config.database.secret.databaseConnectionUrl="postgres.example.local:5432/postgres?ssl=disable"' \ --set 'config.database.secret.databaseConnectionUrl="postgres.example.local:5432/postgres?ssl=disable"' \
@ -43,7 +45,7 @@ version of the chart must be in sync with the `values.yaml`. Newer *minor* versi
versions can break something! versions can break something!
```bash ```bash
helm show values prometheus-exporter/prometheus-postgres-exporter --version 0.1.0 > values.yaml helm show values prometheus-exporters/prometheus-postgres-exporter --version 0.1.0 > values.yaml
``` ```
A complete list of available helm chart versions can be displayed via the following command: A complete list of available helm chart versions can be displayed via the following command:
@ -69,7 +71,7 @@ certification will be skipped by Prometheus.
> already present. > already present.
```bash ```bash
helm install prometheus-exporter/prometheus-postgres-exporter prometheus-postgres-exporter \ helm install prometheus-exporters/prometheus-postgres-exporter prometheus-postgres-exporter \
--set 'config.database.secret.databaseUsername=postgres' \ --set 'config.database.secret.databaseUsername=postgres' \
--set 'config.database.secret.databasePassword=postgres' \ --set 'config.database.secret.databasePassword=postgres' \
--set 'config.database.secret.databaseConnectionUrl="postgres.example.local:5432/postgres?ssl=disable"' \ --set 'config.database.secret.databaseConnectionUrl="postgres.example.local:5432/postgres?ssl=disable"' \
@ -92,7 +94,7 @@ certificate for the metrics exporter - TLS certificate verification can be enabl
replaced: replaced:
```diff ```diff
helm install prometheus-exporter/prometheus-postgres-exporter prometheus-postgres-exporter \ helm install prometheus-exporters/prometheus-postgres-exporter prometheus-postgres-exporter \
--set 'config.database.secret.databaseUsername=postgres' \ --set 'config.database.secret.databaseUsername=postgres' \
--set 'config.database.secret.databasePassword=postgres' \ --set 'config.database.secret.databasePassword=postgres' \
--set 'config.database.secret.databaseConnectionUrl="postgres.example.local:5432/postgres?ssl=disable"' \ --set 'config.database.secret.databaseConnectionUrl="postgres.example.local:5432/postgres?ssl=disable"' \

36
renovate.json Normal file
View File

@ -0,0 +1,36 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"assignees": [ "volker.raschek" ],
"customManagers": [
{
"description": "Update container image reference",
"fileMatch": [
"^Chart\\.yaml$"
],
"matchStrings": [
"appVersion: \"(?<currentValue>.*?)\"\\s+"
],
"datasourceTemplate": "docker",
"depNameTemplate": "prometheus-postgres-exporter",
"lookupNameTemplate": "quay.io/prometheuscommunity/postgres-exporter"
}
],
"labels": [ "renovate" ],
"packageRules": [
{
"addLabels": [ "renovate/droneci", "renovate/automerge" ],
"automerge": true,
"matchManagers": "droneci",
"matchUpdateTypes": [ "minor", "patch"]
},
{
"addLabels": [ "renovate/prometheus-postgres-exporter", "renovate/automerge" ],
"automerge": true,
"matchPackageNames": [ "prometheus-postgres-exporter" ],
"matchManagers": [ "regex" ],
"matchUpdateTypes": [ "minor", "patch"]
}
],
"rebaseLabel": "renovate/rebase",
"rebaseWhen": "behind-base-branch"
}

View File

@ -13,14 +13,13 @@ metadata:
{{- end }} {{- end }}
name: {{ include "prometheus-postgres-exporter.fullname" . }} name: {{ include "prometheus-postgres-exporter.fullname" . }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
spec: automountServiceAccountToken: {{ .Values.serviceAccount.new.automountServiceAccountToken }}
automountServiceAccountToken: {{ .Values.serviceAccount.new.automountServiceAccountToken }} {{- with .Values.serviceAccount.new.imagePullSecrets }}
{{- with .Values.serviceAccount.new.imagePullSecrets }} imagePullSecrets:
imagePullSecrets:
{{- toYaml . | nindent 4 }} {{- toYaml . | nindent 4 }}
{{- end }} {{- end }}
{{- with .Values.serviceAccount.new.secrets }} {{- with .Values.serviceAccount.new.secrets }}
secrets: secrets:
{{- toYaml . | nindent 4 }} {{- toYaml . | nindent 4 }}
{{- end }} {{- end }}
{{- end }} {{- end }}

View File

@ -29,12 +29,12 @@ tests:
- notExists: - notExists:
path: metadata.labels path: metadata.labels
- equal: - equal:
path: spec.automountServiceAccountToken path: automountServiceAccountToken
value: true value: true
- notExists: - notExists:
path: spec.imagePullSecrets path: imagePullSecrets
- notExists: - notExists:
path: spec.secrets path: secrets
- it: Rendering serviceAccount with custom values. - it: Rendering serviceAccount with custom values.
@ -65,14 +65,14 @@ tests:
path: metadata.name path: metadata.name
value: prometheus-postgres-exporter-unittest value: prometheus-postgres-exporter-unittest
- equal: - equal:
path: spec.automountServiceAccountToken path: automountServiceAccountToken
value: false value: false
- equal: - equal:
path: spec.imagePullSecrets path: imagePullSecrets
value: value:
- name: "my-pull-secret" - name: "my-pull-secret"
- equal: - equal:
path: spec.secrets path: secrets
value: value:
- name: "my-secret" - name: "my-secret"
namespace: "my-namespace" namespace: "my-namespace"