Skip to content

Instantly share code, notes, and snippets.

@deepak1725
Created August 22, 2019 10:37
Show Gist options
  • Save deepak1725/db31a65f118a32b531ac7574fc4a00ba to your computer and use it in GitHub Desktop.
Save deepak1725/db31a65f118a32b531ac7574fc4a00ba to your computer and use it in GitHub Desktop.
apiVersion: v1
kind: Template
labels:
template: metrics-accumulator
metadata:
name: metrics-accumulator
annotations:
description: metrics-accumulator
objects:
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: bayesian-prometheus-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
- apiVersion: v1
kind: DeploymentConfig
metadata:
labels:
service: metrics-accumulator
name: metrics-accumulator
spec:
replicas: "${{REPLICAS}}"
selector:
service: metrics-accumulator
strategy:
type: Recreate
template:
metadata:
labels:
service: metrics-accumulator
spec:
containers:
- env:
- name: NUMBER_WORKER_PROCESS
value: "${NUMBER_WORKER_PROCESS}"
- name: METRICS_COLLECTOR_SERVICE_PORT
value: "${METRICS_COLLECTOR_SERVICE_PORT}"
- name: METRICS_COLLECTOR_SERVICE_TIMEOUT
value: "${METRICS_COLLECTOR_SERVICE_TIMEOUT}"
- name: SENTRY_DSN
value: "${SENTRY_DSN}"
- name: CLASS_TYPE
value: "${CLASS_TYPE}"
- name: FLASK_LOGGING_LEVEL
value: ${FLASK_LOGGING_LEVEL}
- name: RESET_COUNTER_ON_RESTART
value: "${RESET_COUNTER_ON_RESTART}"
- name: SENTRY_DSN
valueFrom:
secretKeyRef:
name: worker
key: sentry_dsn
image: "${DOCKER_REGISTRY}/${DOCKER_IMAGE}:${IMAGE_TAG}"
name: metrics-accumulator
ports:
- containerPort: ${{METRICS_COLLECTOR_SERVICE_PORT}}
livenessProbe:
initialDelaySeconds: 60
periodSeconds: 60
timeoutSeconds: 30
failureThreshold: 3
successThreshold: 1
tcpSocket:
port: ${{METRICS_COLLECTOR_SERVICE_PORT}}
readinessProbe:
tcpSocket:
port: ${{METRICS_COLLECTOR_SERVICE_PORT}}
failureThreshold: 3
successThreshold: 1
initialDelaySeconds: 20
periodSeconds: 60
timeoutSeconds: 30
resources:
requests:
cpu: ${CPU_REQUEST}
memory: ${MEMORY_REQUEST}
limits:
cpu: ${CPU_LIMIT}
memory: ${MEMORY_LIMIT}
volumeMounts:
- mountPath: "/var/log/prometheus"
name: bayesian-prometheus-pv
volumes:
- name: bayesian-prometheus-pv
persistentVolumeClaim:
claimName: bayesian-prometheus-pvc
- apiVersion: v1
kind: Service
metadata:
labels:
service: metrics-accumulator
name: metrics-accumulator
spec:
ports:
- port: ${{METRICS_COLLECTOR_SERVICE_PORT}}
name: "${METRICS_COLLECTOR_SERVICE_PORT}"
targetPort: ${{METRICS_COLLECTOR_SERVICE_PORT}}
protocol: TCP
selector:
service: metrics-accumulator
- apiVersion: v1
kind: Route
metadata:
name: metrics-accumulator
spec:
host: ${METRICS_COLLECTOR_API_HOSTNAME}
to:
kind: Service
name: metrics-accumulator
parameters:
- description: A hostname where the Metrics Collector API should be exposed (will be auto-generated if empty)
displayName: Metrics Collector API hostname
required: false
name: METRICS_COLLECTOR_API_HOSTNAME
- description: CPU request
displayName: CPU request
required: true
name: CPU_REQUEST
value: "128m"
- description: CPU limit
displayName: CPU limit
required: true
name: CPU_LIMIT
value: "500m"
- description: Memory request
displayName: Memory request
required: true
name: MEMORY_REQUEST
value: "512Mi"
- description: Memory limit
displayName: Memory limit
required: true
name: MEMORY_LIMIT
value: "512Mi"
- description: Docker registry where the image is
displayName: Docker registry
required: true
name: DOCKER_REGISTRY
value: "quay.io"
- description: Docker image to use
displayName: Docker image
required: true
name: DOCKER_IMAGE
value: "openshiftio/metrics-accumulator"
- description: Image tag
displayName: Image tag
required: true
name: IMAGE_TAG
value: "latest"
- description: Number of deployment replicas
displayName: Number of deployment replicas
required: true
name: REPLICAS
value: "1"
- description: Port Number
displayName: Port Number
required: true
name: METRICS_COLLECTOR_SERVICE_PORT
value: "5200"
- description: Timeout Value
displayName: Timeout Value
required: true
name: METRICS_COLLECTOR_SERVICE_TIMEOUT
value: "30"
- description: Number of worker processes
displayName: Number of worker proceses
required: true
name: NUMBER_WORKER_PROCESS
value: "1"
- description: Class Type
displayName: Class Type
required: true
name: CLASS_TYPE
value: "gevent"
- description: "Flask logging level (see: https://docs.python.org/3/library/logging.html#levels)"
displayName: Flask logging level
required: false
name: FLASK_LOGGING_LEVEL
value: "INFO"
- description: "Reset Gauge Counter on Restart of service"
displayName: Reset Counter on Restart
required: false
name: RESET_COUNTER_ON_RESTART
value: "0"
- description: Sentry DSN
displayName: Sentry DSN
required: false
name: SENTRY_DSN
value: ""
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment