You've already forked prometheus-postgres-exporter
							
							Compare commits
	
		
			140 Commits
		
	
	
		
			11c58d99fa
			...
			0.5.5
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| b07a2f79a4 | |||
| d77fe9866e | |||
| e4c065d7e0 | |||
| 395407a398 | |||
| 2a22faff0d | |||
| a93403c97f | |||
| 177307f228 | |||
| e70e7785a7 | |||
| 18ae53edef | |||
| a773bea18f | |||
| bf5ddf5404 | |||
| c30947c2e0 | |||
| 3e8e43562a | |||
| a21a4e1c88 | |||
| 3289aeba32 | |||
| c97b1d15f6 | |||
| 3af39e8ef5 | |||
| ac2dca69bf | |||
| 902be3a9aa | |||
| 7f7972d570 | |||
| c6b2748556 | |||
| 4f8ff6ee76 | |||
| 99e3a3053e | |||
| 670233397e | |||
| f8bf338d8b | |||
| ad18974807 | |||
| 1ade590485 | |||
| c6c0b7f92c | |||
| 30c1da211e | |||
| 674f8004d6 | |||
| 94c2e05d2a | |||
| de3562bb18 | |||
| ada81c050a | |||
| 0d82de2e3b | |||
| 54b64a7854 | |||
| 1254320443 | |||
| a5bc7a1287 | |||
| 95ef4db607 | |||
| 8ee8078a54 | |||
| 7d62a9cc15 | |||
| 5f2273bfd1 | |||
| a285c66ce9 | |||
| 699ff80a36 | |||
| e84a57456a | |||
| 3c8a92fb04 | |||
| c4b9990c2d | |||
| 4a03723386 | |||
| 62f0815a3b | |||
| c669330a80 | |||
| f05dd2d8bf | |||
| c8ee5ce6be | |||
| fc5f3c03da | |||
| add1ff75a7 | |||
| 63f409ecdb | |||
| 07653e9933 | |||
| 60efba2603 | |||
| e9053be636 | |||
| 0001791071 | |||
| c1529d6833 | |||
| b7c5764e1b | |||
| e0dfced491 | |||
| 9c89db23f3 | |||
| cf5e67b252 | |||
| 70e0e5110f | |||
| 31931cc838 | |||
| a49a432605 | |||
| 5bd349472c | |||
| 21e608389f | |||
| 39c064c8b4 | |||
| 975eaa0d5d | |||
| dff777e6de | |||
| 6c683afcc6 | |||
| 113a4b76c9 | |||
| 2821f844b0 | |||
| c912bc729e | |||
| 448ab03ab2 | |||
| bb2da8f33f | |||
| cb548921a6 | |||
| 46bceb7e4d | |||
| 3c8fb86231 | |||
| 0cf63593e9 | |||
| 81fb535128 | |||
| e5b0965373 | |||
| 40712d3c7f | |||
| 1ebde5500d | |||
| 99ac3e0b6b | |||
| 3cea56ef58 | |||
| 608ded18c7 | |||
| d62cc4beae | |||
| 89ef3c929e | |||
| 9840520b71 | |||
| 3940ea39c5 | |||
| a6ec076ce6 | |||
| 12970b3820 | |||
| dbd6b83218 | |||
| e466c50e35 | |||
| 19d683d712 | |||
| 69f068c406 | |||
| 1edd96e3e1 | |||
| 80819f16ef | |||
| 3dcb8173e3 | |||
| 5c20ed5f31 | |||
| 39534a06dc | |||
| 34b5e27456 | |||
| 74b6ddf46d | |||
| 7323ba09bf | |||
| 3f4c459d43 | |||
| 304139cb6d | |||
| 08ca70c65c | |||
| 6f954dfdf6 | |||
| b88ae944e6 | |||
| 29b908f8da | |||
| 76134921b8 | |||
| 7ebfd12593 | |||
| 74ef3835f4 | |||
| 80c8ff0d3b | |||
| de379ec1ef | |||
| 9275bca045 | |||
| a33f92e63d | |||
| db3fbb9497 | |||
| 4d349c36ff | |||
| a3038a75c8 | |||
| c497a31ecc | |||
| c7a07eb7d1 | |||
| 4b19f57ac5 | |||
| 310cdfaffe | |||
| 8c2665fdc6 | |||
| bb9d71d233 | |||
| ded6c55521 | |||
| b3a9ddd487 | |||
| f87d417e73 | |||
| fb218484d0 | |||
| b29f79370c | |||
| 814dd01995 | |||
| 75292a54ca | |||
| 744e0141e4 | |||
| cc61720a11 | |||
| 90d48f8450 | |||
| ad69f02f8f | |||
| 3ea3f94429 | 
							
								
								
									
										114
									
								
								.gitea/scripts/add-annotations.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										114
									
								
								.gitea/scripts/add-annotations.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,114 @@ | |||||||
|  | #!/bin/bash | ||||||
|  |  | ||||||
|  | set -e | ||||||
|  |  | ||||||
|  | CHART_FILE="Chart.yaml" | ||||||
|  | if [ ! -f "${CHART_FILE}" ]; then | ||||||
|  |   echo "ERROR: ${CHART_FILE} not found!" 1>&2 | ||||||
|  |   exit 1 | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | DEFAULT_NEW_TAG="$(git tag --sort=-version:refname | head -n 1)" | ||||||
|  | DEFAULT_OLD_TAG="$(git tag --sort=-version:refname | head -n 2 | tail -n 1)" | ||||||
|  |  | ||||||
|  | if [ -z "${1}" ]; then | ||||||
|  |   read -p "Enter start tag [${DEFAULT_OLD_TAG}]: " OLD_TAG | ||||||
|  |   if [ -z "${OLD_TAG}" ]; then | ||||||
|  |     OLD_TAG="${DEFAULT_OLD_TAG}" | ||||||
|  |   fi | ||||||
|  |  | ||||||
|  |   while [ -z "$(git tag --list "${OLD_TAG}")" ]; do | ||||||
|  |     echo "ERROR: Tag '${OLD_TAG}' not found!" 1>&2 | ||||||
|  |     read -p "Enter start tag [${DEFAULT_OLD_TAG}]: " OLD_TAG | ||||||
|  |     if [ -z "${OLD_TAG}" ]; then | ||||||
|  |       OLD_TAG="${DEFAULT_OLD_TAG}" | ||||||
|  |     fi | ||||||
|  |   done | ||||||
|  | else | ||||||
|  |   OLD_TAG=${1} | ||||||
|  |   if [ -z "$(git tag --list "${OLD_TAG}")" ]; then | ||||||
|  |     echo "ERROR: Tag '${OLD_TAG}' not found!" 1>&2 | ||||||
|  |     exit 1 | ||||||
|  |   fi | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | if [ -z "${2}" ]; then | ||||||
|  |   read -p "Enter end tag [${DEFAULT_NEW_TAG}]: " NEW_TAG | ||||||
|  |   if [ -z "${NEW_TAG}" ]; then | ||||||
|  |     NEW_TAG="${DEFAULT_NEW_TAG}" | ||||||
|  |   fi | ||||||
|  |  | ||||||
|  |   while [ -z "$(git tag --list "${NEW_TAG}")" ]; do | ||||||
|  |     echo "ERROR: Tag '${NEW_TAG}' not found!" 1>&2 | ||||||
|  |     read -p "Enter end tag [${DEFAULT_NEW_TAG}]: " NEW_TAG | ||||||
|  |     if [ -z "${NEW_TAG}" ]; then | ||||||
|  |       NEW_TAG="${DEFAULT_NEW_TAG}" | ||||||
|  |     fi | ||||||
|  |   done | ||||||
|  | else | ||||||
|  |   NEW_TAG=${2} | ||||||
|  |  | ||||||
|  |   if [ -z "$(git tag --list "${NEW_TAG}")" ]; then | ||||||
|  |     echo "ERROR: Tag '${NEW_TAG}' not found!" 1>&2 | ||||||
|  |     exit 1 | ||||||
|  |   fi | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | CHANGE_LOG_YAML=$(mktemp) | ||||||
|  | echo "[]" > "${CHANGE_LOG_YAML}" | ||||||
|  |  | ||||||
|  | function map_type_to_kind() { | ||||||
|  |   case "${1}" in | ||||||
|  |     feat) | ||||||
|  |       echo "added" | ||||||
|  |     ;; | ||||||
|  |     fix) | ||||||
|  |       echo "fixed" | ||||||
|  |     ;; | ||||||
|  |     chore|style|test|ci|docs|refac) | ||||||
|  |       echo "changed" | ||||||
|  |     ;; | ||||||
|  |     revert) | ||||||
|  |       echo "removed" | ||||||
|  |     ;; | ||||||
|  |     sec) | ||||||
|  |       echo "security" | ||||||
|  |     ;; | ||||||
|  |     *) | ||||||
|  |       echo "skip" | ||||||
|  |     ;; | ||||||
|  |   esac | ||||||
|  | } | ||||||
|  |  | ||||||
|  | COMMIT_TITLES="$(git log --pretty=format:"%s" "${OLD_TAG}..${NEW_TAG}")" | ||||||
|  |  | ||||||
|  | echo "INFO: Generate change log entries from ${OLD_TAG} until ${NEW_TAG}" | ||||||
|  |  | ||||||
|  | while IFS= read -r line; do | ||||||
|  |   if [[ "${line}" =~ ^([a-zA-Z]+)(\([^\)]+\))?\:\ (.+)$ ]]; then | ||||||
|  |     TYPE="${BASH_REMATCH[1]}" | ||||||
|  |     KIND=$(map_type_to_kind "${TYPE}") | ||||||
|  |  | ||||||
|  |     if [ "${KIND}" == "skip" ]; then | ||||||
|  |       continue | ||||||
|  |     fi | ||||||
|  |  | ||||||
|  |     DESC="${BASH_REMATCH[3]}" | ||||||
|  |  | ||||||
|  |     echo "- ${KIND}: ${DESC}" | ||||||
|  |  | ||||||
|  |     jq --arg kind "${KIND}" --arg description "${DESC}" '. += [ $ARGS.named ]' < "${CHANGE_LOG_YAML}" > "${CHANGE_LOG_YAML}.new" | ||||||
|  |     mv "${CHANGE_LOG_YAML}.new" "${CHANGE_LOG_YAML}" | ||||||
|  |  | ||||||
|  |   fi | ||||||
|  | done <<< "${COMMIT_TITLES}" | ||||||
|  |  | ||||||
|  | if [ -s "${CHANGE_LOG_YAML}" ]; then | ||||||
|  |   yq --inplace --input-format json --output-format yml "${CHANGE_LOG_YAML}" | ||||||
|  |   yq --no-colors --inplace ".annotations.\"artifacthub.io/changes\" |= loadstr(\"${CHANGE_LOG_YAML}\") | sort_keys(.)" "${CHART_FILE}" | ||||||
|  | else | ||||||
|  |   echo "ERROR: Changelog file is empty: ${CHANGE_LOG_YAML}" 1>&2 | ||||||
|  |   exit 1 | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | rm "${CHANGE_LOG_YAML}" | ||||||
| @@ -5,6 +5,8 @@ on: | |||||||
|     paths: [ "README.md", "values.yaml" ] |     paths: [ "README.md", "values.yaml" ] | ||||||
|     types: [ "opened", "reopened", "synchronize" ] |     types: [ "opened", "reopened", "synchronize" ] | ||||||
|   push: |   push: | ||||||
|  |     branches: | ||||||
|  |     - '**' | ||||||
|     paths: [ "README.md", "values.yaml" ] |     paths: [ "README.md", "values.yaml" ] | ||||||
|     tags-ignore: |     tags-ignore: | ||||||
|     - '**' |     - '**' | ||||||
| @@ -13,7 +15,7 @@ on: | |||||||
| jobs: | jobs: | ||||||
|   generate-parameters: |   generate-parameters: | ||||||
|     container: |     container: | ||||||
|       image: docker.io/library/node:22.9.0-alpine |       image: docker.io/library/node:24.9.0-alpine | ||||||
|     runs-on: |     runs-on: | ||||||
|     - ubuntu-latest |     - ubuntu-latest | ||||||
|     steps: |     steps: | ||||||
| @@ -21,7 +23,7 @@ jobs: | |||||||
|       run: | |       run: | | ||||||
|         apk update |         apk update | ||||||
|         apk add git npm |         apk add git npm | ||||||
|     - uses: actions/checkout@v4.2.2 |     - uses: actions/checkout@v5.0.0 | ||||||
|     - name: Generate parameter section in README |     - name: Generate parameter section in README | ||||||
|       run: | |       run: | | ||||||
|         npm install |         npm install | ||||||
|   | |||||||
| @@ -4,6 +4,8 @@ on: | |||||||
|   pull_request: |   pull_request: | ||||||
|     types: [ "opened", "reopened", "synchronize" ] |     types: [ "opened", "reopened", "synchronize" ] | ||||||
|   push: |   push: | ||||||
|  |     branches: | ||||||
|  |     - '**' | ||||||
|     tags-ignore: |     tags-ignore: | ||||||
|     - '**' |     - '**' | ||||||
|   workflow_dispatch: {} |   workflow_dispatch: {} | ||||||
| @@ -11,7 +13,7 @@ on: | |||||||
| jobs: | jobs: | ||||||
|   helm-lint: |   helm-lint: | ||||||
|     container: |     container: | ||||||
|       image: docker.io/volkerraschek/helm:3.16.4 |       image: docker.io/volkerraschek/helm:3.19.0 | ||||||
|     runs-on: |     runs-on: | ||||||
|     - ubuntu-latest |     - ubuntu-latest | ||||||
|     steps: |     steps: | ||||||
| @@ -19,14 +21,14 @@ jobs: | |||||||
|       run: | |       run: | | ||||||
|         apk update |         apk update | ||||||
|         apk add git npm |         apk add git npm | ||||||
|     - uses: actions/checkout@v4.2.2 |     - uses: actions/checkout@v5.0.0 | ||||||
|     - name: Lint helm files |     - name: Lint helm files | ||||||
|       run: | |       run: | | ||||||
|         helm lint --values values.yaml . |         helm lint --values values.yaml . | ||||||
|  |  | ||||||
|   helm-unittest: |   helm-unittest: | ||||||
|     container: |     container: | ||||||
|       image: docker.io/volkerraschek/helm:3.16.4 |       image: docker.io/volkerraschek/helm:3.19.0 | ||||||
|     runs-on: |     runs-on: | ||||||
|     - ubuntu-latest |     - ubuntu-latest | ||||||
|     steps: |     steps: | ||||||
| @@ -34,7 +36,7 @@ jobs: | |||||||
|       run: | |       run: | | ||||||
|         apk update |         apk update | ||||||
|         apk add git npm |         apk add git npm | ||||||
|     - uses: actions/checkout@v4.2.2 |     - uses: actions/checkout@v5.0.0 | ||||||
|     - name: Unittest |     - name: Unittest | ||||||
|       run: | |       run: | | ||||||
|         helm unittest --strict --file 'unittests/**/*.yaml' ./ |         helm unittest --strict --file 'unittests/**/*.yaml' ./ | ||||||
| @@ -5,6 +5,8 @@ on: | |||||||
|     paths: [ "**/*.md" ] |     paths: [ "**/*.md" ] | ||||||
|     types: [ "opened", "reopened", "synchronize" ] |     types: [ "opened", "reopened", "synchronize" ] | ||||||
|   push: |   push: | ||||||
|  |     branches: | ||||||
|  |     - '**' | ||||||
|     paths: [ "**/*.md" ] |     paths: [ "**/*.md" ] | ||||||
|     tags-ignore: |     tags-ignore: | ||||||
|     - '**' |     - '**' | ||||||
| @@ -13,7 +15,7 @@ on: | |||||||
| jobs: | jobs: | ||||||
|   markdown-link-checker: |   markdown-link-checker: | ||||||
|     container: |     container: | ||||||
|       image: docker.io/library/node:22.9.0-alpine |       image: docker.io/library/node:24.9.0-alpine | ||||||
|     runs-on: |     runs-on: | ||||||
|     - ubuntu-latest |     - ubuntu-latest | ||||||
|     steps: |     steps: | ||||||
| @@ -21,7 +23,7 @@ jobs: | |||||||
|       run: | |       run: | | ||||||
|         apk update |         apk update | ||||||
|         apk add git npm |         apk add git npm | ||||||
|     - uses: actions/checkout@v4.2.2 |     - uses: actions/checkout@v5.0.0 | ||||||
|     - name: Verify links in markdown files |     - name: Verify links in markdown files | ||||||
|       run: | |       run: | | ||||||
|         npm install |         npm install | ||||||
| @@ -29,7 +31,7 @@ jobs: | |||||||
|  |  | ||||||
|   markdown-lint: |   markdown-lint: | ||||||
|     container: |     container: | ||||||
|       image: docker.io/library/node:22.9.0-alpine |       image: docker.io/library/node:24.9.0-alpine | ||||||
|     runs-on: |     runs-on: | ||||||
|     - ubuntu-latest |     - ubuntu-latest | ||||||
|     steps: |     steps: | ||||||
| @@ -37,7 +39,7 @@ jobs: | |||||||
|       run: | |       run: | | ||||||
|         apk update |         apk update | ||||||
|         apk add git |         apk add git | ||||||
|     - uses: actions/checkout@v4.2.2 |     - uses: actions/checkout@v5.0.0 | ||||||
|     - name: Lint markdown files |     - name: Lint markdown files | ||||||
|       run: | |       run: | | ||||||
|         npm install |         npm install | ||||||
|   | |||||||
| @@ -8,39 +8,54 @@ on: | |||||||
| jobs: | jobs: | ||||||
|   publish-chart: |   publish-chart: | ||||||
|     container: |     container: | ||||||
|       image: docker.io/volkerraschek/helm:3.16.4 |       image: docker.io/volkerraschek/helm:3.19.0 | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
|     steps: |     steps: | ||||||
|       - name: Install tooling |       - name: Install packages via apk | ||||||
|         run: | |         run: | | ||||||
|           apk update |           apk update | ||||||
|           apk add git npm |           apk add git npm jq yq | ||||||
|       - uses: actions/checkout@v4 |  | ||||||
|       - name: Package chart |  | ||||||
|         env: |  | ||||||
|           HELM_REPO_NAME: upload |  | ||||||
|  |  | ||||||
|  |       - uses: actions/checkout@v5.0.0 | ||||||
|  |         with: | ||||||
|  |           fetch-depth: 0 | ||||||
|  |  | ||||||
|  |       - name: Add Artifacthub.io annotations | ||||||
|  |         run: | | ||||||
|  |           NEW_TAG="$(git tag --sort=-version:refname | head -n 1)" | ||||||
|  |           OLD_TAG="$(git tag --sort=-version:refname | head -n 2 | tail -n 1)" | ||||||
|  |           .gitea/scripts/add-annotations.sh "${OLD_TAG}" "${NEW_TAG}" | ||||||
|  |  | ||||||
|  |       - name: Extract meta information | ||||||
|  |         run: | | ||||||
|  |           echo "PACKAGE_VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV | ||||||
|  |           echo "REPOSITORY_NAME=$(echo ${GITHUB_REPOSITORY} | cut -d '/' -f 2 | sed --regexp-extended 's/-charts?//g')" >> $GITHUB_ENV | ||||||
|  |           echo "REPOSITORY_OWNER=$(echo ${GITHUB_REPOSITORY} | cut -d '/' -f 1)" >> $GITHUB_ENV | ||||||
|  |  | ||||||
|  |       - name: Update Helm Chart version in README.md | ||||||
|  |         run: sed -i -E "s/^CHART_VERSION=.*/CHART_VERSION=${PACKAGE_VERSION}/g" README.md | ||||||
|  |  | ||||||
|  |       - name: Package chart | ||||||
|  |         run: | | ||||||
|  |           helm dependency build | ||||||
|  |           helm package --version "${PACKAGE_VERSION}" ./ | ||||||
|  |  | ||||||
|  |       - name: Upload Chart to ChartMuseum | ||||||
|  |         env: | ||||||
|           CHARTMUSEUM_PASSWORD: ${{ secrets.CHARTMUSEUM_PASSWORD }} |           CHARTMUSEUM_PASSWORD: ${{ secrets.CHARTMUSEUM_PASSWORD }} | ||||||
|           CHARTMUSEUM_REPOSITORY: ${{ vars.CHARTMUSEUM_REPOSITORY }} |           CHARTMUSEUM_REPOSITORY: ${{ vars.CHARTMUSEUM_REPOSITORY }} | ||||||
|           CHARTMUSEUM_USERNAME: ${{ secrets.CHARTMUSEUM_USERNAME }} |           CHARTMUSEUM_USERNAME: ${{ secrets.CHARTMUSEUM_USERNAME }} | ||||||
|           CHARTMUSEUM_HOSTNAME: ${{ vars.CHARTMUSEUM_HOSTNAME }} |           CHARTMUSEUM_HOSTNAME: ${{ vars.CHARTMUSEUM_HOSTNAME }} | ||||||
|  |  | ||||||
|           GITEA_PACKAGE_REGISTRY_TOKEN: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }} |  | ||||||
|           GITEA_SERVER_URL: ${{ github.server_url }} |  | ||||||
|         run: | |         run: | | ||||||
|           PACKAGE_VERSION=${GITHUB_REF#refs/tags/} |  | ||||||
|           REPOSITORY_NAME=$(echo ${GITHUB_REPOSITORY} | cut -d '/' -f 2) |  | ||||||
|           REPOSITORY_OWNER=$(echo ${GITHUB_REPOSITORY} | cut -d '/' -f 1) |  | ||||||
|  |  | ||||||
|           helm dependency build |  | ||||||
|           helm package --version "${PACKAGE_VERSION}" ./ |  | ||||||
|  |  | ||||||
|           # chart-museum |  | ||||||
|           helm repo add --username ${CHARTMUSEUM_USERNAME} --password ${CHARTMUSEUM_PASSWORD} chartmuseum https://${CHARTMUSEUM_HOSTNAME}/${CHARTMUSEUM_REPOSITORY} |           helm repo add --username ${CHARTMUSEUM_USERNAME} --password ${CHARTMUSEUM_PASSWORD} chartmuseum https://${CHARTMUSEUM_HOSTNAME}/${CHARTMUSEUM_REPOSITORY} | ||||||
|           helm cm-push ${REPOSITORY_NAME}-${PACKAGE_VERSION}.tgz chartmuseum |           helm cm-push ${REPOSITORY_NAME}-${PACKAGE_VERSION}.tgz chartmuseum | ||||||
|           helm repo remove chartmuseum |           helm repo remove chartmuseum | ||||||
|  |  | ||||||
|           # gitea |       - name: Upload Chart to Gitea | ||||||
|  |         env: | ||||||
|  |           GITEA_PACKAGE_REGISTRY_TOKEN: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }} | ||||||
|  |           GITEA_SERVER_URL: ${{ github.server_url }} | ||||||
|  |         run: | | ||||||
|           helm repo add --username ${REPOSITORY_OWNER} --password ${GITEA_PACKAGE_REGISTRY_TOKEN} gitea ${GITEA_SERVER_URL}/api/packages/${REPOSITORY_OWNER}/helm |           helm repo add --username ${REPOSITORY_OWNER} --password ${GITEA_PACKAGE_REGISTRY_TOKEN} gitea ${GITEA_SERVER_URL}/api/packages/${REPOSITORY_OWNER}/helm | ||||||
|           helm cm-push ${REPOSITORY_NAME}-${PACKAGE_VERSION}.tgz gitea |           helm cm-push ${REPOSITORY_NAME}-${PACKAGE_VERSION}.tgz gitea | ||||||
|           helm repo remove gitea |           helm repo remove gitea | ||||||
| @@ -136,7 +136,6 @@ MD044: | |||||||
|     - kube-prometheus-stack |     - kube-prometheus-stack | ||||||
|     - Memcached |     - Memcached | ||||||
|     - Oracle |     - Oracle | ||||||
|     - ORBIS U |  | ||||||
|     - PostgreSQL |     - PostgreSQL | ||||||
|     - Prometheus |     - Prometheus | ||||||
|     - prometheus-exporter |     - prometheus-exporter | ||||||
|   | |||||||
							
								
								
									
										8
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
								
							| @@ -1,8 +0,0 @@ | |||||||
| { |  | ||||||
|   "yaml.schemas": { |  | ||||||
|     "https://raw.githubusercontent.com/helm-unittest/helm-unittest/v0.5.2/schema/helm-testsuite.json": [ |  | ||||||
|       "/unittests/**/*.yaml" |  | ||||||
|     ] |  | ||||||
|   }, |  | ||||||
|   "yaml.schemaStore.enable": true |  | ||||||
| } |  | ||||||
| @@ -1,10 +1,15 @@ | |||||||
|  | annotations: | ||||||
|  |   artifacthub.io/links: | | ||||||
|  |     - name: Prometheus PostgreSQL exporter (binary) | ||||||
|  |       url: https://github.com/prometheus-community/postgres_exporter | ||||||
|  |     - name: support | ||||||
|  |       url: https://git.cryptic.systems/volker.raschek/prometheus-postgres-exporter/issues | ||||||
| apiVersion: v2 | apiVersion: v2 | ||||||
| name: prometheus-postgres-exporter | name: prometheus-postgres-exporter | ||||||
| description: Prometheus metric exporter for PostgreSQL | description: Prometheus metric exporter for PostgreSQL | ||||||
| type: application | type: application | ||||||
| kubeVersion: ">=1.20.0" |  | ||||||
| version: "0.1.0" | version: "0.1.0" | ||||||
| appVersion: "0.16.0" | appVersion: "0.18.1" | ||||||
|  |  | ||||||
| # icon: https://annotations.example.com/icon.png | # icon: https://annotations.example.com/icon.png | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										21
									
								
								LICENSE
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								LICENSE
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | |||||||
|  | MIT License | ||||||
|  |  | ||||||
|  | Copyright (c) 2025 Markus Pesch | ||||||
|  |  | ||||||
|  | Permission is hereby granted, free of charge, to any person obtaining a copy | ||||||
|  | of this software and associated documentation files (the "Software"), to deal | ||||||
|  | in the Software without restriction, including without limitation the rights | ||||||
|  | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||||
|  | copies of the Software, and to permit persons to whom the Software is | ||||||
|  | furnished to do so, subject to the following conditions: | ||||||
|  |  | ||||||
|  | The above copyright notice and this permission notice shall be included in all | ||||||
|  | copies or substantial portions of the Software. | ||||||
|  |  | ||||||
|  | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||||
|  | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||||
|  | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||||
|  | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||||
|  | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||||
|  | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||||
|  | SOFTWARE. | ||||||
							
								
								
									
										4
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								Makefile
									
									
									
									
									
								
							| @@ -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.16.1 # renovate: datasource=docker registryUrl=https://docker.io depName=volkerraschek/helm | HELM_IMAGE_VERSION?=3.19.0 # 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?=22.9.0-alpine # renovate: datasource=docker registryUrl=https://docker.io depName=library/node | NODE_IMAGE_VERSION?=24.9.0-alpine # renovate: datasource=docker registryUrl=https://docker.io depName=docker.io/library/node packageName=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 | ||||||
|   | |||||||
							
								
								
									
										154
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										154
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,11 +1,12 @@ | |||||||
| # Prometheus PostgreSQL exporter | # Prometheus PostgreSQL exporter | ||||||
|  |  | ||||||
| [](https://drone.cryptic.systems/volker.raschek/prometheus-postgres-exporter) |  | ||||||
| [](https://artifacthub.io/packages/search?repo=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. You can | > This is not the official *community* helm chart of the Prometheus metric exporter for PostgreSQL databases. If you are | ||||||
| > find the official community chart [here](https://github.com/prometheus-community/helm-charts). | > looking for the official helm chart, checkout the GitHub project | ||||||
|  | > [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 | ||||||
| @@ -20,7 +21,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 are [here](#parameters) in detail document. The parameters can be defined via the helm | 2. All available [parameters](#parameters) are documented in detail below. 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. | ||||||
|  |  | ||||||
| @@ -32,7 +33,8 @@ helm chart is tested for deployment scenarios with **ArgoCD**. | |||||||
| ```bash | ```bash | ||||||
| helm repo add prometheus-exporters https://charts.cryptic.systems/prometheus-exporters | helm repo add prometheus-exporters https://charts.cryptic.systems/prometheus-exporters | ||||||
| helm repo update | helm repo update | ||||||
| helm install prometheus-postgres-exporter prometheus-exporters/prometheus-postgres-exporter \ | CHART_VERSION=0.5.4 | ||||||
|  | helm install --version "${CHART_VERSION}" prometheus-postgres-exporter prometheus-exporters/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"' \ | ||||||
| @@ -46,8 +48,8 @@ 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.1.0 | CHART_VERSION=0.5.4 | ||||||
| helm show values prometheus-exporters/prometheus-postgres-exporter --version "${CHART_VERSION}" > values.yaml | helm show values --version "${CHART_VERSION}" prometheus-exporters/prometheus-postgres-exporter > 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: | ||||||
| @@ -71,17 +73,21 @@ cannot use the available CPU time to perform computing operations. | |||||||
|  |  | ||||||
| The application must be informed that despite several CPUs only a part (limit) of the available computing time is | The application must be informed that despite several CPUs only a part (limit) of the available computing time is | ||||||
| available. As this is a Golang application, this can be implemented using `GOMAXPROCS`. The following example is one way | available. As this is a Golang application, this can be implemented using `GOMAXPROCS`. The following example is one way | ||||||
| of defining `GOMAXPROCS` automatically based on the defined CPU limit like `100m`. 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 [here](https://kanishk.io/posts/cpu-throttling-in-containerized-go-apps/). | Further information about this topic can be found in one of Kanishk's blog | ||||||
|  | [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 | ||||||
| > not anymore required. | > not anymore required. | ||||||
|  | > | ||||||
|  | > Please take care the a CPU limit < `1000m` can also lead to CPU throttling. Please read the linked documentation carefully. | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| helm install prometheus-postgres-exporter prometheus-exporters/prometheus-postgres-exporter \ | CHART_VERSION=0.5.4 | ||||||
|  | helm install --version "${CHART_VERSION}" prometheus-postgres-exporter prometheus-exporters/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"' \ | ||||||
| @@ -89,7 +95,7 @@ helm install prometheus-postgres-exporter prometheus-exporters/prometheus-postgr | |||||||
|   --set 'prometheus.metrics.serviceMonitor.enabled=true' \ |   --set 'prometheus.metrics.serviceMonitor.enabled=true' \ | ||||||
|   --set 'deployment.postgresExporter.env.name=GOMAXPROCS' \ |   --set 'deployment.postgresExporter.env.name=GOMAXPROCS' \ | ||||||
|   --set 'deployment.postgresExporter.env.valueFrom.resourceFieldRef.resource=limits.cpu' \ |   --set 'deployment.postgresExporter.env.valueFrom.resourceFieldRef.resource=limits.cpu' \ | ||||||
|   --set 'deployment.postgresExporter.resources.limits.cpu=100m' |   --set 'deployment.postgresExporter.resources.limits.cpu=1000m' | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| #### TLS authentication and encryption | #### TLS authentication and encryption | ||||||
| @@ -102,7 +108,8 @@ certification will be skipped by Prometheus. | |||||||
| > `tls.key` and `tls.crt` of the secret can be mounted into the container filesystem for TLS authentication / encryption. | > `tls.key` and `tls.crt` of the secret can be mounted into the container filesystem for TLS authentication / encryption. | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| helm install prometheus-postgres-exporter prometheus-exporters/prometheus-postgres-exporter \ | CHART_VERSION=0.5.4 | ||||||
|  | helm install --version "${CHART_VERSION}" prometheus-postgres-exporter prometheus-exporters/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"' \ | ||||||
| @@ -125,7 +132,8 @@ certificate for the metrics exporter - TLS certificate verification can be enabl | |||||||
| replaced: | replaced: | ||||||
|  |  | ||||||
| ```diff | ```diff | ||||||
|   helm install prometheus-postgres-exporter prometheus-exporters/prometheus-postgres-exporter \ |   CHART_VERSION=0.5.4 | ||||||
|  |   helm install --version "${CHART_VERSION}" prometheus-postgres-exporter prometheus-exporters/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"' \ | ||||||
| @@ -146,6 +154,34 @@ replaced: | |||||||
| +   --set 'prometheus.metrics.serviceMonitor.tlsConfig.keyFile=/etc/prometheus/tls/tls.key' | +   --set 'prometheus.metrics.serviceMonitor.tlsConfig.keyFile=/etc/prometheus/tls/tls.key' | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
|  | #### TLS certificate rotation | ||||||
|  |  | ||||||
|  | If the exporter uses TLS certificates that are mounted as a secret in the container file system like the example | ||||||
|  | [above](#tls-authentication-and-encryption), the exporter will not automatically apply them when the TLS certificates | ||||||
|  | are rotated. Such a rotation can be for example triggered, when the [cert-manager](https://cert-manager.io/) issues new | ||||||
|  | TLS certificates before expiring. | ||||||
|  |  | ||||||
|  | Until the exporter does not support rotating TLS certificate a workaround can be applied. For example stakater's | ||||||
|  | [reloader](https://github.com/stakater/Reloader) controller can be used to trigger a rolling update. The following | ||||||
|  | annotation must be added to instruct the reloader controller to trigger a rolling update, when the mounted configMaps | ||||||
|  | and secrets have been changed. | ||||||
|  |  | ||||||
|  | ```yaml | ||||||
|  | deployment: | ||||||
|  |   annotations: | ||||||
|  |     reloader.stakater.com/auto: "true" | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | Instead of triggering a rolling update for configMap and secret resources, this action can also be defined for | ||||||
|  | individual items. For example, when the secret named `prometheus-postgresql-exporter-http` is mounted and the reloader | ||||||
|  | controller should only listen for changes of this secret: | ||||||
|  |  | ||||||
|  | ```yaml | ||||||
|  | deployment: | ||||||
|  |   annotations: | ||||||
|  |     secret.reloader.stakater.com/reload: "prometheus-postgresql-exporter-http" | ||||||
|  | ``` | ||||||
|  |  | ||||||
| #### Grafana dashboard | #### Grafana dashboard | ||||||
|  |  | ||||||
| The helm chart includes Grafana dashboards. These can be deployed as a configMap by activating Grafana integration. It | The helm chart includes Grafana dashboards. These can be deployed as a configMap by activating Grafana integration. It | ||||||
| @@ -155,7 +191,8 @@ the Grafana container file system so that it is subsequently available to the us | |||||||
| makes this possible. | makes this possible. | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| helm install prometheus-postgres-exporter prometheus-exporters/prometheus-postgres-exporter \ | CHART_VERSION=0.5.4 | ||||||
|  | helm install --version "${CHART_VERSION}" prometheus-postgres-exporter prometheus-exporters/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"' \ | ||||||
| @@ -187,6 +224,75 @@ deployment: | |||||||
|             - postgres |             - postgres | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
|  | ### Network policies | ||||||
|  |  | ||||||
|  | Network policies can only take effect, when the used CNI plugin support network policies. The chart supports no custom | ||||||
|  | network policy implementation of CNI plugins. It's support only the official API resource of `networking.k8s.io/v1`. | ||||||
|  |  | ||||||
|  | The object networkPolicies can contains multiple networkPolicy definitions. There is currently only one example | ||||||
|  | predefined - it's named `default`. Further networkPolicy rules can easy be added by defining additional objects. For example: | ||||||
|  |  | ||||||
|  | > [!NOTE] | ||||||
|  | > The structure of each custom network policy must be equal like that of default. For this reason don't forget to define | ||||||
|  | > `annotations`, `labels` and the other properties as well. | ||||||
|  |  | ||||||
|  | ```yaml | ||||||
|  | networkPolicies: | ||||||
|  |   enabled: false | ||||||
|  |   default: {} | ||||||
|  |   my-custom-network-policy: {} | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | The example below is an excerpt of the `values.yaml` file. The network policy `default` contains ingress rules to allow | ||||||
|  | incoming traffic from Prometheus. Additionally two egress rules are defined, to allow the application outgoing access to | ||||||
|  | the internal running DNS server `core-dns` and the external running postgres database listen on `10.14.243.12`. | ||||||
|  |  | ||||||
|  | > [!IMPORTANT] | ||||||
|  | > Please keep in mind, that the namespace and pod selector labels can be different from environment to environment. For | ||||||
|  | > this reason, there is are not default network policy rules defined. | ||||||
|  |  | ||||||
|  | ```yaml | ||||||
|  | networkPolicies: | ||||||
|  |   enabled: true | ||||||
|  |   default: | ||||||
|  |     enabled: true | ||||||
|  |     annotations: {} | ||||||
|  |     labels: {} | ||||||
|  |     policyTypes: | ||||||
|  |     - Egress | ||||||
|  |     - Ingress | ||||||
|  |     egress: | ||||||
|  |     - to: | ||||||
|  |       - ipBlock: | ||||||
|  |           cidr: 10.14.243.12/32 | ||||||
|  |       ports: | ||||||
|  |       - port: 5432 | ||||||
|  |         protocol: TCP | ||||||
|  |     - to: | ||||||
|  |       - namespaceSelector: | ||||||
|  |           matchLabels: | ||||||
|  |             kubernetes.io/metadata.name: kube-system | ||||||
|  |         podSelector: | ||||||
|  |           matchLabels: | ||||||
|  |            k8s-app: kube-dns | ||||||
|  |       ports: | ||||||
|  |       - port: 53 | ||||||
|  |         protocol: TCP | ||||||
|  |       - port: 53 | ||||||
|  |         protocol: UDP | ||||||
|  |     ingress: | ||||||
|  |     - from: | ||||||
|  |       - namespaceSelector: | ||||||
|  |           matchLabels: | ||||||
|  |             kubernetes.io/metadata.name: monitoring | ||||||
|  |         podSelector: | ||||||
|  |           matchLabels: | ||||||
|  |             app.kubernetes.io/name: prometheus | ||||||
|  |       ports: | ||||||
|  |       - port: http | ||||||
|  |         protocol: TCP | ||||||
|  | ``` | ||||||
|  |  | ||||||
| ## Parameters | ## Parameters | ||||||
|  |  | ||||||
| ### Global | ### Global | ||||||
| @@ -199,7 +305,7 @@ deployment: | |||||||
| ### 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.                                                                                                                                                            | `{}`    | | ||||||
| @@ -211,12 +317,12 @@ deployment: | |||||||
| | `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 [here](https://github.com/prometheus-community/postgres_exporter?tab=readme-ov-file#multi-target-support-beta). | `{}`    | | | `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.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 information can be found [here](https://prometheus.io/docs/prometheus/latest/configuration/https/).                                           | `{}`    | | | `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.                                                         | `{}`    | | ||||||
|  |  | ||||||
| ### Deployment | ### Deployment | ||||||
|  |  | ||||||
| @@ -248,7 +354,7 @@ deployment: | |||||||
| | `deployment.replicas`                              | Number of replicas for the postgres-exporter deployment.                                                   | `1`                                     | | | `deployment.replicas`                              | Number of replicas for the postgres-exporter deployment.                                                   | `1`                                     | | ||||||
| | `deployment.restartPolicy`                         | Restart policy of the postgres-exporter deployment.                                                        | `""`                                    | | | `deployment.restartPolicy`                         | Restart policy of the postgres-exporter deployment.                                                        | `""`                                    | | ||||||
| | `deployment.securityContext`                       | Security context of the postgres-exporter deployment.                                                      | `{}`                                    | | | `deployment.securityContext`                       | Security context of the postgres-exporter deployment.                                                      | `{}`                                    | | ||||||
| | `deployment.strategy.type`                         | Strategy type - `Recreate` or `Rollingupdate`.                                                             | `Recreate`                              | | | `deployment.strategy.type`                         | Strategy type - `Recreate` or `RollingUpdate`.                                                             | `RollingUpdate`                         | | ||||||
| | `deployment.strategy.rollingUpdate.maxSurge`       | The maximum number of pods that can be scheduled above the desired number of pods during a rolling update. | `1`                                     | | | `deployment.strategy.rollingUpdate.maxSurge`       | The maximum number of pods that can be scheduled above the desired number of pods during a rolling update. | `1`                                     | | ||||||
| | `deployment.strategy.rollingUpdate.maxUnavailable` | The maximum number of pods that can be unavailable during a rolling update.                                | `1`                                     | | | `deployment.strategy.rollingUpdate.maxUnavailable` | The maximum number of pods that can be unavailable during a rolling update.                                | `1`                                     | | ||||||
| | `deployment.terminationGracePeriodSeconds`         | How long to wait until forcefully kill the pod.                                                            | `60`                                    | | | `deployment.terminationGracePeriodSeconds`         | How long to wait until forcefully kill the pod.                                                            | `60`                                    | | ||||||
| @@ -283,11 +389,17 @@ deployment: | |||||||
| | --------------------- | ---------------------- | ----- | | | --------------------- | ---------------------- | ----- | | ||||||
| | `podDisruptionBudget` | Pod disruption budget. | `{}`  | | | `podDisruptionBudget` | Pod disruption budget. | `{}`  | | ||||||
|  |  | ||||||
| ### Network | ### NetworkPolicies | ||||||
|  |  | ||||||
| | Name                                  | Description                                                                                           | Value   | | | Name                                  | Description                                                                                           | Value   | | ||||||
| | ----------------- | ------------------------------------------------------------------------------------------------------------------ | ----- | | | ------------------------------------- | ----------------------------------------------------------------------------------------------------- | ------- | | ||||||
| | `networkPolicies` | Deploy network policies based on the used container network interface (CNI) implementation - like calico or weave. | `{}`  | | | `networkPolicies.enabled`             | Enable network policies in general.                                                                   | `false` | | ||||||
|  | | `networkPolicies.default.enabled`     | Enable the network policy for accessing the application by default. For example to scape the metrics. | `false` | | ||||||
|  | | `networkPolicies.default.annotations` | Additional network policy annotations.                                                                | `{}`    | | ||||||
|  | | `networkPolicies.default.labels`      | Additional network policy labels.                                                                     | `{}`    | | ||||||
|  | | `networkPolicies.default.policyTypes` | List of policy types. Supported is ingress, egress or ingress and egress.                             | `[]`    | | ||||||
|  | | `networkPolicies.default.egress`      | Concrete egress network policy implementation.                                                        | `[]`    | | ||||||
|  | | `networkPolicies.default.ingress`     | Concrete ingress network policy implementation.                                                       | `[]`    | | ||||||
|  |  | ||||||
| ### Prometheus | ### Prometheus | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										1181
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1181
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -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.43.0" |     "markdownlint-cli": "^0.45.0" | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,9 +1,15 @@ | |||||||
| { | { | ||||||
|   "$schema": "https://docs.renovatebot.com/renovate-schema.json", |   "$schema": "https://docs.renovatebot.com/renovate-schema.json", | ||||||
|   "assignees": [ "volker.raschek" ], |   "extends": [ | ||||||
|  |     "local>volker.raschek/renovate-config:default#master", | ||||||
|  |     "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": [ | ||||||
|     { |     { | ||||||
|       "description": "Update container image reference", |       "customType": "regex", | ||||||
|       "fileMatch": [ |       "fileMatch": [ | ||||||
|         "^Chart\\.yaml$" |         "^Chart\\.yaml$" | ||||||
|       ], |       ], | ||||||
| @@ -16,28 +22,30 @@ | |||||||
|       "versioningTemplate": "semver" |       "versioningTemplate": "semver" | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|       "description": "Detect helm chart version in README", |       "customType": "regex", | ||||||
|       "fileMatch": ["^README\\.md$"], |       "fileMatch": ["^README\\.md$"], | ||||||
|       "matchStrings": [ |       "matchStrings": [ | ||||||
|         "^CHART_VERSION=(?<currentValue>.*)$" |         "CHART_VERSION=(?<currentValue>.*)" | ||||||
|       ], |       ], | ||||||
|       "datasourceTemplate": "git-tags", |  | ||||||
|       "depNameTemplate": "volker.raschek/prometheus-postgres-exporter", |       "depNameTemplate": "volker.raschek/prometheus-postgres-exporter", | ||||||
|       "packageNameTemplate": "https://git.cryptic.systems/volker.raschek/prometheus-postgres-exporter", |       "packageNameTemplate": "https://git.cryptic.systems/volker.raschek/prometheus-postgres-exporter", | ||||||
|  |       "datasourceTemplate": "git-tags", | ||||||
|       "versioningTemplate": "semver" |       "versioningTemplate": "semver" | ||||||
|     } |     } | ||||||
|   ], |   ], | ||||||
|   "labels": [ "renovate" ], |  | ||||||
|   "packageRules": [ |   "packageRules": [ | ||||||
|     { |     { | ||||||
|       "addLabels": [ "renovate/automerge", "renovate/npm" ], |       "groupName": "Update Node.JS", | ||||||
|       "automerge": true, |       "matchDepNames": [ | ||||||
|       "matchPackageNames": [ "markdownlint-cli", "@bitnami/readme-generator-for-helm" ], |         "docker.io/library/node", | ||||||
|       "matchManagers": [ "npm" ], |         "library/node" | ||||||
|       "matchUpdateTypes": [ "minor", "patch"] |       ] | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|       "addLabels": [ "renovate/automerge", "renovate/container" ], |       "addLabels": [ | ||||||
|  |         "renovate/automerge", | ||||||
|  |         "renovate/container" | ||||||
|  |       ], | ||||||
|       "automerge": true, |       "automerge": true, | ||||||
|       "excludePackagePatterns": [ |       "excludePackagePatterns": [ | ||||||
|         "prometheuscommunity/postgres-exporter" |         "prometheuscommunity/postgres-exporter" | ||||||
| @@ -51,7 +59,10 @@ | |||||||
|       ] |       ] | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|       "addLabels": [ "renovate/automerge", "renovate/documentation" ], |       "addLabels": [ | ||||||
|  |         "renovate/automerge", | ||||||
|  |         "renovate/documentation" | ||||||
|  |       ], | ||||||
|       "automerge": true, |       "automerge": true, | ||||||
|       "matchDepNames": [ |       "matchDepNames": [ | ||||||
|         "volker.raschek/prometheus-postgres-exporter" |         "volker.raschek/prometheus-postgres-exporter" | ||||||
| @@ -62,7 +73,5 @@ | |||||||
|         "patch" |         "patch" | ||||||
|       ] |       ] | ||||||
|     } |     } | ||||||
|   ], |   ] | ||||||
|   "rebaseLabel": "renovate/rebase", |  | ||||||
|   "rebaseWhen": "behind-base-branch" |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ | |||||||
| {{- define "prometheus-postgres-exporter.deployment.env" -}} | {{- define "prometheus-postgres-exporter.deployment.env" -}} | ||||||
| {{- $env := dict "env" (.Values.deployment.postgresExporter.env | default (list) ) }} | {{- $env := dict "env" (.Values.deployment.postgresExporter.env | default (list) ) }} | ||||||
| {{- if and (hasKey .Values.deployment.postgresExporter.resources "limits") (hasKey .Values.deployment.postgresExporter.resources.limits "cpu") }} | {{- if and (hasKey .Values.deployment.postgresExporter.resources "limits") (hasKey .Values.deployment.postgresExporter.resources.limits "cpu") }} | ||||||
| {{- $env = merge $env (dict "env" (list (dict "name" "GOMAXPROCS" "valueFrom" (dict "resourceFieldRef" (dict "resource" "limits.cpu"))))) }} | {{- $env = merge $env (dict "env" (list (dict "name" "GOMAXPROCS" "valueFrom" (dict "resourceFieldRef" (dict "divisor" "1" "resource" "limits.cpu"))))) }} | ||||||
| {{- end }} | {{- end }} | ||||||
| {{ toYaml $env }} | {{ toYaml $env }} | ||||||
| {{- end -}} | {{- end -}} | ||||||
							
								
								
									
										19
									
								
								templates/_networkPolicies.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								templates/_networkPolicies.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | |||||||
|  | {{/* vim: set filetype=mustache: */}} | ||||||
|  |  | ||||||
|  | {{/* annotations */}} | ||||||
|  |  | ||||||
|  | {{- define "prometheus-postgres-exporter.networkPolicies.annotations" -}} | ||||||
|  | {{ include "prometheus-postgres-exporter.annotations" .context }} | ||||||
|  | {{- if .networkPolicy.annotations }} | ||||||
|  | {{ toYaml .networkPolicy.annotations }} | ||||||
|  | {{- end }} | ||||||
|  | {{- end }} | ||||||
|  |  | ||||||
|  | {{/* labels */}} | ||||||
|  |  | ||||||
|  | {{- define "prometheus-postgres-exporter.networkPolicies.labels" -}} | ||||||
|  | {{ include "prometheus-postgres-exporter.labels" .context }} | ||||||
|  | {{- if .networkPolicy.labels }} | ||||||
|  | {{ toYaml .networkPolicy.labels }} | ||||||
|  | {{- end }} | ||||||
|  | {{- end }} | ||||||
							
								
								
									
										48
									
								
								templates/_pod.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								templates/_pod.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | |||||||
|  | --- | ||||||
|  |  | ||||||
|  | {{/* annotations */}} | ||||||
|  |  | ||||||
|  | {{- define "prometheus-postgres-exporter.pod.annotations" -}} | ||||||
|  | {{ include "prometheus-postgres-exporter.annotations" . }} | ||||||
|  |  | ||||||
|  | # 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 "/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 "/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 "/secretWebConfig.yaml") . | sha256sum }} | ||||||
|  | {{- end }} | ||||||
|  |  | ||||||
|  | {{- end }} | ||||||
|  |  | ||||||
|  | {{/* labels */}} | ||||||
|  |  | ||||||
|  | {{- define "prometheus-postgres-exporter.pod.labels" -}} | ||||||
|  | {{ include "prometheus-postgres-exporter.labels" . }} | ||||||
|  | {{- end }} | ||||||
|  |  | ||||||
|  | {{- define "prometheus-postgres-exporter.pod.selectorLabels" -}} | ||||||
|  | {{ include "prometheus-postgres-exporter.selectorLabels" . }} | ||||||
|  | {{- end }} | ||||||
| @@ -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: | ||||||
| @@ -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: | ||||||
| @@ -18,6 +18,8 @@ spec: | |||||||
|       {{- include "prometheus-postgres-exporter.pod.selectorLabels" . | nindent 6 }} |       {{- include "prometheus-postgres-exporter.pod.selectorLabels" . | nindent 6 }} | ||||||
|   template: |   template: | ||||||
|     metadata: |     metadata: | ||||||
|  |       annotations: | ||||||
|  |         {{- include "prometheus-postgres-exporter.pod.annotations" . | nindent 8 }} | ||||||
|       labels: |       labels: | ||||||
|         {{- include "prometheus-postgres-exporter.pod.labels" . | nindent 8 }} |         {{- include "prometheus-postgres-exporter.pod.labels" . | nindent 8 }} | ||||||
|     spec: |     spec: | ||||||
| @@ -126,3 +128,7 @@ spec: | |||||||
|       volumes: |       volumes: | ||||||
|       {{- toYaml $volumes.volumes | nindent 6 }} |       {{- toYaml $volumes.volumes | nindent 6 }} | ||||||
|       {{- end }} |       {{- end }} | ||||||
|  |   {{- with .Values.deployment.strategy }} | ||||||
|  |   strategy: | ||||||
|  |     {{- toYaml . | nindent 4 }} | ||||||
|  |   {{- end }} | ||||||
| @@ -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: | ||||||
							
								
								
									
										36
									
								
								templates/networkPolicies.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								templates/networkPolicies.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | |||||||
|  | {{- if .Values.networkPolicies.enabled }} | ||||||
|  | {{- range $key, $value := .Values.networkPolicies -}} | ||||||
|  | {{- if and (not (eq $key "enabled")) $value.enabled }} | ||||||
|  | --- | ||||||
|  | apiVersion: networking.k8s.io/v1 | ||||||
|  | kind: NetworkPolicy | ||||||
|  | metadata: | ||||||
|  |   {{- with (include "prometheus-postgres-exporter.networkPolicies.annotations" (dict "networkPolicy" $value "context" $) | fromYaml) }} | ||||||
|  |   annotations: | ||||||
|  |     {{- toYaml . | nindent 4 }} | ||||||
|  |   {{- end }} | ||||||
|  |   {{- with (include "prometheus-postgres-exporter.networkPolicies.labels" (dict "networkPolicy" $value "context" $) | fromYaml) }} | ||||||
|  |   labels: | ||||||
|  |     {{- toYaml . | nindent 4 }} | ||||||
|  |   {{- end }} | ||||||
|  |   name: {{ printf "%s-%s" (include "prometheus-postgres-exporter.fullname" $ ) $key }} | ||||||
|  |   namespace: {{ $.Release.Namespace }} | ||||||
|  | spec: | ||||||
|  |   podSelector: | ||||||
|  |     matchLabels: | ||||||
|  |       {{- include "prometheus-postgres-exporter.pod.selectorLabels" $ | nindent 6 }} | ||||||
|  |   {{- with $value.policyTypes }} | ||||||
|  |   policyTypes: | ||||||
|  |   {{- toYaml . | nindent 2 }} | ||||||
|  |   {{- end }} | ||||||
|  |   {{- with $value.egress }} | ||||||
|  |   egress: | ||||||
|  |   {{- toYaml . | nindent 2 }} | ||||||
|  |   {{- end }} | ||||||
|  |   {{- with $value.ingress }} | ||||||
|  |   ingress: | ||||||
|  |   {{- toYaml . | nindent 2 }} | ||||||
|  |   {{- end }} | ||||||
|  | {{- end }} | ||||||
|  | {{- end }} | ||||||
|  | {{- end }} | ||||||
| @@ -1,17 +0,0 @@ | |||||||
| --- |  | ||||||
|  |  | ||||||
| {{/* annotations */}} |  | ||||||
|  |  | ||||||
| {{- define "prometheus-postgres-exporter.pod.annotations" -}} |  | ||||||
| {{ include "prometheus-postgres-exporter.annotations" . }} |  | ||||||
| {{- end }} |  | ||||||
|  |  | ||||||
| {{/* labels */}} |  | ||||||
|  |  | ||||||
| {{- define "prometheus-postgres-exporter.pod.labels" -}} |  | ||||||
| {{ include "prometheus-postgres-exporter.labels" . }} |  | ||||||
| {{- end }} |  | ||||||
|  |  | ||||||
| {{- define "prometheus-postgres-exporter.pod.selectorLabels" -}} |  | ||||||
| {{ include "prometheus-postgres-exporter.selectorLabels" . }} |  | ||||||
| {{- end }} |  | ||||||
| @@ -6,7 +6,7 @@ release: | |||||||
|   name: prometheus-postgres-exporter-unittest |   name: prometheus-postgres-exporter-unittest | ||||||
|   namespace: testing |   namespace: testing | ||||||
| templates: | templates: | ||||||
| - templates/prometheus-postgres-exporter/configMapGrafanaDashboardPostgresExporter.yaml | - templates/configMapGrafanaDashboardPostgresExporter.yaml | ||||||
| tests: | tests: | ||||||
| - it: Rendering postgresExporter | - it: Rendering postgresExporter | ||||||
|   asserts: |   asserts: | ||||||
|   | |||||||
| @@ -6,19 +6,30 @@ release: | |||||||
|   name: prometheus-postgres-exporter-unittest |   name: prometheus-postgres-exporter-unittest | ||||||
|   namespace: testing |   namespace: testing | ||||||
| templates: | templates: | ||||||
| - templates/prometheus-postgres-exporter/deployment.yaml | - templates/deployment.yaml | ||||||
|  | - templates/secretDatabase.yaml | ||||||
|  | - templates/secretExporterConfig.yaml | ||||||
|  | - templates/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/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/deployment.yaml | ||||||
|   - notExists: |   - notExists: | ||||||
|       path: metadata.annotations |       path: metadata.annotations | ||||||
|  |     template: templates/deployment.yaml | ||||||
|   - equal: |   - equal: | ||||||
|       path: metadata.labels |       path: metadata.labels | ||||||
|       value: |       value: | ||||||
| @@ -27,27 +38,51 @@ 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/deployment.yaml | ||||||
|   - equal: |   - equal: | ||||||
|       path: spec.replicas |       path: spec.replicas | ||||||
|       value: 1 |       value: 1 | ||||||
|  |     template: templates/deployment.yaml | ||||||
|  |   - exists: | ||||||
|  |       path: spec.template.metadata.annotations.checksum/secret-database | ||||||
|  |     template: templates/deployment.yaml | ||||||
|  |   - exists: | ||||||
|  |       path: spec.template.metadata.annotations.checksum/secret-exporter-config | ||||||
|  |     template: templates/deployment.yaml | ||||||
|  |   - exists: | ||||||
|  |       path: spec.template.metadata.annotations.checksum/secret-web-config | ||||||
|  |     template: templates/deployment.yaml | ||||||
|  |   - equal: | ||||||
|  |       path: spec.template.metadata.labels | ||||||
|  |       value: | ||||||
|  |         app.kubernetes.io/instance: prometheus-postgres-exporter-unittest | ||||||
|  |         app.kubernetes.io/managed-by: Helm | ||||||
|  |         app.kubernetes.io/name: prometheus-postgres-exporter | ||||||
|  |         app.kubernetes.io/version: 0.1.0 | ||||||
|  |         helm.sh/chart: prometheus-postgres-exporter-0.1.0 | ||||||
|  |     template: templates/deployment.yaml | ||||||
|   - notExists: |   - notExists: | ||||||
|       path: spec.template.spec.affinity |       path: spec.template.spec.affinity | ||||||
|  |     template: templates/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/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/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/deployment.yaml | ||||||
|   - equal: |   - equal: | ||||||
|       path: spec.template.spec.volumes |       path: spec.template.spec.volumes | ||||||
|       value: |       value: | ||||||
| @@ -59,53 +94,91 @@ 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/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/deployment.yaml | ||||||
|   - equal: |   - equal: | ||||||
|       path: spec.template.spec.containers[0].imagePullPolicy |       path: spec.template.spec.containers[0].imagePullPolicy | ||||||
|       value: IfNotPresent |       value: IfNotPresent | ||||||
|  |     template: templates/deployment.yaml | ||||||
|   - notExists: |   - notExists: | ||||||
|       path: spec.template.spec.containers[0].resources |       path: spec.template.spec.containers[0].resources | ||||||
|  |     template: templates/deployment.yaml | ||||||
|   - notExists: |   - notExists: | ||||||
|       path: spec.template.spec.containers[0].securityContext |       path: spec.template.spec.containers[0].securityContext | ||||||
|  |     template: templates/deployment.yaml | ||||||
|   - notExists: |   - notExists: | ||||||
|       path: spec.template.spec.dnsConfig |       path: spec.template.spec.dnsConfig | ||||||
|  |     template: templates/deployment.yaml | ||||||
|   - notExists: |   - notExists: | ||||||
|       path: spec.template.spec.dnsPolicy |       path: spec.template.spec.dnsPolicy | ||||||
|  |     template: templates/deployment.yaml | ||||||
|   - notExists: |   - notExists: | ||||||
|       path: spec.template.spec.hostname |       path: spec.template.spec.hostname | ||||||
|  |     template: templates/deployment.yaml | ||||||
|   - equal: |   - equal: | ||||||
|       path: spec.template.spec.hostNetwork |       path: spec.template.spec.hostNetwork | ||||||
|       value: false |       value: false | ||||||
|  |     template: templates/deployment.yaml | ||||||
|   - notExists: |   - notExists: | ||||||
|       path: spec.template.spec.imagePullSecrets |       path: spec.template.spec.imagePullSecrets | ||||||
|  |     template: templates/deployment.yaml | ||||||
|   - notExists: |   - notExists: | ||||||
|       path: spec.template.spec.nodeSelector |       path: spec.template.spec.nodeSelector | ||||||
|  |     template: templates/deployment.yaml | ||||||
|   - notExists: |   - notExists: | ||||||
|       path: spec.template.spec.priorityClassName |       path: spec.template.spec.priorityClassName | ||||||
|  |     template: templates/deployment.yaml | ||||||
|   - notExists: |   - notExists: | ||||||
|       path: spec.template.spec.restartPolicy |       path: spec.template.spec.restartPolicy | ||||||
|  |     template: templates/deployment.yaml | ||||||
|   - notExists: |   - notExists: | ||||||
|       path: spec.template.spec.subdomain |       path: spec.template.spec.subdomain | ||||||
|  |     template: templates/deployment.yaml | ||||||
|   - equal: |   - equal: | ||||||
|       path: spec.template.spec.terminationGracePeriodSeconds |       path: spec.template.spec.terminationGracePeriodSeconds | ||||||
|       value: 60 |       value: 60 | ||||||
|  |     template: templates/deployment.yaml | ||||||
|   - notExists: |   - notExists: | ||||||
|       path: spec.template.spec.tolerations |       path: spec.template.spec.tolerations | ||||||
|  |     template: templates/deployment.yaml | ||||||
|   - notExists: |   - notExists: | ||||||
|       path: spec.template.spec.topologySpreadConstraints |       path: spec.template.spec.topologySpreadConstraints | ||||||
|  |     template: templates/deployment.yaml | ||||||
|  |   - equal: | ||||||
|  |       path: spec.strategy | ||||||
|  |       value: | ||||||
|  |         type: "RollingUpdate" | ||||||
|  |         rollingUpdate: | ||||||
|  |           maxSurge: 1 | ||||||
|  |           maxUnavailable: 1 | ||||||
|  |     template: templates/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/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: | ||||||
| @@ -129,9 +202,16 @@ tests: | |||||||
|                 values: |                 values: | ||||||
|                 - antarctica-east1 |                 - antarctica-east1 | ||||||
|                 - antarctica-west1 |                 - antarctica-west1 | ||||||
|  |     template: templates/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" | ||||||
| @@ -144,26 +224,42 @@ tests: | |||||||
|       - --web.listen-address=:9187 |       - --web.listen-address=:9187 | ||||||
|       - --foo=bar |       - --foo=bar | ||||||
|       - --bar=foo |       - --bar=foo | ||||||
|  |     template: templates/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/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/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: | ||||||
| @@ -172,9 +268,16 @@ tests: | |||||||
|       content: |       content: | ||||||
|         secretRef: |         secretRef: | ||||||
|           name: custom-database-secret |           name: custom-database-secret | ||||||
|  |     template: templates/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: | ||||||
| @@ -183,6 +286,7 @@ 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/deployment.yaml | ||||||
|   - equal: |   - equal: | ||||||
|       path: spec.template.spec.volumes |       path: spec.template.spec.volumes | ||||||
|       value: |       value: | ||||||
| @@ -194,9 +298,16 @@ 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/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: | ||||||
| @@ -205,6 +316,7 @@ 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/deployment.yaml | ||||||
|   - equal: |   - equal: | ||||||
|       path: spec.template.spec.volumes |       path: spec.template.spec.volumes | ||||||
|       value: |       value: | ||||||
| @@ -216,9 +328,16 @@ 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/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 | ||||||
| @@ -233,7 +352,9 @@ tests: | |||||||
|       - name: GOMAXPROCS |       - name: GOMAXPROCS | ||||||
|         valueFrom: |         valueFrom: | ||||||
|           resourceFieldRef: |           resourceFieldRef: | ||||||
|  |             divisor: "1" | ||||||
|             resource: limits.cpu |             resource: limits.cpu | ||||||
|  |     template: templates/deployment.yaml | ||||||
|   - equal: |   - equal: | ||||||
|       path: spec.template.spec.containers[0].resources |       path: spec.template.spec.containers[0].resources | ||||||
|       value: |       value: | ||||||
| @@ -243,9 +364,16 @@ tests: | |||||||
|         requests: |         requests: | ||||||
|           cpu: 25m |           cpu: 25m | ||||||
|           memory: 100MB |           memory: 100MB | ||||||
|  |     template: templates/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: | ||||||
| @@ -269,9 +397,16 @@ tests: | |||||||
|         readOnlyRootFilesystem: true |         readOnlyRootFilesystem: true | ||||||
|         runAsNonRoot: true |         runAsNonRoot: true | ||||||
|         runAsUser: 1000 |         runAsUser: 1000 | ||||||
|  |     template: templates/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" | ||||||
| @@ -283,17 +418,31 @@ tests: | |||||||
|         nameservers: |         nameservers: | ||||||
|         - "8.8.8.8" |         - "8.8.8.8" | ||||||
|         - "8.8.4.4" |         - "8.8.4.4" | ||||||
|  |     template: templates/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/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 | ||||||
| @@ -301,15 +450,24 @@ tests: | |||||||
|   - equal: |   - equal: | ||||||
|       path: spec.template.spec.hostNetwork |       path: spec.template.spec.hostNetwork | ||||||
|       value: true |       value: true | ||||||
|  |     template: templates/deployment.yaml | ||||||
|   - equal: |   - equal: | ||||||
|       path: spec.template.spec.hostname |       path: spec.template.spec.hostname | ||||||
|       value: pg-exporter |       value: pg-exporter | ||||||
|  |     template: templates/deployment.yaml | ||||||
|   - equal: |   - equal: | ||||||
|       path: spec.template.spec.subdomain |       path: spec.template.spec.subdomain | ||||||
|       value: exporters.internal |       value: exporters.internal | ||||||
|  |     template: templates/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 | ||||||
| @@ -319,9 +477,16 @@ tests: | |||||||
|       value: |       value: | ||||||
|       - name: my-pull-secret |       - name: my-pull-secret | ||||||
|       - name: my-special-secret |       - name: my-special-secret | ||||||
|  |     template: templates/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: | ||||||
| @@ -329,33 +494,61 @@ tests: | |||||||
|       path: spec.template.spec.nodeSelector |       path: spec.template.spec.nodeSelector | ||||||
|       value: |       value: | ||||||
|         foo: bar |         foo: bar | ||||||
|  |     template: templates/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/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/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/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 | ||||||
| @@ -369,9 +562,16 @@ tests: | |||||||
|         operator: Equal |         operator: Equal | ||||||
|         value: postgres |         value: postgres | ||||||
|         effect: NoSchedule |         effect: NoSchedule | ||||||
|  |     template: templates/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 | ||||||
| @@ -387,9 +587,16 @@ tests: | |||||||
|         labelSelector: |         labelSelector: | ||||||
|           matchLabels: |           matchLabels: | ||||||
|             app.kubernetes.io/instance: prometheus-postgres-exporter |             app.kubernetes.io/instance: prometheus-postgres-exporter | ||||||
|  |     template: templates/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 | ||||||
| @@ -405,6 +612,7 @@ 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/deployment.yaml | ||||||
|   - equal: |   - equal: | ||||||
|       path: spec.template.spec.volumes |       path: spec.template.spec.volumes | ||||||
|       value: |       value: | ||||||
| @@ -419,3 +627,4 @@ 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/deployment.yaml | ||||||
| @@ -6,7 +6,7 @@ release: | |||||||
|   name: prometheus-postgres-exporter-unittest |   name: prometheus-postgres-exporter-unittest | ||||||
|   namespace: testing |   namespace: testing | ||||||
| templates: | templates: | ||||||
| - templates/prometheus-postgres-exporter/ingress.yaml | - templates/ingress.yaml | ||||||
| tests: | tests: | ||||||
| - it: Skip ingress by default. | - it: Skip ingress by default. | ||||||
|   asserts: |   asserts: | ||||||
|   | |||||||
							
								
								
									
										118
									
								
								unittests/networkPolicies/default.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										118
									
								
								unittests/networkPolicies/default.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,118 @@ | |||||||
|  | chart: | ||||||
|  |   appVersion: 0.1.0 | ||||||
|  |   version: 0.1.0 | ||||||
|  | suite: NetworkPolicies template (basic) | ||||||
|  | release: | ||||||
|  |   name: prometheus-postgres-exporter-unittest | ||||||
|  |   namespace: testing | ||||||
|  | templates: | ||||||
|  | - templates/networkPolicies.yaml | ||||||
|  | tests: | ||||||
|  | - it: Skip networkPolicies in general disabled. | ||||||
|  |   set: | ||||||
|  |     networkPolicies.enabled: false | ||||||
|  |   asserts: | ||||||
|  |   - hasDocuments: | ||||||
|  |       count: 0 | ||||||
|  |  | ||||||
|  | - it: Skip networkPolicy 'default' when disabled. | ||||||
|  |   set: | ||||||
|  |     networkPolicies.enabled: true | ||||||
|  |     networkPolicies.default.enabled: false | ||||||
|  |   asserts: | ||||||
|  |   - hasDocuments: | ||||||
|  |       count: 0 | ||||||
|  |  | ||||||
|  | - it: Loop over networkPolicies | ||||||
|  |   set: | ||||||
|  |     networkPolicies.enabled: true | ||||||
|  |     networkPolicies.default.enabled: false | ||||||
|  |     networkPolicies.nginx.enabled: true | ||||||
|  |     networkPolicies.prometheus.enabled: true | ||||||
|  |   asserts: | ||||||
|  |   - hasDocuments: | ||||||
|  |       count: 2 | ||||||
|  |  | ||||||
|  | - it: Template networkPolicy 'default' without policyTypes, egress and ingress configuration | ||||||
|  |   set: | ||||||
|  |     networkPolicies.enabled: true | ||||||
|  |     networkPolicies.default.enabled: true | ||||||
|  |   asserts: | ||||||
|  |   - hasDocuments: | ||||||
|  |       count: 1 | ||||||
|  |   - containsDocument: | ||||||
|  |       apiVersion: networking.k8s.io/v1 | ||||||
|  |       kind: NetworkPolicy | ||||||
|  |       name: prometheus-postgres-exporter-unittest-default | ||||||
|  |       namespace: testing | ||||||
|  |   - notExists: | ||||||
|  |       path: metadata.annotations | ||||||
|  |   - equal: | ||||||
|  |       path: metadata.labels | ||||||
|  |       value: | ||||||
|  |         app.kubernetes.io/instance: prometheus-postgres-exporter-unittest | ||||||
|  |         app.kubernetes.io/managed-by: Helm | ||||||
|  |         app.kubernetes.io/name: prometheus-postgres-exporter | ||||||
|  |         app.kubernetes.io/version: 0.1.0 | ||||||
|  |         helm.sh/chart: prometheus-postgres-exporter-0.1.0 | ||||||
|  |   - equal: | ||||||
|  |       path: spec.podSelector.matchLabels | ||||||
|  |       value: | ||||||
|  |         app.kubernetes.io/instance: prometheus-postgres-exporter-unittest | ||||||
|  |         app.kubernetes.io/name: prometheus-postgres-exporter | ||||||
|  |   - notExists: | ||||||
|  |       path: spec.policyTypes | ||||||
|  |   - notExists: | ||||||
|  |       path: spec.egress | ||||||
|  |   - notExists: | ||||||
|  |       path: spec.ingress | ||||||
|  |  | ||||||
|  | - it: Template networkPolicy 'default' with policyTypes, egress and ingress configuration | ||||||
|  |   set: | ||||||
|  |     networkPolicies.enabled: true | ||||||
|  |     networkPolicies.default.enabled: true | ||||||
|  |     networkPolicies.default.policyTypes: | ||||||
|  |     - Egress | ||||||
|  |     - Ingress | ||||||
|  |     networkPolicies.default.ingress: | ||||||
|  |     - from: | ||||||
|  |       - namespaceSelector: | ||||||
|  |           matchLabels: | ||||||
|  |             kubernetes.io/metadata.name: khv-production | ||||||
|  |         podSelector: | ||||||
|  |           matchLabels: | ||||||
|  |             app.kubernetes.io/name: prometheus | ||||||
|  |     networkPolicies.default.egress: | ||||||
|  |     - to: | ||||||
|  |       - namespaceSelector: | ||||||
|  |           matchLabels: | ||||||
|  |             kubernetes.io/metadata.name: database | ||||||
|  |         podSelector: | ||||||
|  |           matchLabels: | ||||||
|  |             app.kubernetes.io/name: oracle | ||||||
|  |   asserts: | ||||||
|  |   - equal: | ||||||
|  |       path: spec.policyTypes | ||||||
|  |       value: | ||||||
|  |       - Egress | ||||||
|  |       - Ingress | ||||||
|  |   - equal: | ||||||
|  |       path: spec.egress | ||||||
|  |       value: | ||||||
|  |       - to: | ||||||
|  |         - namespaceSelector: | ||||||
|  |             matchLabels: | ||||||
|  |               kubernetes.io/metadata.name: database | ||||||
|  |           podSelector: | ||||||
|  |             matchLabels: | ||||||
|  |               app.kubernetes.io/name: oracle | ||||||
|  |   - equal: | ||||||
|  |       path: spec.ingress | ||||||
|  |       value: | ||||||
|  |       - from: | ||||||
|  |         - namespaceSelector: | ||||||
|  |             matchLabels: | ||||||
|  |               kubernetes.io/metadata.name: khv-production | ||||||
|  |           podSelector: | ||||||
|  |             matchLabels: | ||||||
|  |               app.kubernetes.io/name: prometheus | ||||||
| @@ -6,7 +6,7 @@ release: | |||||||
|   name: prometheus-postgres-exporter-unittest |   name: prometheus-postgres-exporter-unittest | ||||||
|   namespace: testing |   namespace: testing | ||||||
| templates: | templates: | ||||||
| - templates/prometheus-postgres-exporter/podMonitor.yaml | - templates/podMonitor.yaml | ||||||
| tests: | tests: | ||||||
| - it: Skip podMonitor when metrics are disabled. | - it: Skip podMonitor when metrics are disabled. | ||||||
|   set: |   set: | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ release: | |||||||
|   name: prometheus-postgres-exporter-unittest |   name: prometheus-postgres-exporter-unittest | ||||||
|   namespace: testing |   namespace: testing | ||||||
| templates: | templates: | ||||||
| - templates/prometheus-postgres-exporter/secretDatabase.yaml | - templates/secretDatabase.yaml | ||||||
| tests: | tests: | ||||||
| - it: Skip rendering by using existing secret. | - it: Skip rendering by using existing secret. | ||||||
|   set: |   set: | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ release: | |||||||
|   name: prometheus-postgres-exporter-unittest |   name: prometheus-postgres-exporter-unittest | ||||||
|   namespace: testing |   namespace: testing | ||||||
| templates: | templates: | ||||||
| - templates/prometheus-postgres-exporter/secretExporterConfig.yaml | - templates/secretExporterConfig.yaml | ||||||
| tests: | tests: | ||||||
| - it: Skip rendering by using existing secret. | - it: Skip rendering by using existing secret. | ||||||
|   set: |   set: | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ release: | |||||||
|   name: prometheus-postgres-exporter-unittest |   name: prometheus-postgres-exporter-unittest | ||||||
|   namespace: testing |   namespace: testing | ||||||
| templates: | templates: | ||||||
| - templates/prometheus-postgres-exporter/secretWebConfig.yaml | - templates/secretWebConfig.yaml | ||||||
| tests: | tests: | ||||||
| - it: Rendering default secret. | - it: Rendering default secret. | ||||||
|   asserts: |   asserts: | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ release: | |||||||
|   name: prometheus-postgres-exporter-unittest |   name: prometheus-postgres-exporter-unittest | ||||||
|   namespace: testing |   namespace: testing | ||||||
| templates: | templates: | ||||||
| - templates/prometheus-postgres-exporter/serviceAccount.yaml | - templates/serviceAccount.yaml | ||||||
| tests: | tests: | ||||||
| - it: Skip rendering. | - it: Skip rendering. | ||||||
|   set: |   set: | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ release: | |||||||
|   name: prometheus-postgres-exporter-unittest |   name: prometheus-postgres-exporter-unittest | ||||||
|   namespace: testing |   namespace: testing | ||||||
| templates: | templates: | ||||||
| - templates/prometheus-postgres-exporter/serviceMonitorHTTP.yaml | - templates/serviceMonitorHTTP.yaml | ||||||
| tests: | tests: | ||||||
| - it: Skip serviceMonitor when service is disabled. | - it: Skip serviceMonitor when service is disabled. | ||||||
|   set: |   set: | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ release: | |||||||
|   name: prometheus-postgres-exporter-unittest |   name: prometheus-postgres-exporter-unittest | ||||||
|   namespace: testing |   namespace: testing | ||||||
| templates: | templates: | ||||||
| - templates/prometheus-postgres-exporter/serviceHTTP.yaml | - templates/serviceHTTP.yaml | ||||||
| tests: | tests: | ||||||
| - it: Skip service when disabled. | - it: Skip service when disabled. | ||||||
|   set: |   set: | ||||||
|   | |||||||
							
								
								
									
										85
									
								
								values.yaml
									
									
									
									
									
								
							
							
						
						
									
										85
									
								
								values.yaml
									
									
									
									
									
								
							| @@ -1,4 +1,5 @@ | |||||||
| # Declare variables to be passed into your templates. | # Declare variables to be passed into your templates. | ||||||
|  |  | ||||||
| ## @section Global | ## @section Global | ||||||
| ## @param nameOverride Individual release name suffix. | ## @param nameOverride Individual release name suffix. | ||||||
| ## @param fullnameOverride Override the complete release name logic. | ## @param fullnameOverride Override the complete release name logic. | ||||||
| @@ -35,7 +36,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 [here](https://github.com/prometheus-community/postgres_exporter?tab=readme-ov-file#multi-target-support-beta). |     ## @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. | ||||||
|     ## @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 +60,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 information can be found [here](https://prometheus.io/docs/prometheus/latest/configuration/https/). |     ## @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. | ||||||
|     ## @skip config.webConfig.secret.webConfig Skip individual web configuration. |     ## @skip config.webConfig.secret.webConfig Skip individual web configuration. | ||||||
|     secret: |     secret: | ||||||
|       annotations: {} |       annotations: {} | ||||||
| @@ -224,11 +225,11 @@ deployment: | |||||||
|   securityContext: {} |   securityContext: {} | ||||||
|     # fsGroup: 2000 |     # fsGroup: 2000 | ||||||
|  |  | ||||||
|   ## @param deployment.strategy.type Strategy type - `Recreate` or `Rollingupdate`. |   ## @param deployment.strategy.type Strategy type - `Recreate` or `RollingUpdate`. | ||||||
|   ## @param deployment.strategy.rollingUpdate.maxSurge The maximum number of pods that can be scheduled above the desired number of pods during a rolling update. |   ## @param deployment.strategy.rollingUpdate.maxSurge The maximum number of pods that can be scheduled above the desired number of pods during a rolling update. | ||||||
|   ## @param deployment.strategy.rollingUpdate.maxUnavailable The maximum number of pods that can be unavailable during a rolling update. |   ## @param deployment.strategy.rollingUpdate.maxUnavailable The maximum number of pods that can be unavailable during a rolling update. | ||||||
|   strategy: |   strategy: | ||||||
|     type: "Recreate" |     type: "RollingUpdate" | ||||||
|     rollingUpdate: |     rollingUpdate: | ||||||
|       maxSurge: 1 |       maxSurge: 1 | ||||||
|       maxUnavailable: 1 |       maxUnavailable: 1 | ||||||
| @@ -266,7 +267,7 @@ grafana: | |||||||
|   enabled: false |   enabled: false | ||||||
|  |  | ||||||
|   ## @param grafana.dashboardDiscoveryLabels Labels that Grafana uses to discover resources. The labels may vary depending on the Grafana deployment. |   ## @param grafana.dashboardDiscoveryLabels Labels that Grafana uses to discover resources. The labels may vary depending on the Grafana deployment. | ||||||
|   ## @skip grafana.dashboardDiscoveryLabels |   ## @skip grafana.dashboardDiscoveryLabels Skip individual configuration. | ||||||
|   dashboardDiscoveryLabels: |   dashboardDiscoveryLabels: | ||||||
|     grafana_dashboard: "1" |     grafana_dashboard: "1" | ||||||
|  |  | ||||||
| @@ -311,9 +312,77 @@ podDisruptionBudget: {} | |||||||
| #  maxUnavailable: 1 | #  maxUnavailable: 1 | ||||||
| #  minAvailable: 1 | #  minAvailable: 1 | ||||||
|  |  | ||||||
| ## @section Network | ## @section NetworkPolicies | ||||||
| ## @param networkPolicies Deploy network policies based on the used container network interface (CNI) implementation - like calico or weave. | ## @param networkPolicies.enabled Enable network policies in general. | ||||||
| networkPolicies: {} | networkPolicies: | ||||||
|  |   enabled: false | ||||||
|  |  | ||||||
|  |   ## @param networkPolicies.default.enabled Enable the network policy for accessing the application by default. For example to scape the metrics. | ||||||
|  |   ## @param networkPolicies.default.annotations Additional network policy annotations. | ||||||
|  |   ## @param networkPolicies.default.labels Additional network policy labels. | ||||||
|  |   ## @param networkPolicies.default.policyTypes List of policy types. Supported is ingress, egress or ingress and egress. | ||||||
|  |   ## @param networkPolicies.default.egress Concrete egress network policy implementation. | ||||||
|  |   ## @skip networkPolicies.default.egress Skip individual egress configuration. | ||||||
|  |   ## @param networkPolicies.default.ingress Concrete ingress network policy implementation. | ||||||
|  |   ## @skip networkPolicies.default.ingress Skip individual ingress configuration. | ||||||
|  |   default: | ||||||
|  |     enabled: false | ||||||
|  |     annotations: {} | ||||||
|  |     labels: {} | ||||||
|  |     policyTypes: [] | ||||||
|  |     # - Egress | ||||||
|  |     # - Ingress | ||||||
|  |     egress: [] | ||||||
|  |     # Allow outgoing traffic to database host | ||||||
|  |     # | ||||||
|  |     # - to: | ||||||
|  |     #   - ipBlock: | ||||||
|  |     #       cidr: 192.168.179.1/32 | ||||||
|  |     #   ports: | ||||||
|  |     #   - port: 5432 | ||||||
|  |     #     protocol: TCP | ||||||
|  |  | ||||||
|  |     # Allow outgoing DNS traffic to the internal running DNS-Server. For example core-dns. | ||||||
|  |     # | ||||||
|  |     # - to: | ||||||
|  |     #   - namespaceSelector: | ||||||
|  |     #       matchLabels: | ||||||
|  |     #         kubernetes.io/metadata.name: kube-system | ||||||
|  |     #     podSelector: | ||||||
|  |     #       matchLabels: | ||||||
|  |     #        k8s-app: kube-dns | ||||||
|  |     #   ports: | ||||||
|  |     #   - port: 53 | ||||||
|  |     #     protocol: TCP | ||||||
|  |     #   - port: 53 | ||||||
|  |     #     protocol: UDP | ||||||
|  |  | ||||||
|  |     ingress: [] | ||||||
|  |     # Allow incoming HTTP traffic from prometheus. | ||||||
|  |     # | ||||||
|  |     # - from: | ||||||
|  |     #   - namespaceSelector: | ||||||
|  |     #       matchLabels: | ||||||
|  |     #         kubernetes.io/metadata.name: monitoring | ||||||
|  |     #     podSelector: | ||||||
|  |     #       matchLabels: | ||||||
|  |     #         app.kubernetes.io/name: prometheus | ||||||
|  |     #   ports: | ||||||
|  |     #   - port: http | ||||||
|  |     #     protocol: TCP | ||||||
|  |  | ||||||
|  |     # Allow incoming HTTP traffic from ingress-nginx. | ||||||
|  |     # | ||||||
|  |     # - from: | ||||||
|  |     #   - namespaceSelector: | ||||||
|  |     #       matchLabels: | ||||||
|  |     #         kubernetes.io/metadata.name: ingress-nginx | ||||||
|  |     #     podSelector: | ||||||
|  |     #       matchLabels: | ||||||
|  |     #         app.kubernetes.io/name: ingress-nginx | ||||||
|  |     #   ports: | ||||||
|  |     #   - port: http | ||||||
|  |     #     protocol: TCP | ||||||
|  |  | ||||||
| ## @section Prometheus | ## @section Prometheus | ||||||
| prometheus: | prometheus: | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user