Compare commits

..

No commits in common. "0.5.0" and "0.4.2" have entirely different histories.
0.5.0 ... 0.4.2

15 changed files with 185 additions and 361 deletions

View File

@ -15,7 +15,7 @@ on:
jobs: jobs:
generate-parameters: generate-parameters:
container: container:
image: docker.io/library/node:24.1.0-alpine image: docker.io/library/node:23.9.0-alpine
runs-on: runs-on:
- ubuntu-latest - ubuntu-latest
steps: steps:

View File

@ -13,7 +13,7 @@ on:
jobs: jobs:
helm-lint: helm-lint:
container: container:
image: docker.io/volkerraschek/helm:3.18.0 image: docker.io/volkerraschek/helm:3.17.1
runs-on: runs-on:
- ubuntu-latest - ubuntu-latest
steps: steps:
@ -28,7 +28,7 @@ jobs:
helm-unittest: helm-unittest:
container: container:
image: docker.io/volkerraschek/helm:3.18.0 image: docker.io/volkerraschek/helm:3.17.1
runs-on: runs-on:
- ubuntu-latest - ubuntu-latest
steps: steps:

View File

@ -15,7 +15,7 @@ on:
jobs: jobs:
markdown-link-checker: markdown-link-checker:
container: container:
image: docker.io/library/node:24.1.0-alpine image: docker.io/library/node:23.9.0-alpine
runs-on: runs-on:
- ubuntu-latest - ubuntu-latest
steps: steps:
@ -31,7 +31,7 @@ jobs:
markdown-lint: markdown-lint:
container: container:
image: docker.io/library/node:24.1.0-alpine image: docker.io/library/node:23.9.0-alpine
runs-on: runs-on:
- ubuntu-latest - ubuntu-latest
steps: steps:

View File

@ -8,7 +8,7 @@ on:
jobs: jobs:
publish-chart: publish-chart:
container: container:
image: docker.io/volkerraschek/helm:3.18.0 image: docker.io/volkerraschek/helm:3.17.1
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Install tooling - name: Install tooling

View File

@ -4,13 +4,13 @@ CONTAINER_RUNTIME?=$(shell which podman)
# HELM_IMAGE # HELM_IMAGE
HELM_IMAGE_REGISTRY_HOST?=docker.io HELM_IMAGE_REGISTRY_HOST?=docker.io
HELM_IMAGE_REPOSITORY?=volkerraschek/helm HELM_IMAGE_REPOSITORY?=volkerraschek/helm
HELM_IMAGE_VERSION?=3.18.0 # renovate: datasource=docker registryUrl=https://docker.io depName=volkerraschek/helm HELM_IMAGE_VERSION?=3.16.1 # renovate: datasource=docker registryUrl=https://docker.io depName=volkerraschek/helm
HELM_IMAGE_FULLY_QUALIFIED=${HELM_IMAGE_REGISTRY_HOST}/${HELM_IMAGE_REPOSITORY}:${HELM_IMAGE_VERSION} HELM_IMAGE_FULLY_QUALIFIED=${HELM_IMAGE_REGISTRY_HOST}/${HELM_IMAGE_REPOSITORY}:${HELM_IMAGE_VERSION}
# NODE_IMAGE # NODE_IMAGE
NODE_IMAGE_REGISTRY_HOST?=docker.io NODE_IMAGE_REGISTRY_HOST?=docker.io
NODE_IMAGE_REPOSITORY?=library/node NODE_IMAGE_REPOSITORY?=library/node
NODE_IMAGE_VERSION?=24.1.0-alpine # renovate: datasource=docker registryUrl=https://docker.io depName=docker.io/library/node packageName=library/node NODE_IMAGE_VERSION?=22.9.0-alpine # renovate: datasource=docker registryUrl=https://docker.io depName=library/node
NODE_IMAGE_FULLY_QUALIFIED=${NODE_IMAGE_REGISTRY_HOST}/${NODE_IMAGE_REPOSITORY}:${NODE_IMAGE_VERSION} NODE_IMAGE_FULLY_QUALIFIED=${NODE_IMAGE_REGISTRY_HOST}/${NODE_IMAGE_REPOSITORY}:${NODE_IMAGE_VERSION}
# MISSING DOT # MISSING DOT

View File

@ -1,12 +1,11 @@
# 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)
[![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/prometheus-exporters)](https://artifacthub.io/packages/search?repo=prometheus-exporters) [![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/prometheus-exporters)](https://artifacthub.io/packages/search?repo=prometheus-exporters)
> [!NOTE] > [!NOTE]
> This is not the official *community* helm chart of the Prometheus metric exporter for PostgreSQL databases. If you are > This is not the official *community* helm chart of the Prometheus metric exporter for PostgreSQL databases. You can
> looking for the official helm chart, checkout the GitHub project > find the official community chart [here](https://github.com/prometheus-community/helm-charts).
> [helm-charts](https://github.com/prometheus-community/helm-charts) of the [Prometheus
> community](https://github.com/prometheus-community).
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
@ -21,7 +20,7 @@ helm chart is tested for deployment scenarios with **ArgoCD**.
## Helm: configuration and installation ## Helm: configuration and installation
1. A helm chart repository must be configured, to pull the helm charts from. 1. A helm chart repository must be configured, to pull the helm charts from.
2. All available [parameters](#parameters) are documented in detail below. The parameters can be defined via the helm 2. All available parameters are [here](#parameters) in detail documented. The parameters can be defined via the helm
`--set` flag or directly as part of a `values.yaml` file. The following example defines the `prometheus-exporter` `--set` flag or directly as part of a `values.yaml` file. The following example defines the `prometheus-exporter`
repository and use the `--set` flag for a basic deployment. repository and use the `--set` flag for a basic deployment.
@ -47,7 +46,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
CHART_VERSION=0.4.2 CHART_VERSION=0.4.1
helm show values prometheus-exporters/prometheus-postgres-exporter --version "${CHART_VERSION}" > values.yaml helm show values prometheus-exporters/prometheus-postgres-exporter --version "${CHART_VERSION}" > values.yaml
``` ```
@ -75,8 +74,7 @@ available. As this is a Golang application, this can be implemented using `GOMAX
of defining `GOMAXPROCS` automatically based on the defined CPU limit like `1000m`. Please keep in mind, that the CFS of defining `GOMAXPROCS` automatically based on the defined CPU limit like `1000m`. Please keep in mind, that the CFS
rate of `100ms` - default on each kubernetes node, is also very important to avoid CPU throttling. rate of `100ms` - default on each kubernetes node, is also very important to avoid CPU throttling.
Further information about this topic can be found in one of Kanishk's blog Further information about this topic can be found [here](https://kanishk.io/posts/cpu-throttling-in-containerized-go-apps/).
[posts](https://kanishk.io/posts/cpu-throttling-in-containerized-go-apps/).
> [!NOTE] > [!NOTE]
> The environment variable `GOMAXPROCS` is set automatically, when a CPU limit is defined. An explicit configuration is > The environment variable `GOMAXPROCS` is set automatically, when a CPU limit is defined. An explicit configuration is
@ -272,7 +270,7 @@ networkPolicies:
### Configuration ### Configuration
| Name | Description | Value | | Name | Description | Value |
| ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------- | | ------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
| `config.database.existingSecret.enabled` | Mount an existing secret containing the application specific `DATA_SOURCE_` prefixed environment variables. | `false` | | `config.database.existingSecret.enabled` | Mount an existing secret containing the application specific `DATA_SOURCE_` prefixed environment variables. | `false` |
| `config.database.existingSecret.secretName` | Name of the existing secret containing the application specific `DATA_SOURCE_` prefixed environment variables. | `""` | | `config.database.existingSecret.secretName` | Name of the existing secret containing the application specific `DATA_SOURCE_` prefixed environment variables. | `""` |
| `config.database.secret.annotations` | Additional annotations of the secret containing the database credentials. | `{}` | | `config.database.secret.annotations` | Additional annotations of the secret containing the database credentials. | `{}` |
@ -284,12 +282,12 @@ networkPolicies:
| `config.exporterConfig.existingSecret.secretName` | Name of the existing secret containing the key `exporterConfig.yaml`. | `""` | | `config.exporterConfig.existingSecret.secretName` | Name of the existing secret containing the key `exporterConfig.yaml`. | `""` |
| `config.exporterConfig.secret.annotations` | Additional annotations of the secret containing the `exporterConfig.yaml`. | `{}` | | `config.exporterConfig.secret.annotations` | Additional annotations of the secret containing the `exporterConfig.yaml`. | `{}` |
| `config.exporterConfig.secret.labels` | Additional labels of the secret containing the `exporterConfig.yaml`. | `{}` | | `config.exporterConfig.secret.labels` | Additional labels of the secret containing the `exporterConfig.yaml`. | `{}` |
| `config.exporterConfig.secret.exporterConfig` | Content of the `exporterConfig.yaml`. Further information can be found in the [README](https://github.com/prometheus-community/postgres_exporter?tab=readme-ov-file#multi-target-support-beta) file of the Postgres exporter binary. | `{}` | | `config.exporterConfig.secret.exporterConfig` | Content of the `exporterConfig.yaml`. Further information can be found [here](https://github.com/prometheus-community/postgres_exporter?tab=readme-ov-file#multi-target-support-beta). | `{}` |
| `config.webConfig.existingSecret.enabled` | Mount an existing secret containing the key `webConfig.yaml`. | `false` | | `config.webConfig.existingSecret.enabled` | Mount an existing secret containing the key `webConfig.yaml`. | `false` |
| `config.webConfig.existingSecret.secretName` | Name of the existing secret containing the key `webConfig.yaml`. | `""` | | `config.webConfig.existingSecret.secretName` | Name of the existing secret containing the key `webConfig.yaml`. | `""` |
| `config.webConfig.secret.annotations` | Additional annotations of the secret containing the `webConfig.yaml`. | `{}` | | `config.webConfig.secret.annotations` | Additional annotations of the secret containing the `webConfig.yaml`. | `{}` |
| `config.webConfig.secret.labels` | Additional labels of the secret containing the `webConfig.yaml`. | `{}` | | `config.webConfig.secret.labels` | Additional labels of the secret containing the `webConfig.yaml`. | `{}` |
| `config.webConfig.secret.webConfig` | Content of the `webConfig.yaml`. Further [documentation](https://prometheus.io/docs/prometheus/latest/configuration/https/) is available on the official Prometheus website. | `{}` | | `config.webConfig.secret.webConfig` | Content of the `webConfig.yaml`. Further information can be found [here](https://prometheus.io/docs/prometheus/latest/configuration/https/). | `{}` |
### Deployment ### Deployment

195
package-lock.json generated
View File

@ -9,7 +9,7 @@
"devDependencies": { "devDependencies": {
"@bitnami/readme-generator-for-helm": "^2.5.0", "@bitnami/readme-generator-for-helm": "^2.5.0",
"markdown-link-check": "^3.13.6", "markdown-link-check": "^3.13.6",
"markdownlint-cli": "^0.45.0" "markdownlint-cli": "^0.44.0"
}, },
"engines": { "engines": {
"node": ">=16.0.0", "node": ">=16.0.0",
@ -103,6 +103,17 @@
"node": ">=8.0" "node": ">=8.0"
} }
}, },
"node_modules/@pkgjs/parseargs": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
"integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
"dev": true,
"license": "MIT",
"optional": true,
"engines": {
"node": ">=14"
}
},
"node_modules/@tootallnate/quickjs-emscripten": { "node_modules/@tootallnate/quickjs-emscripten": {
"version": "0.23.0", "version": "0.23.0",
"resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz",
@ -440,9 +451,9 @@
} }
}, },
"node_modules/decode-named-character-reference": { "node_modules/decode-named-character-reference": {
"version": "1.1.0", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz", "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz",
"integrity": "sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==", "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@ -683,13 +694,13 @@
} }
}, },
"node_modules/foreground-child": { "node_modules/foreground-child": {
"version": "3.3.1", "version": "3.3.0",
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz",
"integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==",
"dev": true, "dev": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"cross-spawn": "^7.0.6", "cross-spawn": "^7.0.0",
"signal-exit": "^4.0.1" "signal-exit": "^4.0.1"
}, },
"engines": { "engines": {
@ -815,9 +826,9 @@
} }
}, },
"node_modules/ignore": { "node_modules/ignore": {
"version": "7.0.4", "version": "7.0.3",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.4.tgz", "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.3.tgz",
"integrity": "sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==", "integrity": "sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
@ -962,19 +973,19 @@
"license": "ISC" "license": "ISC"
}, },
"node_modules/jackspeak": { "node_modules/jackspeak": {
"version": "4.1.0", "version": "3.4.3",
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.0.tgz", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
"integrity": "sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==", "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
"dev": true, "dev": true,
"license": "BlueOak-1.0.0", "license": "BlueOak-1.0.0",
"dependencies": { "dependencies": {
"@isaacs/cliui": "^8.0.2" "@isaacs/cliui": "^8.0.2"
}, },
"engines": {
"node": "20 || >=22"
},
"funding": { "funding": {
"url": "https://github.com/sponsors/isaacs" "url": "https://github.com/sponsors/isaacs"
},
"optionalDependencies": {
"@pkgjs/parseargs": "^0.11.0"
} }
}, },
"node_modules/js-yaml": { "node_modules/js-yaml": {
@ -1101,15 +1112,15 @@
} }
}, },
"node_modules/markdown-link-check": { "node_modules/markdown-link-check": {
"version": "3.13.7", "version": "3.13.6",
"resolved": "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.13.7.tgz", "resolved": "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.13.6.tgz",
"integrity": "sha512-Btn3HU8s2Uyh1ZfzmyZEkp64zp2+RAjwfQt1u4swq2Xa6w37OW0T2inQZrkSNVxDSa2jSN2YYhw/JkAp5jF1PQ==", "integrity": "sha512-JiqexKOR+oaBovJ16x/VEN886CzPI48bSGUcKJvnkHVS8xSb9fRJtsdcLwG8+5QQ/V0UZKFmW8JEZFcZbd0BBA==",
"dev": true, "dev": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"async": "^3.2.6", "async": "^3.2.6",
"chalk": "^5.3.0", "chalk": "^5.3.0",
"commander": "^13.1.0", "commander": "^12.1.0",
"link-check": "^5.4.0", "link-check": "^5.4.0",
"markdown-link-extractor": "^4.0.2", "markdown-link-extractor": "^4.0.2",
"needle": "^3.3.1", "needle": "^3.3.1",
@ -1121,6 +1132,16 @@
"markdown-link-check": "markdown-link-check" "markdown-link-check": "markdown-link-check"
} }
}, },
"node_modules/markdown-link-check/node_modules/commander": {
"version": "12.1.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
"integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=18"
}
},
"node_modules/markdown-link-extractor": { "node_modules/markdown-link-extractor": {
"version": "4.0.2", "version": "4.0.2",
"resolved": "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-4.0.2.tgz", "resolved": "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-4.0.2.tgz",
@ -1147,52 +1168,52 @@
} }
}, },
"node_modules/markdownlint": { "node_modules/markdownlint": {
"version": "0.38.0", "version": "0.37.4",
"resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.38.0.tgz", "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.37.4.tgz",
"integrity": "sha512-xaSxkaU7wY/0852zGApM8LdlIfGCW8ETZ0Rr62IQtAnUMlMuifsg09vWJcNYeL4f0anvr8Vo4ZQar8jGpV0btQ==", "integrity": "sha512-u00joA/syf3VhWh6/ybVFkib5Zpj2e5KB/cfCei8fkSRuums6nyisTWGqjTWIOFoFwuXoTBQQiqlB4qFKp8ncQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"micromark": "4.0.2", "markdown-it": "14.1.0",
"micromark-core-commonmark": "2.0.3", "micromark": "4.0.1",
"micromark-extension-directive": "4.0.0", "micromark-core-commonmark": "2.0.2",
"micromark-extension-directive": "3.0.2",
"micromark-extension-gfm-autolink-literal": "2.1.0", "micromark-extension-gfm-autolink-literal": "2.1.0",
"micromark-extension-gfm-footnote": "2.1.0", "micromark-extension-gfm-footnote": "2.1.0",
"micromark-extension-gfm-table": "2.1.1", "micromark-extension-gfm-table": "2.1.0",
"micromark-extension-math": "3.1.0", "micromark-extension-math": "3.1.0",
"micromark-util-types": "2.0.2" "micromark-util-types": "2.0.1"
}, },
"engines": { "engines": {
"node": ">=20" "node": ">=18"
}, },
"funding": { "funding": {
"url": "https://github.com/sponsors/DavidAnson" "url": "https://github.com/sponsors/DavidAnson"
} }
}, },
"node_modules/markdownlint-cli": { "node_modules/markdownlint-cli": {
"version": "0.45.0", "version": "0.44.0",
"resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.45.0.tgz", "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.44.0.tgz",
"integrity": "sha512-GiWr7GfJLVfcopL3t3pLumXCYs8sgWppjIA1F/Cc3zIMgD3tmkpyZ1xkm1Tej8mw53B93JsDjgA3KOftuYcfOw==", "integrity": "sha512-ZJTAONlvF9NkrIBltCdW15DxN9UTbPiKMEqAh2EU2gwIFlrCMavyCEPPO121cqfYOrLUJWW8/XKWongstmmTeQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"commander": "~13.1.0", "commander": "~13.1.0",
"glob": "~11.0.2", "glob": "~10.4.5",
"ignore": "~7.0.4", "ignore": "~7.0.3",
"js-yaml": "~4.1.0", "js-yaml": "~4.1.0",
"jsonc-parser": "~3.3.1", "jsonc-parser": "~3.3.1",
"jsonpointer": "~5.0.1", "jsonpointer": "~5.0.1",
"markdown-it": "~14.1.0", "markdownlint": "~0.37.4",
"markdownlint": "~0.38.0", "minimatch": "~9.0.5",
"minimatch": "~10.0.1",
"run-con": "~1.3.2", "run-con": "~1.3.2",
"smol-toml": "~1.3.4" "smol-toml": "~1.3.1"
}, },
"bin": { "bin": {
"markdownlint": "markdownlint.js" "markdownlint": "markdownlint.js"
}, },
"engines": { "engines": {
"node": ">=20" "node": ">=18"
} }
}, },
"node_modules/markdownlint-cli/node_modules/brace-expansion": { "node_modules/markdownlint-cli/node_modules/brace-expansion": {
@ -1206,40 +1227,37 @@
} }
}, },
"node_modules/markdownlint-cli/node_modules/glob": { "node_modules/markdownlint-cli/node_modules/glob": {
"version": "11.0.2", "version": "10.4.5",
"resolved": "https://registry.npmjs.org/glob/-/glob-11.0.2.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
"integrity": "sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ==", "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
"dev": true, "dev": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"foreground-child": "^3.1.0", "foreground-child": "^3.1.0",
"jackspeak": "^4.0.1", "jackspeak": "^3.1.2",
"minimatch": "^10.0.0", "minimatch": "^9.0.4",
"minipass": "^7.1.2", "minipass": "^7.1.2",
"package-json-from-dist": "^1.0.0", "package-json-from-dist": "^1.0.0",
"path-scurry": "^2.0.0" "path-scurry": "^1.11.1"
}, },
"bin": { "bin": {
"glob": "dist/esm/bin.mjs" "glob": "dist/esm/bin.mjs"
}, },
"engines": {
"node": "20 || >=22"
},
"funding": { "funding": {
"url": "https://github.com/sponsors/isaacs" "url": "https://github.com/sponsors/isaacs"
} }
}, },
"node_modules/markdownlint-cli/node_modules/minimatch": { "node_modules/markdownlint-cli/node_modules/minimatch": {
"version": "10.0.1", "version": "9.0.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
"integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
"dev": true, "dev": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"brace-expansion": "^2.0.1" "brace-expansion": "^2.0.1"
}, },
"engines": { "engines": {
"node": "20 || >=22" "node": ">=16 || 14 >=14.17"
}, },
"funding": { "funding": {
"url": "https://github.com/sponsors/isaacs" "url": "https://github.com/sponsors/isaacs"
@ -1266,9 +1284,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/micromark": { "node_modules/micromark": {
"version": "4.0.2", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.1.tgz",
"integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", "integrity": "sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@ -1302,9 +1320,9 @@
} }
}, },
"node_modules/micromark-core-commonmark": { "node_modules/micromark-core-commonmark": {
"version": "2.0.3", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.2.tgz",
"integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", "integrity": "sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@ -1337,9 +1355,9 @@
} }
}, },
"node_modules/micromark-extension-directive": { "node_modules/micromark-extension-directive": {
"version": "4.0.0", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-4.0.0.tgz", "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.2.tgz",
"integrity": "sha512-/C2nqVmXXmiseSSuCdItCMho7ybwwop6RrrRPk0KbOHW21JKoCldC+8rFOaundDoRBUWBnJJcxeA/Kvi34WQXg==", "integrity": "sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@ -1395,9 +1413,9 @@
} }
}, },
"node_modules/micromark-extension-gfm-table": { "node_modules/micromark-extension-gfm-table": {
"version": "2.1.1", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.0.tgz",
"integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", "integrity": "sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@ -1745,9 +1763,9 @@
} }
}, },
"node_modules/micromark-util-subtokenize": { "node_modules/micromark-util-subtokenize": {
"version": "2.1.0", "version": "2.0.4",
"resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.4.tgz",
"integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", "integrity": "sha512-N6hXjrin2GTJDe3MVjf5FuXpm12PGm80BrUAeub9XFXca8JZbP+oIwY4LJSVwFUCL1IPm/WwSVUN7goFHmSGGQ==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@ -1785,9 +1803,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/micromark-util-types": { "node_modules/micromark-util-types": {
"version": "2.0.2", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz",
"integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@ -2027,31 +2045,28 @@
} }
}, },
"node_modules/path-scurry": { "node_modules/path-scurry": {
"version": "2.0.0", "version": "1.11.1",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
"integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
"dev": true, "dev": true,
"license": "BlueOak-1.0.0", "license": "BlueOak-1.0.0",
"dependencies": { "dependencies": {
"lru-cache": "^11.0.0", "lru-cache": "^10.2.0",
"minipass": "^7.1.2" "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
}, },
"engines": { "engines": {
"node": "20 || >=22" "node": ">=16 || 14 >=14.18"
}, },
"funding": { "funding": {
"url": "https://github.com/sponsors/isaacs" "url": "https://github.com/sponsors/isaacs"
} }
}, },
"node_modules/path-scurry/node_modules/lru-cache": { "node_modules/path-scurry/node_modules/lru-cache": {
"version": "11.1.0", "version": "10.4.3",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
"integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
"dev": true, "dev": true,
"license": "ISC", "license": "ISC"
"engines": {
"node": "20 || >=22"
}
}, },
"node_modules/progress": { "node_modules/progress": {
"version": "2.0.3", "version": "2.0.3",
@ -2188,9 +2203,9 @@
} }
}, },
"node_modules/smol-toml": { "node_modules/smol-toml": {
"version": "1.3.4", "version": "1.3.1",
"resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.3.4.tgz", "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.3.1.tgz",
"integrity": "sha512-UOPtVuYkzYGee0Bd2Szz8d2G3RfMfJ2t3qVdZUAozZyAk+a0Sxa+QKix0YCwjL/A1RR0ar44nCxaoN9FxdJGwA==", "integrity": "sha512-tEYNll18pPKHroYSmLLrksq233j021G0giwW7P3D24jC54pQ5W5BXMsQ/Mvw1OJCmEYDgY+lrzT+3nNUtoNfXQ==",
"dev": true, "dev": true,
"license": "BSD-3-Clause", "license": "BSD-3-Clause",
"engines": { "engines": {
@ -2380,9 +2395,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/undici": { "node_modules/undici": {
"version": "6.21.2", "version": "6.21.1",
"resolved": "https://registry.npmjs.org/undici/-/undici-6.21.2.tgz", "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.1.tgz",
"integrity": "sha512-uROZWze0R0itiAKVPsYhFov9LxrPMHLMEQFszeI2gCN6bnIIZ8twzBCJcN2LJrBBLfrP0t1FW0g+JmKVl8Vk1g==", "integrity": "sha512-q/1rj5D0/zayJB2FraXdaWxbhWiNKDvu8naDT2dl1yTlvJp4BLtOcp2a5BvgGNQpYYJzau7tf1WgKv3b+7mqpQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {

View File

@ -16,6 +16,6 @@
"devDependencies": { "devDependencies": {
"@bitnami/readme-generator-for-helm": "^2.5.0", "@bitnami/readme-generator-for-helm": "^2.5.0",
"markdown-link-check": "^3.13.6", "markdown-link-check": "^3.13.6",
"markdownlint-cli": "^0.45.0" "markdownlint-cli": "^0.44.0"
} }
} }

View File

@ -1,11 +1,7 @@
{ {
"$schema": "https://docs.renovatebot.com/renovate-schema.json", "$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [ "assignees": [
"local>volker.raschek/renovate-config:default#master", "volker.raschek"
"local>volker.raschek/renovate-config:container#master",
"local>volker.raschek/renovate-config:actions#master",
"local>volker.raschek/renovate-config:npm#master",
"local>volker.raschek/renovate-config:regexp#master"
], ],
"customManagers": [ "customManagers": [
{ {
@ -31,7 +27,40 @@
"versioningTemplate": "semver" "versioningTemplate": "semver"
} }
], ],
"labels": [
"renovate"
],
"lockFileMaintenance": {
"addLabels": [
"renovate/automerge",
"renovate/lockFileMaintenance"
],
"automerge": true,
"enabled": true
},
"npm": {
"enabled": true
},
"packageRules": [ "packageRules": [
{
"addLabels": [
"renovate/automerge",
"renovate/npm"
],
"automerge": true,
"matchPackageNames": [
"@bitnami/readme-generator-for-helm",
"markdownlint-cli",
"markdown-link-check"
],
"matchManagers": [
"npm"
],
"matchUpdateTypes": [
"minor",
"patch"
]
},
{ {
"addLabels": [ "addLabels": [
"renovate/automerge", "renovate/automerge",
@ -64,5 +93,7 @@
"patch" "patch"
] ]
} }
] ],
"rebaseLabel": "renovate/rebase",
"rebaseWhen": "behind-base-branch"
} }

View File

@ -7,37 +7,6 @@
{{- if .Values.deployment.annotations }} {{- if .Values.deployment.annotations }}
{{ toYaml .Values.deployment.annotations }} {{ toYaml .Values.deployment.annotations }}
{{- end }} {{- end }}
# The following annotations are required to trigger a rolling update. Further information can be found in the official
# documentation of helm:
#
# https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments
#
{{/* database */}}
{{- if and .Values.config.database.existingSecret.enabled .Values.config.database.existingSecret.secretName }}
{{- $secret := default (dict "data" (dict)) (lookup "v1" "Secret" .Release.Namespace .Values.config.database.existingSecret.secretName ) }}
checksum/secret-database: {{ print $secret.spec | sha256sum }}
{{- else }}
checksum/secret-database: {{ include (print $.Template.BasePath "/prometheus-postgres-exporter/secretDatabase.yaml") . | sha256sum }}
{{- end }}
{{/* exporter config */}}
{{- if and .Values.config.exporterConfig.existingSecret.enabled .Values.config.exporterConfig.existingSecret.secretName }}
{{- $secret := default (dict "data" (dict)) (lookup "v1" "Secret" .Release.Namespace .Values.config.exporterConfig.existingSecret.secretName ) }}
checksum/secret-exporter-config: {{ print $secret.spec | sha256sum }}
{{- else }}
checksum/secret-exporter-config: {{ include (print $.Template.BasePath "/prometheus-postgres-exporter/secretExporterConfig.yaml") . | sha256sum }}
{{- end }}
{{/* web config */}}
{{- if and .Values.config.webConfig.existingSecret.enabled .Values.config.webConfig.existingSecret.secretName }}
{{- $secret := default (dict "data" (dict)) (lookup "v1" "Secret" .Release.Namespace .Values.config.webConfig.existingSecret.secretName ) }}
checksum/secret-web-config: {{ print $secret.spec | sha256sum }}
{{- else }}
checksum/secret-web-config: {{ include (print $.Template.BasePath "/prometheus-postgres-exporter/secretWebConfig.yaml") . | sha256sum }}
{{- end }}
{{- end }} {{- end }}
{{/* env */}} {{/* env */}}

View File

@ -5,7 +5,7 @@ kind: ConfigMap
metadata: metadata:
{{- with (include "prometheus-postgres-exporter.configMap.grafanaDashboards.postgresExporter.annotations" . | fromYaml) }} {{- with (include "prometheus-postgres-exporter.configMap.grafanaDashboards.postgresExporter.annotations" . | fromYaml) }}
annotations: annotations:
{{- tpl (toYaml .) $ | nindent 4 }} {{- tpl (. | toYaml) $ | nindent 4 }}
{{- end }} {{- end }}
{{- with (include "prometheus-postgres-exporter.configMap.grafanaDashboards.postgresExporter.labels" . | fromYaml) }} {{- with (include "prometheus-postgres-exporter.configMap.grafanaDashboards.postgresExporter.labels" . | fromYaml) }}
labels: labels:

View File

@ -3,7 +3,7 @@ kind: Deployment
metadata: metadata:
{{- with (include "prometheus-postgres-exporter.deployment.annotations" . | fromYaml) }} {{- with (include "prometheus-postgres-exporter.deployment.annotations" . | fromYaml) }}
annotations: annotations:
{{- tpl (toYaml .) $ | nindent 4 }} {{- tpl (. | toYaml) $ | nindent 4 }}
{{- end }} {{- end }}
{{- with (include "prometheus-postgres-exporter.deployment.labels" . | fromYaml) }} {{- with (include "prometheus-postgres-exporter.deployment.labels" . | fromYaml) }}
labels: labels:

View File

@ -5,7 +5,7 @@ kind: Ingress
metadata: metadata:
{{- with (include "prometheus-postgres-exporter.ingress.annotations" . | fromYaml) }} {{- with (include "prometheus-postgres-exporter.ingress.annotations" . | fromYaml) }}
annotations: annotations:
{{- tpl (toYaml .) $ | nindent 4 }} {{- tpl (. | toYaml) $ | nindent 4 }}
{{- end }} {{- end }}
{{- with (include "prometheus-postgres-exporter.ingress.labels" . | fromYaml) }} {{- with (include "prometheus-postgres-exporter.ingress.labels" . | fromYaml) }}
labels: labels:

View File

@ -7,35 +7,18 @@ release:
namespace: testing namespace: testing
templates: templates:
- templates/prometheus-postgres-exporter/deployment.yaml - templates/prometheus-postgres-exporter/deployment.yaml
- templates/prometheus-postgres-exporter/secretDatabase.yaml
- templates/prometheus-postgres-exporter/secretExporterConfig.yaml
- templates/prometheus-postgres-exporter/secretWebConfig.yaml
tests: tests:
- it: Rendering default - it: Rendering default
set:
# Ensure that the secrets and config maps are well configured.
config.database.secret.databaseUsername: "postgres"
config.database.secret.databasePassword: "postgres"
config.database.secret.databaseConnectionUrl: "localhost:5432/postgres?sslmode=disable"
asserts: asserts:
- hasDocuments: - hasDocuments:
count: 1 count: 1
template: templates/prometheus-postgres-exporter/deployment.yaml
- containsDocument: - containsDocument:
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
name: prometheus-postgres-exporter-unittest name: prometheus-postgres-exporter-unittest
namespace: testing namespace: testing
template: templates/prometheus-postgres-exporter/deployment.yaml - notExists:
- exists: path: metadata.annotations
path: metadata.annotations.checksum/secret-database
template: templates/prometheus-postgres-exporter/deployment.yaml
- exists:
path: metadata.annotations.checksum/secret-exporter-config
template: templates/prometheus-postgres-exporter/deployment.yaml
- exists:
path: metadata.annotations.checksum/secret-web-config
template: templates/prometheus-postgres-exporter/deployment.yaml
- equal: - equal:
path: metadata.labels path: metadata.labels
value: value:
@ -44,33 +27,27 @@ tests:
app.kubernetes.io/name: prometheus-postgres-exporter app.kubernetes.io/name: prometheus-postgres-exporter
app.kubernetes.io/version: 0.1.0 app.kubernetes.io/version: 0.1.0
helm.sh/chart: prometheus-postgres-exporter-0.1.0 helm.sh/chart: prometheus-postgres-exporter-0.1.0
template: templates/prometheus-postgres-exporter/deployment.yaml
- equal: - equal:
path: spec.replicas path: spec.replicas
value: 1 value: 1
template: templates/prometheus-postgres-exporter/deployment.yaml
- notExists: - notExists:
path: spec.template.spec.affinity path: spec.template.spec.affinity
template: templates/prometheus-postgres-exporter/deployment.yaml
- contains: - contains:
path: spec.template.spec.containers[0].envFrom path: spec.template.spec.containers[0].envFrom
content: content:
secretRef: secretRef:
name: prometheus-postgres-exporter-unittest-database-env name: prometheus-postgres-exporter-unittest-database-env
template: templates/prometheus-postgres-exporter/deployment.yaml
- equal: - equal:
path: spec.template.spec.containers[0].args path: spec.template.spec.containers[0].args
value: value:
- --config.file=/etc/prometheus-postgres-exporter/config.d/exporterConfig.yaml - --config.file=/etc/prometheus-postgres-exporter/config.d/exporterConfig.yaml
- --web.config.file=/etc/prometheus-postgres-exporter/config.d/webConfig.yaml - --web.config.file=/etc/prometheus-postgres-exporter/config.d/webConfig.yaml
- --web.listen-address=:9187 - --web.listen-address=:9187
template: templates/prometheus-postgres-exporter/deployment.yaml
- equal: - equal:
path: spec.template.spec.containers[0].volumeMounts path: spec.template.spec.containers[0].volumeMounts
value: value:
- mountPath: /etc/prometheus-postgres-exporter/config.d - mountPath: /etc/prometheus-postgres-exporter/config.d
name: config-d name: config-d
template: templates/prometheus-postgres-exporter/deployment.yaml
- equal: - equal:
path: spec.template.spec.volumes path: spec.template.spec.volumes
value: value:
@ -82,59 +59,42 @@ tests:
name: prometheus-postgres-exporter-unittest-exporter-config name: prometheus-postgres-exporter-unittest-exporter-config
- secret: - secret:
name: prometheus-postgres-exporter-unittest-web-config name: prometheus-postgres-exporter-unittest-web-config
template: templates/prometheus-postgres-exporter/deployment.yaml
- equal: - equal:
path: spec.template.spec.containers[0].image path: spec.template.spec.containers[0].image
value: quay.io/prometheuscommunity/postgres-exporter:v0.1.0 value: quay.io/prometheuscommunity/postgres-exporter:v0.1.0
template: templates/prometheus-postgres-exporter/deployment.yaml
- equal: - equal:
path: spec.template.spec.containers[0].imagePullPolicy path: spec.template.spec.containers[0].imagePullPolicy
value: IfNotPresent value: IfNotPresent
template: templates/prometheus-postgres-exporter/deployment.yaml
- notExists: - notExists:
path: spec.template.spec.containers[0].resources path: spec.template.spec.containers[0].resources
template: templates/prometheus-postgres-exporter/deployment.yaml
- notExists: - notExists:
path: spec.template.spec.containers[0].securityContext path: spec.template.spec.containers[0].securityContext
template: templates/prometheus-postgres-exporter/deployment.yaml
- notExists: - notExists:
path: spec.template.spec.dnsConfig path: spec.template.spec.dnsConfig
template: templates/prometheus-postgres-exporter/deployment.yaml
- notExists: - notExists:
path: spec.template.spec.dnsPolicy path: spec.template.spec.dnsPolicy
template: templates/prometheus-postgres-exporter/deployment.yaml
- notExists: - notExists:
path: spec.template.spec.hostname path: spec.template.spec.hostname
template: templates/prometheus-postgres-exporter/deployment.yaml
- equal: - equal:
path: spec.template.spec.hostNetwork path: spec.template.spec.hostNetwork
value: false value: false
template: templates/prometheus-postgres-exporter/deployment.yaml
- notExists: - notExists:
path: spec.template.spec.imagePullSecrets path: spec.template.spec.imagePullSecrets
template: templates/prometheus-postgres-exporter/deployment.yaml
- notExists: - notExists:
path: spec.template.spec.nodeSelector path: spec.template.spec.nodeSelector
template: templates/prometheus-postgres-exporter/deployment.yaml
- notExists: - notExists:
path: spec.template.spec.priorityClassName path: spec.template.spec.priorityClassName
template: templates/prometheus-postgres-exporter/deployment.yaml
- notExists: - notExists:
path: spec.template.spec.restartPolicy path: spec.template.spec.restartPolicy
template: templates/prometheus-postgres-exporter/deployment.yaml
- notExists: - notExists:
path: spec.template.spec.subdomain path: spec.template.spec.subdomain
template: templates/prometheus-postgres-exporter/deployment.yaml
- equal: - equal:
path: spec.template.spec.terminationGracePeriodSeconds path: spec.template.spec.terminationGracePeriodSeconds
value: 60 value: 60
template: templates/prometheus-postgres-exporter/deployment.yaml
- notExists: - notExists:
path: spec.template.spec.tolerations path: spec.template.spec.tolerations
template: templates/prometheus-postgres-exporter/deployment.yaml
- notExists: - notExists:
path: spec.template.spec.topologySpreadConstraints path: spec.template.spec.topologySpreadConstraints
template: templates/prometheus-postgres-exporter/deployment.yaml
- equal: - equal:
path: spec.strategy path: spec.strategy
value: value:
@ -142,31 +102,17 @@ tests:
rollingUpdate: rollingUpdate:
maxSurge: 1 maxSurge: 1
maxUnavailable: 1 maxUnavailable: 1
template: templates/prometheus-postgres-exporter/deployment.yaml
- it: Test custom replicas - it: Test custom replicas
set: set:
# Ensure that the secrets and config maps are well configured.
config.database.secret.databaseUsername: "postgres"
config.database.secret.databasePassword: "postgres"
config.database.secret.databaseConnectionUrl: "localhost:5432/postgres?sslmode=disable"
# Normal test values
deployment.replicas: 3 deployment.replicas: 3
asserts: asserts:
- equal: - equal:
path: spec.replicas path: spec.replicas
value: 3 value: 3
template: templates/prometheus-postgres-exporter/deployment.yaml
- it: Test custom affinity - it: Test custom affinity
set: set:
# Ensure that the secrets and config maps are well configured.
config.database.secret.databaseUsername: "postgres"
config.database.secret.databasePassword: "postgres"
config.database.secret.databaseConnectionUrl: "localhost:5432/postgres?sslmode=disable"
# Normal test values
deployment.affinity: deployment.affinity:
nodeAffinity: nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution: requiredDuringSchedulingIgnoredDuringExecution:
@ -190,16 +136,9 @@ tests:
values: values:
- antarctica-east1 - antarctica-east1
- antarctica-west1 - antarctica-west1
template: templates/prometheus-postgres-exporter/deployment.yaml
- it: Test additional arguments - it: Test additional arguments
set: set:
# Ensure that the secrets and config maps are well configured.
config.database.secret.databaseUsername: "postgres"
config.database.secret.databasePassword: "postgres"
config.database.secret.databaseConnectionUrl: "localhost:5432/postgres?sslmode=disable"
# Normal test values
deployment.postgresExporter.args: deployment.postgresExporter.args:
- "--foo=bar" - "--foo=bar"
- "--bar=foo" - "--bar=foo"
@ -212,42 +151,26 @@ tests:
- --web.listen-address=:9187 - --web.listen-address=:9187
- --foo=bar - --foo=bar
- --bar=foo - --bar=foo
template: templates/prometheus-postgres-exporter/deployment.yaml
- it: Test custom imageRegistry and imageRepository - it: Test custom imageRegistry and imageRepository
set: set:
# Ensure that the secrets and config maps are well configured.
config.database.secret.databaseUsername: "postgres"
config.database.secret.databasePassword: "postgres"
config.database.secret.databaseConnectionUrl: "localhost:5432/postgres?sslmode=disable"
# Normal test values
deployment.postgresExporter.image.registry: registry.example.local deployment.postgresExporter.image.registry: registry.example.local
deployment.postgresExporter.image.repository: path/special/prometheus-postgres-exporter deployment.postgresExporter.image.repository: path/special/prometheus-postgres-exporter
asserts: asserts:
- equal: - equal:
path: spec.template.spec.containers[0].image path: spec.template.spec.containers[0].image
value: registry.example.local/path/special/prometheus-postgres-exporter:v0.1.0 value: registry.example.local/path/special/prometheus-postgres-exporter:v0.1.0
template: templates/prometheus-postgres-exporter/deployment.yaml
- it: Test custom imagePullPolicy - it: Test custom imagePullPolicy
set: set:
# Ensure that the secrets and config maps are well configured.
config.database.secret.databaseUsername: "postgres"
config.database.secret.databasePassword: "postgres"
config.database.secret.databaseConnectionUrl: "localhost:5432/postgres?sslmode=disable"
# Normal test values
deployment.postgresExporter.image.pullPolicy: Always deployment.postgresExporter.image.pullPolicy: Always
asserts: asserts:
- equal: - equal:
path: spec.template.spec.containers[0].imagePullPolicy path: spec.template.spec.containers[0].imagePullPolicy
value: Always value: Always
template: templates/prometheus-postgres-exporter/deployment.yaml
- it: Test config.database.existingSecret - it: Test config.database.existingSecret
set: set:
# Normal test values
config.database.existingSecret.enabled: true config.database.existingSecret.enabled: true
config.database.existingSecret.secretName: custom-database-secret config.database.existingSecret.secretName: custom-database-secret
asserts: asserts:
@ -256,16 +179,9 @@ tests:
content: content:
secretRef: secretRef:
name: custom-database-secret name: custom-database-secret
template: templates/prometheus-postgres-exporter/deployment.yaml
- it: Test config.exporterConfig.existingSecret - it: Test config.exporterConfig.existingSecret
set: set:
# Ensure that the secrets and config maps are well configured.
config.database.secret.databaseUsername: "postgres"
config.database.secret.databasePassword: "postgres"
config.database.secret.databaseConnectionUrl: "localhost:5432/postgres?sslmode=disable"
# Normal test values
config.exporterConfig.existingSecret.enabled: true config.exporterConfig.existingSecret.enabled: true
config.exporterConfig.existingSecret.secretName: exporter-config-secret config.exporterConfig.existingSecret.secretName: exporter-config-secret
asserts: asserts:
@ -274,7 +190,6 @@ tests:
value: value:
- mountPath: /etc/prometheus-postgres-exporter/config.d - mountPath: /etc/prometheus-postgres-exporter/config.d
name: config-d name: config-d
template: templates/prometheus-postgres-exporter/deployment.yaml
- equal: - equal:
path: spec.template.spec.volumes path: spec.template.spec.volumes
value: value:
@ -286,16 +201,9 @@ tests:
name: exporter-config-secret name: exporter-config-secret
- secret: - secret:
name: prometheus-postgres-exporter-unittest-web-config name: prometheus-postgres-exporter-unittest-web-config
template: templates/prometheus-postgres-exporter/deployment.yaml
- it: Test config.webConfig.existingSecret - it: Test config.webConfig.existingSecret
set: set:
# Ensure that the secrets and config maps are well configured.
config.database.secret.databaseUsername: "postgres"
config.database.secret.databasePassword: "postgres"
config.database.secret.databaseConnectionUrl: "localhost:5432/postgres?sslmode=disable"
# Normal test values
config.webConfig.existingSecret.enabled: true config.webConfig.existingSecret.enabled: true
config.webConfig.existingSecret.secretName: web-config-secret config.webConfig.existingSecret.secretName: web-config-secret
asserts: asserts:
@ -304,7 +212,6 @@ tests:
value: value:
- mountPath: /etc/prometheus-postgres-exporter/config.d - mountPath: /etc/prometheus-postgres-exporter/config.d
name: config-d name: config-d
template: templates/prometheus-postgres-exporter/deployment.yaml
- equal: - equal:
path: spec.template.spec.volumes path: spec.template.spec.volumes
value: value:
@ -316,16 +223,9 @@ tests:
name: prometheus-postgres-exporter-unittest-exporter-config name: prometheus-postgres-exporter-unittest-exporter-config
- secret: - secret:
name: web-config-secret name: web-config-secret
template: templates/prometheus-postgres-exporter/deployment.yaml
- it: Test custom resource limits and requests - it: Test custom resource limits and requests
set: set:
# Ensure that the secrets and config maps are well configured.
config.database.secret.databaseUsername: "postgres"
config.database.secret.databasePassword: "postgres"
config.database.secret.databaseConnectionUrl: "localhost:5432/postgres?sslmode=disable"
# Normal test values
deployment.postgresExporter.resources: deployment.postgresExporter.resources:
limits: limits:
cpu: 100m cpu: 100m
@ -342,7 +242,6 @@ tests:
resourceFieldRef: resourceFieldRef:
divisor: "1" divisor: "1"
resource: limits.cpu resource: limits.cpu
template: templates/prometheus-postgres-exporter/deployment.yaml
- equal: - equal:
path: spec.template.spec.containers[0].resources path: spec.template.spec.containers[0].resources
value: value:
@ -352,16 +251,9 @@ tests:
requests: requests:
cpu: 25m cpu: 25m
memory: 100MB memory: 100MB
template: templates/prometheus-postgres-exporter/deployment.yaml
- it: Test custom securityContext - it: Test custom securityContext
set: set:
# Ensure that the secrets and config maps are well configured.
config.database.secret.databaseUsername: "postgres"
config.database.secret.databasePassword: "postgres"
config.database.secret.databaseConnectionUrl: "localhost:5432/postgres?sslmode=disable"
# Normal test values
deployment.postgresExporter.securityContext: deployment.postgresExporter.securityContext:
capabilities: capabilities:
add: add:
@ -385,16 +277,9 @@ tests:
readOnlyRootFilesystem: true readOnlyRootFilesystem: true
runAsNonRoot: true runAsNonRoot: true
runAsUser: 1000 runAsUser: 1000
template: templates/prometheus-postgres-exporter/deployment.yaml
- it: Test dnsConfig - it: Test dnsConfig
set: set:
# Ensure that the secrets and config maps are well configured.
config.database.secret.databaseUsername: "postgres"
config.database.secret.databasePassword: "postgres"
config.database.secret.databaseConnectionUrl: "localhost:5432/postgres?sslmode=disable"
# Normal test values
deployment.dnsConfig: deployment.dnsConfig:
nameservers: nameservers:
- "8.8.8.8" - "8.8.8.8"
@ -406,31 +291,17 @@ tests:
nameservers: nameservers:
- "8.8.8.8" - "8.8.8.8"
- "8.8.4.4" - "8.8.4.4"
template: templates/prometheus-postgres-exporter/deployment.yaml
- it: Test dnsPolicy - it: Test dnsPolicy
set: set:
# Ensure that the secrets and config maps are well configured.
config.database.secret.databaseUsername: "postgres"
config.database.secret.databasePassword: "postgres"
config.database.secret.databaseConnectionUrl: "localhost:5432/postgres?sslmode=disable"
# Normal test values
deployment.dnsPolicy: ClusterFirst deployment.dnsPolicy: ClusterFirst
asserts: asserts:
- equal: - equal:
path: spec.template.spec.dnsPolicy path: spec.template.spec.dnsPolicy
value: ClusterFirst value: ClusterFirst
template: templates/prometheus-postgres-exporter/deployment.yaml
- it: Test hostNetwork, hostname, subdomain - it: Test hostNetwork, hostname, subdomain
set: set:
# Ensure that the secrets and config maps are well configured.
config.database.secret.databaseUsername: "postgres"
config.database.secret.databasePassword: "postgres"
config.database.secret.databaseConnectionUrl: "localhost:5432/postgres?sslmode=disable"
# Normal test values
deployment.hostNetwork: true deployment.hostNetwork: true
deployment.hostname: pg-exporter deployment.hostname: pg-exporter
deployment.subdomain: exporters.internal deployment.subdomain: exporters.internal
@ -438,24 +309,15 @@ tests:
- equal: - equal:
path: spec.template.spec.hostNetwork path: spec.template.spec.hostNetwork
value: true value: true
template: templates/prometheus-postgres-exporter/deployment.yaml
- equal: - equal:
path: spec.template.spec.hostname path: spec.template.spec.hostname
value: pg-exporter value: pg-exporter
template: templates/prometheus-postgres-exporter/deployment.yaml
- equal: - equal:
path: spec.template.spec.subdomain path: spec.template.spec.subdomain
value: exporters.internal value: exporters.internal
template: templates/prometheus-postgres-exporter/deployment.yaml
- it: Test imagePullSecrets - it: Test imagePullSecrets
set: set:
# Ensure that the secrets and config maps are well configured.
config.database.secret.databaseUsername: "postgres"
config.database.secret.databasePassword: "postgres"
config.database.secret.databaseConnectionUrl: "localhost:5432/postgres?sslmode=disable"
# Normal test values
deployment.imagePullSecrets: deployment.imagePullSecrets:
- name: my-pull-secret - name: my-pull-secret
- name: my-special-secret - name: my-special-secret
@ -465,16 +327,9 @@ tests:
value: value:
- name: my-pull-secret - name: my-pull-secret
- name: my-special-secret - name: my-special-secret
template: templates/prometheus-postgres-exporter/deployment.yaml
- it: Test nodeSelector - it: Test nodeSelector
set: set:
# Ensure that the secrets and config maps are well configured.
config.database.secret.databaseUsername: "postgres"
config.database.secret.databasePassword: "postgres"
config.database.secret.databaseConnectionUrl: "localhost:5432/postgres?sslmode=disable"
# Normal test values
deployment.nodeSelector: deployment.nodeSelector:
foo: bar foo: bar
asserts: asserts:
@ -482,61 +337,33 @@ tests:
path: spec.template.spec.nodeSelector path: spec.template.spec.nodeSelector
value: value:
foo: bar foo: bar
template: templates/prometheus-postgres-exporter/deployment.yaml
- it: Test priorityClassName - it: Test priorityClassName
set: set:
# Ensure that the secrets and config maps are well configured.
config.database.secret.databaseUsername: "postgres"
config.database.secret.databasePassword: "postgres"
config.database.secret.databaseConnectionUrl: "localhost:5432/postgres?sslmode=disable"
# Normal test values
deployment.priorityClassName: my-priority deployment.priorityClassName: my-priority
asserts: asserts:
- equal: - equal:
path: spec.template.spec.priorityClassName path: spec.template.spec.priorityClassName
value: my-priority value: my-priority
template: templates/prometheus-postgres-exporter/deployment.yaml
- it: Test restartPolicy - it: Test restartPolicy
set: set:
# Ensure that the secrets and config maps are well configured.
config.database.secret.databaseUsername: "postgres"
config.database.secret.databasePassword: "postgres"
config.database.secret.databaseConnectionUrl: "localhost:5432/postgres?sslmode=disable"
# Normal test values
deployment.restartPolicy: Always deployment.restartPolicy: Always
asserts: asserts:
- equal: - equal:
path: spec.template.spec.restartPolicy path: spec.template.spec.restartPolicy
value: Always value: Always
template: templates/prometheus-postgres-exporter/deployment.yaml
- it: Test terminationGracePeriodSeconds - it: Test terminationGracePeriodSeconds
set: set:
# Ensure that the secrets and config maps are well configured.
config.database.secret.databaseUsername: "postgres"
config.database.secret.databasePassword: "postgres"
config.database.secret.databaseConnectionUrl: "localhost:5432/postgres?sslmode=disable"
# Normal test values
deployment.terminationGracePeriodSeconds: 120 deployment.terminationGracePeriodSeconds: 120
asserts: asserts:
- equal: - equal:
path: spec.template.spec.terminationGracePeriodSeconds path: spec.template.spec.terminationGracePeriodSeconds
value: 120 value: 120
template: templates/prometheus-postgres-exporter/deployment.yaml
- it: Test tolerations - it: Test tolerations
set: set:
# Ensure that the secrets and config maps are well configured.
config.database.secret.databaseUsername: "postgres"
config.database.secret.databasePassword: "postgres"
config.database.secret.databaseConnectionUrl: "localhost:5432/postgres?sslmode=disable"
# Normal test values
deployment.tolerations: deployment.tolerations:
- key: database/type - key: database/type
operator: Equal operator: Equal
@ -550,16 +377,9 @@ tests:
operator: Equal operator: Equal
value: postgres value: postgres
effect: NoSchedule effect: NoSchedule
template: templates/prometheus-postgres-exporter/deployment.yaml
- it: Test topologySpreadConstraints - it: Test topologySpreadConstraints
set: set:
# Ensure that the secrets and config maps are well configured.
config.database.secret.databaseUsername: "postgres"
config.database.secret.databasePassword: "postgres"
config.database.secret.databaseConnectionUrl: "localhost:5432/postgres?sslmode=disable"
# Normal test values
deployment.topologySpreadConstraints: deployment.topologySpreadConstraints:
- topologyKey: kubernetes.io/hostname - topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule whenUnsatisfiable: DoNotSchedule
@ -575,16 +395,9 @@ tests:
labelSelector: labelSelector:
matchLabels: matchLabels:
app.kubernetes.io/instance: prometheus-postgres-exporter app.kubernetes.io/instance: prometheus-postgres-exporter
template: templates/prometheus-postgres-exporter/deployment.yaml
- it: Test additional volumeMounts and volumes - it: Test additional volumeMounts and volumes
set: set:
# Ensure that the secrets and config maps are well configured.
config.database.secret.databaseUsername: "postgres"
config.database.secret.databasePassword: "postgres"
config.database.secret.databaseConnectionUrl: "localhost:5432/postgres?sslmode=disable"
# Normal test values
deployment.postgresExporter.volumeMounts: deployment.postgresExporter.volumeMounts:
- name: data - name: data
mountPath: /usr/lib/prometheus-postgres-exporter/data mountPath: /usr/lib/prometheus-postgres-exporter/data
@ -600,7 +413,6 @@ tests:
mountPath: /usr/lib/prometheus-postgres-exporter/data mountPath: /usr/lib/prometheus-postgres-exporter/data
- name: config-d - name: config-d
mountPath: /etc/prometheus-postgres-exporter/config.d mountPath: /etc/prometheus-postgres-exporter/config.d
template: templates/prometheus-postgres-exporter/deployment.yaml
- equal: - equal:
path: spec.template.spec.volumes path: spec.template.spec.volumes
value: value:
@ -615,4 +427,3 @@ tests:
name: prometheus-postgres-exporter-unittest-exporter-config name: prometheus-postgres-exporter-unittest-exporter-config
- secret: - secret:
name: prometheus-postgres-exporter-unittest-web-config name: prometheus-postgres-exporter-unittest-web-config
template: templates/prometheus-postgres-exporter/deployment.yaml

View File

@ -35,7 +35,7 @@ config:
## @param config.exporterConfig.secret.annotations Additional annotations of the secret containing the `exporterConfig.yaml`. ## @param config.exporterConfig.secret.annotations Additional annotations of the secret containing the `exporterConfig.yaml`.
## @param config.exporterConfig.secret.labels Additional labels of the secret containing the `exporterConfig.yaml`. ## @param config.exporterConfig.secret.labels Additional labels of the secret containing the `exporterConfig.yaml`.
## @param config.exporterConfig.secret.exporterConfig Content of the `exporterConfig.yaml`. Further information can be found in the [README](https://github.com/prometheus-community/postgres_exporter?tab=readme-ov-file#multi-target-support-beta) file of the Postgres exporter binary. ## @param config.exporterConfig.secret.exporterConfig Content of the `exporterConfig.yaml`. Further information can be found [here](https://github.com/prometheus-community/postgres_exporter?tab=readme-ov-file#multi-target-support-beta).
## @skip config.exporterConfig.secret.exporterConfig Skip individual postgres exporter configuration. ## @skip config.exporterConfig.secret.exporterConfig Skip individual postgres exporter configuration.
secret: secret:
annotations: {} annotations: {}
@ -59,7 +59,7 @@ config:
## @param config.webConfig.secret.annotations Additional annotations of the secret containing the `webConfig.yaml`. ## @param config.webConfig.secret.annotations Additional annotations of the secret containing the `webConfig.yaml`.
## @param config.webConfig.secret.labels Additional labels of the secret containing the `webConfig.yaml`. ## @param config.webConfig.secret.labels Additional labels of the secret containing the `webConfig.yaml`.
## @param config.webConfig.secret.webConfig Content of the `webConfig.yaml`. Further [documentation](https://prometheus.io/docs/prometheus/latest/configuration/https/) is available on the official Prometheus website. ## @param config.webConfig.secret.webConfig Content of the `webConfig.yaml`. Further information can be found [here](https://prometheus.io/docs/prometheus/latest/configuration/https/).
## @skip config.webConfig.secret.webConfig Skip individual web configuration. ## @skip config.webConfig.secret.webConfig Skip individual web configuration.
secret: secret:
annotations: {} annotations: {}