cluster

Infrastructure files for Nordgedanken and Midnightthoughts.
git clone git://archive.git.mtrnord.blog/MTRNord/cluster.git
Log | Files | Refs | README

resources.yaml (3633B)


      1 apiVersion: cert-manager.io/v1
      2 kind: Certificate
      3 metadata:
      4   namespace: irc
      5   name: irc.midnightthoughts.space
      6 spec:
      7   secretName: irc-certs
      8   dnsNames:
      9     - irc.midnightthoughts.space
     10   issuerRef:
     11     name: letsencrypt-dns
     12     kind: ClusterIssuer
     13 ---
     14 apiVersion: apps/v1
     15 kind: Deployment
     16 metadata:
     17   name: solanum
     18   labels:
     19     app: solanum
     20 spec:
     21   replicas: 1
     22   strategy:
     23     type: RollingUpdate
     24   selector:
     25     matchLabels:
     26       app: solanum
     27   template:
     28     metadata:
     29       labels:
     30         app: solanum
     31     spec:
     32       initContainers:
     33         - name: fix-permissions
     34           image: alpine:latest
     35           command:
     36             - chown
     37             - -R
     38             - 10000:10000
     39             - /atheme/etc
     40           volumeMounts:
     41             - name: atheme-pvc
     42               mountPath: /atheme/etc
     43       containers:
     44         - name: solanum
     45           image: ghcr.io/mtrnord/solanum:latest
     46           imagePullPolicy: Always
     47           ports:
     48             - containerPort: 6697
     49               name: ircs
     50               protocol: TCP
     51             - containerPort: 6667
     52               name: irc
     53               protocol: TCP
     54             - containerPort: 6666
     55               name: atheme
     56               protocol: TCP
     57           volumeMounts:
     58             - mountPath: /ircd/etc/ircd.conf
     59               name: solanum-config
     60               subPath: ircd.conf
     61               readOnly: true
     62             - mountPath: /ircd/etc/ircd.motd
     63               name: solanum-config
     64               subPath: ircd.motd
     65               readOnly: true
     66             - mountPath: /ircd/certs
     67               name: irc-certs
     68               readOnly: true
     69             - mountPath: /usr/local/logs
     70               name: logs
     71         - name: atheme
     72           image: ghcr.io/mtrnord/atheme:contrib
     73           imagePullPolicy: Always
     74           volumeMounts:
     75             - mountPath: /atheme/etc/atheme.conf
     76               name: atheme-secrets
     77               subPath: atheme.conf
     78               readOnly: true
     79             - mountPath: /atheme/etc/atheme.motd
     80               name: atheme-secrets
     81               subPath: atheme.motd
     82               readOnly: true
     83             - mountPath: /etc/msmtprc
     84               name: atheme-secrets
     85               subPath: msmtprc
     86               readOnly: true
     87             - mountPath: /atheme/etc
     88               name: atheme-pvc
     89           securityContext:
     90             allowPrivilegeEscalation: false
     91       volumes:
     92         - name: solanum-config
     93           secret:
     94             secretName: solanum-config
     95         - name: irc-certs
     96           secret:
     97             secretName: irc-certs
     98         - name: logs
     99           emptyDir: {}
    100         - name: atheme-secrets
    101           secret:
    102             secretName: atheme-secrets
    103         - name: atheme-pvc
    104           persistentVolumeClaim:
    105             claimName: atheme-db
    106 ---
    107 apiVersion: v1
    108 kind: Service
    109 metadata:
    110   name: solanum
    111   labels:
    112     app: solanum
    113 spec:
    114   type: ClusterIP
    115   ports:
    116     - name: ircs
    117       port: 6697
    118       targetPort: 6697
    119     - name: irc
    120       port: 6667
    121       targetPort: 6667
    122   selector:
    123     app: solanum
    124 ---
    125 apiVersion: gateway.networking.k8s.io/v1alpha2
    126 kind: TCPRoute
    127 metadata:
    128   name: ircs
    129   namespace: irc
    130   annotations:
    131     external-dns.alpha.kubernetes.io/hostname: irc.midnightthoughts.space
    132 spec:
    133   parentRefs:
    134     - name: envoy-gateway
    135       namespace: envoy-gateway
    136       sectionName: ircs
    137   rules:
    138     - backendRefs:
    139         - name: solanum
    140           port: 6697
    141 ---
    142 apiVersion: v1
    143 kind: PersistentVolumeClaim
    144 metadata:
    145   name: atheme-db
    146   labels:
    147     app: atheme
    148 spec:
    149   storageClassName: ceph-filesystem
    150   accessModes:
    151     - ReadWriteMany
    152   resources:
    153     requests:
    154       storage: 1Gi