annotate create_k8s.py @ 84:4809a249d43f

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