Files
ansible-role-eom/tasks/monero-hidden.yaml
T
2026-10-23 11:18:18 -04:00

329 lines
8.2 KiB
YAML

---
# tasks file for monero
- name: Create Monero namespace
k8s:
state: present
definition:
apiVersion: v1
kind: Namespace
metadata:
name: monero
- name: Create PVC for Monero
k8s:
state: present
definition:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data
namespace: monero
spec:
storageClassName: r720-nfs-client
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 512Gi
- name: Create PVC for P2Pool
k8s:
state: present
definition:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: p2pool
namespace: monero
spec:
storageClassName: r720-nfs-client
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 64Gi
- name: Create a Tor instance for Monerod
k8s:
definition:
apiVersion: tor.k8s.torproject.org/v1alpha2
kind: Tor
metadata:
name: tor
namespace: monero
- name: Create Deployment for Monerod
when: setup
k8s:
definition:
apiVersion: v1
kind: Deployment
metadata:
name: monerod
namespace: monero
spec:
replicas: 1
selector:
matchLabels:
app: monerod
template:
metadata:
labels:
app: monerod
spec:
containers:
- name: monerod
image: nginx
imagePullPolicy: IfNotPresent
resources:
requests:
memory: 2Gi
ports:
- containerPort: 18080
- containerPort: 18081
- containerPort: 18083
- containerPort: 18084
volumeMounts:
- name: data
mountPath: /data
- name: p2pool
image: nginx
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3333
- containerPort: 37889
volumes:
- name: data
persistentVolumeClaim:
claimName: data
- name: Create Service for Monero
k8s:
definition:
apiVersion: v1
kind: Service
metadata:
name: monerod
namespace: monero
spec:
selector:
app: monerod
ports:
- port: 18080
name: p2p
- port: 18081
name: rpc
- port: 18083
name: zmq
- port: 18084
name: anonp2p
type: ClusterIP
- name: Create Service for P2Pool
k8s:
definition:
apiVersion: v1
kind: Service
metadata:
name: p2pool
namespace: monero
spec:
selector:
app: p2pool
ports:
- port: 3333
name: mine
- port: 37889
name: p2p
type: LoadBalancer
- name: Create OnionService
k8s:
definition:
apiVersion: tor.k8s.torproject.org/v1alpha2
kind: OnionService
metadata:
name: rpc
namespace: monero
spec:
version: 3
rules:
- port:
number: 18081
backend:
service:
name: monerod
port:
number: 18081
- name: Create OnionService
k8s:
definition:
apiVersion: tor.k8s.torproject.org/v1alpha2
kind: OnionService
metadata:
name: p2p
namespace: monero
spec:
version: 3
rules:
- port:
number: 18084
backend:
service:
name: monerod
port:
number: 18084
- name: Create OnionService
k8s:
definition:
apiVersion: tor.k8s.torproject.org/v1alpha2
kind: OnionService
metadata:
name: mining
namespace: monero
spec:
version: 3
rules:
- port:
number: 3333
backend:
service:
name: p2pool
port:
number: 3333
- name: Create OnionService
k8s:
definition:
apiVersion: tor.k8s.torproject.org/v1alpha2
kind: OnionService
metadata:
name: p2poolp2p
namespace: monero
spec:
version: 3
rules:
- port:
number: 37889
backend:
service:
name: p2pool
port:
number: 37889
- name: Get p2p OnionService info
kubernetes.core.k8s_info:
api_version: tor.k8s.torproject.org/v1alpha2
kind: OnionService
namespace: monero
field_selectors:
- metadata.name=p2p
register: p2p_onionservice
- name: Get p2pool OnionService info
kubernetes.core.k8s_info:
api_version: tor.k8s.torproject.org/v1alpha2
kind: OnionService
namespace: monero
field_selectors:
- metadata.name=p2poolp2p
register: p2pool_onionservice
- name: Get Tor Service info
kubernetes.core.k8s_info:
api_version: v1
kind: Service
namespace: monero
field_selectors:
- metadata.name=tor-tor-svc
register: tor_svc
- name: Edit Deployment for Monerod
k8s:
definition:
apiVersion: v1
kind: Deployment
metadata:
name: monerod
namespace: monero
spec:
replicas: 1
selector:
matchLabels:
app: monerod
template:
metadata:
labels:
app: monerod
spec:
containers:
- name: monerod
image: ericomeehan/monerod:latest
imagePullPolicy: Always
command:
- monerod
args:
- "--proxy={{ tor_svc.resources[0].spec.clusterIP }}:9050"
- "--p2p-bind-ip=0.0.0.0"
- "--p2p-bind-port=18080"
- "--rpc-bind-ip=0.0.0.0"
- "--rpc-bind-port=18081"
- "--tx-proxy=tor,{{ tor_svc.resources[0].spec.clusterIP }}:9050"
- "--anonymous-inbound={{ p2p_onionservice.resources[0].status.hostname }}:18084,0.0.0.0:18084"
- "--data-dir=/data"
- "--zmq-pub=tcp://127.0.0.1:18083"
- "--non-interactive"
- "--no-igd"
- "--confirm-external-bind"
resources:
requests:
memory: 2Gi
ports:
- containerPort: 18080
- containerPort: 18081
- containerPort: 18083
- containerPort: 18084
volumeMounts:
- name: monerod
mountPath: /data
- name: p2pool
image: ericomeehan/p2pool:latest
imagePullPolicy: IfNotPresent
command:
- p2pool
args:
- "--host"
- "127.0.0.1"
- "--rpc-port"
- "18081"
- "--wallet"
- "{{ monero_p2pool_wallet_address }}"
- "--stratum"
- "0.0.0.0:3333"
- "--p2p"
- "0.0.0.0:37889"
- "--addpeers"
- "65.21.227.114:37889"
- "--socks5"
- "{{ tor_svc.resources[0].spec.clusterIP }}:9050"
- "--no-dns"
- "--no-upnp"
- "--onion-address"
- "{{ p2pool_onionservice.resources[0].status.hostname }}"
ports:
- containerPort: 3333
- containerPort: 37889
volumeMounts:
- name: p2pool
mountPath: /home/p2pool
volumes:
- name: monerod
persistentVolumeClaim:
claimName: data
- name: p2pool
persistentVolumeClaim:
claimName: p2pool