The YAML file below is a template you can use to deploy Gogs on a Kubernetes cluster running on ARM.
Note you will have to define your own backend storage settings (the template uses emptyDir for both occurrences), your own hostname (the template uses gogs.internal.local) and your own database password (the template uses gogs).
apiVersion: apps/v1beta2 kind: Deployment metadata: name: gogs-pg labels: app: gogs-pg spec: replicas: 1 selector: matchLabels: app: gogs-pg strategy: type: "Recreate" template: metadata: labels: app: gogs-pg spec: containers: - name: postgresql image: arm32v5/postgres env: - name: POSTGRESS_PASSWORD value: gogs ports: - containerPort: 5432 name: postgresql resources: limits: memory: "128Mi" requests: memory: "64Mi" securityContext: runAsUser: 1 volumeMounts: - name: data mountPath: /var/lib/postgresql/data volumes: - name: data emptyDir: {} --- apiVersion: apps/v1beta1 kind: Deployment metadata: name: gogs-ui labels: app: gogs-ui spec: replicas: 2 selector: matchLabels: app: gogs-ui template: metadata: labels: app: gogs-ui spec: containers: - name: gogs image: gogs/gogs-rpi ports: - containerPort: 3000 name: http volumeMounts: - name: data mountPath: /data volumes: - name: data emptyDir: {} --- apiVersion: v1 kind: Service metadata: name: gogs-ui labels: app: gogs-ui spec: ports: - port: 3000 name: http selector: app: gogs-ui sessionAffinity: "ClientIP" --- apiVersion: v1 kind: Service metadata: name: gogs-pg labels: app: gogs-pg spec: ports: - port: 5432 name: postgresql selector: app: gogs-pg --- apiVersion: extensions/v1beta1 kind: Ingress metadata: name: gogs-ingress namespace: default spec: rules: - host: gogs.internal.local http: paths: - path: / backend: serviceName: gogs-ui servicePort: 3000
Posted December 28, 2017