mirror of
https://github.com/hanzoai/papers.git
synced 2026-10-29 07:34:31 +00:00
Replace the GitHub Pages publish (broken since 2026-04-10 on the org-wide Actions artifact-storage quota) with a standard GHA workflow that runs entirely on Hanzo infra: build the Next.js static export into a hanzoai/static image on the self-hosted hanzo-build-linux-amd64 pool, push to ghcr.io/hanzoai/papers, then roll it onto the operator-managed `papers` Service CR (hanzoai/ingress + static plugin) from hanzo-deploy-linux-amd64. No GitHub-hosted builders, no Pages artifact quota, no kaniko/PAT. DNS cutover (Cloudflare → hanzo-k8s LB) is the remaining one-time step.
45 lines
1.2 KiB
YAML
45 lines
1.2 KiB
YAML
# papers.hanzo.ai — operator-managed static site.
|
|
#
|
|
# The Hanzo operator (hanzo.ai/v1 Service) materializes Deployment + Service +
|
|
# Ingress + TLS cert from this one CR. The site is the Next.js static export
|
|
# baked into hanzoai/static (see ../Dockerfile), fronted by hanzoai/ingress.
|
|
# Modeled on the proven crs/cdn.yaml. The deploy workflow templates __TAG__ with
|
|
# the git SHA and `kubectl apply`s this (idempotent create-or-update).
|
|
apiVersion: hanzo.ai/v1
|
|
kind: Service
|
|
metadata:
|
|
name: papers
|
|
namespace: hanzo
|
|
spec:
|
|
image:
|
|
repository: ghcr.io/hanzoai/papers
|
|
tag: "__TAG__"
|
|
pullPolicy: Always
|
|
replicas: 2
|
|
args:
|
|
- "-port"
|
|
- "3000"
|
|
ports:
|
|
- name: http
|
|
containerPort: 3000
|
|
servicePort: 80
|
|
resources:
|
|
requests:
|
|
cpu: 50m
|
|
memory: 64Mi
|
|
limits:
|
|
cpu: 200m
|
|
memory: 256Mi
|
|
ingress:
|
|
enabled: true
|
|
hosts:
|
|
- papers.hanzo.ai
|
|
tls: true
|
|
# DNS-01 issuer: HTTP-01 is shadowed by the ingress 80→443 redirect and by
|
|
# the Cloudflare proxy in front of papers.hanzo.ai.
|
|
clusterIssuer: letsencrypt-prod-cf
|
|
imagePullSecrets:
|
|
- name: ghcr-secret
|
|
partOf: platform
|
|
component: papers
|