github.com/microsoft/fabrikate@v1.0.0-alpha.1.0.20210115014322-dc09194d0885/testdata/local-charts/prometheus/templates/alertmanager/sts.yaml (about) 1 {{- if and .Values.alertmanager.enabled .Values.alertmanager.statefulSet.enabled -}} 2 apiVersion: apps/v1 3 kind: StatefulSet 4 metadata: 5 {{- if .Values.alertmanager.statefulSet.annotations }} 6 annotations: 7 {{ toYaml .Values.alertmanager.statefulSet.annotations | nindent 4 }} 8 {{- end }} 9 labels: 10 {{- include "prometheus.alertmanager.labels" . | nindent 4 }} 11 {{- if .Values.alertmanager.statefulSet.labels}} 12 {{ toYaml .Values.alertmanager.statefulSet.labels | nindent 4 }} 13 {{- end}} 14 name: {{ template "prometheus.alertmanager.fullname" . }} 15 {{ include "prometheus.namespace" . | indent 2 }} 16 spec: 17 serviceName: {{ template "prometheus.alertmanager.fullname" . }}-headless 18 selector: 19 matchLabels: 20 {{- include "prometheus.alertmanager.matchLabels" . | nindent 6 }} 21 replicas: {{ .Values.alertmanager.replicaCount }} 22 podManagementPolicy: {{ .Values.alertmanager.statefulSet.podManagementPolicy }} 23 template: 24 metadata: 25 {{- if .Values.alertmanager.podAnnotations }} 26 annotations: 27 {{ toYaml .Values.alertmanager.podAnnotations | nindent 8 }} 28 {{- end }} 29 labels: 30 {{- include "prometheus.alertmanager.labels" . | nindent 8 }} 31 {{- if .Values.alertmanager.podLabels}} 32 {{ toYaml .Values.alertmanager.podLabels | nindent 8 }} 33 {{- end}} 34 spec: 35 {{- if .Values.alertmanager.affinity }} 36 affinity: 37 {{ toYaml .Values.alertmanager.affinity | indent 8 }} 38 {{- end }} 39 {{- if .Values.alertmanager.schedulerName }} 40 schedulerName: "{{ .Values.alertmanager.schedulerName }}" 41 {{- end }} 42 serviceAccountName: {{ template "prometheus.serviceAccountName.alertmanager" . }} 43 {{- if .Values.alertmanager.priorityClassName }} 44 priorityClassName: "{{ .Values.alertmanager.priorityClassName }}" 45 {{- end }} 46 containers: 47 - name: {{ template "prometheus.name" . }}-{{ .Values.alertmanager.name }} 48 image: "{{ .Values.alertmanager.image.repository }}:{{ .Values.alertmanager.image.tag }}" 49 imagePullPolicy: "{{ .Values.alertmanager.image.pullPolicy }}" 50 env: 51 {{- range $key, $value := .Values.alertmanager.extraEnv }} 52 - name: {{ $key }} 53 value: {{ $value }} 54 {{- end }} 55 - name: POD_IP 56 valueFrom: 57 fieldRef: 58 apiVersion: v1 59 fieldPath: status.podIP 60 args: 61 - --config.file=/etc/config/alertmanager.yml 62 - --storage.path={{ .Values.alertmanager.persistentVolume.mountPath }} 63 {{- if .Values.alertmanager.statefulSet.headless.enableMeshPeer }} 64 - --cluster.advertise-address=$(POD_IP):6783 65 - --cluster.listen-address=0.0.0.0:6783 66 {{- range $n := until (.Values.alertmanager.replicaCount | int) }} 67 - --cluster.peer={{ template "prometheus.alertmanager.fullname" $ }}-{{ $n }}.{{ template "prometheus.alertmanager.fullname" $ }}-headless:6783 68 {{- end }} 69 {{- else }} 70 - --cluster.listen-address= 71 {{- end }} 72 {{- range $key, $value := .Values.alertmanager.extraArgs }} 73 - --{{ $key }}={{ $value }} 74 {{- end }} 75 {{- if .Values.alertmanager.baseURL }} 76 - --web.external-url={{ .Values.alertmanager.baseURL }} 77 {{- end }} 78 79 ports: 80 - containerPort: 9093 81 {{- if .Values.alertmanager.statefulSet.headless.enableMeshPeer }} 82 - containerPort: 6783 83 {{- end }} 84 readinessProbe: 85 httpGet: 86 path: {{ .Values.alertmanager.prefixURL }}/#/status 87 port: 9093 88 initialDelaySeconds: 30 89 timeoutSeconds: 30 90 resources: 91 {{ toYaml .Values.alertmanager.resources | indent 12 }} 92 volumeMounts: 93 - name: config-volume 94 mountPath: /etc/config 95 - name: storage-volume 96 mountPath: "{{ .Values.alertmanager.persistentVolume.mountPath }}" 97 subPath: "{{ .Values.alertmanager.persistentVolume.subPath }}" 98 {{- range .Values.alertmanager.extraSecretMounts }} 99 - name: {{ .name }} 100 mountPath: {{ .mountPath }} 101 subPath: {{ .subPath }} 102 readOnly: {{ .readOnly }} 103 {{- end }} 104 {{- if .Values.configmapReload.alertmanager.enabled }} 105 - name: {{ template "prometheus.name" . }}-{{ .Values.alertmanager.name }}-{{ .Values.configmapReload.alertmanager.name }} 106 image: "{{ .Values.configmapReload.alertmanager.image.repository }}:{{ .Values.configmapReload.alertmanager.image.tag }}" 107 imagePullPolicy: "{{ .Values.configmapReload.alertmanager.image.pullPolicy }}" 108 args: 109 - --volume-dir=/etc/config 110 - --webhook-url=http://localhost:9093{{ .Values.alertmanager.prefixURL }}/-/reload 111 resources: 112 {{ toYaml .Values.configmapReload.alertmanager.resources | indent 12 }} 113 volumeMounts: 114 - name: config-volume 115 mountPath: /etc/config 116 readOnly: true 117 {{- end }} 118 {{- if .Values.imagePullSecrets }} 119 imagePullSecrets: 120 {{ toYaml .Values.imagePullSecrets | indent 2 }} 121 {{- end }} 122 {{- if .Values.alertmanager.nodeSelector }} 123 nodeSelector: 124 {{ toYaml .Values.alertmanager.nodeSelector | indent 8 }} 125 {{- end }} 126 {{- if .Values.alertmanager.securityContext }} 127 securityContext: 128 {{ toYaml .Values.alertmanager.securityContext | indent 8 }} 129 {{- end }} 130 {{- if .Values.alertmanager.tolerations }} 131 tolerations: 132 {{ toYaml .Values.alertmanager.tolerations | indent 8 }} 133 {{- end }} 134 volumes: 135 - name: config-volume 136 {{- if empty .Values.alertmanager.configFromSecret }} 137 configMap: 138 name: {{ if .Values.alertmanager.configMapOverrideName }}{{ .Release.Name }}-{{ .Values.alertmanager.configMapOverrideName }}{{- else }}{{ template "prometheus.alertmanager.fullname" . }}{{- end }} 139 {{- else }} 140 secret: 141 secretName: {{ .Values.alertmanager.configFromSecret }} 142 {{- end }} 143 {{- range .Values.alertmanager.extraSecretMounts }} 144 - name: {{ .name }} 145 secret: 146 secretName: {{ .secretName }} 147 {{- end }} 148 {{- if .Values.alertmanager.persistentVolume.enabled }} 149 volumeClaimTemplates: 150 - metadata: 151 name: storage-volume 152 {{- if .Values.alertmanager.persistentVolume.annotations }} 153 annotations: 154 {{ toYaml .Values.alertmanager.persistentVolume.annotations | indent 10 }} 155 {{- end }} 156 spec: 157 accessModes: 158 {{ toYaml .Values.alertmanager.persistentVolume.accessModes | indent 10 }} 159 resources: 160 requests: 161 storage: "{{ .Values.alertmanager.persistentVolume.size }}" 162 {{- if .Values.server.persistentVolume.storageClass }} 163 {{- if (eq "-" .Values.server.persistentVolume.storageClass) }} 164 storageClassName: "" 165 {{- else }} 166 storageClassName: "{{ .Values.alertmanager.persistentVolume.storageClass }}" 167 {{- end }} 168 {{- end }} 169 {{- else }} 170 - name: storage-volume 171 emptyDir: 172 {{- if .Values.alertmanager.emptyDir.sizeLimit }} 173 sizeLimit: {{ .Values.alertmanager.emptyDir.sizeLimit }} 174 {{- else }} 175 {} 176 {{- end -}} 177 {{- end }} 178 {{- end }}