Mercurial > code > home > repos > victoriametrics
diff next/create_all.py @ 57:b3addcd4486c
extract css/js to their own files
(patch is contaminated with some parameterization code)
author | drewp@bigasterisk.com |
---|---|
date | Fri, 26 Apr 2024 15:35:23 -0700 |
parents | a72c47973aa4 |
children | e3151ab43579 |
line wrap: on
line diff
--- a/next/create_all.py Fri Apr 26 16:10:47 2024 -0700 +++ b/next/create_all.py Fri Apr 26 15:35:23 2024 -0700 @@ -1,3 +1,4 @@ +from pathlib import Path from index_page import makeIndexHtml from output import affinityToNode, build, createIngress, createPv, createPvc, toJson, createSvc @@ -178,39 +179,9 @@ "apiVersion": "v1", "kind": "ConfigMap", "metadata": { "name": name }, "data": { "index.html": html, -(??) } -(??) })) -(??)(build / 'vmselect_svc.yaml').write_text(toJson({ -(??) "apiVersion": "v1", -(??) "kind": "Service", -(??) "metadata": { -(??) "name": "next-victoriametrics-vmselect" -(??) }, -(??) "spec": { -(??) "ports": [{ -(??) "port": 80, -(??) "targetPort": 8481 -(??) }], -(??) "selector": { -(??) "app": "next-victoriametrics-vmselect" -(??) } -(??) } -(??)} -(??) # in vmui, set server url to -(??) # https://bigasterisk.com/m/next/vmselect/select/0/prometheus -(??) )) -(??) -(??)(build / 'vmselect_svc.yaml').write_text( -(??) toJson({ -(??) "apiVersion": "networking.k8s.io/v1", -(??) "kind": "Ingress", -(??) "metadata": { -(??) "name": "next-victoriametrics", -(??) "annotations": { -(??) "cert-manager.io/cluster-issuer": "letsencrypt-prod", -(??) "ingress.pomerium.io/allow_public_unauthenticated_access": "false", -(??) "ingress.pomerium.io/pass_identity_headers": "true", -(??) "ingress.pomerium.io/preserve_host_header": "true", + "index.js": Path("index.js").read_text(), + "index.css": Path("index.css").read_text(), + } })) # yapf: disable (build / f'{objPrefix}-3index_deploy.yaml').write_text( @@ -239,63 +210,46 @@ })) # yapf: disable createSvc(f'{objPrefix}-3index', f'{objPrefix}-index', [{'port': 80, 'targetPort': 80}]) -(build / 'vmselect_svc.yaml').write_text( - toJson({ - "apiVersion": "networking.k8s.io/v1", - "kind": "Ingress", - "metadata": { - "name": "next-victoriametrics", - "annotations": { - "cert-manager.io/cluster-issuer": "letsencrypt-prod", - "ingress.pomerium.io/allow_public_unauthenticated_access": "false", - "ingress.pomerium.io/pass_identity_headers": "true", - "ingress.pomerium.io/preserve_host_header": "true", - } - }, - "spec": { - "ingressClassName": "pomerium", - "rules": [{ - "host": "bigasterisk.com", - "http": { - "paths": [{ - "pathType": "Prefix", - "path": "/m/next/vmselect/", - "backend": { - "service": { - "name": "next-victoriametrics-vmselect", - "port": { - "number": 80 - } - } - } - }, { - "pathType": "Prefix", - "path": "/m/next/vmagent/", - "backend": { - "service": { - "name": "next-victoriametrics-vmagent", - "port": { - "number": 80 - } - } - } - }, { - "pathType": "Prefix", - "path": "/m/next/vmselect/", - "backend": { - "service": { - "name": "next-victoriametrics-vmselect", - "port": { - "number": 80 - } - } - } - }] - } - }], - "tls": [{ - "hosts": ["bigasterisk.com"], - "secretName": "bigasterisk.com-tls" - }] - } - })) + +def main(): + tzArg = "-loggerTimezone=America/Los_Angeles" + objPrefix = "next-victoriametrics" # prefix on all k8s object names + webRoot = "/m/next" + vmVersion = "v1.100.1" + webHost = 'bigasterisk.com' + pipelines = [ + ('forever', '100y'), + ('recent', '90y'), + ] + storageSvcs = [createIngestPipeline(tzArg, vmVersion, webRoot, objPrefix, p, f'scrape_{p}', ret) for p, ret in pipelines] + + selectPort = 8481 + createVmselectDeploy(tzArg, vmVersion, webRoot, objPrefix, storageSvcs, selectPort) + createSvc(f'{objPrefix}-1vmselect', f"{objPrefix}-vmselect", [{"port": 80, "targetPort": selectPort}]) + + ingressPaths = [ + { "pathType": "Prefix", "path": f"{webRoot}/", "backend": { "service": { "name": f"{objPrefix}-index", "port": { "number": 80 } } } }, + { "pathType": "Prefix", "path": f"{webRoot}/vmselect/", "backend": { "service": { "name": f"{objPrefix}-vmselect", "port": { "number": 80 } } } }, + ] # yapf: disable + for p, _ in pipelines: + ingressPaths.extend([ + { "pathType": "Prefix", "path": f"{webRoot}/{p}/vmagent/", "backend": { "service": { "name": f"{objPrefix}-{p}-vmagent", "port": { "number": 80 } } } }, + { "pathType": "Prefix", "path": f"{webRoot}/{p}/vminsert/", "backend": { "service": { "name": f"{objPrefix}-{p}-vminsert", "port": { "number": 80 } } } }, + { "pathType": "Prefix", "path": f"{webRoot}/{p}/vmstorage/", "backend": { "service": { "name": f"{objPrefix}-{p}-vmstorage", "port": { "number": 80 } } } }, + ]) # yapf: disable + + policy = """\ +allow: + or: + - { email: { is: "drewpca@gmail.com" }} + - { email: { is: "kelsimp@gmail.com" }} + """ + createIngress(f'{objPrefix}-2ingress.yaml', objPrefix, policy, ingressPaths, webHost) + createIndex(objPrefix, webRoot, makeIndexHtml(objPrefix, webRoot, webHost)) + # this should also emit a static html page and web server deploy that serves at webRoot and has a map of everything + + +main() + +# in vmui, set server url to +# https://bigasterisk.com{webRoot}/vmselect/select/0/prometheus