blob: 4d232c74101277f843bd1586c021e22340e6485c [file] [log] [blame]
{%- from "kubernetes/map.jinja" import common with context -%}
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: prometheus-server
namespace: {{ common.addons.prometheus.get('namespace') }}
labels:
k8s-app: prometheus-server
version: v1
addonmanager.kubernetes.io/mode: Reconcile
spec:
{%- if common.addons.prometheus.server.get('replicas', 1) != 1 %}
replicas: {{ common.addons.prometheus.server.replicas }}
{%- endif %}
selector:
matchLabels:
k8s-app: prometheus-server
template:
metadata:
labels:
k8s-app: prometheus-server
version: v1
annotations:
scheduler.alpha.kubernetes.io/critical-pod: ''
scheduler.alpha.kubernetes.io/tolerations: '[{"key":"CriticalAddonsOnly", "operator":"Exists"}]'
spec:
serviceAccountName: prometheus-server
tolerations:
- key: "node-role.kubernetes.io/master"
effect: "NoSchedule"
operator: "Exists"
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node-role.kubernetes.io/master
operator: In
values: ["true"]
containers:
- name: prometheus
image: {{ common.addons.prometheus.server.get('image') }}
env:
- name: PROMETHEUS_BIND_ADDRESS
value: "{{ common.addons.prometheus.server.bind.get('host') }}"
- name: PROMETHEUS_BIND_PORT
value: "{{ common.addons.prometheus.server.bind.get('port') }}"
- name: PROMETHEUS_CONFIG_DIR
value: "{{ common.addons.prometheus.server.config.get('config_dir') }}"
- name: PROMETHEUS_DATA_DIR
value: "{{ common.addons.prometheus.server.config.get('data_dir') }}"
- name: PROMETHEUS_STORAGE_LOCAL_ENGINE
value: "{{ common.addons.prometheus.server.config.get('storage_local_engine') }}"
- name: PROMETHEUS_STORAGE_LOCAL_RETENTION
value: "{{ common.addons.prometheus.server.config.get('storage_local_retention') }}"
- name: PROMETHEUS_USE_STATIC_DATADIR
value: "{{ common.addons.prometheus.server.config.get('use_static_datadir') | lower }}"
ports:
- name: webui
containerPort: {{ common.addons.prometheus.server.bind.get('port') }}
resources:
requests:
memory: {{ common.addons.prometheus.server.resources.requests.get('memory') }}
limits:
memory: {{ common.addons.prometheus.server.resources.limits.get('memory') }}
volumeMounts:
- name: prometheus-server-cfg
mountPath: "{{ common.addons.prometheus.server.config.get('config_dir') }}"
- name: prometheus-server-data
mountPath: "{{ common.addons.prometheus.server.config.get('data_dir') }}"
volumes:
- name: prometheus-server-cfg
hostPath:
path: "{{ common.addons.prometheus.server.config.get('host_config_dir') }}"
- name: prometheus-server-data
hostPath:
path: "{{ common.addons.prometheus.server.config.get('host_data_dir') }}"