homelab/k3s/monerod/monerod.yaml
Samantha Atkins 7649edba32 wip
2026-04-24 02:38:40 -04:00

104 lines
2.3 KiB
YAML

# 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 <ns>
---
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