FigJam Diagram: Steve Lee Pottery — Static Site Pipeline (expires 2026-04-13)
A public-facing static website that displays Steve Lee's pottery listings from the stonewarearts Etsy shop. Content is auto-populated by the etsy-scraper Kubernetes Job and stored in a ConfigMap that nginx serves directly.
| Public URL | https://steve-lee.k3s.strommen.systems |
| Namespace | open-webui (shared with OpenClaw) |
| Image | nginx:1.27-alpine |
| Auth | None — fully public |
| Property | Value |
|---|---|
| Replicas | 2 |
| Port | 80 |
| Content source | steve-lee-index ConfigMap mounted as /usr/share/nginx/html/index.html |
| TLS | wildcard-tls secret in public-ingress namespace |
| IngressRoute | steve-lee in public-ingress ns — no auth middleware (public) |
If authentication is ever re-enabled, use the cluster-standard
authentik-forward-authmiddleware (not the legacy oauth2-proxy pattern).
The etsy-scraper Job scrapes stonewarearts and patches the steve-lee-index ConfigMap with generated HTML. It is not a CronJob — must be triggered manually.
# Trigger a manual scrape
kubectl create job -n open-webui etsy-scraper-manual --from=job/etsy-scraper
# Watch logs
kubectl logs -n open-webui job/etsy-scraper-manual -f
# Verify ConfigMap was updated
kubectl get configmap -n open-webui steve-lee-index -o jsonpath='{.data.index\.html}' | head -20
Shop config (in etsy-scraper-config ConfigMap):
| Setting | Value |
|---|---|
| Etsy shop | stonewarearts |
| Max products on site | 12 |
| Output path | /output/stonewarearts.json |
RBAC: The etsy-scraper ServiceAccount has get/patch on ConfigMaps in open-webui namespace (scoped to steve-lee-index only).
Hot reload: nginx picks up ConfigMap changes within ~60s via volume remount — no pod restart needed.
No /metrics endpoint. No ServiceMonitor. Pod-level metrics available via kube-state-metrics. No backup required — content regenerated from Etsy on demand.
| File | Purpose |
|---|---|
kubernetes/apps/steve-lee/namespace.yaml |
Namespace definition (open-webui — shared) |
kubernetes/apps/steve-lee/deployment.yaml |
nginx Deployment (2 replicas) |
kubernetes/apps/steve-lee/configmap.yaml |
steve-lee-index ConfigMap (HTML placeholder) |
kubernetes/apps/steve-lee/service.yaml |
ClusterIP Service :80 |
kubernetes/apps/steve-lee/ingressroute.yaml |
Active public IngressRoute in public-ingress ns |
kubernetes/apps/steve-lee/certificate.yaml |
TLS certificate (public wildcard) |
kubernetes/apps/etsy-scraper/etsy-scraper-job.yaml |
etsy-scraper Job + ConfigMap + ServiceAccount + RBAC |
open-webui namespace