laconicd-stack/playbooks/validator/create-validator.yml
Prathamesh Musale d91ed4280f Update yq setup and remove --git-ssh usage (#30)
Part of https://www.notion.so/Create-stacks-for-mainnet-1f2a6b22d4728034be4be2c51decf94e
- Add step for installing `zstd` in macOS
- Use ansible command module for running docker commands

Co-authored-by: Shreerang Kale <shreerangkale@gmail.com>
Reviewed-on: #30
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
2025-06-19 13:18:56 +00:00

79 lines
2.5 KiB
YAML

---
- name: Create validator on running chain
hosts: localhost
vars_files:
- validator-vars.yml
vars:
data_directory: "{{ lookup('env', 'DATA_DIRECTORY') }}"
create_validator_dir: "{{data_directory}}/create-validator"
spec_file: "{{data_directory}}/laconicd-validator-spec.yml"
tasks:
- name: Fail if DATA_DIRECTORY env var is not set
fail:
msg: >-
Required environment variables are not set.
Please export DATA_DIRECTORY before running the playbook.
when: lookup('env', 'DATA_DIRECTORY') == ''
- name: Fail if required key files are not defined
fail:
msg: >-
Required key files are not defined.
Please set staking_amount_file in validator-vars.yml.
when: not staking_amount_file
- name: Ensure tmp directory exists inside laconicd-data
file:
path: "{{create_validator_dir}}/tmp"
state: directory
mode: '0755'
- name: Copy staking amount file to laconicd-data tmp directory
copy:
src: "{{ staking_amount_file }}"
dest: "{{create_validator_dir}}/tmp/staking-amount.json"
mode: '0644'
- name: Prompt for validator private key
vars:
private_key_prompt: "Please enter your validator private key: "
pause:
prompt: "{{ private_key_prompt }}"
echo: no
register: private_key_input
- name: Fail if private key is not provided
fail:
msg: "Private key is required for creating the gentx."
when: private_key_input.user_input | default('') | trim == ''
- name: Run create-validator script
command:
argv:
- docker
- run
- -i
- -v
- "{{create_validator_dir}}:/root/create-validator"
- -v
- "{{ ansible_env.HOME }}/cerc/laconicd-stack/stack-orchestrator/config/mainnet-laconicd/create-validator.sh:/scripts/create-validator.sh"
- -e
- "KEY_NAME={{ key_name }}"
- -e
- "NODE_URL={{ node_url }}"
- -e
- "CERC_MONIKER={{ cerc_moniker }}"
- -e
- "CERC_CHAIN_ID={{ cerc_chain_id }}"
- -e
- "MIN_GAS_PRICE={{ min_gas_price }}"
- -e
- "VALIDATOR_PUB_KEY={{ validator_pub_key }}"
- -e
- "PVT_KEY={{ private_key_input.user_input }}"
- --network=host
- cerc/laconicd:local
- sh
- -c
- "/scripts/create-validator.sh"