Files
iac/roles/gitea/tasks/main.yml
2026-01-16 17:54:59 +00:00

129 lines
3.0 KiB
YAML

---
- name: Add Gitea Helm Repo
kubernetes.core.helm_repository:
name: gitea
repo_url: https://dl.gitea.com/charts/
- name: Create Gitea Data Directories
file:
path: "{{ item }}"
state: directory
mode: '0777'
owner: root
group: root
loop:
- /data/gitea/data
- /data/gitea/postgres
- name: Create Gitea Persistent Volume
kubernetes.core.k8s:
definition:
apiVersion: v1
kind: PersistentVolume
metadata:
name: gitea-pv
spec:
capacity:
storage: 150Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /data/gitea/data
storageClassName: manual
- name: Create Postgres Persistent Volume
kubernetes.core.k8s:
definition:
apiVersion: v1
kind: PersistentVolume
metadata:
name: gitea-postgres-pv
spec:
capacity:
storage: 50Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /data/gitea/postgres
storageClassName: manual
# - name: Clean up Released PVs and Incorrect PVCs
# shell: |
# microk8s kubectl patch pv gitea-pv -p '{"spec":{"claimRef": null}}'
# microk8s kubectl patch pv gitea-postgres-pv -p '{"spec":{"claimRef": null}}'
# microk8s kubectl delete pvc data-gitea-postgresql-0 -n gitea --wait=false
# ignore_errors: true
- name: Install Gitea
kubernetes.core.helm:
name: gitea
chart_ref: gitea/gitea
release_namespace: gitea
create_namespace: true
values:
gitea:
config:
server:
ROOT_URL: "https://git.svc.pguia.com/"
DOMAIN: "git.svc.pguia.com"
SSH_DOMAIN: "git.svc.pguia.com"
SSH_PORT: "2222"
SSH_LISTEN_PORT: "22"
ingress:
enabled: false
postgresql:
enabled: true
primary:
persistence:
enabled: true
storageClass: manual
size: 50Gi
postgresql-ha:
enabled: false
persistence:
enabled: true
storageClass: manual
size: 150Gi
wait: true
- name: Create HTTPRoute for Gitea
kubernetes.core.k8s:
definition:
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: gitea-route
namespace: gitea
spec:
parentRefs:
- name: main-gateway
namespace: traefik
hostnames:
- "git.svc.pguia.com"
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- name: gitea-http
port: 3000
- name: Create TCPRoute for Gitea SSH
kubernetes.core.k8s:
definition:
apiVersion: gateway.networking.k8s.io/v1alpha2
kind: TCPRoute
metadata:
name: gitea-ssh-route
namespace: gitea
spec:
parentRefs:
- name: main-gateway
namespace: traefik
sectionName: ssh
rules:
- backendRefs:
- name: gitea-ssh
port: 22