Skip to content

Commit 1082615

Browse files
committed
Merge branch 'master' into bbusa/pullpolicy
2 parents 3860373 + c131536 commit 1082615

File tree

20 files changed

+196
-21
lines changed

20 files changed

+196
-21
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ A collection of reusable ansible components used by the EthPandaOps team.
1212
- [dshackle](roles/dshackle)
1313
- [ethereum_auth_jwt](roles/ethereum_auth_jwt)
1414
- [ethereum_metrics_exporter](roles/ethereum_metrics_exporter)
15+
- [ethstats](roles/ethstats)
1516
- [xatu_sentry](roles/xatu_sentry)
1617
- [mev_boost](roles/mev_boost)
1718

roles/arbitrum_node/tasks/main.yaml

+4
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@
66
state: directory
77
mode: "0750"
88

9+
- name: Set permissions
10+
ansible.builtin.command: "chown -R 1000:1000 {{ arbitrum_node_datadir }}" # noqa deprecated-command-syntax
11+
changed_when: false
12+
913
- name: Run arbitrum_node container
1014
community.docker.docker_container:
1115
name: "{{ arbitrum_node_container_name }}"

roles/beaconchain_explorer_aio/files/bigtable/init-bigtable.sh

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ cbt -project $PROJECT -instance $INSTANCE createfamily metadata erc721
2929

3030
cbt -project $PROJECT -instance $INSTANCE createfamily metadata_updates blocks
3131
cbt -project $PROJECT -instance $INSTANCE createfamily metadata_updates f
32+
cbt -project $PROJECT -instance $INSTANCE createfamily metadata series
3233

3334
cbt -project $PROJECT -instance $INSTANCE createfamily data c
3435
cbt -project $PROJECT -instance $INSTANCE createfamily data f

roles/beaconchain_explorer_aio/tasks/setup.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@
119119
- name: Check that bigtable service is running
120120
ansible.builtin.assert:
121121
that:
122-
- beaconchain_explorer_aio_compose_db_meta.services["postgres"]["beaconchain_bigtable"].state.running
122+
- beaconchain_explorer_aio_compose_db_bigtable_meta.services["bigtable"]["beaconchain_bigtable"].state.running
123123
- name: Init bigtable
124124
ansible.builtin.shell: "docker exec beaconchain_bigtable /init-bigtable.sh && touch {{ beaconchain_explorer_aio_installation_dir }}/bigtable/initialized"
125125
args:

roles/beaconchain_explorer_aio/templates/docker-compose.yml.j2

+19-19
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,16 @@ services:
1616
- "{{ beaconchain_explorer_aio_installation_dir }}/explorer/config.yml:/config.yml:ro"
1717
- "{{ beaconchain_explorer_aio_installation_dir }}/explorer/custom_configs:/custom_configs:ro"
1818
- "{{ beaconchain_explorer_aio_data_dir_explorer }}:/data"
19-
{%- if beaconchain_explorer_aio_bigtable_external_enabled %}
19+
{% if beaconchain_explorer_aio_bigtable_external_enabled %}
2020
- "{{ beaconchain_explorer_aio_installation_dir }}/bigtable_secret.json:/bigtable_secret.json:ro"
21-
{%- endif %}
21+
{% endif %}
2222
environment:
2323
- INDEXER_ENABLED=true
24-
{%- if beaconchain_explorer_aio_bigtable_external_enabled %}
24+
{% if beaconchain_explorer_aio_bigtable_external_enabled %}
2525
- GOOGLE_APPLICATION_CREDENTIALS=/bigtable_secret.json
26-
{%- else %}
26+
{% else %}
2727
- BIGTABLE_EMULATOR_HOST=beaconchain_bigtable:9000
28-
{%- endif %}
28+
{% endif %}
2929
ports:
3030
- 8082:8082
3131
#######################################################################
@@ -42,15 +42,15 @@ services:
4242
- "{{ beaconchain_explorer_aio_installation_dir }}/explorer/config.yml:/config.yml:ro"
4343
- "{{ beaconchain_explorer_aio_installation_dir }}/explorer/custom_configs:/custom_configs:ro"
4444
- "{{ beaconchain_explorer_aio_data_dir_explorer }}:/data"
45-
{%- if beaconchain_explorer_aio_bigtable_external_enabled %}
45+
{% if beaconchain_explorer_aio_bigtable_external_enabled %}
4646
- "{{ beaconchain_explorer_aio_installation_dir }}/bigtable_secret.json:/bigtable_secret.json:ro"
47-
{%- endif %}
47+
{% endif %}
4848
environment:
49-
{%- if beaconchain_explorer_aio_bigtable_external_enabled %}
49+
{% if beaconchain_explorer_aio_bigtable_external_enabled %}
5050
- GOOGLE_APPLICATION_CREDENTIALS=/bigtable_secret.json
51-
{%- else %}
51+
{% else %}
5252
- BIGTABLE_EMULATOR_HOST=beaconchain_bigtable:9000
53-
{%- endif %}
53+
{% endif %}
5454
#######################################################################
5555
statistics:
5656
container_name: beaconchain_statistics
@@ -65,16 +65,16 @@ services:
6565
- "{{ beaconchain_explorer_aio_installation_dir }}/explorer/config.yml:/config.yml:ro"
6666
- "{{ beaconchain_explorer_aio_installation_dir }}/explorer/custom_configs:/custom_configs:ro"
6767
- "{{ beaconchain_explorer_aio_data_dir_explorer }}:/data"
68-
{%- if beaconchain_explorer_aio_bigtable_external_enabled %}
68+
{% if beaconchain_explorer_aio_bigtable_external_enabled %}
6969
- "{{ beaconchain_explorer_aio_installation_dir }}/bigtable_secret.json:/bigtable_secret.json:ro"
70-
{%- endif %}
70+
{% endif %}
7171
environment:
7272
- INDEXER_ENABLED=false
73-
{%- if beaconchain_explorer_aio_bigtable_external_enabled %}
73+
{% if beaconchain_explorer_aio_bigtable_external_enabled %}
7474
- GOOGLE_APPLICATION_CREDENTIALS=/bigtable_secret.json
75-
{%- else %}
75+
{% else %}
7676
- BIGTABLE_EMULATOR_HOST=beaconchain_bigtable:9000
77-
{%- endif %}
77+
{% endif %}
7878
#######################################################################
7979
frontend-updater:
8080
container_name: beaconchain_frontend_updater
@@ -96,7 +96,7 @@ services:
9696
- FRONTEND_ENABLED=true
9797
{% if beaconchain_explorer_aio_bigtable_external_enabled %}
9898
- GOOGLE_APPLICATION_CREDENTIALS=/bigtable_secret.json
99-
{%- else %}
99+
{% else %}
100100
- BIGTABLE_EMULATOR_HOST=beaconchain_bigtable:9000
101101
{% endif %}
102102

@@ -123,7 +123,7 @@ services:
123123
- FRONTEND_ENABLED=true
124124
{% if beaconchain_explorer_aio_bigtable_external_enabled %}
125125
- GOOGLE_APPLICATION_CREDENTIALS=/bigtable_secret.json
126-
{%- else %}
126+
{% else %}
127127
- BIGTABLE_EMULATOR_HOST=beaconchain_bigtable:9000
128128
{% endif %}
129129
#######################################################################
@@ -157,7 +157,7 @@ services:
157157
- "{{ beaconchain_explorer_aio_installation_dir }}/postgres/tables.sql:/docker-entrypoint-initdb.d/init.sql"
158158
- "{{ beaconchain_explorer_aio_data_dir_postgres }}:/var/lib/postgresql/data"
159159
#######################################################################
160-
{%- if not beaconchain_explorer_aio_bigtable_external_enabled %}
160+
{% if not beaconchain_explorer_aio_bigtable_external_enabled %}
161161
bigtable:
162162
container_name: beaconchain_bigtable
163163
image: "{{ beaconchain_explorer_aio_docker_image_bigtable }}"
@@ -177,4 +177,4 @@ services:
177177
- "{{ beaconchain_explorer_aio_installation_dir }}/bigtable/cbt-definitions.yml:/cbt-definitions.yml"
178178
- "{{ beaconchain_explorer_aio_installation_dir }}/bigtable/eth1.proto:/eth1.proto"
179179
- "{{ beaconchain_explorer_aio_data_dir_bigtable }}:/data"
180-
{%- endif %}
180+
{% endif %}

roles/besu/tasks/setup.yaml

+4
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111
owner: "{{ besu_user }}"
1212
group: "{{ besu_user }}"
1313

14+
- name: Set permissions
15+
ansible.builtin.command: "chown -R {{ besu_user }}:{{ besu_user }} {{ besu_datadir }}" # noqa deprecated-command-syntax
16+
changed_when: false
17+
1418
- name: Run besu container
1519
community.docker.docker_container:
1620
name: "{{ besu_container_name }}"

roles/erigon/tasks/setup.yaml

+4
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111
owner: "{{ erigon_user }}"
1212
group: "{{ erigon_user }}"
1313

14+
- name: Set permissions
15+
ansible.builtin.command: "chown -R {{ erigon_user }}:{{ erigon_user }} {{ erigon_datadir }}" # noqa deprecated-command-syntax
16+
changed_when: false
17+
1418
- name: Init custom network
1519
when: erigon_init_custom_network
1620
block:

roles/ethereumjs/tasks/setup.yaml

+4
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111
owner: "{{ ethereumjs_user }}"
1212
group: "{{ ethereumjs_user }}"
1313

14+
- name: Set permissions
15+
ansible.builtin.command: "chown -R {{ ethereumjs_user }}:{{ ethereumjs_user }} {{ ethereumjs_datadir }}" # noqa deprecated-command-syntax
16+
changed_when: false
17+
1418
- name: Run ethereumjs container
1519
community.docker.docker_container:
1620
name: "{{ ethereumjs_container_name }}"

roles/ethstats/README.md

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# ethpandaops.general.ethstats
2+
3+
Setup [ethstats](https://github.com/goerli/ethstats-server).
4+
5+
## Requirements
6+
7+
You'll need docker on the target system. Make sure to install it upfront.
8+
9+
## Role Variables
10+
11+
Default variables are defined in [defaults/main.yaml](defaults/main.yaml)
12+
13+
## Dependencies
14+
15+
You'll need docker to run this role. One way of installing docker could be via ansible galaxy with the following dependencies set within `requirements.yaml`:
16+
17+
```yaml
18+
roles:
19+
- src: geerlingguy.docker
20+
version: latest
21+
- src: geerlingguy.pip
22+
version: latest
23+
```
24+
25+
## Example Playbook
26+
27+
Your playbook could look like this:
28+
29+
```yaml
30+
- hosts: localhost
31+
become: true
32+
roles:
33+
- role: geerlingguy.docker
34+
- role: geerlingguy.pip
35+
pip_install_packages:
36+
- name: docker
37+
- role: ethpandaops.general.ethstats
38+
```

roles/ethstats/defaults/main.yaml

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
ethstats_user: ethstats
2+
3+
# Image is based on https://github.com/goerli/ethstats-server/pull/32
4+
ethstats_container_image: skylenet/ethstats-server:pow-latest
5+
ethstats_container_name: ethstats
6+
ethstats_container_published_ports: []
7+
ethstats_container_restart_policy: always
8+
ethstats_container_networks_cli_compatible: true
9+
ethstats_container_network_mode: default
10+
ethstats_container_networks: []
11+
ethstats_container_volumes_from: []
12+
ethstats_container_volumes: []
13+
ethstats_container_env:
14+
WS_SECRET: "" # shared secret required for incoming websocket connections

roles/ethstats/tasks/main.yaml

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
- name: Add ethstats user
2+
ansible.builtin.user:
3+
name: "{{ ethstats_user }}"
4+
register: ethstats_user_meta
5+
6+
- name: Check ethstats websocket secret
7+
ansible.builtin.assert:
8+
that:
9+
- ethstats_container_env.WS_SECRET != ""
10+
fail_msg: "'ethstats_container_env.WS_SECRET' can't be empty"
11+
12+
- name: Run ethstats container
13+
community.general.docker_container:
14+
name: "{{ ethstats_container_name }}"
15+
image: "{{ ethstats_container_image }}"
16+
published_ports: "{{ ethstats_container_published_ports }}"
17+
restart_policy: "{{ ethstats_container_restart_policy }}"
18+
networks: "{{ ethstats_container_networks }}"
19+
networks_cli_compatible: "{{ ethstats_container_networks_cli_compatible }}"
20+
network_mode: "{{ ethstats_container_network_mode }}"
21+
volumes: "{{ ethstats_container_volumes }}"
22+
env: "{{ ethstats_container_env }}"
23+
user: "{{ ethstats_user_meta.uid }}"

roles/geth/defaults/main.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ geth_container_command_extra_args: []
4242

4343
# Only required changing when running custom networks
4444
geth_init_custom_network: false
45+
geth_init_autoremove_enabled: false
4546
geth_init_custom_network_genesis_file: /config/genesis.json
4647
geth_init_custom_network_container_env: {}
4748
geth_init_custom_network_container_volumes:

roles/geth/tasks/setup.yaml

+5-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111
owner: "{{ geth_user }}"
1212
group: "{{ geth_user }}"
1313

14+
- name: Set permissions
15+
ansible.builtin.command: "chown -R {{ geth_user }}:{{ geth_user }} {{ geth_datadir }}" # noqa deprecated-command-syntax
16+
changed_when: false
17+
1418
- name: Init custom network
1519
when: geth_init_custom_network
1620
block:
@@ -23,7 +27,7 @@
2327
name: "{{ geth_container_name }}-init"
2428
image: "{{ geth_container_image }}"
2529
detach: false
26-
auto_remove: true
30+
auto_remove: "{{ geth_init_autoremove_enabled }}"
2731
restart_policy: "no"
2832
state: started
2933
volumes: "{{ geth_init_custom_network_container_volumes }}"

roles/lighthouse/tasks/setup.yaml

+9
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111
owner: "{{ lighthouse_user }}"
1212
group: "{{ lighthouse_user }}"
1313

14+
- name: Set permissions
15+
ansible.builtin.command: "chown -R {{ lighthouse_user }}:{{ lighthouse_user }} {{ lighthouse_datadir }}" # noqa deprecated-command-syntax
16+
changed_when: false
17+
1418
- name: Run lighthouse container
1519
community.docker.docker_container:
1620
name: "{{ lighthouse_container_name }}"
@@ -39,6 +43,11 @@
3943
- "{{ lighthouse_validator_datadir }}/secrets"
4044
when: lighthouse_validator_enabled
4145

46+
- name: Set permissions for validator data dir
47+
ansible.builtin.command: "chown -R {{ lighthouse_user }}:{{ lighthouse_user }} {{ lighthouse_validator_datadir }}" # noqa deprecated-command-syntax
48+
changed_when: false
49+
when: lighthouse_validator_enabled
50+
4251
- name: Run lighthouse validator container
4352
community.docker.docker_container:
4453
name: "{{ lighthouse_validator_container_name }}"

roles/lodestar/tasks/setup.yaml

+9
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111
owner: "{{ lodestar_user }}"
1212
group: "{{ lodestar_user }}"
1313

14+
- name: Set permissions
15+
ansible.builtin.command: "chown -R {{ lodestar_user }}:{{ lodestar_user }} {{ lodestar_datadir }}" # noqa deprecated-command-syntax
16+
changed_when: false
17+
1418
- name: Run lodestar container
1519
community.docker.docker_container:
1620
name: "{{ lodestar_container_name }}"
@@ -39,6 +43,11 @@
3943
- "{{ lodestar_validator_datadir }}/secrets"
4044
when: lodestar_validator_enabled
4145

46+
- name: Set permissions for validator data dir
47+
ansible.builtin.command: "chown -R {{ lodestar_user }}:{{ lodestar_user }} {{ lodestar_validator_datadir }}" # noqa deprecated-command-syntax
48+
changed_when: false
49+
when: lodestar_validator_enabled
50+
4251
- name: Run lodestar validator container
4352
community.docker.docker_container:
4453
name: "{{ lodestar_validator_container_name }}"

roles/nethermind/tasks/setup.yaml

+4
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@
1414
- "{{ nethermind_datadir }}"
1515
- "{{ nethermind_datadir }}/nethermind"
1616

17+
- name: Set permissions
18+
ansible.builtin.command: "chown -R {{ nethermind_user }}:{{ nethermind_user }} {{ nethermind_datadir }}" # noqa deprecated-command-syntax
19+
changed_when: false
20+
1721
- name: Run nethermind container
1822
community.docker.docker_container:
1923
name: "{{ nethermind_container_name }}"

roles/nimbus/defaults/main.yaml

+12
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,18 @@ nimbus_validator_enabled: false
1414
nimbus_validator_fee_recipient: "0xF29Ff96aaEa6C9A1fBa851f74737f3c069d4f1a9" # theprotocolguild.eth
1515
nimbus_validator_datadir: /data/nimbus-validator
1616

17+
################################################################################
18+
##
19+
## Checkpoint sync container configuration
20+
##
21+
################################################################################
22+
nimbus_checkpoint_container_name: nimbus_checkpoint
23+
nimbus_checkpoint_container_command:
24+
- trustedNodeSync
25+
- --data-dir=/data
26+
nimbus_checkpoint_container_command_extra_args: []
27+
nimbus_checkpoint_sync_enabled: false
28+
nimbus_checkpoint_autoremove_enabled: false
1729
################################################################################
1830
##
1931
## Beacon node container configuration

roles/nimbus/tasks/setup.yaml

+25
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111
owner: "{{ nimbus_user }}"
1212
group: "{{ nimbus_user }}"
1313

14+
- name: Set permissions
15+
ansible.builtin.command: "chown -R {{ nimbus_user }}:{{ nimbus_user }} {{ nimbus_datadir }}" # noqa deprecated-command-syntax
16+
changed_when: false
17+
1418
- name: Create validator data dir
1519
ansible.builtin.file:
1620
path: "{{ item }}"
@@ -24,6 +28,27 @@
2428
- "{{ nimbus_validator_datadir }}/secrets"
2529
when: nimbus_validator_enabled
2630

31+
- name: Set permissions for validator data dir
32+
ansible.builtin.command: "chown -R {{ nimbus_user }}:{{ nimbus_user }} {{ nimbus_validator_datadir }}" # noqa deprecated-command-syntax
33+
changed_when: false
34+
when: nimbus_validator_enabled
35+
36+
- name: Checkpoint sync nimbus node
37+
when: nimbus_checkpoint_sync_enabled
38+
community.docker.docker_container:
39+
name: "{{ nimbus_checkpoint_container_name }}"
40+
image: "{{ nimbus_container_image }}"
41+
state: started
42+
detach: false
43+
auto_remove: "{{ nimbus_checkpoint_autoremove_enabled }}"
44+
restart_policy: "no"
45+
stop_timeout: "{{ nimbus_container_stop_timeout }}"
46+
volumes: "{{ nimbus_container_volumes }}"
47+
env: "{{ nimbus_container_env }}"
48+
networks: "{{ nimbus_container_networks }}"
49+
command: "{{ nimbus_checkpoint_container_command + nimbus_checkpoint_container_command_extra_args }}"
50+
user: "{{ nimbus_user_meta.uid }}"
51+
2752
- name: Run nimbus container
2853
community.docker.docker_container:
2954
name: "{{ nimbus_container_name }}"

0 commit comments

Comments
 (0)