apiVersion: v1 kind: ConfigMap metadata: name: {{ include "gitea-reports.fullname" . }}-config labels: {{- include "gitea-reports.componentLabels" . | nindent 4 }} data: default.conf: | client_max_body_size {{ .Values.nginx.bodySize }}; server { listen {{ .Values.nginx.port }}; root /app/data; autoindex on; client_max_body_size {{ .Values.nginx.bodySize }}; location / { try_files $uri $uri/ $uri/index.html =404; } } upload-server.py: | #!/usr/bin/env python3 import http.server, os, sys, tarfile, io PORT = int(os.environ.get("UPLOAD_PORT", "8081")) DATA_ROOT = "/app/data" class Handler(http.server.BaseHTTPRequestHandler): def do_PUT(self): dest = DATA_ROOT + self.path.rstrip("/") os.makedirs(dest, exist_ok=True) length = int(self.headers.get("Content-Length", 0)) body = self.rfile.read(length) with tarfile.open(fileobj=io.BytesIO(body), mode="r:gz") as tar: tar.extractall(dest) self.send_response(201) self.end_headers() def log_message(self, fmt, *args): sys.stderr.write("%s - %s\n" % (self.client_address[0], fmt % args)) http.server.HTTPServer(("", PORT), Handler).serve_forever()