# Monerod — Monero full node (pruned) # Pinned to game-worker-hdd — blockchain data lives on local disk at # /home/samantha/.bitmonero (LMDB/mmap is NFS-hostile, must stay local) # Ban list stored alongside blockchain data # NodePorts: 32379 (P2P), 32380 (restricted RPC) # # Prerequisites: # /home/samantha/.bitmonero must exist on game-worker-hdd with blockchain data # ban_list.txt must exist in that directory # # Deploy: # kubectl apply -f monerod.yaml -n --- apiVersion: v1 kind: PersistentVolume metadata: name: monerod-pv spec: capacity: storage: 200Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: local-storage local: path: /home/samantha/.bitmonero nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: - game-worker-hdd --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: monerod-pvc spec: accessModes: - ReadWriteOnce storageClassName: local-storage resources: requests: storage: 200Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: monerod spec: replicas: 1 selector: matchLabels: app: monerod template: metadata: labels: app: monerod spec: nodeName: game-worker-hdd containers: - name: monerod image: ghcr.io/sethforprivacy/simple-monerod:latest args: - --rpc-restricted-bind-ip=0.0.0.0 - --rpc-restricted-bind-port=18089 - --no-igd - --enable-dns-blocklist - --ban-list=/home/monero/.bitmonero/ban_list.txt - --prune-blockchain ports: - containerPort: 18080 - containerPort: 18089 volumeMounts: - name: monerod-data mountPath: /home/monero/.bitmonero volumes: - name: monerod-data persistentVolumeClaim: claimName: monerod-pvc --- apiVersion: v1 kind: Service metadata: name: monerod spec: selector: app: monerod ports: - name: p2p port: 18080 targetPort: 18080 nodePort: 32379 - name: rpc port: 18089 targetPort: 18089 nodePort: 32380 type: NodePort