Files
k3s-gitops/apps/nginx-canary/configmap.yaml

62 lines
3.6 KiB
YAML

apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-canary-config
namespace: nginx-canary
data:
index.html: |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>MCP Canary v2</title>
<style>
*{margin:0;padding:0;box-sizing:border-box}
body{min-height:100vh;background:linear-gradient(135deg,#1a0a00 0%,#7c2d00 40%,#d97706 70%,#1a0a00 100%);font-family:'Segoe UI',system-ui,sans-serif;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff}
.banner{width:100%;background:rgba(220,38,38,.85);color:#fff;text-align:center;padding:12px;font-size:.9rem;font-weight:600;letter-spacing:1px;text-transform:uppercase;position:fixed;top:0;left:0;z-index:10}
.card{background:rgba(255,255,255,.07);backdrop-filter:blur(16px);border:1px solid rgba(251,146,60,.3);border-radius:20px;padding:50px 60px;max-width:580px;width:90%;text-align:center;box-shadow:0 8px 60px rgba(217,119,6,.25);margin-top:48px}
h1{font-size:2.4rem;font-weight:700;margin-bottom:10px}
.badge{display:inline-block;background:linear-gradient(90deg,#d97706,#f59e0b);color:#1a0a00;font-size:.78rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:5px 16px;border-radius:99px;margin-bottom:28px}
.version{font-size:1rem;color:#fcd34d;margin-bottom:24px;font-weight:500}
hr{border:none;border-top:1px solid rgba(251,146,60,.2);margin:24px 0}
.ip-label{font-size:.8rem;color:#fbbf24;text-transform:uppercase;letter-spacing:1px;margin-bottom:6px}
.ip-value{font-size:1.4rem;font-weight:600;color:#fef3c7;font-family:monospace}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px;text-align:left}
.grid-item{background:rgba(255,255,255,.05);border:1px solid rgba(251,146,60,.2);border-radius:10px;padding:10px 14px}
.grid-label{font-size:.7rem;color:#fbbf24;text-transform:uppercase;letter-spacing:1px}
.grid-value{font-size:.9rem;font-weight:600;color:#fef3c7;font-family:monospace}
.footer{margin-top:28px;font-size:.75rem;color:rgba(251,146,60,.5)}
</style>
</head>
<body>
<div class="banner">&#9888; This is a CANARY build — not for production use</div>
<div class="card">
<div class="badge">Canary Release</div>
<h1>Hello from MCP v2</h1>
<div class="version">v2.0.0 canary</div>
<hr/>
<div class="ip-label">Your IP Address</div>
<div class="ip-value" id="ip">detecting...</div>
<div class="grid">
<div class="grid-item"><div class="grid-label">Track</div><div class="grid-value">canary</div></div>
<div class="grid-item"><div class="grid-label">Version</div><div class="grid-value">v2.0.0</div></div>
<div class="grid-item"><div class="grid-label">Image</div><div class="grid-value">nginx:1.25-alpine</div></div>
<div class="grid-item"><div class="grid-label">Replicas</div><div class="grid-value">2</div></div>
</div>
<div class="footer">thedevops.dev - nginx-canary namespace</div>
</div>
<script>fetch('https://api.ipify.org?format=json').then(r=>r.json()).then(d=>document.getElementById('ip').textContent=d.ip).catch(()=>document.getElementById('ip').textContent='unavailable')</script>
</body>
</html>
nginx.conf: |
server {
listen 80;
server_name _;
root /usr/share/nginx/html;
index index.html;
add_header X-Version "v2.0.0" always;
add_header X-Track "canary" always;
location / { try_files $uri $uri/ /index.html; }
location /healthz { return 200 'ok'; add_header Content-Type text/plain; }
}