Bot commit: Добавлен файл k8s/gitea.yaml

This commit is contained in:
Vladislav 2026-06-30 19:13:50 -04:00
parent a75fb52688
commit ceccb8bafc

169
k8s/gitea.yaml Normal file
View File

@ -0,0 +1,169 @@
apiVersion: v1
kind: Namespace
metadata:
name: gitea
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: gitea-data
namespace: gitea
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: gitea
namespace: gitea
spec:
replicas: 1
selector:
matchLabels:
app: gitea
template:
metadata:
labels:
app: gitea
spec:
containers:
- name: gitea
image: gitea/gitea:1.22
ports:
- containerPort: 3000 # HTTP
- containerPort: 22 # SSH
env:
- name: USER_UID
value: "1000"
- name: USER_GID
value: "1000"
- name: GITEA__database__DB_TYPE
value: "sqlite3"
volumeMounts:
- name: gitea-data
mountPath: /data
volumes:
- name: gitea-data
persistentVolumeClaim:
claimName: gitea-data
---
apiVersion: v1
kind: Service
metadata:
name: gitea-ssh
namespace: gitea
spec:
selector:
app: gitea
ports:
- name: http
port: 80
targetPort: 3000
nodePort: 30300
- name: ssh
protocol: TCP
port: 30022
targetPort: 22
nodePort: 30022
type: LoadBalancer
---
kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
name: gitea
namespace: gitea
annotations:
cert-manager.io/cluster-issuer: letsencrypt
nginx.ingress.kubernetes.io/proxy-body-size: "0"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/server-snippet: |
if ($http_user_agent ~* "ClaudeBot") {
return 403;
}
spec:
ingressClassName: public
tls:
- hosts:
- git.spiritofweb.ru
secretName: git-tls-cert
rules:
- host: git.spiritofweb.ru
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: gitea-ssh
port:
number: 80
- path: /robots.txt
pathType: Exact
backend:
service:
name: robots-static-svc
port:
number: 80
---
apiVersion: v1
kind: ConfigMap
metadata:
name: gitearobotscm
namespace: gitea
data:
robots.txt: |
User-agent: *
Disallow: /
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: robots-static
namespace: gitea
spec:
replicas: 1
selector:
matchLabels:
app: robots-static
template:
metadata:
labels:
app: robots-static
spec:
containers:
- name: nginx
image: nginx:alpine
ports:
- containerPort: 80
volumeMounts:
- name: robots
mountPath: /usr/share/nginx/html
volumes:
- name: robots
configMap:
name: gitearobotscm
---
apiVersion: v1
kind: Service
metadata:
name: robots-static-svc
namespace: gitea
spec:
selector:
app: robots-static
ports:
- port: 80
targetPort: 80
---
apiVersion: v1
kind: Secret
metadata:
name: ssh-creds
type: Opaque
stringData:
username: "root"
password: "$ROOT_PASS"