add Consul service definition for beacon node

Signed-off-by: Jakub Sokołowski <jakub@status.im>
This commit is contained in:
Jakub Sokołowski 2021-06-19 01:46:11 +02:00
parent b2f8af3f87
commit 9889971ab5
No known key found for this signature in database
GPG Key ID: 4EF064D0E6D63020
5 changed files with 75 additions and 2 deletions

View File

@ -41,7 +41,7 @@ beacon_node_mem_limit: '{{ (ansible_memtotal_mb * 0.5) | int }}'
beacon_node_mem_reserve: '{{ (ansible_memtotal_mb * 0.4) | int }}'
# Consul service definition settings
beacon_node_consul_service_name: 'beacon-node'
beacon_node_consul_service_name: '{{ beacon_node_service_name }}'
beacon_node_consul_service_file_name: '{{ beacon_node_consul_service_name | replace("-", "_") }}'
beacon_node_consul_metrics_service_name: '{{ beacon_node_consul_service_name }}-metrics'

5
handlers/main.yml Normal file
View File

@ -0,0 +1,5 @@
---
- name: Restart Consul
win_service:
name: 'consul'
state: 'restarted'

23
tasks/consul.yml Normal file
View File

@ -0,0 +1,23 @@
---
- name: 'Consul service definition - {{ beacon_node_service_name }}'
include_role: name=consul-service
vars:
consul_config_name: '{{ beacon_node_consul_service_file_name }}'
consul_services:
- id: '{{ beacon_node_service_name }}'
name: '{{ beacon_node_consul_service_name }}'
port: '{{ beacon_node_listening_port }}'
address: '{{ beacon_node_public_address }}'
tags: ['{{ env }}.{{ stage }}', 'beacon', 'nimbus']
- id: '{{ beacon_node_service_name }}-metrics'
name: '{{ beacon_node_consul_metrics_service_name }}'
port: '{{ beacon_node_metrics_port }}'
address: '127.0.0.1' # TODO: No WireGuard VPN on Windows
tags: ['{{ env }}.{{ stage }}', 'beacon', 'nimbus', 'metrics']
meta:
container: '{{ beacon_node_service_name }}'
checks:
- name: '{{ beacon_node_consul_metrics_service_name }}-health'
type: 'http'
http: 'http://localhost:{{ beacon_node_metrics_port }}/metrics'

View File

@ -2,6 +2,7 @@
- import_tasks: checks.yml
- import_tasks: user.yml
- import_tasks: install.yml
- import_tasks: firewall.yml
- import_tasks: schedule.yml
- import_tasks: service.yml
- import_tasks: firewall.yml
- import_tasks: consul.yml

View File

@ -0,0 +1,44 @@
{
"services": [
{
"id": "{{ beacon_node_service_name }}",
"name": "beacon-node",
"port": {{ beacon_node_listening_port }},
"address": "{{ beacon_node_public_address }}",
"weights": {
"passing": 1,
"warning": 3
},
"enable_tag_override": true,
"tags": ["{{ env }}.{{ stage }}", "beacon", "nimbus"]
},
{
"id": "{{ beacon_node_service_name }}-metrics",
"name": "beacon-node-metrics",
"port": 9300,
"meta": {
"container": "beacon-node-prater-stable-large"
},
"address": "10.13.0.16",
"weights": {
"passing": 1,
"warning": 3
},
"enable_tag_override": true,
"checks": [
{
"name": "beacon-node-metrics HTTP check",
"http": "http://localhost:9300/metrics",
"method": "GET",
"tls_skip_verify": false,
"header": {},
"interval": "30s",
"timeout": "2s",
"id": {{ beacon_node_service_name }}-metrics"
}
],
"tags": ["{{ env }}.{{ stage }}", "beacon", "nimbus", "metrics"]
}
]
}