comparison next/create_all.py @ 60:e3151ab43579

moving scrape target configs in py, and into separate retention classes
author drewp@bigasterisk.com
date Sat, 27 Apr 2024 01:31:07 -0700
parents b3addcd4486c
children
comparison
equal deleted inserted replaced
59:6a357b483c04 60:e3151ab43579
1 from pathlib import Path 1 from pathlib import Path
2 from index_page import makeIndexHtml 2 from index_page import makeIndexHtml
3 from output import affinityToNode, build, createIngress, createPv, createPvc, toJson, createSvc 3 from output import affinityToNode, build, createIngress, createPv, createPvc, toJson, createSvc
4 4
5 5
6 def createAgentDeploy(tzArg, vmVersion, pipelineWebRoot, agentFileName, agentName, agentPort, scrapeMapKey, insertName, pipelineName): 6 def createAgentDeploy(tzArg, vmVersion, pipelineWebRoot, agentFileName, agentName, agentPort, scrapeMapKey, insertName, objPrefix):
7 (build / f'{agentFileName}_deploy.yaml').write_text( 7 (build / f'{agentFileName}_deploy.yaml').write_text(
8 toJson({ 8 toJson({
9 "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "name": agentName }, 9 "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "name": agentName },
10 "spec": { 10 "spec": {
11 "replicas": 1, "strategy": { "type": "Recreate" }, "selector": { "matchLabels": { "app": agentName } }, 11 "replicas": 1, "strategy": { "type": "Recreate" }, "selector": { "matchLabels": { "app": agentName } },
13 "metadata": { 13 "metadata": {
14 "labels": { "app": agentName }, 14 "labels": { "app": agentName },
15 "annotations": { "prometheus.io/scrape": "true", "prometheus.io/path": f"{pipelineWebRoot}/vmagent/metrics", "prometheus.io/port": "80" } 15 "annotations": { "prometheus.io/scrape": "true", "prometheus.io/path": f"{pipelineWebRoot}/vmagent/metrics", "prometheus.io/port": "80" }
16 }, 16 },
17 "spec": { 17 "spec": {
18 "volumes": [{ "name": "config", "configMap": { "name": "victoriametrics-config" } }], 18 "volumes": [{ "name": "config", "configMap": { "name": f"{objPrefix}-config" } }],
19 "serviceAccountName": "victoriametrics", 19 "serviceAccountName": "victoriametrics",
20 "containers": [{ 20 "containers": [{
21 "name": "vmagent", 21 "name": "vmagent",
22 "image": f"docker.io/victoriametrics/vmagent:{vmVersion}", 22 "image": f"docker.io/victoriametrics/vmagent:{vmVersion}",
23 "imagePullPolicy": "IfNotPresent", 23 "imagePullPolicy": "IfNotPresent",
152 storageSelectPort = 8401 152 storageSelectPort = 8401
153 volName = f"{objPrefix}-data-{pipelineName}" 153 volName = f"{objPrefix}-data-{pipelineName}"
154 request = "50Gi" 154 request = "50Gi"
155 pipelineWebRoot = f'{webRoot}/{pipelineName}' 155 pipelineWebRoot = f'{webRoot}/{pipelineName}'
156 156
157 createAgentDeploy(tzArg, vmVersion, pipelineWebRoot, agentFileName, agentName, agentPort, scrapeMapKey, insertName, pipelineName) 157 createAgentDeploy(tzArg, vmVersion, pipelineWebRoot, agentFileName, agentName, agentPort, scrapeMapKey, insertName, objPrefix)
158 createInsertDeploy(tzArg, vmVersion, pipelineWebRoot, insertName, storageName, insertFileName, insertPort) 158 createInsertDeploy(tzArg, vmVersion, pipelineWebRoot, insertName, storageName, insertFileName, insertPort)
159 createPv(storageFileName, volName, request) 159 createPv(storageFileName, volName, request)
160 createPvc(storageFileName, volName, request) 160 createPvc(storageFileName, volName, request)
161 createStorageDeploy(tzArg, vmVersion, pipelineWebRoot, pipelineName, retention, storageName, storageFileName, localPvHost, volName, storageInsertPort, storageSelectPort) 161 createStorageDeploy(tzArg, vmVersion, pipelineWebRoot, pipelineName, retention, storageName, storageFileName, localPvHost, volName, storageInsertPort, storageSelectPort)
162 162
219 webHost = 'bigasterisk.com' 219 webHost = 'bigasterisk.com'
220 pipelines = [ 220 pipelines = [
221 ('forever', '100y'), 221 ('forever', '100y'),
222 ('recent', '90y'), 222 ('recent', '90y'),
223 ] 223 ]
224 storageSvcs = [createIngestPipeline(tzArg, vmVersion, webRoot, objPrefix, p, f'scrape_{p}', ret) for p, ret in pipelines] 224 storageSvcs = [createIngestPipeline(tzArg, vmVersion, webRoot, objPrefix, p, f'scrape_{p}.yaml', ret) for p, ret in pipelines]
225 225
226 selectPort = 8481 226 selectPort = 8481
227 createVmselectDeploy(tzArg, vmVersion, webRoot, objPrefix, storageSvcs, selectPort) 227 createVmselectDeploy(tzArg, vmVersion, webRoot, objPrefix, storageSvcs, selectPort)
228 createSvc(f'{objPrefix}-1vmselect', f"{objPrefix}-vmselect", [{"port": 80, "targetPort": selectPort}]) 228 createSvc(f'{objPrefix}-1vmselect', f"{objPrefix}-vmselect", [{"port": 80, "targetPort": selectPort}])
229 229