mirror of
https://github.com/status-im/infra-nimbus.git
synced 2025-03-04 07:10:30 +00:00
get-geth-api-urls: query for HTTP RPC API endpoints
We want to test the support for normal HTTP API endpoints. Signed-off-by: Jakub Sokołowski <jakub@status.im>
This commit is contained in:
parent
62835a2079
commit
0c1169cee3
@ -18,7 +18,7 @@
|
|||||||
roles:
|
roles:
|
||||||
- { role: swap-file, tags: [ swap-file ] }
|
- { role: swap-file, tags: [ swap-file ] }
|
||||||
- { role: redirect-ports, tags: [ redirect-ports ] }
|
- { role: redirect-ports, tags: [ redirect-ports ] }
|
||||||
- { role: get-geth-web3-urls, tags: [ get-geth-web3-urls ] }
|
- { role: get-geth-api-urls, tags: [ get-geth-api-urls ] }
|
||||||
tasks:
|
tasks:
|
||||||
- include_role: name=infra-role-beacon-node-linux
|
- include_role: name=infra-role-beacon-node-linux
|
||||||
tags: [ beacon-node, infra-role-beacon-node-linux ]
|
tags: [ beacon-node, infra-role-beacon-node-linux ]
|
||||||
@ -32,7 +32,7 @@
|
|||||||
hosts: nimbus-mainnet-metal
|
hosts: nimbus-mainnet-metal
|
||||||
roles:
|
roles:
|
||||||
- { role: redirect-ports, tags: [ redirect-ports ] }
|
- { role: redirect-ports, tags: [ redirect-ports ] }
|
||||||
- { role: get-geth-web3-urls, tags: [ get-geth-web3-urls ] }
|
- { role: get-geth-api-urls, tags: [ get-geth-api-urls ] }
|
||||||
tasks:
|
tasks:
|
||||||
- include_role: name=infra-role-beacon-node-linux
|
- include_role: name=infra-role-beacon-node-linux
|
||||||
tags: [ beacon-node, infra-role-beacon-node-linux ]
|
tags: [ beacon-node, infra-role-beacon-node-linux ]
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
- nimbus-prater-testing
|
- nimbus-prater-testing
|
||||||
- nimbus-prater-unstable
|
- nimbus-prater-unstable
|
||||||
roles:
|
roles:
|
||||||
- { role: get-geth-web3-urls, tags: get-geth-web3-urls }
|
- { role: get-geth-api-urls, tags: get-geth-api-urls }
|
||||||
tasks:
|
tasks:
|
||||||
- include_role: name=infra-role-beacon-node-linux
|
- include_role: name=infra-role-beacon-node-linux
|
||||||
tags: [ beacon-node, infra-role-beacon-node-linux ]
|
tags: [ beacon-node, infra-role-beacon-node-linux ]
|
||||||
@ -31,8 +31,8 @@
|
|||||||
become: true
|
become: true
|
||||||
hosts: nimbus-prater-metal
|
hosts: nimbus-prater-metal
|
||||||
roles:
|
roles:
|
||||||
- { role: redirect-ports, tags: [ redirect-ports ] }
|
- { role: redirect-ports, tags: [ redirect-ports ] }
|
||||||
- { role: get-geth-web3-urls, tags: [ get-geth-web3-urls ] }
|
- { role: get-geth-api-urls, tags: [ get-geth-api-urls ] }
|
||||||
tasks:
|
tasks:
|
||||||
- include_role: name=infra-role-beacon-node-linux
|
- include_role: name=infra-role-beacon-node-linux
|
||||||
tags: [ beacon-node, infra-role-beacon-node-linux ]
|
tags: [ beacon-node, infra-role-beacon-node-linux ]
|
||||||
@ -46,7 +46,7 @@
|
|||||||
hosts: nimbus-prater-windows
|
hosts: nimbus-prater-windows
|
||||||
fact_path: 'C:/ansible/facts.d'
|
fact_path: 'C:/ansible/facts.d'
|
||||||
roles:
|
roles:
|
||||||
- { role: get-geth-web3-urls, tags: [ get-geth-web3-urls ] }
|
- { role: get-geth-api-urls, tags: [ get-geth-api-urls ] }
|
||||||
tasks:
|
tasks:
|
||||||
- include_role: name=infra-role-beacon-node-windows
|
- include_role: name=infra-role-beacon-node-windows
|
||||||
tags: [ beacon-node, infra-role-beacon-node-windows ]
|
tags: [ beacon-node, infra-role-beacon-node-windows ]
|
||||||
|
@ -15,8 +15,8 @@
|
|||||||
hosts:
|
hosts:
|
||||||
- nimbus-pyrmont-metal
|
- nimbus-pyrmont-metal
|
||||||
roles:
|
roles:
|
||||||
- { role: redirect-ports, tags: redirect-ports }
|
- { role: redirect-ports, tags: redirect-ports }
|
||||||
- { role: get-geth-web3-urls, tags: get-geth-web3-urls }
|
- { role: get-geth-api-urls, tags: get-geth-api-urls }
|
||||||
tasks:
|
tasks:
|
||||||
- include_role: name=infra-role-beacon-node-linux
|
- include_role: name=infra-role-beacon-node-linux
|
||||||
tags: [ beacon-node, infra-role-beacon-node-linux ]
|
tags: [ beacon-node, infra-role-beacon-node-linux ]
|
||||||
|
@ -4,11 +4,14 @@ This role assembles the list of Web3 Eth1 URLs used by Nimbus Beacon nodes to sy
|
|||||||
|
|
||||||
# Configuration
|
# Configuration
|
||||||
|
|
||||||
There is only one important configuration key:
|
There are only two important configuration keys:
|
||||||
```yaml
|
```yaml
|
||||||
|
geth_node_api_consul_name: 'my-geth-node-rpc'
|
||||||
infura_api_tokens:
|
infura_api_tokens:
|
||||||
- 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
- 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
||||||
- 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'
|
- 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'
|
||||||
- 'cccccccccccccccccccccccccccccccc'
|
- 'cccccccccccccccccccccccccccccccc'
|
||||||
```
|
```
|
||||||
And the more we have the less likely that we hit the Infura treshhold.
|
And the more we have the less likely that we hit the Infura treshhold.
|
||||||
|
|
||||||
|
The Geth node Consul service is expected to have an `url` in metadata.
|
@ -6,7 +6,7 @@ eth2_to_eth1_map:
|
|||||||
|
|
||||||
eth2_network_name: '{{ beacon_node_network | mandatory }}'
|
eth2_network_name: '{{ beacon_node_network | mandatory }}'
|
||||||
eth1_network_name: '{{ eth2_to_eth1_map[eth2_network_name] | mandatory }}'
|
eth1_network_name: '{{ eth2_to_eth1_map[eth2_network_name] | mandatory }}'
|
||||||
web3_geth_node_consul_name: 'nimbus-{{ eth1_network_name | mandatory }}-node-ws'
|
geth_node_api_consul_name: 'nimbus-{{ eth1_network_name | mandatory }}-node-rpc'
|
||||||
# The more the merrier, since we don't want to hit Infura throttling.
|
# The more the merrier, since we don't want to hit Infura throttling.
|
||||||
infura_api_tokens:
|
infura_api_tokens:
|
||||||
- '9e2f2cc13f70432f8b87dbe7d51b81db'
|
- '9e2f2cc13f70432f8b87dbe7d51b81db'
|
@ -6,6 +6,6 @@
|
|||||||
|
|
||||||
- name: Find available geth websocket services
|
- name: Find available geth websocket services
|
||||||
uri:
|
uri:
|
||||||
url: '{{ consul_catalog_url }}/service/{{ web3_geth_node_consul_name }}?dc={{ item }}'
|
url: '{{ consul_catalog_url }}/service/{{ geth_node_api_consul_name }}?dc={{ item }}'
|
||||||
with_items: '{{ data_centers.json }}'
|
with_items: '{{ data_centers.json }}'
|
||||||
register: geth_ws_services
|
register: geth_ws_services
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
- name: Find available geth websocket services
|
- name: Find available geth websocket services
|
||||||
win_uri:
|
win_uri:
|
||||||
url: '{{ consul_catalog_url }}/service/{{ web3_geth_node_consul_name }}?dc={{ item }}'
|
url: '{{ consul_catalog_url }}/service/{{ geth_node_api_consul_name }}?dc={{ item }}'
|
||||||
content_type: 'application/json'
|
content_type: 'application/json'
|
||||||
return_content: true
|
return_content: true
|
||||||
with_items: '{{ data_centers.json }}'
|
with_items: '{{ data_centers.json }}'
|
@ -8,15 +8,14 @@
|
|||||||
# On Windows json attribute is missing when it's [].
|
# On Windows json attribute is missing when it's [].
|
||||||
- name: Extract Geth websocket IP and port
|
- name: Extract Geth websocket IP and port
|
||||||
set_fact:
|
set_fact:
|
||||||
geth_ws_addresses: |
|
geth_api_addresses: |
|
||||||
{{ geth_ws_services.results
|
{{ geth_ws_services.results
|
||||||
| selectattr("json", "defined")
|
| selectattr("json", "defined")
|
||||||
| sum(attribute="json", start=[])
|
| sum(attribute="json", start=[])
|
||||||
| json_query("[].[ServiceAddress, ServicePort]")
|
| map(attribute='ServiceMeta.url')
|
||||||
| map('join', ':')
|
|
||||||
| list }}
|
| list }}
|
||||||
|
|
||||||
- name: Extract Goerli Geth WebSocket URL
|
- name: Extract Goerli Geth WebSocket URL
|
||||||
set_fact:
|
set_fact:
|
||||||
# our nodes first (will be used by default) then an infura node
|
# our nodes first (will be used by default) then an infura node
|
||||||
beacon_node_web3_urls: "{{ geth_ws_addresses + [ selected_infura_url ] }}"
|
beacon_node_web3_urls: "{{ geth_api_addresses + [ selected_infura_url ] }}"
|
@ -1,25 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Find available data centers
|
|
||||||
uri:
|
|
||||||
url: '{{ consul_catalog_url }}/datacenters'
|
|
||||||
register: data_centers
|
|
||||||
|
|
||||||
- name: Find available geth websocket services
|
|
||||||
uri:
|
|
||||||
url: '{{ consul_catalog_url }}/service/{{ web3_geth_node_consul_name }}?dc={{ item }}'
|
|
||||||
with_items: '{{ data_centers.json }}'
|
|
||||||
register: geth_ws_services
|
|
||||||
|
|
||||||
- name: Extract Geth websocket IP and port
|
|
||||||
set_fact:
|
|
||||||
geth_ws_addresses: |
|
|
||||||
{{ geth_ws_services.results
|
|
||||||
| sum(attribute="json", start=[])
|
|
||||||
| json_query("[].[ServiceAddress, ServicePort]")
|
|
||||||
| map('join', ':')
|
|
||||||
| list }}
|
|
||||||
|
|
||||||
- name: Extract Goerli Geth WebSocket URL
|
|
||||||
set_fact:
|
|
||||||
# our nodes first (will be used by default) then an infura node
|
|
||||||
beacon_node_web3_urls: "{{ geth_ws_addresses + [ selected_infura_url ] }}"
|
|
@ -1,25 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Find available data centers
|
|
||||||
win_uri:
|
|
||||||
url: '{{ consul_catalog_url }}/datacenters'
|
|
||||||
register: data_centers
|
|
||||||
|
|
||||||
- name: Find available geth websocket services
|
|
||||||
win_uri:
|
|
||||||
url: '{{ consul_catalog_url }}/service/{{ web3_geth_node_consul_name }}?dc={{ item }}'
|
|
||||||
with_items: '{{ data_centers.json }}'
|
|
||||||
register: geth_ws_services
|
|
||||||
|
|
||||||
- name: Extract Geth websocket IP and port
|
|
||||||
set_fact:
|
|
||||||
geth_ws_addresses: |
|
|
||||||
{{ geth_ws_services.results
|
|
||||||
| sum(attribute="json", start=[])
|
|
||||||
| json_query("[].[ServiceAddress, ServicePort]")
|
|
||||||
| map('join', ':')
|
|
||||||
| list }}
|
|
||||||
|
|
||||||
- name: Extract Goerli Geth WebSocket URL
|
|
||||||
set_fact:
|
|
||||||
# our nodes first (will be used by default) then an infura node
|
|
||||||
beacon_node_web3_urls: "{{ geth_ws_addresses + [ selected_infura_url ] }}"
|
|
Loading…
x
Reference in New Issue
Block a user