Skip to content

Commit a550c6a

Browse files
committed
k8s deployment
1 parent fb3954f commit a550c6a

File tree

1 file changed

+107
-0
lines changed

1 file changed

+107
-0
lines changed

contrib/k8s/gitea.yml

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
apiVersion: v1
2+
kind: Namespace
3+
metadata:
4+
name: gitea
5+
---
6+
apiVersion: apps/v1
7+
kind: Deployment
8+
metadata:
9+
name: gitea
10+
namespace: gitea
11+
labels:
12+
app: gitea
13+
spec:
14+
replicas: 1
15+
template:
16+
metadata:
17+
name: gitea
18+
labels:
19+
app: gitea
20+
spec:
21+
containers:
22+
- name: gitea
23+
image: gitea/gitea:latest
24+
imagePullPolicy: Always
25+
volumeMounts:
26+
- mountPath: "/var/lib/gitea"
27+
name: "root"
28+
- mountPath: "/data"
29+
name: "data"
30+
ports:
31+
- containerPort: 22
32+
name: ssh
33+
protocol: TCP
34+
- containerPort: 3000
35+
name: http
36+
protocol: TCP
37+
restartPolicy: Always
38+
volumes:
39+
# Set up a data directory for gitea
40+
# For production usage, you should consider using PV/PVC instead(or simply using storage like NAS)
41+
# For more details, please see https://kubernetes.io/docs/concepts/storage/volumes/
42+
- name: "root"
43+
hostPath:
44+
# directory location on host
45+
path: "/var/lib/gitea"
46+
# this field is optional
47+
type: Directory
48+
- name: "data"
49+
hostPath:
50+
path: "/data/gitea"
51+
type: Directory
52+
selector:
53+
matchLabels:
54+
app: gitea
55+
---
56+
# Using cluster mode
57+
apiVersion: v1
58+
kind: Service
59+
metadata:
60+
name: gitea-web
61+
namespace: gitea
62+
labels:
63+
app: gitea-web
64+
spec:
65+
ports:
66+
- port: 80
67+
targetPort: 3000
68+
name: http
69+
selector:
70+
app: gitea
71+
---
72+
# Using node-port mode
73+
# This mainly open a specific TCP port for SSH usage on each host,
74+
# so you can use a proxy layer to handle it(e.g. slb, nginx)
75+
apiVersion: v1
76+
kind: Service
77+
metadata:
78+
name: gitea-ssh
79+
namespace: gitea
80+
labels:
81+
app: gitea-ssh
82+
spec:
83+
ports:
84+
- port: 22
85+
targetPort: 22
86+
nodePort: 30022
87+
name: ssh
88+
selector:
89+
app: gitea
90+
type: NodePort
91+
---
92+
# Ingress is always suitable for HTTP usage,
93+
# we suggest using an proxy layer such as slb to send traffic to different ports.
94+
# Usually 80/443 for web and 22 directly for SSH.
95+
apiVersion: extensions/v1beta1
96+
kind: Ingress
97+
metadata:
98+
name: gitea
99+
namespace: gitea
100+
spec:
101+
rules:
102+
- host: your-gitea-host.com
103+
http:
104+
paths:
105+
- backend:
106+
serviceName: gitea-web
107+
servicePort: 80

0 commit comments

Comments
 (0)