changeset 0:8d7ded808f7c

start
author drewp@bigasterisk.com
date Sun, 26 Mar 2023 20:01:48 -0700
parents
children 5d1e90bb0057
files deploy.yaml ingress.yaml skaffold.yaml
diffstat 3 files changed, 112 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deploy.yaml	Sun Mar 26 20:01:48 2023 -0700
@@ -0,0 +1,80 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: kallithea-data
+  labels:
+    type: local
+spec:
+  storageClassName: manual
+  hostPath:
+    path: "/opt/kallithea"
+  capacity:
+    storage: 50Gi
+  accessModes:
+    - ReadWriteOnce
+  persistentVolumeReclaimPolicy: Retain
+  claimRef:
+    namespace: default
+    name: kallithea-data
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  name: kallithea-data
+spec:
+  storageClassName: ""
+  volumeName: kallithea-data
+  accessModes:
+    - ReadWriteOnce
+  resources:
+    requests:
+      storage: 50Gi
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: kallithea
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: kallithea
+  template:
+    metadata:
+      labels:
+        app: kallithea
+      annotations:
+        prometheus.io/scrape: "false"
+    spec:
+      volumes:
+        - name: data
+          persistentVolumeClaim:
+            claimName: kallithea-data
+      containers:
+        - name: kallithea
+          image: docker.io/toras9000/kallithea-mp:0.7.0
+          ports:
+            - containerPort: 5000
+          volumeMounts:
+            - { name: data, subPath: 'config', mountPath: /kallithea/config }
+            - { name: data, subPath: 'repos', mountPath: /kallithea/repos }
+      affinity:
+        nodeAffinity:
+          requiredDuringSchedulingIgnoredDuringExecution:
+            nodeSelectorTerms:
+              - matchExpressions:
+                  - key: "kubernetes.io/hostname"
+                    operator: In
+                    values: ["ditto"]
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: kallithea
+spec:
+  type: LoadBalancer
+  ports:
+    - port: 80
+      targetPort: 5000
+  selector:
+    app: kallithea
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ingress.yaml	Sun Mar 26 20:01:48 2023 -0700
@@ -0,0 +1,22 @@
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+  name: kallithea
+  annotations:
+    cert-manager.io/cluster-issuer: letsencrypt-prod
+    ingress.pomerium.io/allow_public_unauthenticated_access: "true"
+    ingress.pomerium.io/pass_identity_headers: "true"
+    ingress.pomerium.io/preserve_host_header: "true"
+    ingress.pomerium.io/prefix_rewrite: "/"
+spec:
+  ingressClassName: pomerium
+  rules:
+    - host: "bigasterisk.com"
+      http:
+        paths:
+          - pathType: Prefix
+            path: /code/
+            backend: { service: { name: kallithea, port: { number: 80 } } }
+  tls:
+    - hosts: [bigasterisk.com]
+      secretName: bigasterisk.com-tls
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/skaffold.yaml	Sun Mar 26 20:01:48 2023 -0700
@@ -0,0 +1,10 @@
+apiVersion: skaffold/v4beta3
+kind: Config
+metadata:
+  name: kallithea
+manifests:
+  rawYaml:
+    - deploy.yaml
+    - ingress.yaml
+deploy:
+  kubectl: {}