Files
gitea-ci-library/tmp/gitea-pages.yaml
T
niko dacb8b4ef7
CI / feature (push) Has been skipped
CI / main (push) Failing after 0s
POC: test reusable workflow job visibility in Gitea Actions (#5)
Co-authored-by: moilanik <niko.moilanen@tietoevry.com>
Reviewed-on: #5
2026-06-13 09:37:47 +03:00

163 lines
4.1 KiB
YAML

# 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