Mercurial > code > home > repos > victoriametrics
changeset 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 | 0064c490c33d |
files | next/create_all.py next/index.css next/index.js next/index_page.py |
diffstat | 4 files changed, 63 insertions(+), 106 deletions(-) [+] |
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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/next/index.css Fri Apr 26 15:35:23 2024 -0700 @@ -0,0 +1,8 @@ +section { + margin-left: 2em; +} + +h1, +h2 { + border-top: 1px solid lightgray; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/next/index.js Fri Apr 26 15:35:23 2024 -0700 @@ -0,0 +1,4 @@ +function init(serverUrl) { + // this defaults to something incorrect, so we fix it hopefully before you go to vmui + localStorage.setItem('SERVER_URL', JSON.stringify({ value: serverUrl })); +} \ No newline at end of file
--- a/next/index_page.py Fri Apr 26 16:10:47 2024 -0700 +++ b/next/index_page.py Fri Apr 26 15:35:23 2024 -0700 @@ -1,17 +1,9 @@ - - def makeIndexHtml(objPrefix, webRoot, webHost): - unquotedJs = ''' - localStorage.setItem('SERVER_URL', JSON.stringify({value: serverUrl})); - ''' return f"""<!DOCTYPE html> <html> <head> <title>{objPrefix}</title> - <style> - section {{ margin-left: 2em; }} - h1, h2 {{ border-top: 1px solid lightgray; }} - </style> + <link rel="stylesheet" href="index.css"> </head> <body> <h1>{objPrefix}</h1> @@ -73,10 +65,9 @@ </table> </section> + <script src="index.js"></script> <script> - // this defaults to something incorrect, so we fix it hopefully before you go to vmui - let serverUrl = "https://{webHost}{webRoot}/vmselect/select/0/prometheus"; - {unquotedJs} + init("https://{webHost}{webRoot}/vmselect/select/0/prometheus"); </script> </body> - </html>""" \ No newline at end of file + </html>"""