Admin stack: Authelia SSO, portal at admin.carr.pub, gated grafana.carr.pub

This commit is contained in:
Adam Carr
2026-09-19 21:56:58 -07:00
parent 282fd3db8c
commit 2bc85826f1
5 changed files with 287 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: portal-index
namespace: admin
data:
index.html: |
<!doctype html>
<html>
<head><meta charset="utf-8"><title>planck admin</title>
<style>
body { font-family: system-ui, sans-serif; background: #111; color: #eee;
display: grid; place-items: center; min-height: 100vh; margin: 0; }
.card { text-align: center; }
h1 { font-size: 2.5rem; margin: 0 0 1.5rem; }
a { display: block; margin: 0.6rem auto; padding: 0.8rem 1.5rem;
background: #1e1e2e; border: 1px solid #333; border-radius: 10px;
color: #8be9fd; text-decoration: none; font-size: 1.1rem; width: 260px; }
a:hover { background: #2a2a3e; }
p { color: #888; }
</style>
</head>
<body><div class="card">
<h1>planck</h1>
<a href="https://grafana.carr.pub">Grafana</a>
<a href="https://auth.carr.pub">Account &amp; 2FA settings</a>
<p>20 nodes · k3s · carr.pub</p>
</div></body>
</html>
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: portal
namespace: admin
spec:
replicas: 2
selector:
matchLabels: {app: portal}
template:
metadata:
labels: {app: portal}
spec:
containers:
- name: web
image: nginx:1.29-alpine
ports: [{containerPort: 80}]
resources:
requests: {cpu: 10m, memory: 16Mi}
limits: {memory: 64Mi}
volumeMounts:
- {name: html, mountPath: /usr/share/nginx/html}
volumes:
- name: html
configMap: {name: portal-index}
---
apiVersion: v1
kind: Service
metadata:
name: portal
namespace: admin
spec:
selector: {app: portal}
ports:
- port: 80
targetPort: 80