{{#if prometheus.enabled}} apiVersion: apps/v1 kind: StatefulSet metadata: name: prometheus namespace: lens-metrics spec: replicas: {{replicas}} serviceName: prometheus selector: matchLabels: name: prometheus template: metadata: labels: name: prometheus spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/os operator: In values: - linux # <%- if config.node_selector -%> # nodeSelector: # <%- node_selector.to_h.each do |key, value| -%> # <%= key %>: <%= value %> # <%- end -%> # <%- end -%> # <%- unless config.tolerations.empty? -%> # tolerations: # <%- config.tolerations.each do |t| -%> # - # <%- t.each do |k,v| -%> # <%= k %>: <%= v %> # <%- end -%> # <%- end -%> # <%- end -%> serviceAccountName: prometheus initContainers: - name: chown image: docker.io/alpine:3.12 command: ["chown", "-R", "65534:65534", "/var/lib/prometheus"] volumeMounts: - name: data mountPath: /var/lib/prometheus containers: - name: prometheus image: quay.io/prometheus/prometheus:v2.27.1 args: - --web.listen-address=0.0.0.0:9090 - --config.file=/etc/prometheus/prometheus.yaml - --storage.tsdb.path=/var/lib/prometheus - --storage.tsdb.retention.time={{retention.time}} - --storage.tsdb.retention.size={{retention.size}} - --storage.tsdb.min-block-duration=2h - --storage.tsdb.max-block-duration=2h ports: - name: web containerPort: 9090 volumeMounts: - name: config mountPath: /etc/prometheus - name: rules mountPath: /etc/prometheus/rules - name: data mountPath: /var/lib/prometheus readinessProbe: httpGet: path: /-/ready port: 9090 initialDelaySeconds: 10 timeoutSeconds: 10 livenessProbe: httpGet: path: /-/healthy port: 9090 initialDelaySeconds: 10 timeoutSeconds: 10 resources: requests: cpu: 100m memory: 512Mi terminationGracePeriodSeconds: 30 volumes: - name: config configMap: name: prometheus-config - name: rules configMap: name: prometheus-rules {{#unless persistence.enabled}} - name: data emptyDir: {} {{/unless}} {{#if persistence.enabled}} volumeClaimTemplates: - metadata: name: data spec: accessModes: - ReadWriteOnce {{#if persistence.storageClass}} storageClassName: "{{persistence.storageClass}}" {{/if}} resources: requests: storage: {{persistence.size}} {{/if}} {{/if}}