distribute-validators: role to copy over validators and secrets
Signed-off-by: Jakub Sokołowski <jakub@status.im>
This commit is contained in:
parent
b25bd39c1a
commit
5bfaa61b73
|
@ -26,3 +26,7 @@ beacon_node_discovery_port: '9100'
|
||||||
# resource limits
|
# resource limits
|
||||||
beacon_node_mem_limit: '{{ (ansible_memtotal_mb * 0.60) | int }}'
|
beacon_node_mem_limit: '{{ (ansible_memtotal_mb * 0.60) | int }}'
|
||||||
beacon_node_mem_reserve: '{{ (ansible_memtotal_mb * 0.4) | int }}'
|
beacon_node_mem_reserve: '{{ (ansible_memtotal_mb * 0.4) | int }}'
|
||||||
|
|
||||||
|
# Validators --------------------------
|
||||||
|
dist_validators_name: '{{ beacon_node_network }}_deposits'
|
||||||
|
dist_validators_data_path: '{{ beacon_node_cont_vol }}/data/{{ beacon_node_data_folder }}'
|
||||||
|
|
|
@ -41,5 +41,9 @@
|
||||||
vars:
|
vars:
|
||||||
beacon_node_network: 'toledo'
|
beacon_node_network: 'toledo'
|
||||||
beacon_node_repo_branch: 'devel'
|
beacon_node_repo_branch: 'devel'
|
||||||
|
dist_validators_layout:
|
||||||
|
"toledo-01.aws-eu-central-1a.nimbus.test": { start: 0, end: 1024 }
|
||||||
|
"toledo-02.aws-eu-central-1a.nimbus.test": { start: 1024, end: 2047 }
|
||||||
roles:
|
roles:
|
||||||
|
- { role: distribute-validators, tags: [ distribute-validators ] }
|
||||||
- { role: infra-role-beacon-node, tags: [ infra-role-beacon-node, beacon-node ] }
|
- { role: infra-role-beacon-node, tags: [ infra-role-beacon-node, beacon-node ] }
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
# Description
|
||||||
|
|
||||||
|
This role copies secrets and validators required for testnets to which Nimbus beacon nodes contribute.
|
||||||
|
|
||||||
|
# Details
|
||||||
|
|
||||||
|
You can read about validators and secrets here:
|
||||||
|
https://status-im.github.io/nimbus-eth2/faq.html#what-exactly-is-a-validator
|
||||||
|
https://status-im.github.io/nimbus-eth2/keys.html#storage
|
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
dist_validators_repo_url: 'git@github.com:status-im/nimbus-private.git'
|
||||||
|
dist_validators_repo_rev: 'master'
|
||||||
|
dist_validators_repo_user: 'admin'
|
||||||
|
dist_validators_repo_path: '/home/{{ dist_validators_repo_user }}/distribute-validators'
|
||||||
|
|
||||||
|
dist_validators_data_path: ~
|
||||||
|
dist_validators_name: ~
|
||||||
|
dist_validators_layout:
|
||||||
|
# - { hostname: 'node-01', start: 0, end: 1023 }
|
||||||
|
# - { hostname: 'node-01', start: 1024, end: 2047 }
|
||||||
|
#
|
||||||
|
dist_validators_range: '{{ dist_validators_layout[hostname] }}'
|
|
@ -0,0 +1,70 @@
|
||||||
|
---
|
||||||
|
#- name: Clone repo with secrets/validators
|
||||||
|
# git:
|
||||||
|
# repo: '{{ dist_validators_repo_url }}'
|
||||||
|
# dest: '{{ dist_validators_repo_path }}'
|
||||||
|
# version: '{{ dist_validators_repo_rev }}'
|
||||||
|
# update: true
|
||||||
|
# force: true
|
||||||
|
# accept_hostkey: true
|
||||||
|
# become_user: '{{ dist_validators_repo_user }}'
|
||||||
|
|
||||||
|
- name: Find all validators
|
||||||
|
find:
|
||||||
|
paths: '{{ dist_validators_repo_path }}/{{ dist_validators_name | mandatory }}/validators'
|
||||||
|
file_type: directory
|
||||||
|
recurse: true
|
||||||
|
depth: 1
|
||||||
|
register: found_validators_raw
|
||||||
|
|
||||||
|
- name: Find all secrets
|
||||||
|
find:
|
||||||
|
paths: '{{ dist_validators_repo_path }}/{{ dist_validators_name | mandatory }}/secrets'
|
||||||
|
file_type: file
|
||||||
|
recurse: true
|
||||||
|
depth: 1
|
||||||
|
register: found_secrets_raw
|
||||||
|
|
||||||
|
- name: Extract file paths
|
||||||
|
set_fact:
|
||||||
|
found_validators: '{{ found_validators_raw.files | map(attribute="path") | list }}'
|
||||||
|
found_secrets: '{{ found_secrets_raw.files | map(attribute="path") | list }}'
|
||||||
|
|
||||||
|
- name: Verify number of validators and secrets matches
|
||||||
|
assert:
|
||||||
|
that: '{{ (found_validators|length) == (found_secrets|length) }}'
|
||||||
|
|
||||||
|
- name: Create validators/secrets folders
|
||||||
|
file:
|
||||||
|
path: '{{ item }}'
|
||||||
|
state: 'directory'
|
||||||
|
owner: dockremap
|
||||||
|
group: docker
|
||||||
|
mode: 0750
|
||||||
|
with_items:
|
||||||
|
- '{{ dist_validators_data_path }}/validators'
|
||||||
|
- '{{ dist_validators_data_path }}/secrets'
|
||||||
|
|
||||||
|
- name: Copy over validators
|
||||||
|
command: |
|
||||||
|
rsync -ru \
|
||||||
|
{{ found_validators[dist_validators_range["start"]:dist_validators_range["end"]] | join(" ") }} \
|
||||||
|
'{{ dist_validators_data_path }}/validators/'
|
||||||
|
|
||||||
|
- name: Copy over secrets
|
||||||
|
command: |
|
||||||
|
rsync -ru \
|
||||||
|
{{ found_secrets[dist_validators_range["start"]:dist_validators_range["end"]] | join(" ") }} \
|
||||||
|
'{{ dist_validators_data_path }}/secrets/'
|
||||||
|
|
||||||
|
- name: Adjust validators permissions
|
||||||
|
file:
|
||||||
|
path: '{{ item }}'
|
||||||
|
state: 'directory'
|
||||||
|
owner: 'dockremap'
|
||||||
|
group: 'docker'
|
||||||
|
mode: 0750
|
||||||
|
recurse: true
|
||||||
|
with_items:
|
||||||
|
- '{{ dist_validators_data_path }}/validators'
|
||||||
|
- '{{ dist_validators_data_path }}/secrets'
|
Loading…
Reference in New Issue