You've already forked prometheus-postgres-exporter
							
							Compare commits
	
		
			46 Commits
		
	
	
		
			0.1.10
			...
			2e155fde66
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 2e155fde66 | |||
| 3ea3f94429 | |||
| 11c58d99fa | |||
| 2958540cf7 | |||
| b0a16dc214 | |||
| 2a04fb1966 | |||
| fcf64a215d | |||
| 2b6f0dbda4 | |||
| 93884a4f51 | |||
| 42ca0a7370 | |||
| a4875f9488 | |||
| a976273cbc | |||
| 5646ebfa8c | |||
| 4a4650cdc2 | |||
| b73455b657 | |||
| 79062bc1c3 | |||
| 3b0a815203 | |||
| ffa8271684 | |||
| f59f6aa94d | |||
| ce4065bda8 | |||
| 1581617daf | |||
| a3e4c0c0e7 | |||
| 2e8bc16f1e | |||
| a07c602c44 | |||
| b96736bc69 | |||
| 4cd6988b38 | |||
| b5fc1b7575 | |||
| 316b9b236b | |||
| 5bf8a132eb | |||
| 489c616e9a | |||
| 631bd72480 | |||
| 33cf9e8fc0 | |||
| e462e5a002 | |||
| 76ec5a66ff | |||
| 686e43668c | |||
| 7ce70de51c | |||
| 3434c5a737 | |||
| 1e9aeb802d | |||
| 2e9eae9888 | |||
| 0dcea5cfc4 | |||
| e38c4fbdfe | |||
| 0a4d677938 | |||
| 171d9a695e | |||
| 853c65a8ef | |||
| c93c4dd4eb | |||
| 4105bb9e0f | 
							
								
								
									
										208
									
								
								.drone.yml
									
									
									
									
									
								
							
							
						
						
									
										208
									
								
								.drone.yml
									
									
									
									
									
								
							| @@ -1,208 +0,0 @@ | |||||||
| --- |  | ||||||
| kind: pipeline |  | ||||||
| type: kubernetes |  | ||||||
| name: Linters |  | ||||||
|  |  | ||||||
| clone: |  | ||||||
|   disable: true |  | ||||||
|  |  | ||||||
| platform: |  | ||||||
|   os: linux |  | ||||||
|   arch: amd64 |  | ||||||
|  |  | ||||||
| steps: |  | ||||||
| - name: clone repository |  | ||||||
|   image: git.cryptic.systems/volker.raschek/git:1.4.0 |  | ||||||
|  |  | ||||||
| - name: helm lint |  | ||||||
|   commands: |  | ||||||
|   - helm lint |  | ||||||
|   image: git.cryptic.systems/volker.raschek/helm:3.16.1 |  | ||||||
|   resources: |  | ||||||
|     limits: |  | ||||||
|       cpu: 150 |  | ||||||
|       memory: 150M |  | ||||||
|  |  | ||||||
| - name: markdown lint |  | ||||||
|   commands: |  | ||||||
|   - markdownlint *.md |  | ||||||
|   image: git.cryptic.systems/volker.raschek/markdownlint:0.42.0 |  | ||||||
|   resources: |  | ||||||
|     limits: |  | ||||||
|       cpu: 150 |  | ||||||
|       memory: 150M |  | ||||||
|  |  | ||||||
| - name: email-notification |  | ||||||
|   environment: |  | ||||||
|     SMTP_FROM_ADDRESS: |  | ||||||
|       from_secret: smtp_from_address |  | ||||||
|     SMTP_FROM_NAME: |  | ||||||
|       from_secret: smtp_from_name |  | ||||||
|     SMTP_HOST: |  | ||||||
|       from_secret: smtp_host |  | ||||||
|     SMTP_USERNAME: |  | ||||||
|       from_secret: smtp_username |  | ||||||
|     SMTP_PASSWORD: |  | ||||||
|       from_secret: smtp_password |  | ||||||
|   image: git.cryptic.systems/volker.raschek/drone-email:0.1.5 |  | ||||||
|   resources: |  | ||||||
|     limits: |  | ||||||
|       cpu: 150 |  | ||||||
|       memory: 150M |  | ||||||
|   when: |  | ||||||
|     status: |  | ||||||
|     - changed |  | ||||||
|     - failure |  | ||||||
|  |  | ||||||
| trigger: |  | ||||||
|   event: |  | ||||||
|     exclude: |  | ||||||
|     - tag |  | ||||||
|  |  | ||||||
| --- |  | ||||||
| kind: pipeline |  | ||||||
| type: kubernetes |  | ||||||
| name: Unit tests |  | ||||||
|  |  | ||||||
| clone: |  | ||||||
|   disable: true |  | ||||||
|  |  | ||||||
| platform: |  | ||||||
|   os: linux |  | ||||||
|   arch: amd64 |  | ||||||
|  |  | ||||||
| steps: |  | ||||||
| - name: clone repository |  | ||||||
|   image: git.cryptic.systems/volker.raschek/git:1.4.0 |  | ||||||
|  |  | ||||||
| - name: helm unittest |  | ||||||
|   commands: |  | ||||||
|   - helm unittest --strict --file 'unittests/**/*.yaml' ./ |  | ||||||
|   image: git.cryptic.systems/volker.raschek/helm:3.16.1 |  | ||||||
|   resources: |  | ||||||
|     limits: |  | ||||||
|       cpu: 150 |  | ||||||
|       memory: 150M |  | ||||||
|  |  | ||||||
| - name: email-notification |  | ||||||
|   environment: |  | ||||||
|     SMTP_FROM_ADDRESS: |  | ||||||
|       from_secret: smtp_from_address |  | ||||||
|     SMTP_FROM_NAME: |  | ||||||
|       from_secret: smtp_from_name |  | ||||||
|     SMTP_HOST: |  | ||||||
|       from_secret: smtp_host |  | ||||||
|     SMTP_USERNAME: |  | ||||||
|       from_secret: smtp_username |  | ||||||
|     SMTP_PASSWORD: |  | ||||||
|       from_secret: smtp_password |  | ||||||
|   image: git.cryptic.systems/volker.raschek/drone-email:0.1.5 |  | ||||||
|   resources: |  | ||||||
|     limits: |  | ||||||
|       cpu: 150 |  | ||||||
|       memory: 150M |  | ||||||
|   when: |  | ||||||
|     status: |  | ||||||
|     - changed |  | ||||||
|     - failure |  | ||||||
|  |  | ||||||
| trigger: |  | ||||||
|   event: |  | ||||||
|     exclude: |  | ||||||
|     - tag |  | ||||||
|  |  | ||||||
| --- |  | ||||||
| kind: pipeline |  | ||||||
| type: kubernetes |  | ||||||
| name: Generate README.md |  | ||||||
|  |  | ||||||
| clone: |  | ||||||
|   disable: true |  | ||||||
|  |  | ||||||
| platform: |  | ||||||
|   os: linux |  | ||||||
|   arch: amd64 |  | ||||||
|  |  | ||||||
| steps: |  | ||||||
| - name: clone repository |  | ||||||
|   image: git.cryptic.systems/volker.raschek/git:1.4.0 |  | ||||||
|  |  | ||||||
| - name: generate README |  | ||||||
|   commands: |  | ||||||
|   - npm install |  | ||||||
|   - npm run readme:parameters |  | ||||||
|   - npm run readme:lint |  | ||||||
|   image: docker.io/library/node:22.11.0-alpine |  | ||||||
|   resources: |  | ||||||
|     limits: |  | ||||||
|       cpu: 150 |  | ||||||
|       memory: 150M |  | ||||||
|  |  | ||||||
| - name: detect diff |  | ||||||
|   commands: |  | ||||||
|   - git diff --exit-code --name-only README.md |  | ||||||
|   image: git.cryptic.systems/volker.raschek/git:1.4.0 |  | ||||||
|  |  | ||||||
| - name: email-notification |  | ||||||
|   environment: |  | ||||||
|     SMTP_FROM_ADDRESS: |  | ||||||
|       from_secret: smtp_from_address |  | ||||||
|     SMTP_FROM_NAME: |  | ||||||
|       from_secret: smtp_from_name |  | ||||||
|     SMTP_HOST: |  | ||||||
|       from_secret: smtp_host |  | ||||||
|     SMTP_USERNAME: |  | ||||||
|       from_secret: smtp_username |  | ||||||
|     SMTP_PASSWORD: |  | ||||||
|       from_secret: smtp_password |  | ||||||
|   image: git.cryptic.systems/volker.raschek/drone-email:0.1.5 |  | ||||||
|   resources: |  | ||||||
|     limits: |  | ||||||
|       cpu: 150 |  | ||||||
|       memory: 150M |  | ||||||
|   when: |  | ||||||
|     status: |  | ||||||
|     - changed |  | ||||||
|     - failure |  | ||||||
|  |  | ||||||
| trigger: |  | ||||||
|   event: |  | ||||||
|     exclude: |  | ||||||
|     - tag |  | ||||||
|  |  | ||||||
| --- |  | ||||||
| kind: pipeline |  | ||||||
| type: kubernetes |  | ||||||
| name: Release |  | ||||||
|  |  | ||||||
| clone: |  | ||||||
|   disable: true |  | ||||||
|  |  | ||||||
| platform: |  | ||||||
|   os: linux |  | ||||||
|  |  | ||||||
| steps: |  | ||||||
| - name: clone repository |  | ||||||
|   image: git.cryptic.systems/volker.raschek/git:1.4.0 |  | ||||||
|  |  | ||||||
| - name: release-helm-chart |  | ||||||
|   commands: |  | ||||||
|   - helm repo add prometheus-exporters https://charts.cryptic.systems/prometheus-exporters |  | ||||||
|   - helm package --version ${DRONE_TAG} . |  | ||||||
|   - helm cm-push ${DRONE_REPO_NAME}-${DRONE_TAG}.tgz prometheus-exporters |  | ||||||
|   environment: |  | ||||||
|     HELM_REPO_PASSWORD: |  | ||||||
|       from_secret: helm_repo_password |  | ||||||
|     HELM_REPO_USERNAME: |  | ||||||
|       from_secret: helm_repo_username |  | ||||||
|   image: git.cryptic.systems/volker.raschek/helm:3.16.1 |  | ||||||
|   resources: |  | ||||||
|     limits: |  | ||||||
|       cpu: 150 |  | ||||||
|       memory: 150M |  | ||||||
|  |  | ||||||
| trigger: |  | ||||||
|   event: |  | ||||||
|   - tag |  | ||||||
|   repo: |  | ||||||
|   - volker.raschek/prometheus-postgres-exporter |  | ||||||
							
								
								
									
										30
									
								
								.gitea/workflows/generate-readme.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								.gitea/workflows/generate-readme.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | |||||||
|  | name: Generate README | ||||||
|  |  | ||||||
|  | on: | ||||||
|  |   pull_request: | ||||||
|  |     paths: [ "README.md", "values.yaml" ] | ||||||
|  |     types: [ "opened", "reopened", "synchronize" ] | ||||||
|  |   push: | ||||||
|  |     paths: [ "README.md", "values.yaml" ] | ||||||
|  |     tags-ignore: | ||||||
|  |     - '**' | ||||||
|  |   workflow_dispatch: {} | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   generate-parameters: | ||||||
|  |     container: | ||||||
|  |       image: docker.io/library/node:23.6.0-alpine | ||||||
|  |     runs-on: | ||||||
|  |     - ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |     - name: Install tooling | ||||||
|  |       run: | | ||||||
|  |         apk update | ||||||
|  |         apk add git npm | ||||||
|  |     - uses: actions/checkout@v4.2.2 | ||||||
|  |     - name: Generate parameter section in README | ||||||
|  |       run: | | ||||||
|  |         npm install | ||||||
|  |         npm run readme:parameters | ||||||
|  |     - name: Compare diff | ||||||
|  |       run: git diff --exit-code --name-only README.md | ||||||
							
								
								
									
										40
									
								
								.gitea/workflows/helm.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								.gitea/workflows/helm.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,40 @@ | |||||||
|  | name: Helm | ||||||
|  |  | ||||||
|  | on: | ||||||
|  |   pull_request: | ||||||
|  |     types: [ "opened", "reopened", "synchronize" ] | ||||||
|  |   push: | ||||||
|  |     tags-ignore: | ||||||
|  |     - '**' | ||||||
|  |   workflow_dispatch: {} | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   helm-lint: | ||||||
|  |     container: | ||||||
|  |       image: docker.io/volkerraschek/helm:3.16.4 | ||||||
|  |     runs-on: | ||||||
|  |     - ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |     - name: Install tooling | ||||||
|  |       run: | | ||||||
|  |         apk update | ||||||
|  |         apk add git npm | ||||||
|  |     - uses: actions/checkout@v4.2.2 | ||||||
|  |     - name: Lint helm files | ||||||
|  |       run: | | ||||||
|  |         helm lint --values values.yaml . | ||||||
|  |  | ||||||
|  |   helm-unittest: | ||||||
|  |     container: | ||||||
|  |       image: docker.io/volkerraschek/helm:3.16.4 | ||||||
|  |     runs-on: | ||||||
|  |     - ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |     - name: Install tooling | ||||||
|  |       run: | | ||||||
|  |         apk update | ||||||
|  |         apk add git npm | ||||||
|  |     - uses: actions/checkout@v4.2.2 | ||||||
|  |     - name: Unittest | ||||||
|  |       run: | | ||||||
|  |         helm unittest --strict --file 'unittests/**/*.yaml' ./ | ||||||
							
								
								
									
										44
									
								
								.gitea/workflows/markdown-linters.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								.gitea/workflows/markdown-linters.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | |||||||
|  | name: Markdown linter | ||||||
|  |  | ||||||
|  | on: | ||||||
|  |   pull_request: | ||||||
|  |     paths: [ "**/*.md" ] | ||||||
|  |     types: [ "opened", "reopened", "synchronize" ] | ||||||
|  |   push: | ||||||
|  |     paths: [ "**/*.md" ] | ||||||
|  |     tags-ignore: | ||||||
|  |     - '**' | ||||||
|  |   workflow_dispatch: {} | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   markdown-link-checker: | ||||||
|  |     container: | ||||||
|  |       image: docker.io/library/node:23.6.0-alpine | ||||||
|  |     runs-on: | ||||||
|  |     - ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |     - name: Install tooling | ||||||
|  |       run: | | ||||||
|  |         apk update | ||||||
|  |         apk add git npm | ||||||
|  |     - uses: actions/checkout@v4.2.2 | ||||||
|  |     - name: Verify links in markdown files | ||||||
|  |       run: | | ||||||
|  |         npm install | ||||||
|  |         npm run readme:link | ||||||
|  |  | ||||||
|  |   markdown-lint: | ||||||
|  |     container: | ||||||
|  |       image: docker.io/library/node:23.6.0-alpine | ||||||
|  |     runs-on: | ||||||
|  |     - ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |     - name: Install tooling | ||||||
|  |       run: | | ||||||
|  |         apk update | ||||||
|  |         apk add git | ||||||
|  |     - uses: actions/checkout@v4.2.2 | ||||||
|  |     - name: Lint markdown files | ||||||
|  |       run: | | ||||||
|  |         npm install | ||||||
|  |         npm run readme:lint | ||||||
							
								
								
									
										46
									
								
								.gitea/workflows/release.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								.gitea/workflows/release.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | |||||||
|  | name: Release | ||||||
|  |  | ||||||
|  | on: | ||||||
|  |   push: | ||||||
|  |     tags: | ||||||
|  |     - "**" | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   publish-chart: | ||||||
|  |     container: | ||||||
|  |       image: docker.io/volkerraschek/helm:3.16.4 | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - name: Install tooling | ||||||
|  |         run: | | ||||||
|  |           apk update | ||||||
|  |           apk add git npm | ||||||
|  |       - uses: actions/checkout@v4 | ||||||
|  |       - name: Package chart | ||||||
|  |         env: | ||||||
|  |           HELM_REPO_NAME: upload | ||||||
|  |  | ||||||
|  |           CHARTMUSEUM_PASSWORD: ${{ secrets.CHARTMUSEUM_PASSWORD }} | ||||||
|  |           CHARTMUSEUM_REPOSITORY: ${{ vars.CHARTMUSEUM_REPOSITORY }} | ||||||
|  |           CHARTMUSEUM_USERNAME: ${{ secrets.CHARTMUSEUM_USERNAME }} | ||||||
|  |           CHARTMUSEUM_HOSTNAME: ${{ vars.CHARTMUSEUM_HOSTNAME }} | ||||||
|  |  | ||||||
|  |           GITEA_PACKAGE_REGISTRY_TOKEN: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }} | ||||||
|  |           GITEA_SERVER_URL: ${{ github.server_url }} | ||||||
|  |         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 cm-push ${REPOSITORY_NAME}-${PACKAGE_VERSION}.tgz chartmuseum | ||||||
|  |           helm repo remove chartmuseum | ||||||
|  |  | ||||||
|  |           # gitea | ||||||
|  |           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 repo remove gitea | ||||||
							
								
								
									
										21
									
								
								.helmignore
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								.helmignore
									
									
									
									
									
								
							| @@ -26,7 +26,7 @@ | |||||||
| .vscode/ | .vscode/ | ||||||
|  |  | ||||||
| # drone | # drone | ||||||
| .drone.ya?ml | .drone.yml | ||||||
|  |  | ||||||
| # editorconfig | # editorconfig | ||||||
| .editorconfig | .editorconfig | ||||||
| @@ -37,13 +37,24 @@ values2.yaml | |||||||
|  |  | ||||||
| # helm packages | # helm packages | ||||||
| *.tgz | *.tgz | ||||||
|  | .helmignore | ||||||
|  | unittests | ||||||
|  |  | ||||||
| # markdownlint | # markdownlint | ||||||
| .markdownlint.yml | .markdownlint.yml | ||||||
| .markdownlint.yaml | .markdownlint.yaml | ||||||
|  | .markdownlintignore | ||||||
|  |  | ||||||
| # maven | # npm | ||||||
| target | .prettierignore | ||||||
|  | .npmrc | ||||||
|  | package* | ||||||
|  |  | ||||||
| # serviceDescriptor (uctl-cluster) | # yamllint | ||||||
| serviceDescriptor.yaml | .yamllint.yaml | ||||||
|  |  | ||||||
|  | # Others | ||||||
|  | CONTRIBUTING.md | ||||||
|  | CODEOWNERS | ||||||
|  | Makefile | ||||||
|  | renovate.json | ||||||
|   | |||||||
| @@ -128,16 +128,18 @@ MD044: | |||||||
|   # List of proper names |   # List of proper names | ||||||
|   names: |   names: | ||||||
|     - Git |     - Git | ||||||
|     - Gitea |  | ||||||
|     - GitDevOps |     - GitDevOps | ||||||
|  |     - Gitea | ||||||
|     - GitHub |     - GitHub | ||||||
|     - GitLab |     - GitLab | ||||||
|     - GitOps |     - GitOps | ||||||
|  |     - kube-prometheus-stack | ||||||
|     - Memcached |     - Memcached | ||||||
|     - Oracle |     - Oracle | ||||||
|     - ORBIS U |     - ORBIS U | ||||||
|     - PostgreSQL |     - PostgreSQL | ||||||
|     - Prometheus |     - Prometheus | ||||||
|  |     - prometheus-exporter | ||||||
|     - SSL |     - SSL | ||||||
|     - TLS |     - TLS | ||||||
|   # Include code blocks |   # Include code blocks | ||||||
|   | |||||||
| @@ -1 +1,82 @@ | |||||||
| # Contribution Guidelines | # Contributing | ||||||
|  |  | ||||||
|  | I am very happy if you would like to provide a pull request 👍 | ||||||
|  |  | ||||||
|  | The content of this file describes which requirements contributors should fulfill before submitting a pull request (PR). | ||||||
|  |  | ||||||
|  | 1. [Valid Git commits](#valid-git-commits) | ||||||
|  |  | ||||||
|  | ## Valid Git commits | ||||||
|  |  | ||||||
|  | ### Commit message | ||||||
|  |  | ||||||
|  | The repository is subject to a strict commit message template. This states that there are several types of commits. For | ||||||
|  | example, `fix`, `chore`, `refac`, `test` or `doc`. All types are described in more detail below. | ||||||
|  |  | ||||||
|  | | type                | description                                                       | | ||||||
|  | | ------------------- | ----------------------------------------------------------------- | | ||||||
|  | | `feat`              | New feature.                                                      | | ||||||
|  | | `fix`               | Fixes a bug.                                                      | | ||||||
|  | | `refac`             | Refactoring production code.                                      | | ||||||
|  | | `style`             | Fixes formatting issues. No production code change.               | | ||||||
|  | | `docs`              | Adapt documentation. No production code change.                   | | ||||||
|  | | `test`              | Adds new or modifies existing tests. No production code change.   | | ||||||
|  | | `chore`             | Updating grunt tasks. Is everything which the user does not see.  | | ||||||
|  |  | ||||||
|  | Based on these types, commit messaged can then be created. Here are a few examples: | ||||||
|  |  | ||||||
|  | ```text | ||||||
|  | style(README): Wrong indentation | ||||||
|  | feat(deployment): support restartPolicy | ||||||
|  | fix(my-app): Add missing volume | ||||||
|  | docs(CONTRIBUTING): Describe how to commit correctly | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | This type of commit message makes it easier for me as maintainer to keep an overview and does not cause the commits of a | ||||||
|  | pull request PR to be combined into one commit (squashing). | ||||||
|  |  | ||||||
|  | ### Smart commits | ||||||
|  |  | ||||||
|  | Smart commits are excellent when it comes to tracking bugs or issues. In this repository, however, the rebasing of | ||||||
|  | commits is prohibited, which means that only merge commits are possible. This means that a smart commit message only | ||||||
|  | needs to be added to the merge commit. | ||||||
|  |  | ||||||
|  | This has the advantage that the maintainer can use the smart commit to find the merge commit and undo the entire history | ||||||
|  | of a merge without having to select individual commits. The following history illustrates the correct use of smart commits. | ||||||
|  |  | ||||||
|  | ```text | ||||||
|  | * 823edbc7 Volker Raschek (G) | [Close #2] feat(deployment): support additional containers | ||||||
|  | |\ | ||||||
|  | | * 321aebc3 Volker Raschek (G) | doc(README): generate README with new deployment attributes | ||||||
|  | | * 8d101dd3 Volker Raschek (G) | test(deployment): Extend unittest of additional containers | ||||||
|  | | * 6f2abd93 Volker Raschek (G) | fix(deployment): Extend deployment of additional containers | ||||||
|  | |/ | ||||||
|  | * aa5ebda bob (N) | [Close #1] feat(deployment): support initContainers | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ### Commit signing | ||||||
|  |  | ||||||
|  | Another problem with Git is the chain of trust. Git allows the configuration of any name and e-mail address. An attacker | ||||||
|  | can impersonate any person and submit pull requests under a false identity. For as Linux Torvalds, the maintainer of the | ||||||
|  | Linux kernel. | ||||||
|  |  | ||||||
|  | ```bash | ||||||
|  | git config --global user.name 'Linux Torvalds' | ||||||
|  | git config --global user.email 'torvalds@linux-foundation.org' | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | To avoid this, some Git repositories expect signed commits. In particular, repositories that are subject to direct | ||||||
|  | delivery to customers. For this reason, the repository is subject to a branch protection rule that only allows signed | ||||||
|  | commits. *Until* there is *no verified* and *no signed* commit, the pull request is blocked. | ||||||
|  |  | ||||||
|  | The following articles describes how Git can be configured to sign commits. Please keep in mind, that the e-mail | ||||||
|  | address, which is used as UID of the GPG keyring must also be defined in the profile settings of your GitHub account. | ||||||
|  | Otherwise will be marked the Git commit as *Unverified*. | ||||||
|  |  | ||||||
|  | 1. [Signing Commits](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits) | ||||||
|  | 2. [Tell Git about your signing key](https://docs.github.com/en/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key) | ||||||
|  |  | ||||||
|  | Inspect your Git commit via `git log`. There should be mentioned, that your commit is signed. | ||||||
|  |  | ||||||
|  | Furthermore, the GPG key is unique. **Don't loose your private GPG key**. Backup your private key on a safe device. For | ||||||
|  | example an external USB drive. | ||||||
|   | |||||||
							
								
								
									
										63
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										63
									
								
								Makefile
									
									
									
									
									
								
							| @@ -3,43 +3,49 @@ 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.16.1 # renovate: datasource=docker registryUrl=https://docker.io depName=volkerraschek/helm | ||||||
| HELM_IMAGE_FULLY_QUALIFIED=${HELM_IMAGE_REGISTRY_HOST}/${HELM_IMAGE_REPOSITORY}:${HELM_IMAGE_VERSION} | HELM_IMAGE_FULLY_QUALIFIED=${HELM_IMAGE_REGISTRY_HOST}/${HELM_IMAGE_REPOSITORY}:${HELM_IMAGE_VERSION} | ||||||
|  |  | ||||||
| # MARKDOWNLINKCHECKER_IMAGE |  | ||||||
| MARKDOWNLINKCHECK_IMAGE_REGISTRY_HOST?=ghcr.io |  | ||||||
| MARKDOWNLINKCHECK_IMAGE_REPOSITORY=tcort/markdown-link-check |  | ||||||
| MARKDOWNLINKCHECK_IMAGE_VERSION?=3.12.2 # renovate: datasource=docker registryUrl=https://ghcr.io depName=tcort/markdown-link-check |  | ||||||
| MARKDOWNLINKCHECK_IMAGE_FULLY_QUALIFIED=${MARKDOWNLINT_IMAGE_REGISTRY_HOST}/${MARKDOWNLINT_IMAGE_REPOSITORY}:${MARKDOWNLINT_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?=22.9.0-alpine # renovate: datasource=docker registryUrl=https://docker.io depName=library/node | ||||||
| NODE_IMAGE_FULLY_QUALIFIED=${NODE_IMAGE_REGISTRY_HOST}/${NODE_IMAGE_REPOSITORY}:${NODE_IMAGE_VERSION} | NODE_IMAGE_FULLY_QUALIFIED=${NODE_IMAGE_REGISTRY_HOST}/${NODE_IMAGE_REPOSITORY}:${NODE_IMAGE_VERSION} | ||||||
|  |  | ||||||
| # CHART_SERVER |  | ||||||
| CHART_SERVER_HOST?=charts.u.orbis-healthcare.com |  | ||||||
| CHART_SERVER_NAMESPACE?=orbis-u |  | ||||||
| CHART_SERVER_REPOSITORY?=qu-seed |  | ||||||
| CHART_VERSION?=0.1.0 |  | ||||||
|  |  | ||||||
| # MISSING DOT | # MISSING DOT | ||||||
| # ============================================================================== | # ============================================================================== | ||||||
| missing-dot: | missing-dot: | ||||||
| 	grep --perl-regexp '## @(param|skip).*[^.]$$' values.yaml | 	grep --perl-regexp '## @(param|skip).*[^.]$$' values.yaml | ||||||
|  |  | ||||||
| # CONTAINER RUN - PREPARE ENVIRONMENT | # CONTAINER RUN - README | ||||||
| # ============================================================================== | # ============================================================================== | ||||||
| PHONY+=container-run/readme | PHONY+=container-run/readme | ||||||
| container-run/readme: | container-run/readme: container-run/readme/link container-run/readme/lint container-run/readme/parameters | ||||||
|  |  | ||||||
|  | container-run/readme/link: | ||||||
| 	${CONTAINER_RUNTIME} run \ | 	${CONTAINER_RUNTIME} run \ | ||||||
| 		--rm \ | 		--rm \ | ||||||
| 		--volume $(shell pwd):$(shell pwd) \ | 		--volume $(shell pwd):$(shell pwd) \ | ||||||
| 		--workdir $(shell pwd) \ | 		--workdir $(shell pwd) \ | ||||||
| 			${NODE_IMAGE_FULLY_QUALIFIED} \ | 			${NODE_IMAGE_FULLY_QUALIFIED} \ | ||||||
| 				npm install && npm run readme:parameters && npm run readme:lint | 				npm install && npm run readme:link | ||||||
|  |  | ||||||
|  | container-run/readme/lint: | ||||||
|  | 	${CONTAINER_RUNTIME} run \ | ||||||
|  | 		--rm \ | ||||||
|  | 		--volume $(shell pwd):$(shell pwd) \ | ||||||
|  | 		--workdir $(shell pwd) \ | ||||||
|  | 			${NODE_IMAGE_FULLY_QUALIFIED} \ | ||||||
|  | 				npm install && npm run readme:lint | ||||||
|  |  | ||||||
|  | container-run/readme/parameters: | ||||||
|  | 	${CONTAINER_RUNTIME} run \ | ||||||
|  | 		--rm \ | ||||||
|  | 		--volume $(shell pwd):$(shell pwd) \ | ||||||
|  | 		--workdir $(shell pwd) \ | ||||||
|  | 			${NODE_IMAGE_FULLY_QUALIFIED} \ | ||||||
|  | 				npm install && npm run readme:parameters | ||||||
|  |  | ||||||
| # CONTAINER RUN - HELM UNITTESTS | # CONTAINER RUN - HELM UNITTESTS | ||||||
| # ============================================================================== | # ============================================================================== | ||||||
| @@ -67,19 +73,6 @@ container-run/helm-update-dependencies: | |||||||
| 			${HELM_IMAGE_FULLY_QUALIFIED} \ | 			${HELM_IMAGE_FULLY_QUALIFIED} \ | ||||||
| 				dependency update | 				dependency update | ||||||
|  |  | ||||||
| # CONTAINER RUN - DEPLOY2CHART-REPO |  | ||||||
| # ============================================================================== |  | ||||||
| container-run/deploy2chart-repo: |  | ||||||
| 	${CONTAINER_RUNTIME} run \ |  | ||||||
| 		--env HELM_REPO_PASSWORD=${CHART_SERVER_PASSWORD} \ |  | ||||||
| 		--env HELM_REPO_USERNAME=${CHART_SERVER_USERNAME} \ |  | ||||||
| 		--entrypoint /bin/bash \ |  | ||||||
| 		--rm \ |  | ||||||
| 		--volume $(shell pwd):$(shell pwd) \ |  | ||||||
| 		--workdir $(shell pwd) \ |  | ||||||
| 			${HELM_IMAGE_FULLY_QUALIFIED} \ |  | ||||||
| 				-c "helm repo add ${CHART_SERVER_NAMESPACE} http://${CHART_SERVER_HOST}/${CHART_SERVER_NAMESPACE} && helm package --version ${CHART_VERSION} . && helm cm-push ./${CHART_SERVER_REPOSITORY}-${CHART_VERSION}.tgz ${CHART_SERVER_NAMESPACE}" |  | ||||||
|  |  | ||||||
| # CONTAINER RUN - MARKDOWN-LINT | # CONTAINER RUN - MARKDOWN-LINT | ||||||
| # ============================================================================== | # ============================================================================== | ||||||
| PHONY+=container-run/helm-lint | PHONY+=container-run/helm-lint | ||||||
| @@ -91,16 +84,6 @@ container-run/helm-lint: | |||||||
| 		${HELM_IMAGE_FULLY_QUALIFIED} \ | 		${HELM_IMAGE_FULLY_QUALIFIED} \ | ||||||
| 			lint --values values.yaml . | 			lint --values values.yaml . | ||||||
|  |  | ||||||
| # CONTAINER RUN - MARKDOWN-LINK-CHECK |  | ||||||
| # ============================================================================== |  | ||||||
| PHONY+=container-run/markdown-link-check |  | ||||||
| container-run/markdown-link-check: |  | ||||||
| 	${CONTAINER_RUNTIME} run \ |  | ||||||
| 		--rm \ |  | ||||||
| 		--volume $(shell pwd):/work \ |  | ||||||
| 		${MARKDOWNLINKCHECK_IMAGE_FULLY_QUALIFIED} \ |  | ||||||
| 			*.md |  | ||||||
|  |  | ||||||
| # PHONY | # PHONY | ||||||
| # ============================================================================== | # ============================================================================== | ||||||
| # Declare the contents of the PHONY variable as phony. We keep that information | # Declare the contents of the PHONY variable as phony. We keep that information | ||||||
|   | |||||||
							
								
								
									
										93
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										93
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,6 +1,7 @@ | |||||||
| # Prometheus PostgreSQL exporter | # Prometheus PostgreSQL exporter | ||||||
|  |  | ||||||
| [](https://drone.cryptic.systems/volker.raschek/prometheus-postgres-exporter) | [](https://drone.cryptic.systems/volker.raschek/prometheus-postgres-exporter) | ||||||
|  | [](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. You can | ||||||
| @@ -45,7 +46,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 | ||||||
| helm show values prometheus-exporters/prometheus-postgres-exporter --version 0.1.0 > values.yaml | CHART_VERSION=0.1.0 | ||||||
|  | helm show values prometheus-exporters/prometheus-postgres-exporter --version "${CHART_VERSION}" > 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: | ||||||
| @@ -61,7 +63,36 @@ for customizations. These can be configured in more detail via `values.yaml`. | |||||||
|  |  | ||||||
| The following examples serve as individual configurations and as inspiration for how deployment problems can be solved. | The following examples serve as individual configurations and as inspiration for how deployment problems can be solved. | ||||||
|  |  | ||||||
| ### TLS authentication and encryption | #### Avoid CPU throttling by defining a CPU limit | ||||||
|  |  | ||||||
|  | If the application is deployed with a CPU resource limit, Prometheus may throw a CPU throttling warning for the | ||||||
|  | application. This has more or less to do with the fact that the application finds the number of CPUs of the host, but | ||||||
|  | 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 | ||||||
|  | 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 | ||||||
|  | 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/). | ||||||
|  |  | ||||||
|  | > [!NOTE] | ||||||
|  | > The environment variable `GOMAXPROCS` is set automatically, when a CPU limit is defined. An explicit configuration is | ||||||
|  | > not anymore required. | ||||||
|  |  | ||||||
|  | ```bash | ||||||
|  | helm install prometheus-postgres-exporter prometheus-exporters/prometheus-postgres-exporter \ | ||||||
|  |   --set 'config.database.secret.databaseUsername=postgres' \ | ||||||
|  |   --set 'config.database.secret.databasePassword=postgres' \ | ||||||
|  |   --set 'config.database.secret.databaseConnectionUrl="postgres.example.local:5432/postgres?ssl=disable"' \ | ||||||
|  |   --set 'prometheus.metrics.enabled=true' \ | ||||||
|  |   --set 'prometheus.metrics.serviceMonitor.enabled=true' \ | ||||||
|  |   --set 'deployment.postgresExporter.env.name=GOMAXPROCS' \ | ||||||
|  |   --set 'deployment.postgresExporter.env.valueFrom.resourceFieldRef.resource=limits.cpu' \ | ||||||
|  |   --set 'deployment.postgresExporter.resources.limits.cpu=100m' | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | #### TLS authentication and encryption | ||||||
|  |  | ||||||
| The first example shows how to deploy the metric exporter with TLS encryption. The verification of the custom TLS | The first example shows how to deploy the metric exporter with TLS encryption. The verification of the custom TLS | ||||||
| certification will be skipped by Prometheus. | certification will be skipped by Prometheus. | ||||||
| @@ -115,6 +146,47 @@ replaced: | |||||||
| +   --set 'prometheus.metrics.serviceMonitor.tlsConfig.keyFile=/etc/prometheus/tls/tls.key' | +   --set 'prometheus.metrics.serviceMonitor.tlsConfig.keyFile=/etc/prometheus/tls/tls.key' | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
|  | #### Grafana dashboard | ||||||
|  |  | ||||||
|  | The helm chart includes Grafana dashboards. These can be deployed as a configMap by activating Grafana integration. It | ||||||
|  | is assumed that the dashboard is consumed by Grafana or a sidecar container itself and that the dashboard is stored in | ||||||
|  | the Grafana container file system so that it is subsequently available to the user. The | ||||||
|  | [kube-prometheus-stack](https://artifacthub.io/packages/helm/prometheus-community/kube-prometheus-stack) deployment | ||||||
|  | makes this possible. | ||||||
|  |  | ||||||
|  | ```bash | ||||||
|  | helm install prometheus-postgres-exporter prometheus-exporters/prometheus-postgres-exporter \ | ||||||
|  |   --set 'config.database.secret.databaseUsername=postgres' \ | ||||||
|  |   --set 'config.database.secret.databasePassword=postgres' \ | ||||||
|  |   --set 'config.database.secret.databaseConnectionUrl="postgres.example.local:5432/postgres?ssl=disable"' \ | ||||||
|  |   --set 'grafana.enabled=true' | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | #### Avoid deploying on same node / bare metal host as PostgresDB | ||||||
|  |  | ||||||
|  | As a best practice, avoid running the postgres-exporter on the same node / bare-metal host as the PostgresDB. This is | ||||||
|  | because if the postgres-exporter is running on the same node and this node fails, Prometheus can send an alert about the | ||||||
|  | failure of the node or that the postgres-exporter cannot be reached. However, it is not possible to react based on the | ||||||
|  | metrics that the postgres-exporter explicitly provides. Depending on the configuration of alerts, this may mean that the | ||||||
|  | corresponding notifications are not sent to the right person or group of people. | ||||||
|  |  | ||||||
|  | The following example prevent the postgres-exporter from running on nodes with a PostgresDB. The PostgresDB nodes has an | ||||||
|  | additional label `database=postgres`. The configuration is carried out in `values.yaml`. | ||||||
|  |  | ||||||
|  | ```yaml | ||||||
|  | deployment: | ||||||
|  |   affinity: | ||||||
|  |     nodeAffinity: | ||||||
|  |       preferredDuringSchedulingIgnoredDuringExecution: | ||||||
|  |       - weight: 100 | ||||||
|  |         preference: | ||||||
|  |           matchExpressions: | ||||||
|  |           - key: database | ||||||
|  |             operator: NotIn | ||||||
|  |             values: | ||||||
|  |             - postgres | ||||||
|  | ``` | ||||||
|  |  | ||||||
| ## Parameters | ## Parameters | ||||||
|  |  | ||||||
| ### Global | ### Global | ||||||
| @@ -151,7 +223,7 @@ replaced: | |||||||
| | Name                                               | Description                                                                                                | Value                                   | | | Name                                               | Description                                                                                                | Value                                   | | ||||||
| | -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | --------------------------------------- | | | -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | --------------------------------------- | | ||||||
| | `deployment.annotations`                           | Additional deployment annotations.                                                                         | `{}`                                    | | | `deployment.annotations`                           | Additional deployment annotations.                                                                         | `{}`                                    | | ||||||
| | `deployment.labels`                                | Additional ingress labels.                                                                                 | `{}`                                    | | | `deployment.labels`                                | Additional deployment labels.                                                                              | `{}`                                    | | ||||||
| | `deployment.additionalContainers`                  | List of additional containers.                                                                             | `[]`                                    | | | `deployment.additionalContainers`                  | List of additional containers.                                                                             | `[]`                                    | | ||||||
| | `deployment.affinity`                              | Affinity for the postgres-exporter deployment.                                                             | `{}`                                    | | | `deployment.affinity`                              | Affinity for the postgres-exporter deployment.                                                             | `{}`                                    | | ||||||
| | `deployment.initContainers`                        | List of additional init containers.                                                                        | `[]`                                    | | | `deployment.initContainers`                        | List of additional init containers.                                                                        | `[]`                                    | | ||||||
| @@ -173,7 +245,7 @@ replaced: | |||||||
| | `deployment.postgresExporter.volumeMounts`         | Additional volume mounts.                                                                                  | `[]`                                    | | | `deployment.postgresExporter.volumeMounts`         | Additional volume mounts.                                                                                  | `[]`                                    | | ||||||
| | `deployment.nodeSelector`                          | NodeSelector of the postgres-exporter deployment.                                                          | `{}`                                    | | | `deployment.nodeSelector`                          | NodeSelector of the postgres-exporter deployment.                                                          | `{}`                                    | | ||||||
| | `deployment.priorityClassName`                     | PriorityClassName of the postgres-exporter deployment.                                                     | `""`                                    | | | `deployment.priorityClassName`                     | PriorityClassName of the postgres-exporter deployment.                                                     | `""`                                    | | ||||||
| | `deployment.replicaCount`                          | 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`.                                                             | `Recreate`                              | | ||||||
| @@ -182,14 +254,17 @@ replaced: | |||||||
| | `deployment.terminationGracePeriodSeconds`         | How long to wait until forcefully kill the pod.                                                            | `60`                                    | | | `deployment.terminationGracePeriodSeconds`         | How long to wait until forcefully kill the pod.                                                            | `60`                                    | | ||||||
| | `deployment.tolerations`                           | Tolerations of the postgres-exporter deployment.                                                           | `[]`                                    | | | `deployment.tolerations`                           | Tolerations of the postgres-exporter deployment.                                                           | `[]`                                    | | ||||||
| | `deployment.topologySpreadConstraints`             | TopologySpreadConstraints of the postgres-exporter deployment.                                             | `[]`                                    | | | `deployment.topologySpreadConstraints`             | TopologySpreadConstraints of the postgres-exporter deployment.                                             | `[]`                                    | | ||||||
| | `deployment.volumes`                               | Additional volumes to mount into the pods of the Prometheus-exporter deployment.                           | `[]`                                    | | | `deployment.volumes`                               | Additional volumes to mount into the pods of the prometheus-exporter deployment.                           | `[]`                                    | | ||||||
|  |  | ||||||
| ### Grafana | ### Grafana | ||||||
|  |  | ||||||
| | Name                                 | Description                                               | Value   | | | Name                                              | Description                                                                                              | Value       | | ||||||
| | ------------------------------------ | --------------------------------------------------------- | ------- | | | ------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | ----------- | | ||||||
| | `grafana.enabled`                    | Enable integration into Grafana.                          | `false` | | | `grafana.enabled`                                 | Enable integration into Grafana. Require the Prometheus operator deployment.                             | `false`     | | ||||||
| | `grafana.dashboards.businessMetrics` | Enable deployment of Grafana dashboard `businessMetrics`. | `true`  | | | `grafana.dashboardDiscoveryLabels`                | Labels that Grafana uses to discover resources. The labels may vary depending on the Grafana deployment. | `undefined` | | ||||||
|  | | `grafana.dashboards.postgresExporter.enabled`     | Enable deployment of Grafana dashboard `postgresExporter`.                                               | `true`      | | ||||||
|  | | `grafana.dashboards.postgresExporter.annotations` | Additional configmap annotations.                                                                        | `{}`        | | ||||||
|  | | `grafana.dashboards.postgresExporter.labels`      | Additional configmap labels.                                                                             | `{}`        | | ||||||
|  |  | ||||||
| ### Ingress | ### Ingress | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										1111
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1111
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "qu-seed-chart", |   "name": "prometheus-postgres-exporter", | ||||||
|   "homepage": "https://github.com/dedalus-cis4u/qu-seed-chart.git", |   "homepage": "https://git.cryptic.systems/volker.raschek/prometheus-postgres-exporter.git", | ||||||
|   "license": "MIT", |   "license": "MIT", | ||||||
|   "private": true, |   "private": true, | ||||||
|   "engineStrict": true, |   "engineStrict": true, | ||||||
| @@ -9,11 +9,13 @@ | |||||||
|     "npm": ">=8.0.0" |     "npm": ">=8.0.0" | ||||||
|   }, |   }, | ||||||
|   "scripts": { |   "scripts": { | ||||||
|  |     "readme:link": "markdown-link-check *.md", | ||||||
|     "readme:lint": "markdownlint *.md -f", |     "readme:lint": "markdownlint *.md -f", | ||||||
|     "readme:parameters": "readme-generator -v values.yaml -r README.md" |     "readme:parameters": "readme-generator -v values.yaml -r README.md" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "@bitnami/readme-generator-for-helm": "^2.5.0", |     "@bitnami/readme-generator-for-helm": "^2.5.0", | ||||||
|     "markdownlint-cli": "^0.41.0" |     "markdown-link-check": "^3.13.6", | ||||||
|  |     "markdownlint-cli": "^0.43.0" | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -11,24 +11,56 @@ | |||||||
|         "appVersion: \"(?<currentValue>.*?)\"\\s+" |         "appVersion: \"(?<currentValue>.*?)\"\\s+" | ||||||
|       ], |       ], | ||||||
|       "datasourceTemplate": "docker", |       "datasourceTemplate": "docker", | ||||||
|       "depNameTemplate": "prometheus-postgres-exporter", |       "depNameTemplate": "prometheuscommunity/postgres-exporter", | ||||||
|       "lookupNameTemplate": "quay.io/prometheuscommunity/postgres-exporter" |       "lookupNameTemplate": "quay.io/prometheuscommunity/postgres-exporter", | ||||||
|  |       "versioningTemplate": "semver" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "description": "Detect helm chart version in README", | ||||||
|  |       "fileMatch": ["^README\\.md$"], | ||||||
|  |       "matchStrings": [ | ||||||
|  |         "^CHART_VERSION=(?<currentValue>.*)$" | ||||||
|  |       ], | ||||||
|  |       "datasourceTemplate": "git-tags", | ||||||
|  |       "depNameTemplate": "volker.raschek/prometheus-postgres-exporter", | ||||||
|  |       "packageNameTemplate": "https://git.cryptic.systems/volker.raschek/prometheus-postgres-exporter", | ||||||
|  |       "versioningTemplate": "semver" | ||||||
|     } |     } | ||||||
|   ], |   ], | ||||||
|   "labels": [ "renovate" ], |   "labels": [ "renovate" ], | ||||||
|   "packageRules": [ |   "packageRules": [ | ||||||
|     { |     { | ||||||
|       "addLabels": [ "renovate/droneci", "renovate/automerge" ], |       "addLabels": [ "renovate/automerge", "renovate/npm" ], | ||||||
|       "automerge": true, |  | ||||||
|       "matchManagers": "droneci", |  | ||||||
|       "matchUpdateTypes": [ "minor", "patch"] |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "addLabels": [ "renovate/markdownlint", "renovate/automerge" ], |  | ||||||
|       "automerge": true, |       "automerge": true, | ||||||
|       "matchPackageNames": [ "markdownlint-cli", "@bitnami/readme-generator-for-helm" ], |       "matchPackageNames": [ "markdownlint-cli", "@bitnami/readme-generator-for-helm" ], | ||||||
|       "matchManagers": [ "npm" ], |       "matchManagers": [ "npm" ], | ||||||
|       "matchUpdateTypes": [ "minor", "patch"] |       "matchUpdateTypes": [ "minor", "patch"] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "addLabels": [ "renovate/automerge", "renovate/container" ], | ||||||
|  |       "automerge": true, | ||||||
|  |       "excludePackagePatterns": [ | ||||||
|  |         "prometheuscommunity/postgres-exporter" | ||||||
|  |       ], | ||||||
|  |       "matchDatasources": [ | ||||||
|  |         "docker" | ||||||
|  |       ], | ||||||
|  |       "matchUpdateTypes": [ | ||||||
|  |         "minor", | ||||||
|  |         "patch" | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "addLabels": [ "renovate/automerge", "renovate/documentation" ], | ||||||
|  |       "automerge": true, | ||||||
|  |       "matchDepNames": [ | ||||||
|  |         "volker.raschek/prometheus-postgres-exporter" | ||||||
|  |       ], | ||||||
|  |       "matchUpdateTypes": [ | ||||||
|  |         "major", | ||||||
|  |         "minor", | ||||||
|  |         "patch" | ||||||
|  |       ] | ||||||
|     } |     } | ||||||
|   ], |   ], | ||||||
|   "rebaseLabel": "renovate/rebase", |   "rebaseLabel": "renovate/rebase", | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								templates/prometheus-postgres-exporter/_configMap.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								templates/prometheus-postgres-exporter/_configMap.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | {{/* vim: set filetype=mustache: */}} | ||||||
|  |  | ||||||
|  | {{/* annotations */}} | ||||||
|  |  | ||||||
|  | {{- define "prometheus-postgres-exporter.configMap.grafanaDashboards.postgresExporter.annotations" -}} | ||||||
|  | {{ include "prometheus-postgres-exporter.annotations" . }} | ||||||
|  | {{- if .Values.grafana.dashboards.postgresExporter.annotations }} | ||||||
|  | {{ toYaml .Values.grafana.dashboards.postgresExporter.annotations }} | ||||||
|  | {{- end }} | ||||||
|  | {{- end }} | ||||||
|  |  | ||||||
|  | {{/* labels */}} | ||||||
|  |  | ||||||
|  | {{- define "prometheus-postgres-exporter.configMap.grafanaDashboards.postgresExporter.labels" -}} | ||||||
|  | {{ include "prometheus-postgres-exporter.labels" . }} | ||||||
|  | {{- if .Values.grafana.dashboards.postgresExporter.labels }} | ||||||
|  | {{ toYaml .Values.grafana.dashboards.postgresExporter.labels }} | ||||||
|  | {{- end }} | ||||||
|  | {{ toYaml .Values.grafana.dashboardDiscoveryLabels }} | ||||||
|  | {{- end }} | ||||||
| @@ -9,6 +9,17 @@ | |||||||
| {{- end }} | {{- end }} | ||||||
| {{- end }} | {{- end }} | ||||||
|  |  | ||||||
|  | {{/* env */}} | ||||||
|  |  | ||||||
|  | {{- define "prometheus-postgres-exporter.deployment.env" -}} | ||||||
|  | {{- $env := dict "env" (.Values.deployment.postgresExporter.env | default (list) ) }} | ||||||
|  | {{- 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"))))) }} | ||||||
|  | {{- end }} | ||||||
|  | {{ toYaml $env }} | ||||||
|  | {{- end -}} | ||||||
|  |  | ||||||
|  |  | ||||||
| {{/* envFrom */}} | {{/* envFrom */}} | ||||||
|  |  | ||||||
| {{- define "prometheus-postgres-exporter.deployment.envFrom" -}} | {{- define "prometheus-postgres-exporter.deployment.envFrom" -}} | ||||||
|   | |||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -12,6 +12,7 @@ metadata: | |||||||
|   name: {{ include "prometheus-postgres-exporter.fullname" . }} |   name: {{ include "prometheus-postgres-exporter.fullname" . }} | ||||||
|   namespace: {{ .Release.Namespace }} |   namespace: {{ .Release.Namespace }} | ||||||
| spec: | spec: | ||||||
|  |   replicas: {{ .Values.deployment.replicas }} | ||||||
|   selector: |   selector: | ||||||
|     matchLabels: |     matchLabels: | ||||||
|       {{- include "prometheus-postgres-exporter.pod.selectorLabels" . | nindent 6 }} |       {{- include "prometheus-postgres-exporter.pod.selectorLabels" . | nindent 6 }} | ||||||
| @@ -20,6 +21,10 @@ spec: | |||||||
|       labels: |       labels: | ||||||
|         {{- include "prometheus-postgres-exporter.pod.labels" . | nindent 8 }} |         {{- include "prometheus-postgres-exporter.pod.labels" . | nindent 8 }} | ||||||
|     spec: |     spec: | ||||||
|  |       {{- with .Values.deployment.affinity }} | ||||||
|  |       affinity: | ||||||
|  |         {{- toYaml . | nindent 8 }} | ||||||
|  |       {{- end }} | ||||||
|       containers: |       containers: | ||||||
|       - name: postgres-exporter |       - name: postgres-exporter | ||||||
|         args: |         args: | ||||||
| @@ -29,9 +34,10 @@ spec: | |||||||
|         {{- range .Values.deployment.postgresExporter.args }} |         {{- range .Values.deployment.postgresExporter.args }} | ||||||
|         - {{ . | quote }} |         - {{ . | quote }} | ||||||
|         {{- end }} |         {{- end }} | ||||||
|         {{- with .Values.deployment.postgresExporter.env }} |         {{- $env := (include "prometheus-postgres-exporter.deployment.env" . | fromYaml) }} | ||||||
|  |         {{- if and (hasKey $env "env") (gt (len $env.env) 0) }} | ||||||
|         env: |         env: | ||||||
|         {{- toYaml . | nindent 8 }} |         {{- toYaml $env.env | nindent 8 }} | ||||||
|         {{- end }} |         {{- end }} | ||||||
|         {{- $envFrom := (include "prometheus-postgres-exporter.deployment.envFrom" . | fromYaml) }} |         {{- $envFrom := (include "prometheus-postgres-exporter.deployment.envFrom" . | fromYaml) }} | ||||||
|         {{- if hasKey $envFrom "envFrom" }} |         {{- if hasKey $envFrom "envFrom" }} | ||||||
|   | |||||||
							
								
								
									
										79
									
								
								unittests/configMaps/grafanaDashboardPostgresExporter.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								unittests/configMaps/grafanaDashboardPostgresExporter.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,79 @@ | |||||||
|  | chart: | ||||||
|  |   appVersion: 0.1.0 | ||||||
|  |   version: 0.1.0 | ||||||
|  | suite: ConfigMap template (Grafana Dashboard PostgresExporter) | ||||||
|  | release: | ||||||
|  |   name: prometheus-postgres-exporter-unittest | ||||||
|  |   namespace: testing | ||||||
|  | templates: | ||||||
|  | - templates/prometheus-postgres-exporter/configMapGrafanaDashboardPostgresExporter.yaml | ||||||
|  | tests: | ||||||
|  | - it: Rendering postgresExporter | ||||||
|  |   asserts: | ||||||
|  |   - hasDocuments: | ||||||
|  |       count: 0 | ||||||
|  |  | ||||||
|  | - it: Rendering | ||||||
|  |   set: | ||||||
|  |     grafana.enabled: true | ||||||
|  |   asserts: | ||||||
|  |   - hasDocuments: | ||||||
|  |       count: 1 | ||||||
|  |   - containsDocument: | ||||||
|  |       apiVersion: v1 | ||||||
|  |       kind: ConfigMap | ||||||
|  |       name: prometheus-postgres-exporter-unittest-grafana-dashboard-postgres-exporter | ||||||
|  |       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 | ||||||
|  |         grafana_dashboard: "1" | ||||||
|  |         helm.sh/chart: prometheus-postgres-exporter-0.1.0 | ||||||
|  |   - exists: | ||||||
|  |       path: data["postgresExporter.json"] | ||||||
|  |  | ||||||
|  | - it: Test custom annotations and labels | ||||||
|  |   set: | ||||||
|  |     grafana.enabled: true | ||||||
|  |     grafana.dashboards.postgresExporter.annotations: | ||||||
|  |       foo: bar | ||||||
|  |     grafana.dashboards.postgresExporter.labels: | ||||||
|  |       bar: foo | ||||||
|  |   asserts: | ||||||
|  |   - equal: | ||||||
|  |       path: metadata.annotations | ||||||
|  |       value: | ||||||
|  |         foo: bar | ||||||
|  |   - 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 | ||||||
|  |         grafana_dashboard: "1" | ||||||
|  |         helm.sh/chart: prometheus-postgres-exporter-0.1.0 | ||||||
|  |         bar: foo | ||||||
|  |  | ||||||
|  | - it: Test custom grafana discovery labels | ||||||
|  |   set: | ||||||
|  |     grafana.enabled: true | ||||||
|  |     grafana.dashboardDiscoveryLabels: | ||||||
|  |       grafana_dashboard: null | ||||||
|  |       my-custom-discovery-label: my-value | ||||||
|  |   asserts: | ||||||
|  |   - 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 | ||||||
|  |         my-custom-discovery-label: my-value | ||||||
|  |         helm.sh/chart: prometheus-postgres-exporter-0.1.0 | ||||||
| @@ -27,6 +27,11 @@ 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 | ||||||
|  |   - equal: | ||||||
|  |       path: spec.replicas | ||||||
|  |       value: 1 | ||||||
|  |   - notExists: | ||||||
|  |       path: spec.template.spec.affinity | ||||||
|   - contains: |   - contains: | ||||||
|       path: spec.template.spec.containers[0].envFrom |       path: spec.template.spec.containers[0].envFrom | ||||||
|       content: |       content: | ||||||
| @@ -91,6 +96,40 @@ tests: | |||||||
|   - notExists: |   - notExists: | ||||||
|       path: spec.template.spec.topologySpreadConstraints |       path: spec.template.spec.topologySpreadConstraints | ||||||
|  |  | ||||||
|  | - it: Test custom replicas | ||||||
|  |   set: | ||||||
|  |     deployment.replicas: 3 | ||||||
|  |   asserts: | ||||||
|  |   - equal: | ||||||
|  |       path: spec.replicas | ||||||
|  |       value: 3 | ||||||
|  |  | ||||||
|  | - it: Test custom affinity | ||||||
|  |   set: | ||||||
|  |     deployment.affinity: | ||||||
|  |       nodeAffinity: | ||||||
|  |         requiredDuringSchedulingIgnoredDuringExecution: | ||||||
|  |           nodeSelectorTerms: | ||||||
|  |           - matchExpressions: | ||||||
|  |             - key: topology.kubernetes.io/zone | ||||||
|  |               operator: In | ||||||
|  |               values: | ||||||
|  |               - antarctica-east1 | ||||||
|  |               - antarctica-west1 | ||||||
|  |   asserts: | ||||||
|  |   - equal: | ||||||
|  |       path: spec.template.spec.affinity | ||||||
|  |       value: | ||||||
|  |         nodeAffinity: | ||||||
|  |           requiredDuringSchedulingIgnoredDuringExecution: | ||||||
|  |             nodeSelectorTerms: | ||||||
|  |             - matchExpressions: | ||||||
|  |               - key: topology.kubernetes.io/zone | ||||||
|  |                 operator: In | ||||||
|  |                 values: | ||||||
|  |                 - antarctica-east1 | ||||||
|  |                 - antarctica-west1 | ||||||
|  |  | ||||||
| - it: Test additional arguments | - it: Test additional arguments | ||||||
|   set: |   set: | ||||||
|     deployment.postgresExporter.args: |     deployment.postgresExporter.args: | ||||||
| @@ -188,6 +227,13 @@ tests: | |||||||
|         cpu: 25m |         cpu: 25m | ||||||
|         memory: 100MB |         memory: 100MB | ||||||
|   asserts: |   asserts: | ||||||
|  |   - equal: | ||||||
|  |       path: spec.template.spec.containers[0].env | ||||||
|  |       value: | ||||||
|  |       - name: GOMAXPROCS | ||||||
|  |         valueFrom: | ||||||
|  |           resourceFieldRef: | ||||||
|  |             resource: limits.cpu | ||||||
|   - equal: |   - equal: | ||||||
|       path: spec.template.spec.containers[0].resources |       path: spec.template.spec.containers[0].resources | ||||||
|       value: |       value: | ||||||
|   | |||||||
							
								
								
									
										700
									
								
								values.schema.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										700
									
								
								values.schema.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,700 @@ | |||||||
|  | { | ||||||
|  |   "$schema": "http://json-schema.org/draft-04/schema#", | ||||||
|  |   "type": "object", | ||||||
|  |   "properties": { | ||||||
|  |     "nameOverride": { | ||||||
|  |       "type": "string" | ||||||
|  |     }, | ||||||
|  |     "fullnameOverride": { | ||||||
|  |       "type": "string" | ||||||
|  |     }, | ||||||
|  |     "config": { | ||||||
|  |       "type": "object", | ||||||
|  |       "properties": { | ||||||
|  |         "database": { | ||||||
|  |           "type": "object", | ||||||
|  |           "properties": { | ||||||
|  |             "existingSecret": { | ||||||
|  |               "type": "object", | ||||||
|  |               "properties": { | ||||||
|  |                 "enabled": { | ||||||
|  |                   "type": "boolean" | ||||||
|  |                 }, | ||||||
|  |                 "secretName": { | ||||||
|  |                   "type": "string" | ||||||
|  |                 } | ||||||
|  |               }, | ||||||
|  |               "required": [ | ||||||
|  |                 "enabled", | ||||||
|  |                 "secretName" | ||||||
|  |               ] | ||||||
|  |             }, | ||||||
|  |             "secret": { | ||||||
|  |               "type": "object", | ||||||
|  |               "properties": { | ||||||
|  |                 "annotations": { | ||||||
|  |                   "type": "object" | ||||||
|  |                 }, | ||||||
|  |                 "labels": { | ||||||
|  |                   "type": "object" | ||||||
|  |                 }, | ||||||
|  |                 "databaseUsername": { | ||||||
|  |                   "type": "string" | ||||||
|  |                 }, | ||||||
|  |                 "databasePassword": { | ||||||
|  |                   "type": "string" | ||||||
|  |                 }, | ||||||
|  |                 "databaseConnectionUrl": { | ||||||
|  |                   "type": "string" | ||||||
|  |                 } | ||||||
|  |               }, | ||||||
|  |               "required": [ | ||||||
|  |                 "annotations", | ||||||
|  |                 "labels", | ||||||
|  |                 "databaseUsername", | ||||||
|  |                 "databasePassword", | ||||||
|  |                 "databaseConnectionUrl" | ||||||
|  |               ] | ||||||
|  |             } | ||||||
|  |           }, | ||||||
|  |           "required": [ | ||||||
|  |             "existingSecret", | ||||||
|  |             "secret" | ||||||
|  |           ] | ||||||
|  |         }, | ||||||
|  |         "exporterConfig": { | ||||||
|  |           "type": "object", | ||||||
|  |           "properties": { | ||||||
|  |             "existingSecret": { | ||||||
|  |               "type": "object", | ||||||
|  |               "properties": { | ||||||
|  |                 "enabled": { | ||||||
|  |                   "type": "boolean" | ||||||
|  |                 }, | ||||||
|  |                 "secretName": { | ||||||
|  |                   "type": "string" | ||||||
|  |                 } | ||||||
|  |               }, | ||||||
|  |               "required": [ | ||||||
|  |                 "enabled", | ||||||
|  |                 "secretName" | ||||||
|  |               ] | ||||||
|  |             }, | ||||||
|  |             "secret": { | ||||||
|  |               "type": "object", | ||||||
|  |               "properties": { | ||||||
|  |                 "annotations": { | ||||||
|  |                   "type": "object" | ||||||
|  |                 }, | ||||||
|  |                 "labels": { | ||||||
|  |                   "type": "object" | ||||||
|  |                 }, | ||||||
|  |                 "exporterConfig": { | ||||||
|  |                   "type": "object" | ||||||
|  |                 } | ||||||
|  |               }, | ||||||
|  |               "required": [ | ||||||
|  |                 "annotations", | ||||||
|  |                 "labels", | ||||||
|  |                 "exporterConfig" | ||||||
|  |               ] | ||||||
|  |             } | ||||||
|  |           }, | ||||||
|  |           "required": [ | ||||||
|  |             "existingSecret", | ||||||
|  |             "secret" | ||||||
|  |           ] | ||||||
|  |         }, | ||||||
|  |         "webConfig": { | ||||||
|  |           "type": "object", | ||||||
|  |           "properties": { | ||||||
|  |             "existingSecret": { | ||||||
|  |               "type": "object", | ||||||
|  |               "properties": { | ||||||
|  |                 "enabled": { | ||||||
|  |                   "type": "boolean" | ||||||
|  |                 }, | ||||||
|  |                 "secretName": { | ||||||
|  |                   "type": "string" | ||||||
|  |                 } | ||||||
|  |               }, | ||||||
|  |               "required": [ | ||||||
|  |                 "enabled", | ||||||
|  |                 "secretName" | ||||||
|  |               ] | ||||||
|  |             }, | ||||||
|  |             "secret": { | ||||||
|  |               "type": "object", | ||||||
|  |               "properties": { | ||||||
|  |                 "annotations": { | ||||||
|  |                   "type": "object" | ||||||
|  |                 }, | ||||||
|  |                 "labels": { | ||||||
|  |                   "type": "object" | ||||||
|  |                 }, | ||||||
|  |                 "webConfig": { | ||||||
|  |                   "type": "object" | ||||||
|  |                 } | ||||||
|  |               }, | ||||||
|  |               "required": [ | ||||||
|  |                 "annotations", | ||||||
|  |                 "labels", | ||||||
|  |                 "webConfig" | ||||||
|  |               ] | ||||||
|  |             } | ||||||
|  |           }, | ||||||
|  |           "required": [ | ||||||
|  |             "existingSecret", | ||||||
|  |             "secret" | ||||||
|  |           ] | ||||||
|  |         } | ||||||
|  |       }, | ||||||
|  |       "required": [ | ||||||
|  |         "database", | ||||||
|  |         "exporterConfig", | ||||||
|  |         "webConfig" | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |     "deployment": { | ||||||
|  |       "type": "object", | ||||||
|  |       "properties": { | ||||||
|  |         "annotations": { | ||||||
|  |           "type": "object" | ||||||
|  |         }, | ||||||
|  |         "labels": { | ||||||
|  |           "type": "object" | ||||||
|  |         }, | ||||||
|  |         "additionalContainers": { | ||||||
|  |           "type": "array", | ||||||
|  |           "items": {} | ||||||
|  |         }, | ||||||
|  |         "affinity": { | ||||||
|  |           "type": "object" | ||||||
|  |         }, | ||||||
|  |         "initContainers": { | ||||||
|  |           "type": "array", | ||||||
|  |           "items": {} | ||||||
|  |         }, | ||||||
|  |         "dnsConfig": { | ||||||
|  |           "type": "object" | ||||||
|  |         }, | ||||||
|  |         "dnsPolicy": { | ||||||
|  |           "type": "string" | ||||||
|  |         }, | ||||||
|  |         "hostname": { | ||||||
|  |           "type": "string" | ||||||
|  |         }, | ||||||
|  |         "subdomain": { | ||||||
|  |           "type": "string" | ||||||
|  |         }, | ||||||
|  |         "hostNetwork": { | ||||||
|  |           "type": "boolean" | ||||||
|  |         }, | ||||||
|  |         "imagePullSecrets": { | ||||||
|  |           "type": "array", | ||||||
|  |           "items": {} | ||||||
|  |         }, | ||||||
|  |         "postgresExporter": { | ||||||
|  |           "type": "object", | ||||||
|  |           "properties": { | ||||||
|  |             "args": { | ||||||
|  |               "type": "array", | ||||||
|  |               "items": {} | ||||||
|  |             }, | ||||||
|  |             "env": { | ||||||
|  |               "type": "array", | ||||||
|  |               "items": {} | ||||||
|  |             }, | ||||||
|  |             "envFrom": { | ||||||
|  |               "type": "array", | ||||||
|  |               "items": {} | ||||||
|  |             }, | ||||||
|  |             "image": { | ||||||
|  |               "type": "object", | ||||||
|  |               "properties": { | ||||||
|  |                 "registry": { | ||||||
|  |                   "type": "string" | ||||||
|  |                 }, | ||||||
|  |                 "repository": { | ||||||
|  |                   "type": "string" | ||||||
|  |                 }, | ||||||
|  |                 "tag": { | ||||||
|  |                   "type": "string" | ||||||
|  |                 }, | ||||||
|  |                 "pullPolicy": { | ||||||
|  |                   "type": "string" | ||||||
|  |                 } | ||||||
|  |               }, | ||||||
|  |               "required": [ | ||||||
|  |                 "registry", | ||||||
|  |                 "repository", | ||||||
|  |                 "tag", | ||||||
|  |                 "pullPolicy" | ||||||
|  |               ] | ||||||
|  |             }, | ||||||
|  |             "resources": { | ||||||
|  |               "type": "object" | ||||||
|  |             }, | ||||||
|  |             "securityContext": { | ||||||
|  |               "type": "object" | ||||||
|  |             }, | ||||||
|  |             "volumeMounts": { | ||||||
|  |               "type": "array", | ||||||
|  |               "items": {} | ||||||
|  |             } | ||||||
|  |           }, | ||||||
|  |           "required": [ | ||||||
|  |             "args", | ||||||
|  |             "env", | ||||||
|  |             "envFrom", | ||||||
|  |             "image", | ||||||
|  |             "resources", | ||||||
|  |             "securityContext", | ||||||
|  |             "volumeMounts" | ||||||
|  |           ] | ||||||
|  |         }, | ||||||
|  |         "nodeSelector": { | ||||||
|  |           "type": "object" | ||||||
|  |         }, | ||||||
|  |         "priorityClassName": { | ||||||
|  |           "type": "string" | ||||||
|  |         }, | ||||||
|  |         "replicas": { | ||||||
|  |           "type": "integer" | ||||||
|  |         }, | ||||||
|  |         "restartPolicy": { | ||||||
|  |           "type": "string" | ||||||
|  |         }, | ||||||
|  |         "securityContext": { | ||||||
|  |           "type": "object" | ||||||
|  |         }, | ||||||
|  |         "strategy": { | ||||||
|  |           "type": "object", | ||||||
|  |           "properties": { | ||||||
|  |             "type": { | ||||||
|  |               "type": "string" | ||||||
|  |             }, | ||||||
|  |             "rollingUpdate": { | ||||||
|  |               "type": "object", | ||||||
|  |               "properties": { | ||||||
|  |                 "maxSurge": { | ||||||
|  |                   "type": "integer" | ||||||
|  |                 }, | ||||||
|  |                 "maxUnavailable": { | ||||||
|  |                   "type": "integer" | ||||||
|  |                 } | ||||||
|  |               }, | ||||||
|  |               "required": [ | ||||||
|  |                 "maxSurge", | ||||||
|  |                 "maxUnavailable" | ||||||
|  |               ] | ||||||
|  |             } | ||||||
|  |           }, | ||||||
|  |           "required": [ | ||||||
|  |             "type", | ||||||
|  |             "rollingUpdate" | ||||||
|  |           ] | ||||||
|  |         }, | ||||||
|  |         "terminationGracePeriodSeconds": { | ||||||
|  |           "type": "integer" | ||||||
|  |         }, | ||||||
|  |         "tolerations": { | ||||||
|  |           "type": "array", | ||||||
|  |           "items": {} | ||||||
|  |         }, | ||||||
|  |         "topologySpreadConstraints": { | ||||||
|  |           "type": "array", | ||||||
|  |           "items": {} | ||||||
|  |         }, | ||||||
|  |         "volumes": { | ||||||
|  |           "type": "array", | ||||||
|  |           "items": {} | ||||||
|  |         } | ||||||
|  |       }, | ||||||
|  |       "required": [ | ||||||
|  |         "annotations", | ||||||
|  |         "labels", | ||||||
|  |         "additionalContainers", | ||||||
|  |         "affinity", | ||||||
|  |         "initContainers", | ||||||
|  |         "dnsConfig", | ||||||
|  |         "dnsPolicy", | ||||||
|  |         "hostname", | ||||||
|  |         "subdomain", | ||||||
|  |         "hostNetwork", | ||||||
|  |         "imagePullSecrets", | ||||||
|  |         "postgresExporter", | ||||||
|  |         "nodeSelector", | ||||||
|  |         "priorityClassName", | ||||||
|  |         "replicas", | ||||||
|  |         "restartPolicy", | ||||||
|  |         "securityContext", | ||||||
|  |         "strategy", | ||||||
|  |         "terminationGracePeriodSeconds", | ||||||
|  |         "tolerations", | ||||||
|  |         "topologySpreadConstraints", | ||||||
|  |         "volumes" | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |     "grafana": { | ||||||
|  |       "type": "object", | ||||||
|  |       "properties": { | ||||||
|  |         "enabled": { | ||||||
|  |           "type": "boolean" | ||||||
|  |         }, | ||||||
|  |         "dashboardDiscoveryLabels": { | ||||||
|  |           "type": "object" | ||||||
|  |         }, | ||||||
|  |         "dashboards": { | ||||||
|  |           "type": "object", | ||||||
|  |           "properties": { | ||||||
|  |             "postgresExporter": { | ||||||
|  |               "type": "object", | ||||||
|  |               "properties": { | ||||||
|  |                 "enabled": { | ||||||
|  |                   "type": "boolean" | ||||||
|  |                 }, | ||||||
|  |                 "annotations": { | ||||||
|  |                   "type": "object" | ||||||
|  |                 }, | ||||||
|  |                 "labels": { | ||||||
|  |                   "type": "object" | ||||||
|  |                 } | ||||||
|  |               }, | ||||||
|  |               "required": [ | ||||||
|  |                 "enabled", | ||||||
|  |                 "annotations", | ||||||
|  |                 "labels" | ||||||
|  |               ] | ||||||
|  |             } | ||||||
|  |           }, | ||||||
|  |           "required": [ | ||||||
|  |             "postgresExporter" | ||||||
|  |           ] | ||||||
|  |         } | ||||||
|  |       }, | ||||||
|  |       "required": [ | ||||||
|  |         "enabled", | ||||||
|  |         "dashboardDiscoveryLabels", | ||||||
|  |         "dashboards" | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |     "ingress": { | ||||||
|  |       "type": "object", | ||||||
|  |       "properties": { | ||||||
|  |         "enabled": { | ||||||
|  |           "type": "boolean" | ||||||
|  |         }, | ||||||
|  |         "className": { | ||||||
|  |           "type": "string" | ||||||
|  |         }, | ||||||
|  |         "annotations": { | ||||||
|  |           "type": "object" | ||||||
|  |         }, | ||||||
|  |         "labels": { | ||||||
|  |           "type": "object" | ||||||
|  |         }, | ||||||
|  |         "hosts": { | ||||||
|  |           "type": "array", | ||||||
|  |           "items": {} | ||||||
|  |         }, | ||||||
|  |         "tls": { | ||||||
|  |           "type": "array", | ||||||
|  |           "items": {} | ||||||
|  |         } | ||||||
|  |       }, | ||||||
|  |       "required": [ | ||||||
|  |         "enabled", | ||||||
|  |         "className", | ||||||
|  |         "annotations", | ||||||
|  |         "labels", | ||||||
|  |         "hosts", | ||||||
|  |         "tls" | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |     "podDisruptionBudget": { | ||||||
|  |       "type": "object" | ||||||
|  |     }, | ||||||
|  |     "networkPolicies": { | ||||||
|  |       "type": "object" | ||||||
|  |     }, | ||||||
|  |     "prometheus": { | ||||||
|  |       "type": "object", | ||||||
|  |       "properties": { | ||||||
|  |         "metrics": { | ||||||
|  |           "type": "object", | ||||||
|  |           "properties": { | ||||||
|  |             "enabled": { | ||||||
|  |               "type": "boolean" | ||||||
|  |             }, | ||||||
|  |             "podMonitor": { | ||||||
|  |               "type": "object", | ||||||
|  |               "properties": { | ||||||
|  |                 "enabled": { | ||||||
|  |                   "type": "boolean" | ||||||
|  |                 }, | ||||||
|  |                 "annotations": { | ||||||
|  |                   "type": "object" | ||||||
|  |                 }, | ||||||
|  |                 "enableHttp2": { | ||||||
|  |                   "type": "boolean" | ||||||
|  |                 }, | ||||||
|  |                 "followRedirects": { | ||||||
|  |                   "type": "boolean" | ||||||
|  |                 }, | ||||||
|  |                 "honorLabels": { | ||||||
|  |                   "type": "boolean" | ||||||
|  |                 }, | ||||||
|  |                 "labels": { | ||||||
|  |                   "type": "object" | ||||||
|  |                 }, | ||||||
|  |                 "interval": { | ||||||
|  |                   "type": "string" | ||||||
|  |                 }, | ||||||
|  |                 "path": { | ||||||
|  |                   "type": "string" | ||||||
|  |                 }, | ||||||
|  |                 "relabelings": { | ||||||
|  |                   "type": "array", | ||||||
|  |                   "items": {} | ||||||
|  |                 }, | ||||||
|  |                 "scrapeTimeout": { | ||||||
|  |                   "type": "string" | ||||||
|  |                 }, | ||||||
|  |                 "scheme": { | ||||||
|  |                   "type": "string" | ||||||
|  |                 }, | ||||||
|  |                 "tlsConfig": { | ||||||
|  |                   "type": "object" | ||||||
|  |                 } | ||||||
|  |               }, | ||||||
|  |               "required": [ | ||||||
|  |                 "enabled", | ||||||
|  |                 "annotations", | ||||||
|  |                 "enableHttp2", | ||||||
|  |                 "followRedirects", | ||||||
|  |                 "honorLabels", | ||||||
|  |                 "labels", | ||||||
|  |                 "interval", | ||||||
|  |                 "path", | ||||||
|  |                 "relabelings", | ||||||
|  |                 "scrapeTimeout", | ||||||
|  |                 "scheme", | ||||||
|  |                 "tlsConfig" | ||||||
|  |               ] | ||||||
|  |             }, | ||||||
|  |             "serviceMonitor": { | ||||||
|  |               "type": "object", | ||||||
|  |               "properties": { | ||||||
|  |                 "enabled": { | ||||||
|  |                   "type": "boolean" | ||||||
|  |                 }, | ||||||
|  |                 "annotations": { | ||||||
|  |                   "type": "object" | ||||||
|  |                 }, | ||||||
|  |                 "labels": { | ||||||
|  |                   "type": "object" | ||||||
|  |                 }, | ||||||
|  |                 "enableHttp2": { | ||||||
|  |                   "type": "boolean" | ||||||
|  |                 }, | ||||||
|  |                 "followRedirects": { | ||||||
|  |                   "type": "boolean" | ||||||
|  |                 }, | ||||||
|  |                 "honorLabels": { | ||||||
|  |                   "type": "boolean" | ||||||
|  |                 }, | ||||||
|  |                 "interval": { | ||||||
|  |                   "type": "string" | ||||||
|  |                 }, | ||||||
|  |                 "path": { | ||||||
|  |                   "type": "string" | ||||||
|  |                 }, | ||||||
|  |                 "relabelings": { | ||||||
|  |                   "type": "array", | ||||||
|  |                   "items": {} | ||||||
|  |                 }, | ||||||
|  |                 "scrapeTimeout": { | ||||||
|  |                   "type": "string" | ||||||
|  |                 }, | ||||||
|  |                 "scheme": { | ||||||
|  |                   "type": "string" | ||||||
|  |                 }, | ||||||
|  |                 "tlsConfig": { | ||||||
|  |                   "type": "object" | ||||||
|  |                 } | ||||||
|  |               }, | ||||||
|  |               "required": [ | ||||||
|  |                 "enabled", | ||||||
|  |                 "annotations", | ||||||
|  |                 "labels", | ||||||
|  |                 "enableHttp2", | ||||||
|  |                 "followRedirects", | ||||||
|  |                 "honorLabels", | ||||||
|  |                 "interval", | ||||||
|  |                 "path", | ||||||
|  |                 "relabelings", | ||||||
|  |                 "scrapeTimeout", | ||||||
|  |                 "scheme", | ||||||
|  |                 "tlsConfig" | ||||||
|  |               ] | ||||||
|  |             } | ||||||
|  |           }, | ||||||
|  |           "required": [ | ||||||
|  |             "enabled", | ||||||
|  |             "podMonitor", | ||||||
|  |             "serviceMonitor" | ||||||
|  |           ] | ||||||
|  |         }, | ||||||
|  |         "rules": { | ||||||
|  |           "type": "array", | ||||||
|  |           "items": {} | ||||||
|  |         } | ||||||
|  |       }, | ||||||
|  |       "required": [ | ||||||
|  |         "metrics", | ||||||
|  |         "rules" | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |     "services": { | ||||||
|  |       "type": "object", | ||||||
|  |       "properties": { | ||||||
|  |         "http": { | ||||||
|  |           "type": "object", | ||||||
|  |           "properties": { | ||||||
|  |             "enabled": { | ||||||
|  |               "type": "boolean" | ||||||
|  |             }, | ||||||
|  |             "annotations": { | ||||||
|  |               "type": "object" | ||||||
|  |             }, | ||||||
|  |             "externalIPs": { | ||||||
|  |               "type": "array", | ||||||
|  |               "items": {} | ||||||
|  |             }, | ||||||
|  |             "externalTrafficPolicy": { | ||||||
|  |               "type": "string" | ||||||
|  |             }, | ||||||
|  |             "internalTrafficPolicy": { | ||||||
|  |               "type": "string" | ||||||
|  |             }, | ||||||
|  |             "ipFamilies": { | ||||||
|  |               "type": "array", | ||||||
|  |               "items": {} | ||||||
|  |             }, | ||||||
|  |             "labels": { | ||||||
|  |               "type": "object" | ||||||
|  |             }, | ||||||
|  |             "loadBalancerClass": { | ||||||
|  |               "type": "string" | ||||||
|  |             }, | ||||||
|  |             "loadBalancerIP": { | ||||||
|  |               "type": "string" | ||||||
|  |             }, | ||||||
|  |             "loadBalancerSourceRanges": { | ||||||
|  |               "type": "array", | ||||||
|  |               "items": {} | ||||||
|  |             }, | ||||||
|  |             "port": { | ||||||
|  |               "type": "integer" | ||||||
|  |             }, | ||||||
|  |             "sessionAffinity": { | ||||||
|  |               "type": "string" | ||||||
|  |             }, | ||||||
|  |             "sessionAffinityConfig": { | ||||||
|  |               "type": "object" | ||||||
|  |             }, | ||||||
|  |             "type": { | ||||||
|  |               "type": "string" | ||||||
|  |             } | ||||||
|  |           }, | ||||||
|  |           "required": [ | ||||||
|  |             "enabled", | ||||||
|  |             "annotations", | ||||||
|  |             "externalIPs", | ||||||
|  |             "externalTrafficPolicy", | ||||||
|  |             "internalTrafficPolicy", | ||||||
|  |             "ipFamilies", | ||||||
|  |             "labels", | ||||||
|  |             "loadBalancerClass", | ||||||
|  |             "loadBalancerIP", | ||||||
|  |             "loadBalancerSourceRanges", | ||||||
|  |             "port", | ||||||
|  |             "sessionAffinity", | ||||||
|  |             "sessionAffinityConfig", | ||||||
|  |             "type" | ||||||
|  |           ] | ||||||
|  |         } | ||||||
|  |       }, | ||||||
|  |       "required": [ | ||||||
|  |         "http" | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |     "serviceAccount": { | ||||||
|  |       "type": "object", | ||||||
|  |       "properties": { | ||||||
|  |         "existing": { | ||||||
|  |           "type": "object", | ||||||
|  |           "properties": { | ||||||
|  |             "enabled": { | ||||||
|  |               "type": "boolean" | ||||||
|  |             }, | ||||||
|  |             "serviceAccountName": { | ||||||
|  |               "type": "string" | ||||||
|  |             } | ||||||
|  |           }, | ||||||
|  |           "required": [ | ||||||
|  |             "enabled", | ||||||
|  |             "serviceAccountName" | ||||||
|  |           ] | ||||||
|  |         }, | ||||||
|  |         "new": { | ||||||
|  |           "type": "object", | ||||||
|  |           "properties": { | ||||||
|  |             "annotations": { | ||||||
|  |               "type": "object" | ||||||
|  |             }, | ||||||
|  |             "labels": { | ||||||
|  |               "type": "object" | ||||||
|  |             }, | ||||||
|  |             "automountServiceAccountToken": { | ||||||
|  |               "type": "boolean" | ||||||
|  |             }, | ||||||
|  |             "imagePullSecrets": { | ||||||
|  |               "type": "array", | ||||||
|  |               "items": {} | ||||||
|  |             }, | ||||||
|  |             "secrets": { | ||||||
|  |               "type": "array", | ||||||
|  |               "items": {} | ||||||
|  |             } | ||||||
|  |           }, | ||||||
|  |           "required": [ | ||||||
|  |             "annotations", | ||||||
|  |             "labels", | ||||||
|  |             "automountServiceAccountToken", | ||||||
|  |             "imagePullSecrets", | ||||||
|  |             "secrets" | ||||||
|  |           ] | ||||||
|  |         } | ||||||
|  |       }, | ||||||
|  |       "required": [ | ||||||
|  |         "existing", | ||||||
|  |         "new" | ||||||
|  |       ] | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   "required": [ | ||||||
|  |     "nameOverride", | ||||||
|  |     "fullnameOverride", | ||||||
|  |     "config", | ||||||
|  |     "deployment", | ||||||
|  |     "grafana", | ||||||
|  |     "ingress", | ||||||
|  |     "podDisruptionBudget", | ||||||
|  |     "networkPolicies", | ||||||
|  |     "prometheus", | ||||||
|  |     "services", | ||||||
|  |     "serviceAccount" | ||||||
|  |   ] | ||||||
|  | } | ||||||
							
								
								
									
										50
									
								
								values.yaml
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								values.yaml
									
									
									
									
									
								
							| @@ -1,6 +1,3 @@ | |||||||
| # Default values for qu-seed. |  | ||||||
| # This is a YAML-formatted file. |  | ||||||
|  |  | ||||||
| # 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. | ||||||
| @@ -84,7 +81,7 @@ config: | |||||||
| ## @section Deployment | ## @section Deployment | ||||||
| deployment: | deployment: | ||||||
|   ## @param deployment.annotations Additional deployment annotations. |   ## @param deployment.annotations Additional deployment annotations. | ||||||
|   ## @param deployment.labels Additional ingress labels. |   ## @param deployment.labels Additional deployment labels. | ||||||
|   annotations: {} |   annotations: {} | ||||||
|   labels: {} |   labels: {} | ||||||
|  |  | ||||||
| @@ -96,6 +93,22 @@ deployment: | |||||||
|  |  | ||||||
|   ## @param deployment.affinity Affinity for the postgres-exporter deployment. |   ## @param deployment.affinity Affinity for the postgres-exporter deployment. | ||||||
|   affinity: {} |   affinity: {} | ||||||
|  |     # nodeAffinity: | ||||||
|  |     #   requiredDuringSchedulingIgnoredDuringExecution: | ||||||
|  |     #     nodeSelectorTerms: | ||||||
|  |     #     - matchExpressions: | ||||||
|  |     #       - key: kubernetes.io/os | ||||||
|  |     #         operator: In | ||||||
|  |     #         values: | ||||||
|  |     #         - linux | ||||||
|  |     #   preferredDuringSchedulingIgnoredDuringExecution: | ||||||
|  |     #   - weight: 20 | ||||||
|  |     #     preference: | ||||||
|  |     #       matchExpressions: | ||||||
|  |     #       - key: kubernetes.io/arch | ||||||
|  |     #         operator: In | ||||||
|  |     #         values: | ||||||
|  |     #         - amd64 | ||||||
|  |  | ||||||
|   ## @param deployment.initContainers List of additional init containers. |   ## @param deployment.initContainers List of additional init containers. | ||||||
|   initContainers: [] |   initContainers: [] | ||||||
| @@ -201,8 +214,8 @@ deployment: | |||||||
|   ## @param deployment.priorityClassName PriorityClassName of the postgres-exporter deployment. |   ## @param deployment.priorityClassName PriorityClassName of the postgres-exporter deployment. | ||||||
|   priorityClassName: "" |   priorityClassName: "" | ||||||
|  |  | ||||||
|   ## @param deployment.replicaCount Number of replicas for the postgres-exporter deployment. |   ## @param deployment.replicas Number of replicas for the postgres-exporter deployment. | ||||||
|   replicaCount: 1 |   replicas: 1 | ||||||
|  |  | ||||||
|   ## @param deployment.restartPolicy Restart policy of the postgres-exporter deployment. |   ## @param deployment.restartPolicy Restart policy of the postgres-exporter deployment. | ||||||
|   restartPolicy: "" |   restartPolicy: "" | ||||||
| @@ -248,12 +261,23 @@ deployment: | |||||||
|   #     secretName: my-secret |   #     secretName: my-secret | ||||||
|  |  | ||||||
| ## @section Grafana | ## @section Grafana | ||||||
| ## @param grafana.enabled Enable integration into Grafana. | ## @param grafana.enabled Enable integration into Grafana. Require the Prometheus operator deployment. | ||||||
| ## @param grafana.dashboards.businessMetrics Enable deployment of Grafana dashboard `businessMetrics`. |  | ||||||
| grafana: | grafana: | ||||||
|   enabled: false |   enabled: false | ||||||
|  |  | ||||||
|  |   ## @param grafana.dashboardDiscoveryLabels Labels that Grafana uses to discover resources. The labels may vary depending on the Grafana deployment. | ||||||
|  |   ## @skip grafana.dashboardDiscoveryLabels | ||||||
|  |   dashboardDiscoveryLabels: | ||||||
|  |     grafana_dashboard: "1" | ||||||
|  |  | ||||||
|   dashboards: |   dashboards: | ||||||
|     businessMetrics: true |     ## @param grafana.dashboards.postgresExporter.enabled Enable deployment of Grafana dashboard `postgresExporter`. | ||||||
|  |     ## @param grafana.dashboards.postgresExporter.annotations Additional configmap annotations. | ||||||
|  |     ## @param grafana.dashboards.postgresExporter.labels Additional configmap labels. | ||||||
|  |     postgresExporter: | ||||||
|  |       enabled: true | ||||||
|  |       annotations: {} | ||||||
|  |       labels: {} | ||||||
|  |  | ||||||
| ## @section Ingress | ## @section Ingress | ||||||
| ingress: | ingress: | ||||||
| @@ -304,7 +328,7 @@ prometheus: | |||||||
|     ## @param prometheus.metrics.podMonitor.honorLabels Honor labels. |     ## @param prometheus.metrics.podMonitor.honorLabels Honor labels. | ||||||
|     ## @param prometheus.metrics.podMonitor.labels Additional podMonitor labels. |     ## @param prometheus.metrics.podMonitor.labels Additional podMonitor labels. | ||||||
|     ## @param prometheus.metrics.podMonitor.interval Interval at which metrics should be scraped. If not specified Prometheus' global scrape interval is used. |     ## @param prometheus.metrics.podMonitor.interval Interval at which metrics should be scraped. If not specified Prometheus' global scrape interval is used. | ||||||
|     ## @param prometheus.metrics.podMonitor.path HTTP path for scraping prometheus metrics. |     ## @param prometheus.metrics.podMonitor.path HTTP path for scraping Prometheus metrics. | ||||||
|     ## @param prometheus.metrics.podMonitor.relabelings RelabelConfigs to apply to samples before scraping. Prometheus Operator automatically adds relabelings for a few standard Kubernetes fields. |     ## @param prometheus.metrics.podMonitor.relabelings RelabelConfigs to apply to samples before scraping. Prometheus Operator automatically adds relabelings for a few standard Kubernetes fields. | ||||||
|     ## @param prometheus.metrics.podMonitor.scrapeTimeout Timeout after which the scrape is ended. If not specified, global Prometheus scrape timeout is used. |     ## @param prometheus.metrics.podMonitor.scrapeTimeout Timeout after which the scrape is ended. If not specified, global Prometheus scrape timeout is used. | ||||||
|     ## @param prometheus.metrics.podMonitor.scheme HTTP scheme to use for scraping. For example `http` or `https`. |     ## @param prometheus.metrics.podMonitor.scheme HTTP scheme to use for scraping. For example `http` or `https`. | ||||||
| @@ -331,7 +355,7 @@ prometheus: | |||||||
|     ## @param prometheus.metrics.serviceMonitor.followRedirects FollowRedirects configures whether scrape requests follow HTTP 3xx redirects. |     ## @param prometheus.metrics.serviceMonitor.followRedirects FollowRedirects configures whether scrape requests follow HTTP 3xx redirects. | ||||||
|     ## @param prometheus.metrics.serviceMonitor.honorLabels Honor labels. |     ## @param prometheus.metrics.serviceMonitor.honorLabels Honor labels. | ||||||
|     ## @param prometheus.metrics.serviceMonitor.interval Interval at which metrics should be scraped. If not specified Prometheus' global scrape interval is used. |     ## @param prometheus.metrics.serviceMonitor.interval Interval at which metrics should be scraped. If not specified Prometheus' global scrape interval is used. | ||||||
|     ## @param prometheus.metrics.serviceMonitor.path HTTP path for scraping prometheus metrics. |     ## @param prometheus.metrics.serviceMonitor.path HTTP path for scraping Prometheus metrics. | ||||||
|     ## @param prometheus.metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping. Prometheus Operator automatically adds relabelings for a few standard Kubernetes fields. |     ## @param prometheus.metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping. Prometheus Operator automatically adds relabelings for a few standard Kubernetes fields. | ||||||
|     ## @param prometheus.metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended. If not specified, global Prometheus scrape timeout is used. |     ## @param prometheus.metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended. If not specified, global Prometheus scrape timeout is used. | ||||||
|     ## @param prometheus.metrics.serviceMonitor.scheme HTTP scheme to use for scraping. For example `http` or `https`. |     ## @param prometheus.metrics.serviceMonitor.scheme HTTP scheme to use for scraping. For example `http` or `https`. | ||||||
| @@ -351,8 +375,8 @@ prometheus: | |||||||
|       scheme: "http" |       scheme: "http" | ||||||
|       tlsConfig: {} |       tlsConfig: {} | ||||||
|  |  | ||||||
|   ## @param prometheus.rules Array of prometheus rules for monitoring the application and triggering alerts. |   ## @param prometheus.rules Array of Prometheus rules for monitoring the application and triggering alerts. | ||||||
|   ## @skip prometheus.rules Skip individual prometheus rules. |   ## @skip prometheus.rules Skip individual Prometheus rules. | ||||||
|   rules: [] |   rules: [] | ||||||
|   # - alert: ExporterErrors |   # - alert: ExporterErrors | ||||||
|   #   expr: pg_exporter_last_scrape_error == 1 |   #   expr: pg_exporter_last_scrape_error == 1 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user