gogs.yaml 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. ---
  2. apiVersion: v1
  3. kind: Namespace
  4. metadata:
  5. name: gogs
  6. ---
  7. apiVersion: apps/v1
  8. kind: Deployment
  9. metadata:
  10. name: gogs
  11. namespace: gogs
  12. spec:
  13. strategy:
  14. type: Recreate
  15. selector:
  16. matchLabels:
  17. app: gogs
  18. replicas: 1
  19. template:
  20. metadata:
  21. labels:
  22. app: gogs
  23. spec:
  24. containers:
  25. - name: gogs
  26. ## Gogs container with `ssh` added. This ssh isn't servicing git operations, only used in hooks to mirror repos.
  27. ## TODO make a real Dockerfile out of this
  28. #
  29. # FROM gogs/gogs:next-0.14.1
  30. # USER root
  31. # RUN apk --no-cache --no-progress --logfile=no add openssh
  32. # USER git:git
  33. image: jibby0/gogs-next-ssh:0.14.1
  34. env:
  35. - name: SOCAT_LINK
  36. value: "false"
  37. name: DISABLE_REGISTRATION
  38. value: "true"
  39. ports:
  40. - containerPort: 2222
  41. name: ssh-svc
  42. - containerPort: 3000
  43. name: http-web-svc
  44. volumeMounts:
  45. - mountPath: "/data"
  46. name: data
  47. livenessProbe:
  48. httpGet:
  49. path: /
  50. port: 3000
  51. failureThreshold: 10
  52. initialDelaySeconds: 30
  53. periodSeconds: 10
  54. securityContext:
  55. runAsNonRoot: true
  56. runAsUser: 1000
  57. runAsGroup: 1000
  58. allowPrivilegeEscalation: false
  59. seccompProfile:
  60. type: RuntimeDefault
  61. capabilities:
  62. drop:
  63. - ALL
  64. securityContext:
  65. fsGroup: 1000
  66. fsGroupChangePolicy: OnRootMismatch
  67. volumes:
  68. - name: data
  69. persistentVolumeClaim:
  70. claimName: gogs-pvc
  71. ---
  72. apiVersion: v1
  73. kind: Service
  74. metadata:
  75. name: gogs-service
  76. namespace: gogs
  77. spec:
  78. selector:
  79. app: gogs
  80. type: ClusterIP
  81. ports:
  82. - name: gogs-web-port
  83. protocol: TCP
  84. port: 3000
  85. targetPort: http-web-svc
  86. - name: gogs-ssh-port
  87. protocol: TCP
  88. port: 2222
  89. targetPort: ssh-svc
  90. ---
  91. apiVersion: traefik.io/v1alpha1
  92. kind: IngressRouteTCP
  93. metadata:
  94. name: gogs-ssh
  95. namespace: gogs
  96. spec:
  97. entryPoints:
  98. - gogsssh
  99. routes:
  100. - match: HostSNI(`*`)
  101. services:
  102. - name: gogs-service
  103. port: 2222