PREREQUESITES: Helm

helm repo add gitea-charts https://dl.gitea.io/charts/

helm install gitea gitea-charts/gitea

kubectl edit svc gitea

change spec.type to ClusterIP

merge the below ingress using kubectl apply -f <file>

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: gitea-ingress
  namespace: <gitea-namespace>
  annotations:
    kubernetes.io/ingress.class: "traefik" 
    # Optional: if using cert-manager for HTTPS
    # cert-manager.io/cluster-issuer: "letsencrypt-prod"
spec:
  # Optional: For HTTPS, remove this section if you don't need TLS
  # tls:
  #   - hosts:
  #     - gitea.yourdomain.com
  #     secretName: gitea-tls-secret # Secret will hold the certificate
  rules:
  - host: gitea.yourdomain.com # <-- The domain you point to your K3s IP
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            # This name must match your Gitea Service name (e.g., gitea-http-service)
            name: gitea-http-service 
            port:
              # This port must match the 'port' defined in your Gitea Service (3000)
              number: 3000