Helper program to generate values for the Tezos chain Helm chart
To run mkchain
, you must either have docker or pytezos installed.
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)
This is documented at: https://pytezos.org/quick_start.html#requirements
mkdir mkchain && cd mkchain
python3 -m venv .venv
. .venv/bin/activate
pip install wheel && pip install mkchain
Set unbuffered IO for python:
export PYTHONUNBUFFERED=x
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:
mkchain $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, mkchain will create an additional file for invitees to join your network: <$CHAIN_NAME>_invite_values.yaml
.
You can explicitly specify some values by:
- passing CLI parameters to
mkchain
- directly modifying the values yaml file generated by
mkchain
- passing arguments to helm install or helm upgrade commands using the
--set
flag, which will selectively override the current yaml values
YAML Key | mkchain argument | Description | Default |
---|---|---|---|
-h | mkchain help message | ||
-v | mkchain 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.octez | --octez-docker-image | Version of the Octez docker image to run | tezos/tezos:v12-release |
--use-docker (--no...) | Use (or don't use) docker to generate keys rather than pytezos | 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 |
Make sure you have the Tezos Helm chart repo:
helm repo add oxheadalpha https://oxheadalpha.github.io/tezos-helm-charts
Then install the Tezos Helm chart:
helm install $CHAIN_NAME oxheadalpha/tezos-chain \
--values ./${CHAIN_NAME}_values.yaml \
--namespace oxheadalpha --create-namespace