--- apiVersion: v1 kind: Namespace metadata: name: gogs --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: gogs-pvc namespace: gogs labels: app: gogs spec: storageClassName: ceph-block accessModes: - ReadWriteOnce resources: requests: storage: 2Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: gogs namespace: gogs spec: selector: matchLabels: app: gogs replicas: 1 template: metadata: labels: app: gogs spec: containers: - name: gogs image: gogs/gogs:0.13.0 env: - name: SOCAT_LINK value: "false" ports: - containerPort: 22 name: ssh-svc - containerPort: 3000 name: http-web-svc volumeMounts: - mountPath: "/data" name: data livenessProbe: httpGet: path: / port: 3000 failureThreshold: 10 initialDelaySeconds: 30 periodSeconds: 10 volumes: - name: data persistentVolumeClaim: claimName: gogs-pvc --- apiVersion: v1 kind: Service metadata: name: gogs-service namespace: gogs spec: selector: app: gogs type: ClusterIP ports: - name: gogs-web-port protocol: TCP port: 3000 targetPort: http-web-svc - name: gogs-ssh-port protocol: TCP port: 22 targetPort: ssh-svc --- apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: gogs namespace: gogs spec: entryPoints: - websecure routes: - kind: Rule match: Host(`gogs.jibby.org`) services: - kind: Service name: gogs-service port: 3000