Mercurial > code > home > repos > victoriametrics
annotate create_k8s.py @ 71:bfacf01fd119
conv vmalert/alertmanager config to py
author | drewp@bigasterisk.com |
---|---|
date | Fri, 03 May 2024 12:27:16 -0700 |
parents | 6a021aa7b4be |
children | 85d9dae18656 |
rev | line source |
---|---|
57 | 1 from pathlib import Path |
56 | 2 from index_page import makeIndexHtml |
3 from output import affinityToNode, build, createIngress, createPv, createPvc, toJson, createSvc | |
55 | 4 |
5 | |
60
e3151ab43579
moving scrape target configs in py, and into separate retention classes
drewp@bigasterisk.com
parents:
57
diff
changeset
|
6 def createAgentDeploy(tzArg, vmVersion, pipelineWebRoot, agentFileName, agentName, agentPort, scrapeMapKey, insertName, objPrefix): |
56 | 7 (build / f'{agentFileName}_deploy.yaml').write_text( |
8 toJson({ | |
9 "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "name": agentName }, | |
10 "spec": { | |
11 "replicas": 1, "strategy": { "type": "Recreate" }, "selector": { "matchLabels": { "app": agentName } }, | |
12 "template": { | |
13 "metadata": { | |
14 "labels": { "app": agentName }, | |
15 "annotations": { "prometheus.io/scrape": "true", "prometheus.io/path": f"{pipelineWebRoot}/vmagent/metrics", "prometheus.io/port": "80" } | |
55 | 16 }, |
56 | 17 "spec": { |
60
e3151ab43579
moving scrape target configs in py, and into separate retention classes
drewp@bigasterisk.com
parents:
57
diff
changeset
|
18 "volumes": [{ "name": "config", "configMap": { "name": f"{objPrefix}-config" } }], |
56 | 19 "serviceAccountName": "victoriametrics", |
20 "containers": [{ | |
21 "name": "vmagent", | |
22 "image": f"docker.io/victoriametrics/vmagent:{vmVersion}", | |
23 "imagePullPolicy": "IfNotPresent", | |
24 "args": [ | |
25 f"-http.pathPrefix={pipelineWebRoot}/vmagent/", | |
26 tzArg, | |
27 f"-promscrape.config=/local/config/{scrapeMapKey}", | |
28 "-promscrape.configCheckInterval=5s", | |
29 "-sortLabels", | |
30 f"-remoteWrite.url=http://{insertName}{pipelineWebRoot}/vminsert/insert/0/prometheus/api/v1/write", | |
31 "-remoteWrite.showURL", | |
32 ], | |
33 "ports": [{ "containerPort": agentPort }], | |
34 "volumeMounts": [{ "name": "config", "mountPath": "/local/config" }] | |
35 }] | |
55 | 36 } |
37 } | |
38 } | |
56 | 39 })) # yapf: disable |
40 | |
55 | 41 |
56 | 42 def createInsertDeploy(tzArg, vmVersion, pipelineWebRoot, insertName, storageName, insertFileName, insertPort): |
43 (build / f'{insertFileName}_deploy.yaml').write_text( | |
44 toJson({ | |
45 "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "name": insertName }, | |
46 "spec": { | |
47 "replicas": 1, "strategy": { "type": "Recreate" }, "selector": { "matchLabels": { "app": insertName } }, | |
48 "template": { | |
49 "metadata": { | |
50 "labels": { "app": insertName }, | |
51 "annotations": { "prometheus.io/scrape": "true", "prometheus.io/path": "/m/metrics", "prometheus.io/port": "80" } | |
55 | 52 }, |
56 | 53 "spec": { |
54 "serviceAccountName": "victoriametrics", | |
55 "containers": [{ | |
56 "name": "vminsert", | |
57 "image": f"docker.io/victoriametrics/vminsert:{vmVersion}-cluster", | |
58 "imagePullPolicy": "IfNotPresent", | |
59 "args": [ | |
60 f"-http.pathPrefix={pipelineWebRoot}/vminsert/", | |
61 tzArg, | |
62 f"-storageNode={storageName}", | |
63 ], | |
64 "ports": [{ "containerPort": insertPort }] | |
65 }] | |
55 | 66 } |
67 } | |
68 } | |
56 | 69 })) # yapf: disable |
55 | 70 |
71 | |
56 | 72 def createStorageDeploy(tzArg, vmVersion, pipelineWebRoot, pipelineName, retention, storageName, storageFileName, localPvHost, volName, storageInsertPort, storageSelectPort): |
73 (build / f'{storageFileName}_2deploy.yaml').write_text( | |
74 toJson({ | |
75 "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "name": storageName }, | |
76 "spec": { | |
77 "replicas": 1, "strategy": { "type": "Recreate" }, "selector": { "matchLabels": { "app": storageName } }, | |
78 "template": { | |
79 "metadata": { | |
80 "labels": { "app": storageName }, | |
81 "annotations": { "prometheus.io/scrape": "true", "prometheus.io/path": "/m/vmstorage/metrics", "prometheus.io/port": "80" } | |
55 | 82 }, |
56 | 83 "spec": { |
84 "volumes": [{ "name": "data", "persistentVolumeClaim": { "claimName": volName } }], | |
85 "serviceAccountName": "victoriametrics", | |
86 "containers": [{ | |
87 "name": "vmstorage", | |
88 "image": f"docker.io/victoriametrics/vmstorage:{vmVersion}-cluster", | |
89 "imagePullPolicy": "IfNotPresent", | |
90 "args": [ | |
91 f"-http.pathPrefix={pipelineWebRoot}/vmstorage/", | |
92 tzArg, | |
93 f"-retentionPeriod={retention}", | |
94 f"-storageDataPath=/data/{pipelineName}", | |
95 ], | |
96 "ports": [ | |
97 { "containerPort": 8482, "name": "http" }, | |
98 { "containerPort": storageInsertPort, "name": "vminsert" }, | |
99 { "containerPort": storageSelectPort, "name": "vmselect" }, | |
100 ], | |
101 "volumeMounts": [{ "name": "data", "mountPath": "/data" }] | |
55 | 102 }], |
56 | 103 "affinity": affinityToNode(localPvHost) |
55 | 104 } |
105 } | |
106 } | |
56 | 107 })) # yapf: disable |
108 | |
55 | 109 |
56 | 110 def createVmselectDeploy(tzArg, vmVersion, webRoot, objPrefix, storageSvcs, selectPort): |
111 name = f"{objPrefix}-vmselect" | |
112 (build / f'{objPrefix}-1vmselect_deploy.yaml').write_text( | |
113 toJson({ | |
114 "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "name": name }, | |
115 "spec": { | |
116 "replicas": 1, | |
117 "strategy": { "type": "Recreate" }, | |
118 "selector": { "matchLabels": { "app": name } }, | |
119 "template": { | |
120 "metadata": { | |
121 "labels": { "app": name }, | |
122 "annotations": { "prometheus.io/scrape": "true", "prometheus.io/path": "/m/metrics", "prometheus.io/port": "80" } | |
55 | 123 }, |
56 | 124 "spec": { |
125 "serviceAccountName": "victoriametrics", | |
126 "containers": [{ | |
127 "name": "vmselect", "image": f"docker.io/victoriametrics/vmselect:{vmVersion}-cluster", "imagePullPolicy": "IfNotPresent", | |
128 "args": [ | |
129 f"-http.pathPrefix={webRoot}/vmselect/", | |
130 tzArg, | |
131 ] + [f"-storageNode={n}" for n in storageSvcs], | |
132 "ports": [{ "containerPort": selectPort }] | |
133 }] | |
55 | 134 } |
135 } | |
136 } | |
56 | 137 })) # yapf: disable |
138 | |
139 def createIngestPipeline(tzArg, vmVersion, webRoot, objPrefix, pipelineName, scrapeMapKey, retention): | |
140 agentName = f"{objPrefix}-{pipelineName}-vmagent" | |
141 insertName = f"{objPrefix}-{pipelineName}-vminsert" | |
142 storageName = f"{objPrefix}-{pipelineName}-vmstorage" | |
143 | |
144 agentFileName = f"{objPrefix}-0{pipelineName}-0vmagent" | |
145 insertFileName = f"{objPrefix}-0{pipelineName}-1vminsert" | |
146 storageFileName = f"{objPrefix}-0{pipelineName}-2vmstorage" | |
147 | |
148 localPvHost = "ditto" | |
149 insertPort = 8480 | |
150 agentPort = 8429 | |
151 storageInsertPort = 8400 | |
152 storageSelectPort = 8401 | |
153 volName = f"{objPrefix}-data-{pipelineName}" | |
154 request = "50Gi" | |
155 pipelineWebRoot = f'{webRoot}/{pipelineName}' | |
156 | |
60
e3151ab43579
moving scrape target configs in py, and into separate retention classes
drewp@bigasterisk.com
parents:
57
diff
changeset
|
157 createAgentDeploy(tzArg, vmVersion, pipelineWebRoot, agentFileName, agentName, agentPort, scrapeMapKey, insertName, objPrefix) |
56 | 158 createInsertDeploy(tzArg, vmVersion, pipelineWebRoot, insertName, storageName, insertFileName, insertPort) |
159 createPv(storageFileName, volName, request) | |
160 createPvc(storageFileName, volName, request) | |
161 createStorageDeploy(tzArg, vmVersion, pipelineWebRoot, pipelineName, retention, storageName, storageFileName, localPvHost, volName, storageInsertPort, storageSelectPort) | |
162 | |
163 createSvc(agentFileName, agentName, [{"port": 80, "targetPort": agentPort}]) | |
164 createSvc(insertFileName, insertName, [{"port": 80, "targetPort": insertPort}]) | |
165 createSvc(storageFileName,storageName, [ | |
166 {"port": 80, "targetPort": "http", "name": "http"}, | |
167 {"port": storageInsertPort, "targetPort": "vminsert", "name": "vminsert"}, | |
168 {"port": storageSelectPort, "targetPort": "vmselect", "name": "vmselect"}, | |
169 ]) # yapf: disable | |
170 | |
171 return storageName | |
172 | |
173 | |
174 def createIndex(objPrefix, webRoot, html): | |
175 name = f'{objPrefix}-index' | |
176 httpServeRoot = '/opt/html' | |
177 | |
178 (build / f'{objPrefix}-3index_cmap.yaml').write_text(toJson({ | |
179 "apiVersion": "v1", "kind": "ConfigMap", "metadata": { "name": name }, | |
180 "data": { | |
181 "index.html": html, | |
57 | 182 "index.js": Path("index.js").read_text(), |
183 "index.css": Path("index.css").read_text(), | |
184 } | |
56 | 185 })) # yapf: disable |
62
8134cd480817
make next/ a complete standalone setup dir- no deps on ./
drewp@bigasterisk.com
parents:
60
diff
changeset
|
186 |
56 | 187 (build / f'{objPrefix}-3index_deploy.yaml').write_text( |
188 toJson({ | |
189 "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "name": name }, | |
190 "spec": { | |
191 "replicas": 1, | |
192 "selector": { "matchLabels": { "app": name } }, | |
193 "template": { | |
194 "metadata": { "labels": { "app": name } }, | |
195 "spec": { | |
196 "containers": [{ | |
197 "name": "webserver", "image": "docker.io/joseluisq/static-web-server", "imagePullPolicy": "IfNotPresent", | |
198 "args": [ | |
199 f'--root={httpServeRoot}', | |
200 '--directory-listing=true', | |
201 '--experimental-metrics=true', | |
202 ], | |
203 "ports": [{ "containerPort": 80 }], | |
204 "volumeMounts": [{ "name": "html", "mountPath": f"{httpServeRoot}{webRoot}" }] | |
205 }], | |
206 "volumes": [{ "name": "html", "configMap": { "name": name, "defaultMode": 444 } }] | |
207 } | |
208 } | |
209 } | |
210 })) # yapf: disable | |
211 createSvc(f'{objPrefix}-3index', f'{objPrefix}-index', [{'port': 80, 'targetPort': 80}]) | |
55 | 212 |
57 | 213 |
69
6a021aa7b4be
collect alert obj yaml config for a minute (moving it to py)
drewp@bigasterisk.com
parents:
68
diff
changeset
|
214 def createAlertObjs(objPrefix, webRoot): |
71
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
215 (build / f'{objPrefix}-4vmalert_0pv.yaml').write_text( |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
216 toJson({ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
217 "apiVersion": "v1", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
218 "kind": "PersistentVolume", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
219 "metadata": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
220 "name": "opt-alertmanager", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
221 "labels": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
222 "type": "local" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
223 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
224 }, |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
225 "spec": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
226 "storageClassName": "manual", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
227 "hostPath": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
228 "path": "/opt/alertmanager" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
229 }, |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
230 "capacity": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
231 "storage": "50Gi" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
232 }, |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
233 "accessModes": ["ReadWriteOnce"], |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
234 "persistentVolumeReclaimPolicy": "Retain", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
235 "claimRef": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
236 "namespace": "default", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
237 "name": "opt-alertmanager" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
238 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
239 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
240 })) |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
241 (build / f'{objPrefix}-4vmalert_1pvc.yaml').write_text(toJson({ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
242 "apiVersion": "v1", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
243 "kind": "PersistentVolumeClaim", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
244 "metadata": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
245 "name": "opt-alertmanager" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
246 }, |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
247 "spec": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
248 "storageClassName": "", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
249 "volumeName": "opt-alertmanager", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
250 "accessModes": ["ReadWriteOnce"], |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
251 "resources": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
252 "requests": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
253 "storage": "50Gi" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
254 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
255 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
256 }, |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
257 })) |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
258 (build / f'{objPrefix}-4vmalert_2deploy.yaml').write_text( |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
259 toJson({ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
260 "apiVersion": "apps/v1", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
261 "kind": "Deployment", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
262 "metadata": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
263 "name": "vmalert" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
264 }, |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
265 "spec": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
266 "replicas": 1, |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
267 "strategy": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
268 "type": "Recreate" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
269 }, |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
270 "selector": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
271 "matchLabels": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
272 "app": "vmalert" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
273 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
274 }, |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
275 "template": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
276 "metadata": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
277 "labels": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
278 "app": "vmalert" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
279 }, |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
280 "annotations": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
281 "prometheus.io/scrape": "true" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
282 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
283 }, |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
284 "spec": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
285 "volumes": [{ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
286 "name": "config", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
287 "configMap": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
288 "name": "victoriametrics-config" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
289 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
290 }], |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
291 "serviceAccountName": |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
292 "victoriametrics", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
293 "containers": [{ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
294 "name": "vmalert", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
295 "image": "docker.io/victoriametrics/vmalert:v1.91.2", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
296 "args": [ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
297 "-configCheckInterval=5s", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
298 "-datasource.url=http://victoriametrics/m/", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
299 "-datasource.queryStep=5m", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
300 "-evaluationInterval=1m", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
301 "-external.url=https://bigasterisk.com/vmalert", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
302 "-loggerLevel=INFO", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
303 "-loggerTimezone=America/Los_Angeles", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
304 "-memory.allowedBytes=512MB", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
305 "-notifier.url=http://alertmanager", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
306 "-remoteRead.url=http://victoriametrics/m/", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
307 "-remoteWrite.url=http://victoriametrics/m/", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
308 "-rule=/local/rules", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
309 ], |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
310 "ports": [{ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
311 "containerPort": 8880 |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
312 }], |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
313 "volumeMounts": [{ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
314 "name": "config", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
315 "mountPath": "/local" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
316 }] |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
317 }] |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
318 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
319 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
320 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
321 })) |
69
6a021aa7b4be
collect alert obj yaml config for a minute (moving it to py)
drewp@bigasterisk.com
parents:
68
diff
changeset
|
322 |
71
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
323 (build / f'{objPrefix}-4vmalert_svc.yaml').write_text(toJson({ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
324 "apiVersion": "v1", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
325 "kind": "Service", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
326 "metadata": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
327 "name": "vmalert" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
328 }, |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
329 "spec": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
330 "ports": [{ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
331 "port": 80, |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
332 "targetPort": 8880 |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
333 }], |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
334 "selector": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
335 "app": "vmalert" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
336 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
337 }, |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
338 })) |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
339 (build / f'{objPrefix}-5alertmanager_deploy.yaml').write_text( |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
340 toJson({ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
341 "apiVersion": "apps/v1", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
342 "kind": "Deployment", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
343 "metadata": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
344 "name": "alertmanager" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
345 }, |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
346 "spec": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
347 "replicas": 1, |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
348 "selector": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
349 "matchLabels": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
350 "app": "alertmanager" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
351 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
352 }, |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
353 "template": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
354 "metadata": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
355 "labels": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
356 "app": "alertmanager" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
357 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
358 }, |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
359 "spec": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
360 "volumes": [{ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
361 "name": "opt-alertmanager", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
362 "persistentVolumeClaim": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
363 "claimName": "opt-alertmanager" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
364 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
365 }], |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
366 "serviceAccountName": "victoriametrics", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
367 "containers": [{ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
368 "name": "alertmanager", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
369 "image": "docker.io/prom/alertmanager:v0.27.0", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
370 "args": [ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
371 "--config.file=/alertmanager/alertmanager.yml", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
372 "--web.external-url=https://bigasterisk.com/alertmanager/", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
373 "--web.route-prefix=/", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
374 "--log.level=info", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
375 ], |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
376 "ports": [{ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
377 "containerPort": 9093 |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
378 }], |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
379 "volumeMounts": [{ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
380 "name": "opt-alertmanager", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
381 "mountPath": "/alertmanager" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
382 }] |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
383 }], |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
384 "affinity": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
385 "nodeAffinity": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
386 "requiredDuringSchedulingIgnoredDuringExecution": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
387 "nodeSelectorTerms": [{ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
388 "matchExpressions": [{ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
389 "key": "kubernetes.io/hostname", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
390 "operator": "In", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
391 "values": ["ditto"] |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
392 }] |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
393 }] |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
394 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
395 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
396 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
397 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
398 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
399 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
400 })) |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
401 (build / f'{objPrefix}-5alertmanager_svc.yaml').write_text(toJson({ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
402 "apiVersion": "v1", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
403 "kind": "Service", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
404 "metadata": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
405 "name": "alertmanager" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
406 }, |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
407 "spec": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
408 "ports": [{ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
409 "port": 80, |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
410 "targetPort": 9093 |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
411 }], |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
412 "selector": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
413 "app": "alertmanager" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
414 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
415 }, |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
416 })) |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
417 (build / f'{objPrefix}-4vmalert_ingress.yaml').write_text( |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
418 toJson({ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
419 "apiVersion": "networking.k8s.io/v1", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
420 "kind": "Ingress", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
421 "metadata": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
422 "name": "vmalert", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
423 "annotations": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
424 "cert-manager.io/cluster-issuer": "letsencrypt-prod", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
425 "ingress.pomerium.io/allow_public_unauthenticated_access": "false", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
426 "ingress.pomerium.io/pass_identity_headers": "true", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
427 "ingress.pomerium.io/preserve_host_header": "true", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
428 "ingress.pomerium.io/policy": "allow:\n or: \n - { email: { is: \"drewpca@gmail.com\" }}\n - { email: { is: \"kelsimp@gmail.com\" }}\n" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
429 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
430 }, |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
431 "spec": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
432 "ingressClassName": "pomerium", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
433 "rules": [{ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
434 "host": "bigasterisk.com", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
435 "http": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
436 "paths": [{ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
437 "pathType": "Prefix", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
438 "path": "/vmalert/", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
439 "backend": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
440 "service": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
441 "name": "vmalert", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
442 "port": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
443 "number": 80 |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
444 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
445 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
446 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
447 }] |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
448 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
449 }], |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
450 "tls": [{ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
451 "hosts": ["bigasterisk.com"], |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
452 "secretName": "bigasterisk.com-tls" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
453 }] |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
454 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
455 })) |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
456 (build / f'{objPrefix}-5alertmanager_ingress.yaml').write_text( |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
457 toJson({ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
458 "apiVersion": "networking.k8s.io/v1", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
459 "kind": "Ingress", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
460 "metadata": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
461 "name": "alertmanager", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
462 "annotations": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
463 "cert-manager.io/cluster-issuer": "letsencrypt-prod", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
464 "ingress.pomerium.io/allow_public_unauthenticated_access": "false", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
465 "ingress.pomerium.io/pass_identity_headers": "true", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
466 "ingress.pomerium.io/preserve_host_header": "true", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
467 "ingress.pomerium.io/policy": "allow:\n or: \n - { email: { is: \"drewpca@gmail.com\" }}\n - { email: { is: \"kelsimp@gmail.com\" }}\n", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
468 "ingress.pomerium.io/prefix_rewrite": "/" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
469 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
470 }, |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
471 "spec": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
472 "ingressClassName": "pomerium", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
473 "rules": [{ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
474 "host": "bigasterisk.com", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
475 "http": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
476 "paths": [{ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
477 "pathType": "Prefix", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
478 "path": "/alertmanager/", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
479 "backend": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
480 "service": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
481 "name": "alertmanager", |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
482 "port": { |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
483 "number": 80 |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
484 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
485 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
486 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
487 }] |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
488 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
489 }], |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
490 "tls": [{ |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
491 "hosts": ["bigasterisk.com"], |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
492 "secretName": "bigasterisk.com-tls" |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
493 }] |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
494 } |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
495 })) |
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
496 |
69
6a021aa7b4be
collect alert obj yaml config for a minute (moving it to py)
drewp@bigasterisk.com
parents:
68
diff
changeset
|
497 |
57 | 498 def main(): |
499 tzArg = "-loggerTimezone=America/Los_Angeles" | |
68 | 500 objPrefix = "victoriametrics" # prefix on all k8s object names |
501 webRoot = "/m" | |
57 | 502 vmVersion = "v1.100.1" |
503 webHost = 'bigasterisk.com' | |
504 pipelines = [ | |
505 ('forever', '100y'), | |
506 ('recent', '90y'), | |
507 ] | |
60
e3151ab43579
moving scrape target configs in py, and into separate retention classes
drewp@bigasterisk.com
parents:
57
diff
changeset
|
508 storageSvcs = [createIngestPipeline(tzArg, vmVersion, webRoot, objPrefix, p, f'scrape_{p}.yaml', ret) for p, ret in pipelines] |
57 | 509 |
510 selectPort = 8481 | |
511 createVmselectDeploy(tzArg, vmVersion, webRoot, objPrefix, storageSvcs, selectPort) | |
512 createSvc(f'{objPrefix}-1vmselect', f"{objPrefix}-vmselect", [{"port": 80, "targetPort": selectPort}]) | |
513 | |
514 ingressPaths = [ | |
515 { "pathType": "Prefix", "path": f"{webRoot}/", "backend": { "service": { "name": f"{objPrefix}-index", "port": { "number": 80 } } } }, | |
516 { "pathType": "Prefix", "path": f"{webRoot}/vmselect/", "backend": { "service": { "name": f"{objPrefix}-vmselect", "port": { "number": 80 } } } }, | |
517 ] # yapf: disable | |
518 for p, _ in pipelines: | |
519 ingressPaths.extend([ | |
520 { "pathType": "Prefix", "path": f"{webRoot}/{p}/vmagent/", "backend": { "service": { "name": f"{objPrefix}-{p}-vmagent", "port": { "number": 80 } } } }, | |
521 { "pathType": "Prefix", "path": f"{webRoot}/{p}/vminsert/", "backend": { "service": { "name": f"{objPrefix}-{p}-vminsert", "port": { "number": 80 } } } }, | |
522 { "pathType": "Prefix", "path": f"{webRoot}/{p}/vmstorage/", "backend": { "service": { "name": f"{objPrefix}-{p}-vmstorage", "port": { "number": 80 } } } }, | |
523 ]) # yapf: disable | |
524 | |
525 policy = """\ | |
526 allow: | |
527 or: | |
528 - { email: { is: "drewpca@gmail.com" }} | |
529 - { email: { is: "kelsimp@gmail.com" }} | |
530 """ | |
531 createIngress(f'{objPrefix}-2ingress.yaml', objPrefix, policy, ingressPaths, webHost) | |
532 createIndex(objPrefix, webRoot, makeIndexHtml(objPrefix, webRoot, webHost)) | |
69
6a021aa7b4be
collect alert obj yaml config for a minute (moving it to py)
drewp@bigasterisk.com
parents:
68
diff
changeset
|
533 createAlertObjs(objPrefix, webRoot) |
57 | 534 |
71
bfacf01fd119
conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents:
69
diff
changeset
|
535 |
57 | 536 main() |
537 | |
538 # in vmui, set server url to | |
539 # https://bigasterisk.com{webRoot}/vmselect/select/0/prometheus |