# ── 自建 Gitea(--git=provision;仓库+SQLite 同一 PVC;引导管理员/token/OAuth app
#    是一次性动作,归 kube-up.sh,不进清单)────────────────────────────────────────
{{- if .Values.gitea.enabled }}
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: sema-gitea-data
  namespace: {{ .Release.Namespace }}
spec:
  accessModes: [ReadWriteOnce]
{{- if .Values.gitea.storageClass }}
  storageClassName: {{ .Values.gitea.storageClass }}
{{- end }}
  resources:
    requests:
      storage: {{ .Values.gitea.storageSize }}
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: sema-gitea
  namespace: {{ .Release.Namespace }}
spec:
  replicas: 1
  strategy: { type: Recreate }   # RWO PVC 同 registry
  selector:
    matchLabels: { app: sema-gitea }
  template:
    metadata:
      labels: { app: sema-gitea }
    spec:
      containers:
        - name: gitea
          image: {{ .Values.gitea.image | quote }}
          ports: [{ containerPort: 3000 }, { containerPort: 22 }]
          env:
            - { name: GITEA__security__INSTALL_LOCK, value: "true" }
            - { name: GITEA__database__DB_TYPE, value: sqlite3 }
            - { name: GITEA__server__DOMAIN, value: {{ .Values.gitea.domain | default "localhost" | quote }} }
            - { name: GITEA__server__ROOT_URL, value: "http://{{ .Values.gitea.domain | default "localhost" }}:{{ .Values.gitea.httpNodePort }}/" }
            - { name: GITEA__server__SSH_PORT, value: {{ .Values.gitea.sshNodePort | quote }} }
            - { name: GITEA__service__DISABLE_REGISTRATION, value: "true" }
          volumeMounts: [{ name: data, mountPath: /data }]
          readinessProbe:
            httpGet: { path: /api/healthz, port: 3000 }
            initialDelaySeconds: 5
            periodSeconds: 5
      volumes:
        - name: data
          persistentVolumeClaim: { claimName: sema-gitea-data }
---
apiVersion: v1
kind: Service
metadata:
  name: sema-gitea
  namespace: {{ .Release.Namespace }}
spec:
  type: NodePort
  selector: { app: sema-gitea }
  ports:
    - { name: http, port: 3000, targetPort: 3000, nodePort: {{ .Values.gitea.httpNodePort }} }
    - { name: ssh, port: 22, targetPort: 22, nodePort: {{ .Values.gitea.sshNodePort }} }
{{- end }}
