A utility to generate k8s configs for a Mavryk blockchain
Project description
mkmavrykchain
Helper program to generate values for the Mavryk chain Helm chart
Prerequisites
To run mkmavrykchain
, you must either have docker or pymavryk installed.
Installing Docker
To be consistent with other documentation in this project, we describe how to install docker with minikube. We need to install:
- [docker](https://docs.docker.com/get-docker/),
- [minikube](https://minikube.sigs.k8s.io/docs/),
- [helm](https://helm.sh/),
- and `python3`.
Start minikube and configure your shell environment to use minikube's Docker daemon:
minikube start
eval $(minikube docker-env)
Installing pymavryk
This is documented at: https://pymavryk.mavryk.org/quick_start.html#requirements
Install mkmavrykchain
mkdir mkmavrykchain && cd mkmavrykchain
python3 -m venv .venv
. .venv/bin/activate
pip install wheel && pip install mkmavrykchain
Set unbuffered IO for python:
export PYTHONUNBUFFERED=x
Generate Helm Values
Set as an environment variable the name you would like to give to your chain:
export CHAIN_NAME=my-chain
Your chain is uniquely defined by a set of values such as bootstrap account keys, chain id, timestamp...
To generate these values run:
mkmavrykchain $CHAIN_NAME
This command will create a yaml file in your current working directory: <$CHAIN_NAME>_values.yaml
If you configure your chain to run over a Zerotier VPN, mkmavrykchain will create an additional file for invitees to join your network: <$CHAIN_NAME>_invite_values.yaml
.
mkmavrykchain parameters
You can explicitly specify some values by:
- passing CLI parameters to
mkmavrykchain
- directly modifying the values yaml file generated by
mkmavrykchain
- passing arguments to helm install or helm upgrade commands using the
--set
flag, which will selectively override the current yaml values
YAML Key | mkmavrykchain argument | Description | Default |
---|---|---|---|
-h | mkmavrykchain help message | ||
-v | mkmavrykchain version | ||
--number-of-bakers | Number of baking nodes in the cluster | 1 | |
--number-of-nodes | Number of non-baking nodes in the cluster | 0 | |
bootstrap_peers | --bootstrap-peers | Peer ips to connect to | [] |
expected_proof_of_work | --expected-proof-of-work | Node identity generation difficulty | 0 |
images.mavkit | --mavkit-docker-image | Version of the Mavkit docker image to run | mavrykdynamics/mavryk:v19.3 |
--use-docker (--no...) | Use (or don't use) docker to generate keys rather than pymavryk | autodetect | |
zerotier_config.zerotier_network | --zerotier-network | Zerotier network id for external chain access | |
zerotier_config.zerotier_token | --zerotier-token | Zerotier token for external chain access |
Create Mavryk Chain
Make sure you have the Mavryk Helm chart repo:
helm repo add mavryk-network https://mavryk-network.github.io/mavryk-helm-charts
Then install the Mavryk Helm chart:
helm install $CHAIN_NAME mavryk-network/mavryk-chain \
--values ./${CHAIN_NAME}_values.yaml \
--namespace mavryk-network --create-namespace
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for mkmavrykchain-6.25.9-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e2403021a7077837dc13b6b1b2eaf20c726dae81a2882e5c8c4429c91293152 |
|
MD5 | 4a9cb8545ab4198a07e895eaec50624d |
|
BLAKE2b-256 | a3840f1c74e0273e0e35a030e34242c803b740f9c21c97de8071b93ad5209999 |