homelab/k3s/monerod/monerod.yaml
Samantha Atkins 19b69c88ad Point monerod PVC at .bitmonero path on NAS
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-20 15:48:11 -04:00

84 lines
2 KiB
YAML

# Monerod — Monero full node (pruned)
# NAS-backed PVC for blockchain data — unpinned, free to migrate across nodes
# Ban list stored on NAS alongside blockchain data
# NodePorts: 32379 (P2P), 32380 (restricted RPC)
#
# Prerequisites:
# NAS share /volume1/samantha-private/.bitmonero must exist on Synology
# Copy ban list to NAS: /volume1/samantha-private/.bitmonero/ban_list.txt
# nas-pv.yaml must be applied first
# nfs-common installed on all worker VMs
#
# Deploy:
# kubectl apply -f ../storage/nas-pv.yaml # once, if not already applied
# kubectl apply -f monerod.yaml -n <ns>
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: monerod-pvc
annotations:
nfs.io/storage-path: ".bitmonero"
spec:
accessModes:
- ReadWriteMany
storageClassName: nas-nfs
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:
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