You've already forked prometheus-postgres-exporter
Compare commits
5 Commits
0a4d677938
...
0.2.1
Author | SHA1 | Date | |
---|---|---|---|
3434c5a737
|
|||
1e9aeb802d
|
|||
2e9eae9888
|
|||
0dcea5cfc4
|
|||
e38c4fbdfe
|
@ -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.
|
||||||
|
19
Makefile
19
Makefile
@ -19,12 +19,6 @@ 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:
|
||||||
@ -67,19 +61,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
|
||||||
|
@ -188,9 +188,12 @@ replaced:
|
|||||||
### 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
|
||||||
|
|
||||||
|
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 }}
|
File diff suppressed because it is too large
Load Diff
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
|
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"
|
||||||
|
},
|
||||||
|
"replicaCount": {
|
||||||
|
"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",
|
||||||
|
"replicaCount",
|
||||||
|
"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"
|
||||||
|
]
|
||||||
|
}
|
17
values.yaml
17
values.yaml
@ -248,12 +248,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:
|
||||||
|
Reference in New Issue
Block a user