129 lines
3.8 KiB
YAML
129 lines
3.8 KiB
YAML
{{- $appName := "postgres-exporter" }}
|
|
{{- $nodeSelector := dig .Values.werf.env .Values.postgres.nodeSelector._default .Values.postgres.nodeSelector }}
|
|
{{- $tolerations := dig .Values.werf.env .Values.postgres.tolerations._default .Values.postgres.tolerations }}
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: {{ $appName }}
|
|
labels:
|
|
app: {{ $appName }}
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: {{ $appName }}
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: {{ $appName }}
|
|
annotations:
|
|
secrets-store.deckhouse.io/role: "{{ .Values.werf.env }}-{{ .Chart.Name }}-role"
|
|
secrets-store.deckhouse.io/env-from-path: "{{ .Values.werf.env }}/data/{{ .Chart.Name }}"
|
|
spec:
|
|
volumes:
|
|
- configMap:
|
|
defaultMode: 420
|
|
name: {{ $appName }}-config
|
|
name: {{ $appName }}-config
|
|
serviceAccountName: {{ .Chart.Name }}-sa
|
|
imagePullSecrets:
|
|
- name: registrysecret
|
|
{{- if $nodeSelector }}
|
|
nodeSelector: {{ toYaml $nodeSelector | nindent 8 }}
|
|
{{- end }}
|
|
{{- if $tolerations }}
|
|
tolerations: {{ toYaml $tolerations | nindent 6 }}
|
|
{{- end }}
|
|
containers:
|
|
- name: postgres-exporter
|
|
volumeMounts:
|
|
- mountPath: /etc/postgres_exporter.yml
|
|
name: {{ $appName }}-config
|
|
subPath: postgres_exporter.yml
|
|
image: {{ .Values.werf.image.postgresqlExporter }}
|
|
args:
|
|
- --web.listen-address=:9187
|
|
- --config.file=/etc/postgres_exporter.yml
|
|
- --collector.stat_statements
|
|
- --collector.stat_activity_autovacuum
|
|
- --collector.statio_user_indexes
|
|
- --collector.postmaster
|
|
- --collector.database_wraparound
|
|
- --collector.long_running_transactions
|
|
- --collector.process_idle
|
|
- --collector.stat_wal_receiver
|
|
- --collector.stat_statements.exclude_databases=postgres,template0,template1
|
|
- --collector.stat_statements.include_query
|
|
- --collector.stat_statements.limit=100
|
|
- --collector.stat_statements.query_length=2048
|
|
ports:
|
|
- name: http-metrics
|
|
containerPort: 9187
|
|
protocol: TCP
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /
|
|
port: http-metrics
|
|
initialDelaySeconds: 15
|
|
periodSeconds: 9
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /
|
|
port: http-metrics
|
|
initialDelaySeconds: 20
|
|
periodSeconds: 11
|
|
resources:
|
|
requests:
|
|
cpu: 50m
|
|
memory: 64Mi
|
|
limits:
|
|
memory: 64Mi
|
|
securityContext:
|
|
allowPrivilegeEscalation: false
|
|
readOnlyRootFilesystem: true
|
|
runAsNonRoot: true
|
|
runAsUser: 65534
|
|
restartPolicy: Always
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: {{ $appName }}
|
|
labels:
|
|
app: {{ $appName }}
|
|
prometheus.deckhouse.io/custom-target: postgresql
|
|
spec:
|
|
type: ClusterIP
|
|
ports:
|
|
- name: http-metrics
|
|
port: 9187
|
|
targetPort: http-metrics
|
|
protocol: TCP
|
|
selector:
|
|
app: {{ $appName }}
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: {{ $appName }}-config
|
|
data:
|
|
postgres_exporter.yml: |
|
|
auth_modules:
|
|
postgres:
|
|
type: userpass
|
|
userpass:
|
|
username: {{ .Values.postgresqlExporter.user | quote }}
|
|
options:
|
|
sslmode: disable
|
|
---
|
|
apiVersion: v1
|
|
kind: Secret
|
|
metadata:
|
|
labels:
|
|
app: {{ $appName }}
|
|
name: {{ $appName }}-env
|
|
type: Opaque
|
|
data:
|
|
PG_EXPORTER_CONSTANT_LABELS: {{ printf "cluster=%s" .Chart.Name | b64enc | quote }}
|