From 8b4c4bd08fdddb01ecf54345ec74a5da6f1ee1d4 Mon Sep 17 00:00:00 2001 From: BetaCat Date: Mon, 29 Oct 2018 09:28:06 +0800 Subject: [PATCH] k8s deployment (#5046) --- contrib/k8s/gitea.yml | 107 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 contrib/k8s/gitea.yml diff --git a/contrib/k8s/gitea.yml b/contrib/k8s/gitea.yml new file mode 100644 index 00000000000..c4aed869f7f --- /dev/null +++ b/contrib/k8s/gitea.yml @@ -0,0 +1,107 @@ +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