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