aboutsummaryrefslogtreecommitdiff
path: root/manifests/cgit
diff options
context:
space:
mode:
authorMax Resnick <max@ofmax.li>2024-04-15 20:54:53 -0700
committerMax Resnick <max@ofmax.li>2024-06-01 22:38:22 -0700
commit31fbde46fab0dbed8c572573dfbc75593d9b3702 (patch)
treebd4863297bc7aa32cf97d7bfbe53db9d14dc5b05 /manifests/cgit
parentb8584fec70bd6810fa2392deadc69595b3e94cfa (diff)
downloadgo-git-server-31fbde46fab0dbed8c572573dfbc75593d9b3702.tar.gz
feat: kubernetes deployment manifests
adds deployment manifests for cgit and go-git-server
Diffstat (limited to 'manifests/cgit')
-rw-r--r--manifests/cgit/cgit-cm.yaml39
-rw-r--r--manifests/cgit/cgit-deploy.yaml50
-rw-r--r--manifests/cgit/cgit-ing.yaml27
-rw-r--r--manifests/cgit/cgit-sa.yaml4
-rw-r--r--manifests/cgit/cgit-svc.yaml14
-rw-r--r--manifests/cgit/kustomization.yaml25
6 files changed, 159 insertions, 0 deletions
diff --git a/manifests/cgit/cgit-cm.yaml b/manifests/cgit/cgit-cm.yaml
new file mode 100644
index 0000000..e01a6b5
--- /dev/null
+++ b/manifests/cgit/cgit-cm.yaml
@@ -0,0 +1,39 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: cgitrc
+data:
+ cgitrc: |
+ # cgit config
+ # see cgitrc(5) for details
+ root-title=git.ofmax.li
+ root-desc=grumpy software
+
+ readme=:README.md
+
+ about-filter=/usr/lib/cgit/filters/about-formatting.sh
+ source-filter=/usr/lib/cgit/filters/syntax-highlighting.py
+
+ enable-index-links=1
+ enable-log-filecount=1
+ enable-commit-graph=1
+ enable-index-owner=1
+ enable-http-clone=0
+ enable-git-config=1
+ enable-commit-graph=1
+ enable-follow-links=1
+ snapshots=tar.gz
+ css=/cgit.css
+ logo=/cgit.png
+ virtual-root=/
+ robots=nofollow
+ remove-suffix=1
+
+ mimetype.html=text/html
+ mimetype.jpg=image/jpeg
+ mimetype.jpeg=image/jpeg
+ mimetype.pdf=application/pdf
+ mimetype.png=image/png
+
+ strict-export=git-web-export-ok
+ scan-path=/opt/repos
diff --git a/manifests/cgit/cgit-deploy.yaml b/manifests/cgit/cgit-deploy.yaml
new file mode 100644
index 0000000..cfbdeb8
--- /dev/null
+++ b/manifests/cgit/cgit-deploy.yaml
@@ -0,0 +1,50 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: cgit
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app.kubernetes.io/instance: cgit
+ app.kubernetes.io/name: cgit
+ template:
+ metadata:
+ labels:
+ app.kubernetes.io/instance: cgit
+ app.kubernetes.io/name: cgit
+ spec:
+ containers:
+ - env:
+ - name: CGIT_HOSTNAME
+ value: git.localhost
+ - name: CGIT_PORT
+ value: "8080"
+ - name: CGIT_CONFIG
+ value: /opt/etc/cgitrc
+ image: registry.gitlab.com/grumps/grumpy-containers/cgit:v0.0.5
+ imagePullPolicy: Always
+ name: cgit
+ ports:
+ - containerPort: 8080
+ name: http
+ protocol: TCP
+ volumeMounts:
+ - mountPath: /opt/repos
+ name: go-git-storage
+ readOnly: false
+ - mountPath: /opt/etc
+ name: cgitrc
+ readOnly: true
+ imagePullSecrets:
+ - name: regcred
+ serviceAccountName: cgit
+ volumes:
+ - name: go-git-storage
+ persistentVolumeClaim:
+ claimName: go-git-storage
+ - name: cgitrc
+ configMap:
+ defaultMode: 420
+ name: cgitrc
+
diff --git a/manifests/cgit/cgit-ing.yaml b/manifests/cgit/cgit-ing.yaml
new file mode 100644
index 0000000..e331bfc
--- /dev/null
+++ b/manifests/cgit/cgit-ing.yaml
@@ -0,0 +1,27 @@
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+ annotations:
+ certmanager.k8s.io/cluseterissuer: letsencrypt-prod
+ ingress.kubernetes.io/ssl-redirect: "true"
+ kubernetes.io/ingress.class: traefik
+ traefik.ingress.kubernetes.io/frontend-entry-points: http,https
+ traefik.ingress.kubernetes.io/redirect-entry-point: https
+ traefik.ingress.kubernetes.io/redirect-permanent: "true"
+ name: cgit
+spec:
+ rules:
+ - host: git.ofmax.li
+ http:
+ paths:
+ - backend:
+ service:
+ name: cgit
+ port:
+ number: 8080
+ pathType: Prefix
+ path: /
+ tls:
+ - hosts:
+ - git.ofmax.li
+ secretName: git-ofmax-li-sec
diff --git a/manifests/cgit/cgit-sa.yaml b/manifests/cgit/cgit-sa.yaml
new file mode 100644
index 0000000..43f5e65
--- /dev/null
+++ b/manifests/cgit/cgit-sa.yaml
@@ -0,0 +1,4 @@
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: cgit
diff --git a/manifests/cgit/cgit-svc.yaml b/manifests/cgit/cgit-svc.yaml
new file mode 100644
index 0000000..9165c59
--- /dev/null
+++ b/manifests/cgit/cgit-svc.yaml
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: cgit
+spec:
+ ports:
+ - name: http
+ port: 8080
+ protocol: TCP
+ targetPort: http
+ selector:
+ app.kubernetes.io/instance: cgit
+ app.kubernetes.io/name: cgit
+ type: ClusterIP
diff --git a/manifests/cgit/kustomization.yaml b/manifests/cgit/kustomization.yaml
new file mode 100644
index 0000000..9a8a4af
--- /dev/null
+++ b/manifests/cgit/kustomization.yaml
@@ -0,0 +1,25 @@
+# Labels to add to all resources and selectors.
+commonLabels:
+ app.kubernetes.io/instance: cgit
+ app.kubernetes.io/name: cgit
+ app.kubernetes.io/version: "1.0"
+ helm.sh/chart: cgit-0.1.0
+
+# Images modify the tags for images without
+# creating patches.
+images:
+- name: registry.gitlab.com/grumps/grumpy-containers/cgit
+ newTag: latest
+
+# Value of this field is prepended to the
+# names of all resources
+namePrefix: cgit
+
+# List of resource files that kustomize reads, modifies
+# and emits as a YAML string
+resources:
+- cgit-deploy.yaml
+- cgit-ing.yaml
+- cgit-sa.yaml
+- cgit-svc.yaml
+- cgit-cm.yaml