# UnrealIRCd + Anope IRC Services # PLACEHOLDER - UnrealIRCd needs config files mounted before running # ArgoCD managed - BlueJay Lab --- apiVersion: v1 kind: Namespace metadata: name: irc labels: app.kubernetes.io/part-of: bluejay-infra --- # UnrealIRCd PVC apiVersion: v1 kind: PersistentVolumeClaim metadata: name: unrealircd-data namespace: irc spec: accessModes: [ReadWriteOnce] resources: requests: storage: 1Gi --- # Anope PVC apiVersion: v1 kind: PersistentVolumeClaim metadata: name: anope-data namespace: irc spec: accessModes: [ReadWriteOnce] resources: requests: storage: 1Gi --- # UnrealIRCd Deployment # NOTE: This is a placeholder. UnrealIRCd requires configuration files # (unrealircd.conf, TLS certs, etc.) to be present in /data before starting. # Mount config via ConfigMap/Secret or init container before enabling. apiVersion: apps/v1 kind: Deployment metadata: name: unrealircd namespace: irc labels: app: unrealircd spec: replicas: 1 selector: matchLabels: app: unrealircd template: metadata: labels: app: unrealircd spec: containers: - name: unrealircd image: ghcr.io/unrealircd/unrealircd:latest ports: - containerPort: 6667 name: irc-plain - containerPort: 6697 name: irc-tls - containerPort: 8067 name: services-link volumeMounts: - name: unrealircd-data mountPath: /data resources: requests: memory: 64Mi cpu: 50m limits: memory: 256Mi cpu: 250m volumes: - name: unrealircd-data persistentVolumeClaim: claimName: unrealircd-data --- # Anope IRC Services Deployment # NOTE: Placeholder. Anope requires services.conf with link block # matching UnrealIRCd's link configuration. apiVersion: apps/v1 kind: Deployment metadata: name: anope namespace: irc labels: app: anope spec: replicas: 1 selector: matchLabels: app: anope template: metadata: labels: app: anope spec: containers: - name: anope image: anope/anope:latest volumeMounts: - name: anope-data mountPath: /data resources: requests: memory: 64Mi cpu: 25m limits: memory: 128Mi cpu: 100m volumes: - name: anope-data persistentVolumeClaim: claimName: anope-data --- # UnrealIRCd Service (ClusterIP for internal + Traefik TCP routing) apiVersion: v1 kind: Service metadata: name: unrealircd namespace: irc spec: selector: app: unrealircd ports: - port: 6667 targetPort: 6667 name: irc-plain - port: 6697 targetPort: 6697 name: irc-tls - port: 8067 targetPort: 8067 name: services-link --- # Anope Service apiVersion: v1 kind: Service metadata: name: anope namespace: irc spec: selector: app: anope ports: - port: 8067 targetPort: 8067 name: services-link --- # Traefik IngressRouteTCP - IRC plain (6667) apiVersion: traefik.io/v1alpha1 kind: IngressRouteTCP metadata: name: irc-plain namespace: irc spec: entryPoints: - irc routes: - match: HostSNI(`*`) services: - name: unrealircd port: 6667 --- # Traefik IngressRouteTCP - IRC TLS passthrough (6697) apiVersion: traefik.io/v1alpha1 kind: IngressRouteTCP metadata: name: irc-tls namespace: irc spec: entryPoints: - ircs routes: - match: HostSNI(`*`) services: - name: unrealircd port: 6697 tls: passthrough: true