--- /dev/null
+apiVersion: v1
+kind: Namespace
+metadata:
+ name: gitea
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: gitea
+ namespace: gitea
+ labels:
+ app: gitea
+spec:
+ replicas: 1
+ template:
+ metadata:
+ name: gitea
+ labels:
+ app: gitea
+ spec:
+ containers:
+ - name: gitea
+ image: gitea/gitea:latest
+ imagePullPolicy: Always
+ volumeMounts:
+ - mountPath: "/var/lib/gitea"
+ name: "root"
+ - mountPath: "/data"
+ name: "data"
+ ports:
+ - containerPort: 22
+ name: ssh
+ protocol: TCP
+ - containerPort: 3000
+ name: http
+ protocol: TCP
+ restartPolicy: Always
+ volumes:
+ # Set up a data directory for gitea
+ # For production usage, you should consider using PV/PVC instead(or simply using storage like NAS)
+ # For more details, please see https://kubernetes.io/docs/concepts/storage/volumes/
+ - name: "root"
+ hostPath:
+ # directory location on host
+ path: "/var/lib/gitea"
+ # this field is optional
+ type: Directory
+ - name: "data"
+ hostPath:
+ path: "/data/gitea"
+ type: Directory
+ selector:
+ matchLabels:
+ app: gitea
+---
+# Using cluster mode
+apiVersion: v1
+kind: Service
+metadata:
+ name: gitea-web
+ namespace: gitea
+ labels:
+ app: gitea-web
+spec:
+ ports:
+ - port: 80
+ targetPort: 3000
+ name: http
+ selector:
+ app: gitea
+---
+# Using node-port mode
+# This mainly open a specific TCP port for SSH usage on each host,
+# so you can use a proxy layer to handle it(e.g. slb, nginx)
+apiVersion: v1
+kind: Service
+metadata:
+ name: gitea-ssh
+ namespace: gitea
+ labels:
+ app: gitea-ssh
+spec:
+ ports:
+ - port: 22
+ targetPort: 22
+ nodePort: 30022
+ name: ssh
+ selector:
+ app: gitea
+ type: NodePort
+---
+# Ingress is always suitable for HTTP usage,
+# we suggest using an proxy layer such as slb to send traffic to different ports.
+# Usually 80/443 for web and 22 directly for SSH.
+apiVersion: extensions/v1beta1
+kind: Ingress
+metadata:
+ name: gitea
+ namespace: gitea
+spec:
+ rules:
+ - host: your-gitea-host.com
+ http:
+ paths:
+ - backend:
+ serviceName: gitea-web
+ servicePort: 80