Mercurial > code > home > repos > victoriametrics
diff next/output.py @ 56:a72c47973aa4
parameterize the python version
author | drewp@bigasterisk.com |
---|---|
date | Fri, 26 Apr 2024 16:10:47 -0700 |
parents | |
children | 8134cd480817 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/next/output.py Fri Apr 26 16:10:47 2024 -0700 @@ -0,0 +1,121 @@ +import json +from pathlib import Path + +build = Path('build') + + +def toJson(d): + return json.dumps(d, sort_keys=True, indent=2) + + +def createSvc(filename, name, ports): + (build / f'{filename}_svc.yaml').write_text(toJson({ + "apiVersion": "v1", + "kind": "Service", + "metadata": { + "name": name + }, + "spec": { + "ports": ports, + "selector": { + "app": name + } + }, + })) + + +def createIngress(filename, objName, policy, ingressPaths, host): + + (build / filename).write_text( + toJson({ + "apiVersion": "networking.k8s.io/v1", + "kind": "Ingress", + "metadata": { + "name": objName, + "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", + "ingress.pomerium.io/policy": policy, + } + }, + "spec": { + "ingressClassName": "pomerium", + "rules": [{ + "host": host, + "http": { + "paths": ingressPaths + } + },], + "tls": [{ + "hosts": [host], + "secretName": f"{host}-tls" + }] + } + })) + + +def createPv(storageFileName, volName, request): + (build / f'{storageFileName}_0pv.yaml').write_text( + toJson({ + "apiVersion": "v1", + "kind": "PersistentVolume", + "metadata": { + "name": volName, + "labels": { + "type": "local" + } + }, + "spec": { + "storageClassName": "manual", + "hostPath": { + "path": f"/opt/{volName}" + }, + "capacity": { + "storage": request + }, + "accessModes": ["ReadWriteMany"], + "persistentVolumeReclaimPolicy": "Retain", + "claimRef": { + "namespace": "default", + "name": volName + } + } + })) + + +def createPvc(storageFileName, volName, request): + (build / f'{storageFileName}_1pvc.yaml').write_text(toJson({ + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": volName, + }, + "spec": { + "storageClassName": "", + "volumeName": volName, + "accessModes": ["ReadWriteMany"], + "resources": { + "requests": { + "storage": request + } + } + }, + })) + + +def affinityToNode(node): + return { + "nodeAffinity": { + "requiredDuringSchedulingIgnoredDuringExecution": { + "nodeSelectorTerms": [{ + "matchExpressions": [{ + "key": "kubernetes.io/hostname", + "operator": "In", + "values": [node], + }], + }], + }, + } + }