# DEPRECATED — älä käytä. deadnews/gitea-pages vetää pages-branchin Giteasta (väärä suunta). # Käytä sen sijaan: tmp/git-pages.yaml (Codeberg git-pages, CI pushaa HTML:n). # # Gitea Pages — k3s homelab (standardimalli, kuten vikunja) # # Sovellus: HTTP :8000 — ei omaa ingressiä, ei ACME:ä, ei TLS:ää podissa. # Ulospäin: cert-manager Certificate → Traefik IngressRoute (websecure). # # Image: ghcr.io/deadnews/gitea-pages — vetää tiedostot Gitea API:sta. # Data flow: CI git push → Gitea (branch "pages") → pages-server lukee API:lla. # # URL: https://pages.helm-dev.keskikuja.site/{owner}/{repo}/reports/{sha8}/cucumber/... # # Secret = Gitea PAT (read repository). # POC: Secret inline alla (älä commitoi oikeaa tokenia). # Tuotanto: kubectl-snippet, Secret pois manifestista — PR:llä repoon. --- apiVersion: v1 kind: Namespace metadata: name: gitea-pages labels: app.kubernetes.io/name: gitea-pages app.kubernetes.io/component: pages-server # Tuotanto — Secret kubectl:lla (PAT Giteasta): # # NS=gitea-pages # export GITEA_PAGES_TOKEN='gitea_pat_...' # kubectl create secret generic gitea-pages-secrets \ # --from-literal=gitea-api-token="$GITEA_PAGES_TOKEN" \ # -n $NS # # kubectl apply -f tmp/gitea-pages.yaml # ilman Secret-resurssia --- apiVersion: v1 kind: Secret metadata: name: gitea-pages-secrets namespace: gitea-pages labels: app.kubernetes.io/name: gitea-pages type: Opaque stringData: # POC: Gitea PAT read repository — täytä paikallisesti, älä commitoi gitea-api-token: "" --- apiVersion: apps/v1 kind: Deployment metadata: name: gitea-pages namespace: gitea-pages labels: app.kubernetes.io/name: gitea-pages app.kubernetes.io/component: pages-server spec: replicas: 1 selector: matchLabels: app.kubernetes.io/name: gitea-pages template: metadata: labels: app.kubernetes.io/name: gitea-pages app.kubernetes.io/component: pages-server spec: containers: - name: gitea-pages image: ghcr.io/deadnews/gitea-pages:v1.0.1 imagePullPolicy: IfNotPresent ports: - name: http containerPort: 8000 protocol: TCP env: - name: GITEA_PAGES_SERVER value: "https://gitea.app.keskikuja.site" - name: GITEA_PAGES_BRANCH value: "pages" - name: GITEA_PAGES_ADDR value: ":8000" - name: GITEA_PAGES_TOKEN valueFrom: secretKeyRef: name: gitea-pages-secrets key: gitea-api-token readinessProbe: httpGet: path: /health port: http initialDelaySeconds: 3 periodSeconds: 10 livenessProbe: httpGet: path: /health port: http initialDelaySeconds: 10 periodSeconds: 20 resources: requests: cpu: 50m memory: 64Mi limits: cpu: 500m memory: 256Mi --- apiVersion: v1 kind: Service metadata: name: gitea-pages namespace: gitea-pages labels: app.kubernetes.io/name: gitea-pages spec: type: ClusterIP selector: app.kubernetes.io/name: gitea-pages ports: - name: http port: 8000 targetPort: http protocol: TCP --- apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: gitea-pages-tls namespace: gitea-pages labels: app.kubernetes.io/name: gitea-pages spec: secretName: gitea-pages-tls commonName: pages.helm-dev.keskikuja.site dnsNames: - pages.helm-dev.keskikuja.site issuerRef: name: letsencrypt-prod kind: ClusterIssuer --- apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: gitea-pages namespace: gitea-pages labels: app.kubernetes.io/name: gitea-pages spec: entryPoints: - websecure routes: - match: Host(`pages.helm-dev.keskikuja.site`) kind: Rule services: - name: gitea-pages port: 8000 tls: secretName: gitea-pages-tls