46aec4218524a79ed894d3e5f20893c53a0655dc
The monerod RPC login was in both Deployments' args, readable by anyone who can read Deployments. It now lives in the monerod-rpc Secret and reaches the containers through an env var. P2Pool now runs on monero_p2pool_chain, defaulting to nano. On main the miners found a share about every 6 days and missed most PPLNS windows. The hardcoded main-chain peer only applied to main, so peers are a variable. monerod's RPC SSL is now autodetect: Shkeeper's Monero module always uses plain HTTP, so with SSL required it saw the node as Offline and hid XMR. Also: Deployments use apps/v1, monerod's ZMQ binds 0.0.0.0 to match the live deployment (P2Pool connects from its own pod), required variables are checked up front, and the README describes the role. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ansible-role-monero
Deploys a Monero node (monerod) and a P2Pool node to Kubernetes, in the
monero namespace. Miners point xmrig at the P2Pool service on port 3333.
Role Variables
Required, from Vault:
monerod_user,monerod_password: monerod's RPC login. Stored in themonerod-rpcSecret and passed to both containers through an environment variable, so it doesn't show in the Deployment specs.monero_p2pool_wallet_address: the address P2Pool pays out to.
Optional:
monero_p2pool_chain(defaultnano):main,miniornano. Match it to your total hashrate; see the note indefaults/main.yml. Switching chains starts from zero shares on the new chain, and shares on the old one stop earning once they leave its PPLNS window.monero_p2pool_addpeers(default[]): extra P2Pool peers ashost:port. They must be on the same chain.
Example Playbook
- hosts: alpha-control-plane
become: true
vars_files:
- ../secrets.yaml
roles:
- role: ericomeehan.monero
License
MIT-0