| {%- 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') }}" |