Skip to content

Instantly share code, notes, and snippets.

@austinmartinh
Last active April 7, 2020 14:30
Show Gist options
  • Save austinmartinh/0bce284a073e79cc168f1cc1fa2481d7 to your computer and use it in GitHub Desktop.
Save austinmartinh/0bce284a073e79cc168f1cc1fa2481d7 to your computer and use it in GitHub Desktop.
Template for postgres exporter resource
apiVersion: v1
kind: Template
metadata:
name: example-postgresql-exporter3
objects:
- apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
labels:
app: postgres
name: example-postgres-exporter
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
app: postgres
strategy:
activeDeadlineSeconds: 21600
resources: {}
rollingParams:
intervalSeconds: 1
maxSurge: 25%
maxUnavailable: 25%
timeoutSeconds: 600
updatePeriodSeconds: 1
type: Rolling
template:
metadata:
creationTimestamp: null
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: ${METRICS_PORT}
labels:
app: postgres
spec:
containers:
- image: ${DOCKER_IMAGE}
env:
- name: DATA_SOURCE_NAME
value: postgresql://${USERNAME}:${PASSWORD}@${HOST_NAME}:${POSTGRES_PORT}/${DATABASE}
resources:
requests:
cpu: 100m
memory: 100Mi
imagePullPolicy: Always
name: example-postgres-exporter
ports:
- containerPort: ${{METRICS_PORT}}
name: metrics
protocol: TCP
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
test: false
triggers:
- type: ConfigChange
- apiVersion: v1
kind: Service
metadata:
labels:
app: postgres
name: example-postgres-exporter
spec:
ports:
- name: metrics
port: ${{METRICS_PORT}}
protocol: TCP
targetPort: ${{METRICS_PORT}}
selector:
app: postgres
sessionAffinity: None
type: ClusterIP
- apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
labels:
monitoring-key: 'middleware'
name: example-postgres-exporter
spec:
endpoints:
- path: /metrics
port: metrics
selector:
matchLabels:
app: postgres
parameters:
- name: USERNAME
displayName: Username
value: 'postgres'
required: true
- name: PASSWORD
displayName: Password
value: 'Password1'
required: true
- name: HOST_NAME
displayName: Hostname
value: 'localhost'
required: true
- name: METRICS_PORT
displayName: Metrics Port
value: "9187"
required: true
- name: POSTGRES_PORT
displayName: Postgres Port
value: "5432"
required: true
- name: DOCKER_IMAGE
displayName: Exporter image
value: 'wrouesnel/postgres_exporter:latest'
required: true
- name: DATABASE
displayName: database
value: "postgres"
required: true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment