From 6c0c2695200f9eb46a616ed7fcf6ea7a42b21075 Mon Sep 17 00:00:00 2001 From: Chris Farhood Date: Sat, 17 Jan 2026 08:40:50 -0500 Subject: [PATCH] initial commit --- kustomization.yaml | 5 +++++ thelounge/httproute.yaml | 19 ++++++++++++++++++ thelounge/service.yaml | 14 +++++++++++++ thelounge/statefulset.yaml | 40 ++++++++++++++++++++++++++++++++++++++ znc/service.yaml | 16 +++++++++++++++ znc/statefulset.yaml | 40 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 134 insertions(+) create mode 100644 kustomization.yaml create mode 100644 thelounge/httproute.yaml create mode 100644 thelounge/service.yaml create mode 100644 thelounge/statefulset.yaml create mode 100644 znc/service.yaml create mode 100644 znc/statefulset.yaml diff --git a/kustomization.yaml b/kustomization.yaml new file mode 100644 index 0000000..fbf5d57 --- /dev/null +++ b/kustomization.yaml @@ -0,0 +1,5 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./thelounge +# - ./znc diff --git a/thelounge/httproute.yaml b/thelounge/httproute.yaml new file mode 100644 index 0000000..62daacc --- /dev/null +++ b/thelounge/httproute.yaml @@ -0,0 +1,19 @@ +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute +metadata: + name: thelounge + namespace: irc +spec: + parentRefs: + - name: external + namespace: istio-system + hostnames: + - ${THELOUNGE_HOSTNAME} + rules: + - matches: + - path: + type: PathPrefix + value: / + backendRefs: + - name: thelounge + port: 9000 \ No newline at end of file diff --git a/thelounge/service.yaml b/thelounge/service.yaml new file mode 100644 index 0000000..143cf2f --- /dev/null +++ b/thelounge/service.yaml @@ -0,0 +1,14 @@ +## Service +--- +apiVersion: v1 +kind: Service +metadata: + name: thelounge + labels: + app.kubernetes.io/name: thelounge +spec: + type: ClusterIP + ports: + - port: 9000 + selector: + app.kubernetes.io/name: thelounge diff --git a/thelounge/statefulset.yaml b/thelounge/statefulset.yaml new file mode 100644 index 0000000..85277db --- /dev/null +++ b/thelounge/statefulset.yaml @@ -0,0 +1,40 @@ +## StatefulSet +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: thelounge +spec: + selector: + matchLabels: + app.kubernetes.io/name: thelounge + serviceName: "thelounge" + replicas: 1 + template: + metadata: + labels: + app.kubernetes.io/name: thelounge + spec: + containers: + - name: thelounge + image: ghcr.io/thelounge/thelounge:latest + ports: + - containerPort: 9000 + name: http-9000 + volumeMounts: + - name: config + mountPath: "/var/opt/thelounge" + resources: + requests: + memory: "256Mi" + cpu: "250m" + limits: + memory: "512Mi" + volumeClaimTemplates: + - metadata: + name: config + spec: + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: 4Gi diff --git a/znc/service.yaml b/znc/service.yaml new file mode 100644 index 0000000..18df989 --- /dev/null +++ b/znc/service.yaml @@ -0,0 +1,16 @@ +## Service +--- +apiVersion: v1 +kind: Service +metadata: + name: znc + labels: + app.kubernetes.io/name: znc + annotations: + external-dns.alpha.kubernetes.io/hostname: ${ZNC_HOSTNAME} +spec: + type: LoadBalancer + ports: + - port: 6501 + selector: + app.kubernetes.io/name: znc diff --git a/znc/statefulset.yaml b/znc/statefulset.yaml new file mode 100644 index 0000000..7a23d95 --- /dev/null +++ b/znc/statefulset.yaml @@ -0,0 +1,40 @@ +## StatefulSet +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: znc +spec: + selector: + matchLabels: + app.kubernetes.io/name: znc + serviceName: "znc" + replicas: 1 + template: + metadata: + labels: + app.kubernetes.io/name: znc + spec: + containers: + - name: znc + image: lscr.io/linuxserver/znc:latest + ports: + - containerPort: 6501 + name: irc-6501 + volumeMounts: + - name: config + mountPath: "/app/config" + resources: + requests: + memory: "256Mi" + cpu: "250m" + limits: + memory: "512Mi" + volumeClaimTemplates: + - metadata: + name: config + spec: + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: 4Gi