329 lines
8.2 KiB
YAML
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
|
|
|