annotate create_k8s.py @ 78:a4767069d8b0

alertmanager-conf is now a cmap
author drewp@bigasterisk.com
date Wed, 26 Jun 2024 22:29:10 -0700
parents 489c5d9a7dbc
children 4809a249d43f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
57
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
1 from pathlib import Path
56
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
2 from index_page import makeIndexHtml
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
3 from output import affinityToNode, build, createIngress, createPv, createPvc, toJson, createSvc
55
24f4ec319f98 yaml to py
drewp@bigasterisk.com
parents:
diff changeset
4
24f4ec319f98 yaml to py
drewp@bigasterisk.com
parents:
diff changeset
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
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
7 (build / f'{agentFileName}_deploy.yaml').write_text(
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
8 toJson({
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
9 "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "name": agentName },
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
10 "spec": {
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
11 "replicas": 1, "strategy": { "type": "Recreate" }, "selector": { "matchLabels": { "app": agentName } },
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
12 "template": {
74
177c0a2eab1e prom annotations are ignored
drewp@bigasterisk.com
parents: 73
diff changeset
13 "metadata": { "labels": { "app": agentName } },
56
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
14 "spec": {
60
e3151ab43579 moving scrape target configs in py, and into separate retention classes
drewp@bigasterisk.com
parents: 57
diff changeset
15 "volumes": [{ "name": "config", "configMap": { "name": f"{objPrefix}-config" } }],
56
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
16 "serviceAccountName": "victoriametrics",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
17 "containers": [{
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
18 "name": "vmagent",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
19 "image": f"docker.io/victoriametrics/vmagent:{vmVersion}",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
20 "imagePullPolicy": "IfNotPresent",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
21 "args": [
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
22 f"-http.pathPrefix={pipelineWebRoot}/vmagent/",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
23 tzArg,
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
24 f"-promscrape.config=/local/config/{scrapeMapKey}",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
25 "-promscrape.configCheckInterval=5s",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
26 "-sortLabels",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
27 f"-remoteWrite.url=http://{insertName}{pipelineWebRoot}/vminsert/insert/0/prometheus/api/v1/write",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
28 "-remoteWrite.showURL",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
29 ],
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
30 "ports": [{ "containerPort": agentPort }],
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
31 "volumeMounts": [{ "name": "config", "mountPath": "/local/config" }]
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
32 }]
55
24f4ec319f98 yaml to py
drewp@bigasterisk.com
parents:
diff changeset
33 }
24f4ec319f98 yaml to py
drewp@bigasterisk.com
parents:
diff changeset
34 }
24f4ec319f98 yaml to py
drewp@bigasterisk.com
parents:
diff changeset
35 }
56
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
36 })) # yapf: disable
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
37
55
24f4ec319f98 yaml to py
drewp@bigasterisk.com
parents:
diff changeset
38
56
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
39 def createInsertDeploy(tzArg, vmVersion, pipelineWebRoot, insertName, storageName, insertFileName, insertPort):
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
40 (build / f'{insertFileName}_deploy.yaml').write_text(
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
41 toJson({
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
42 "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "name": insertName },
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
43 "spec": {
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
44 "replicas": 1, "strategy": { "type": "Recreate" }, "selector": { "matchLabels": { "app": insertName } },
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
45 "template": {
74
177c0a2eab1e prom annotations are ignored
drewp@bigasterisk.com
parents: 73
diff changeset
46 "metadata": { "labels": { "app": insertName } },
56
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
47 "spec": {
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
48 "serviceAccountName": "victoriametrics",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
49 "containers": [{
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
50 "name": "vminsert",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
51 "image": f"docker.io/victoriametrics/vminsert:{vmVersion}-cluster",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
52 "imagePullPolicy": "IfNotPresent",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
53 "args": [
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
54 f"-http.pathPrefix={pipelineWebRoot}/vminsert/",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
55 tzArg,
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
56 f"-storageNode={storageName}",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
57 ],
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
58 "ports": [{ "containerPort": insertPort }]
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
59 }]
55
24f4ec319f98 yaml to py
drewp@bigasterisk.com
parents:
diff changeset
60 }
24f4ec319f98 yaml to py
drewp@bigasterisk.com
parents:
diff changeset
61 }
24f4ec319f98 yaml to py
drewp@bigasterisk.com
parents:
diff changeset
62 }
56
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
63 })) # yapf: disable
55
24f4ec319f98 yaml to py
drewp@bigasterisk.com
parents:
diff changeset
64
24f4ec319f98 yaml to py
drewp@bigasterisk.com
parents:
diff changeset
65
56
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
66 def createStorageDeploy(tzArg, vmVersion, pipelineWebRoot, pipelineName, retention, storageName, storageFileName, localPvHost, volName, storageInsertPort, storageSelectPort):
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
67 (build / f'{storageFileName}_2deploy.yaml').write_text(
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
68 toJson({
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
69 "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "name": storageName },
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
70 "spec": {
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
71 "replicas": 1, "strategy": { "type": "Recreate" }, "selector": { "matchLabels": { "app": storageName } },
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
72 "template": {
74
177c0a2eab1e prom annotations are ignored
drewp@bigasterisk.com
parents: 73
diff changeset
73 "metadata": { "labels": { "app": storageName } },
56
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
74 "spec": {
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
75 "volumes": [{ "name": "data", "persistentVolumeClaim": { "claimName": volName } }],
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
76 "serviceAccountName": "victoriametrics",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
77 "containers": [{
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
78 "name": "vmstorage",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
79 "image": f"docker.io/victoriametrics/vmstorage:{vmVersion}-cluster",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
80 "imagePullPolicy": "IfNotPresent",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
81 "args": [
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
82 f"-http.pathPrefix={pipelineWebRoot}/vmstorage/",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
83 tzArg,
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
84 f"-retentionPeriod={retention}",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
85 f"-storageDataPath=/data/{pipelineName}",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
86 ],
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
87 "ports": [
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
88 { "containerPort": 8482, "name": "http" },
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
89 { "containerPort": storageInsertPort, "name": "vminsert" },
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
90 { "containerPort": storageSelectPort, "name": "vmselect" },
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
91 ],
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
92 "volumeMounts": [{ "name": "data", "mountPath": "/data" }]
55
24f4ec319f98 yaml to py
drewp@bigasterisk.com
parents:
diff changeset
93 }],
56
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
94 "affinity": affinityToNode(localPvHost)
55
24f4ec319f98 yaml to py
drewp@bigasterisk.com
parents:
diff changeset
95 }
24f4ec319f98 yaml to py
drewp@bigasterisk.com
parents:
diff changeset
96 }
24f4ec319f98 yaml to py
drewp@bigasterisk.com
parents:
diff changeset
97 }
56
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
98 })) # yapf: disable
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
99
55
24f4ec319f98 yaml to py
drewp@bigasterisk.com
parents:
diff changeset
100
56
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
101 def createVmselectDeploy(tzArg, vmVersion, webRoot, objPrefix, storageSvcs, selectPort):
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
102 name = f"{objPrefix}-vmselect"
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
103 (build / f'{objPrefix}-1vmselect_deploy.yaml').write_text(
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
104 toJson({
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
105 "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "name": name },
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
106 "spec": {
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
107 "replicas": 1,
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
108 "strategy": { "type": "Recreate" },
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
109 "selector": { "matchLabels": { "app": name } },
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
110 "template": {
74
177c0a2eab1e prom annotations are ignored
drewp@bigasterisk.com
parents: 73
diff changeset
111 "metadata": { "labels": { "app": name } },
56
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
112 "spec": {
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
113 "serviceAccountName": "victoriametrics",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
114 "containers": [{
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
115 "name": "vmselect", "image": f"docker.io/victoriametrics/vmselect:{vmVersion}-cluster", "imagePullPolicy": "IfNotPresent",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
116 "args": [
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
117 f"-http.pathPrefix={webRoot}/vmselect/",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
118 tzArg,
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
119 ] + [f"-storageNode={n}" for n in storageSvcs],
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
120 "ports": [{ "containerPort": selectPort }]
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
121 }]
55
24f4ec319f98 yaml to py
drewp@bigasterisk.com
parents:
diff changeset
122 }
24f4ec319f98 yaml to py
drewp@bigasterisk.com
parents:
diff changeset
123 }
24f4ec319f98 yaml to py
drewp@bigasterisk.com
parents:
diff changeset
124 }
56
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
125 })) # yapf: disable
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
126
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
127 def createIngestPipeline(tzArg, vmVersion, webRoot, objPrefix, pipelineName, scrapeMapKey, retention):
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
128 agentName = f"{objPrefix}-{pipelineName}-vmagent"
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
129 insertName = f"{objPrefix}-{pipelineName}-vminsert"
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
130 storageName = f"{objPrefix}-{pipelineName}-vmstorage"
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
131
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
132 agentFileName = f"{objPrefix}-0{pipelineName}-0vmagent"
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
133 insertFileName = f"{objPrefix}-0{pipelineName}-1vminsert"
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
134 storageFileName = f"{objPrefix}-0{pipelineName}-2vmstorage"
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
135
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
136 localPvHost = "ditto"
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
137 insertPort = 8480
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
138 agentPort = 8429
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
139 storageInsertPort = 8400
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
140 storageSelectPort = 8401
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
141 volName = f"{objPrefix}-data-{pipelineName}"
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
142 request = "50Gi"
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
143 pipelineWebRoot = f'{webRoot}/{pipelineName}'
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
144
60
e3151ab43579 moving scrape target configs in py, and into separate retention classes
drewp@bigasterisk.com
parents: 57
diff changeset
145 createAgentDeploy(tzArg, vmVersion, pipelineWebRoot, agentFileName, agentName, agentPort, scrapeMapKey, insertName, objPrefix)
56
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
146 createInsertDeploy(tzArg, vmVersion, pipelineWebRoot, insertName, storageName, insertFileName, insertPort)
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
147 createPv(storageFileName, volName, request)
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
148 createPvc(storageFileName, volName, request)
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
149 createStorageDeploy(tzArg, vmVersion, pipelineWebRoot, pipelineName, retention, storageName, storageFileName, localPvHost, volName, storageInsertPort, storageSelectPort)
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
150
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
151 createSvc(agentFileName, agentName, [{"port": 80, "targetPort": agentPort}])
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
152 createSvc(insertFileName, insertName, [{"port": 80, "targetPort": insertPort}])
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
153 createSvc(storageFileName,storageName, [
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
154 {"port": 80, "targetPort": "http", "name": "http"},
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
155 {"port": storageInsertPort, "targetPort": "vminsert", "name": "vminsert"},
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
156 {"port": storageSelectPort, "targetPort": "vmselect", "name": "vmselect"},
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
157 ]) # yapf: disable
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
158
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
159 return storageName
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
160
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
161
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
162 def createIndex(objPrefix, webRoot, html):
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
163 name = f'{objPrefix}-index'
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
164 httpServeRoot = '/opt/html'
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
165
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
166 (build / f'{objPrefix}-3index_cmap.yaml').write_text(toJson({
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
167 "apiVersion": "v1", "kind": "ConfigMap", "metadata": { "name": name },
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
168 "data": {
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
169 "index.html": html,
57
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
170 "index.js": Path("index.js").read_text(),
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
171 "index.css": Path("index.css").read_text(),
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
172 }
56
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
173 })) # yapf: disable
62
8134cd480817 make next/ a complete standalone setup dir- no deps on ./
drewp@bigasterisk.com
parents: 60
diff changeset
174
56
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
175 (build / f'{objPrefix}-3index_deploy.yaml').write_text(
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
176 toJson({
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
177 "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "name": name },
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
178 "spec": {
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
179 "replicas": 1,
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
180 "selector": { "matchLabels": { "app": name } },
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
181 "template": {
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
182 "metadata": { "labels": { "app": name } },
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
183 "spec": {
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
184 "containers": [{
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
185 "name": "webserver", "image": "docker.io/joseluisq/static-web-server", "imagePullPolicy": "IfNotPresent",
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
186 "args": [
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
187 f'--root={httpServeRoot}',
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
188 '--directory-listing=true',
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
189 '--experimental-metrics=true',
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
190 ],
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
191 "ports": [{ "containerPort": 80 }],
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
192 "volumeMounts": [{ "name": "html", "mountPath": f"{httpServeRoot}{webRoot}" }]
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
193 }],
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
194 "volumes": [{ "name": "html", "configMap": { "name": name, "defaultMode": 444 } }]
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
195 }
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
196 }
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
197 }
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
198 })) # yapf: disable
a72c47973aa4 parameterize the python version
drewp@bigasterisk.com
parents: 55
diff changeset
199 createSvc(f'{objPrefix}-3index', f'{objPrefix}-index', [{'port': 80, 'targetPort': 80}])
55
24f4ec319f98 yaml to py
drewp@bigasterisk.com
parents:
diff changeset
200
57
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
201
72
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
202 def createVmalertObjs(tzArg, objPrefix, webRoot, policy, vmVersion):
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
203 vmalertName = f"{objPrefix}-vmalert"
71
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
204 (build / f'{objPrefix}-4vmalert_2deploy.yaml').write_text(
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
205 toJson({
72
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
206 "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "name": vmalertName },
71
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
207 "spec": {
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
208 "replicas": 1,
72
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
209 "strategy": { "type": "Recreate" },
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
210 "selector": { "matchLabels": { "app": vmalertName } },
71
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
211 "template": {
72
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
212 "metadata": { "labels": { "app": vmalertName }, },
71
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
213 "spec": {
72
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
214 "volumes": [{ "name": "config", "configMap": { "name": "victoriametrics-config" } }],
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
215 "serviceAccountName": "victoriametrics",
71
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
216 "containers": [{
72
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
217 "name": "vmalert", "image": f"docker.io/victoriametrics/vmalert:{vmVersion}", "imagePullPolicy": "IfNotPresent",
71
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
218 "args": [
72
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
219 tzArg,
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
220 "-loggerLevel=INFO",
71
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
221 "-configCheckInterval=5s",
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
222 "-datasource.queryStep=5m",
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
223 "-evaluationInterval=1m",
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
224 "-rule=/local/rules",
72
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
225
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
226 # used in a field of the alert to link back to vmalert's info page
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
227 f"-external.url=https://bigasterisk.com{webRoot}/vmalert",
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
228
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
229 f"-datasource.url=http://{objPrefix}-vmselect/m/vmselect/select/0/prometheus",
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
230 f"-http.pathPrefix={webRoot}/vmalert/",
73
c3d13fab248e alertmanager deployment
drewp@bigasterisk.com
parents: 72
diff changeset
231 f"-notifier.url=http://{objPrefix}-alertmanager/m/alertmanager",
72
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
232
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
233 # todo: remoteWrite should go to vminsert; not sure how to test it
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
234 # "-remoteRead.url=http://victoriametrics/m/",
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
235 # "-remoteWrite.url=http://victoriametrics/m/",
71
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
236 ],
72
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
237 "ports": [{ "containerPort": 8880 }],
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
238 "volumeMounts": [{ "name": "config", "mountPath": "/local" }]
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
239 }],
71
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 }
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
242 }
72
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
243 })) # yapf: disable
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
244
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
245 createSvc(f'{objPrefix}-4vmalert', vmalertName, [{"port": 80, "targetPort": 8880}])
69
6a021aa7b4be collect alert obj yaml config for a minute (moving it to py)
drewp@bigasterisk.com
parents: 68
diff changeset
246
72
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
247 createIngress(
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
248 f'{objPrefix}-4vmalert_ingress.yaml',
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
249 'vmalert',
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
250 policy,
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
251 [{ "pathType": "Prefix", "path": f"{webRoot}/vmalert/", "backend": { "service": { "name": vmalertName, "port": { "number": 80 } } } }],
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
252 "bigasterisk.com",
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
253 ) # yapf: disable
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
254
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
255
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
256 def createAlertmanagerObjs(tzArg, objPrefix, webRoot, policy):
78
a4767069d8b0 alertmanager-conf is now a cmap
drewp@bigasterisk.com
parents: 77
diff changeset
257 confFilename = "alertmanager.yml"
a4767069d8b0 alertmanager-conf is now a cmap
drewp@bigasterisk.com
parents: 77
diff changeset
258
a4767069d8b0 alertmanager-conf is now a cmap
drewp@bigasterisk.com
parents: 77
diff changeset
259 (build / f'{objPrefix}-5alertmanager_conf_cmap.yaml').write_text(toJson({
a4767069d8b0 alertmanager-conf is now a cmap
drewp@bigasterisk.com
parents: 77
diff changeset
260 "apiVersion": "v1", "kind": "ConfigMap", "metadata": { "name": "alertmanager-conf" },
a4767069d8b0 alertmanager-conf is now a cmap
drewp@bigasterisk.com
parents: 77
diff changeset
261 "data": {
a4767069d8b0 alertmanager-conf is now a cmap
drewp@bigasterisk.com
parents: 77
diff changeset
262 confFilename: Path("./alertmanager.yaml").read_text(),
a4767069d8b0 alertmanager-conf is now a cmap
drewp@bigasterisk.com
parents: 77
diff changeset
263 }
a4767069d8b0 alertmanager-conf is now a cmap
drewp@bigasterisk.com
parents: 77
diff changeset
264 })) # yapf: disable
77
489c5d9a7dbc spelling of alertmanager config filenames
drewp@bigasterisk.com
parents: 74
diff changeset
265 createPv(f'{objPrefix}-5alertmanager', "opt-alertmanager", '50Gi')
489c5d9a7dbc spelling of alertmanager config filenames
drewp@bigasterisk.com
parents: 74
diff changeset
266 createPvc(f'{objPrefix}-5alertmanager', "opt-alertmanager", '50Gi')
72
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
267
73
c3d13fab248e alertmanager deployment
drewp@bigasterisk.com
parents: 72
diff changeset
268 amName = f'{objPrefix}-alertmanager'
71
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
269 (build / f'{objPrefix}-5alertmanager_deploy.yaml').write_text(
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
270 toJson({
73
c3d13fab248e alertmanager deployment
drewp@bigasterisk.com
parents: 72
diff changeset
271 "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "name": amName },
71
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
272 "spec": {
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
273 "replicas": 1,
73
c3d13fab248e alertmanager deployment
drewp@bigasterisk.com
parents: 72
diff changeset
274 "selector": { "matchLabels": { "app": amName } },
71
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
275 "template": {
73
c3d13fab248e alertmanager deployment
drewp@bigasterisk.com
parents: 72
diff changeset
276 "metadata": { "labels": { "app": amName } },
71
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
277 "spec": {
78
a4767069d8b0 alertmanager-conf is now a cmap
drewp@bigasterisk.com
parents: 77
diff changeset
278 "volumes": [
a4767069d8b0 alertmanager-conf is now a cmap
drewp@bigasterisk.com
parents: 77
diff changeset
279 { "name": "opt-alertmanager", "persistentVolumeClaim": { "claimName": "opt-alertmanager" } },
a4767069d8b0 alertmanager-conf is now a cmap
drewp@bigasterisk.com
parents: 77
diff changeset
280 { "name": "alertmanager-conf", "configMap": { "name": "alertmanager-conf" } }
a4767069d8b0 alertmanager-conf is now a cmap
drewp@bigasterisk.com
parents: 77
diff changeset
281 ],
71
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
282 "serviceAccountName": "victoriametrics",
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
283 "containers": [{
73
c3d13fab248e alertmanager deployment
drewp@bigasterisk.com
parents: 72
diff changeset
284 "name": "alertmanager", "image": "docker.io/prom/alertmanager:v0.27.0", "imagePullPolicy": "IfNotPresent",
71
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
285 "args": [
74
177c0a2eab1e prom annotations are ignored
drewp@bigasterisk.com
parents: 73
diff changeset
286 "--log.level=info",
78
a4767069d8b0 alertmanager-conf is now a cmap
drewp@bigasterisk.com
parents: 77
diff changeset
287 f"--config.file=/conf/{confFilename}",
73
c3d13fab248e alertmanager deployment
drewp@bigasterisk.com
parents: 72
diff changeset
288 f"--web.external-url=https://bigasterisk.com{webRoot}/alertmanager/",
c3d13fab248e alertmanager deployment
drewp@bigasterisk.com
parents: 72
diff changeset
289 f"--web.route-prefix={webRoot}/alertmanager",
71
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
290 ],
73
c3d13fab248e alertmanager deployment
drewp@bigasterisk.com
parents: 72
diff changeset
291 "ports": [{ "containerPort": 9093 }],
78
a4767069d8b0 alertmanager-conf is now a cmap
drewp@bigasterisk.com
parents: 77
diff changeset
292 "volumeMounts": [
a4767069d8b0 alertmanager-conf is now a cmap
drewp@bigasterisk.com
parents: 77
diff changeset
293 { "name": "opt-alertmanager", "mountPath": "/alertmanager" },
a4767069d8b0 alertmanager-conf is now a cmap
drewp@bigasterisk.com
parents: 77
diff changeset
294 { "name": "alertmanager-conf", "mountPath": "/conf" }
a4767069d8b0 alertmanager-conf is now a cmap
drewp@bigasterisk.com
parents: 77
diff changeset
295 ]
71
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
296 }],
72
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
297 "affinity": affinityToNode("ditto"),
71
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
298 }
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
299 }
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
300 }
73
c3d13fab248e alertmanager deployment
drewp@bigasterisk.com
parents: 72
diff changeset
301 })) # yapf: disable
72
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
302
73
c3d13fab248e alertmanager deployment
drewp@bigasterisk.com
parents: 72
diff changeset
303 createSvc(f'{objPrefix}-5alertmanager', amName, [{"port": 80, "targetPort": 9093}])
72
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
304 createIngress(
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
305 f'{objPrefix}-5alertmanager_ingress.yaml',
73
c3d13fab248e alertmanager deployment
drewp@bigasterisk.com
parents: 72
diff changeset
306 amName,
72
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
307 policy,
73
c3d13fab248e alertmanager deployment
drewp@bigasterisk.com
parents: 72
diff changeset
308 [{ "pathType": "Prefix", "path": "/m/alertmanager/", "backend": { "service": { "name": amName, "port": { "number": 80 } } } }],
72
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
309 "bigasterisk.com",
73
c3d13fab248e alertmanager deployment
drewp@bigasterisk.com
parents: 72
diff changeset
310 ) # yapf: disable
71
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
311
69
6a021aa7b4be collect alert obj yaml config for a minute (moving it to py)
drewp@bigasterisk.com
parents: 68
diff changeset
312
57
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
313 def main():
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
314 tzArg = "-loggerTimezone=America/Los_Angeles"
68
c5e98d891638 remove 'next' prefix
drewp@bigasterisk.com
parents: 67
diff changeset
315 objPrefix = "victoriametrics" # prefix on all k8s object names
c5e98d891638 remove 'next' prefix
drewp@bigasterisk.com
parents: 67
diff changeset
316 webRoot = "/m"
57
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
317 vmVersion = "v1.100.1"
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
318 webHost = 'bigasterisk.com'
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
319 pipelines = [
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
320 ('forever', '100y'),
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
321 ('recent', '90y'),
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
322 ]
60
e3151ab43579 moving scrape target configs in py, and into separate retention classes
drewp@bigasterisk.com
parents: 57
diff changeset
323 storageSvcs = [createIngestPipeline(tzArg, vmVersion, webRoot, objPrefix, p, f'scrape_{p}.yaml', ret) for p, ret in pipelines]
57
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
324
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
325 selectPort = 8481
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
326 createVmselectDeploy(tzArg, vmVersion, webRoot, objPrefix, storageSvcs, selectPort)
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
327 createSvc(f'{objPrefix}-1vmselect', f"{objPrefix}-vmselect", [{"port": 80, "targetPort": selectPort}])
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
328
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
329 ingressPaths = [
74
177c0a2eab1e prom annotations are ignored
drewp@bigasterisk.com
parents: 73
diff changeset
330 { "pathType": "Prefix", "path": f"{webRoot}/", "backend": { "service": { "name": f"{objPrefix}-index", "port": { "number": 80 } } } },
57
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
331 { "pathType": "Prefix", "path": f"{webRoot}/vmselect/", "backend": { "service": { "name": f"{objPrefix}-vmselect", "port": { "number": 80 } } } },
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
332 ] # yapf: disable
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
333 for p, _ in pipelines:
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
334 ingressPaths.extend([
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
335 { "pathType": "Prefix", "path": f"{webRoot}/{p}/vmagent/", "backend": { "service": { "name": f"{objPrefix}-{p}-vmagent", "port": { "number": 80 } } } },
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
336 { "pathType": "Prefix", "path": f"{webRoot}/{p}/vminsert/", "backend": { "service": { "name": f"{objPrefix}-{p}-vminsert", "port": { "number": 80 } } } },
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
337 { "pathType": "Prefix", "path": f"{webRoot}/{p}/vmstorage/", "backend": { "service": { "name": f"{objPrefix}-{p}-vmstorage", "port": { "number": 80 } } } },
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
338 ]) # yapf: disable
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
339
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
340 policy = """\
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
341 allow:
77
489c5d9a7dbc spelling of alertmanager config filenames
drewp@bigasterisk.com
parents: 74
diff changeset
342 or:
57
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
343 - { email: { is: "drewpca@gmail.com" }}
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
344 - { email: { is: "kelsimp@gmail.com" }}
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
345 """
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
346 createIngress(f'{objPrefix}-2ingress.yaml', objPrefix, policy, ingressPaths, webHost)
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
347 createIndex(objPrefix, webRoot, makeIndexHtml(objPrefix, webRoot, webHost))
72
85d9dae18656 fix up vmalert k8s objs
drewp@bigasterisk.com
parents: 71
diff changeset
348 createVmalertObjs(tzArg, objPrefix, webRoot, policy, vmVersion)
73
c3d13fab248e alertmanager deployment
drewp@bigasterisk.com
parents: 72
diff changeset
349 createAlertmanagerObjs(tzArg, objPrefix, webRoot, policy)
57
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
350
71
bfacf01fd119 conv vmalert/alertmanager config to py
drewp@bigasterisk.com
parents: 69
diff changeset
351
57
b3addcd4486c extract css/js to their own files
drewp@bigasterisk.com
parents: 56
diff changeset
352 main()