Prerequisites
Prerequisitesβ
- python3 (>=3.7)
- docker
- kubectl
- helm
- (optional, for distributed private chains) A ZeroTier network with api access token
For local deploymentβ
For deployment on a cloud platform (AWS)β
- we recommend pulumi, an infrastructure-as-code platform, for cloud deployments
Installing prerequisitesβ
This section varies depending on OS.
Macβ
Install Docker Desktop.
Start Docker Desktop and follow the setup instructions. Note: You may quit Docker after it has finished setting up. It is not required that Docker Desktop is running for you to run a Tezos chain.
Install homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Install other prerequisites:
brew install python3 kubectl minikube helm
Arch Linuxβ
pacman -Syu && pacman -S docker python3 minikube kubectl kubectx helm
Other Operating Systemsβ
Please see the respective pages for installation instructions:
Configuring Minikubeβ
It is suggested to deploy minikube as a virtual machine. This requires a virtual machine driver.
Macβ
Requires the hyperkit driver. This comes already bundled together with Docker Desktop.
Make hyperkit the default minikube driver:
minikube config set driver hyperkit
(Note: We do not use Docker itself as the minikube driver due to an issue regarding the minikube ingress addon that is required by rpc-auth.)
Other Operating Systemsβ
If in the next step minikube does not start correctly, you may need to configure a different driver for it. Please see the minikube docs here for more information.
Starting Minikubeβ
minikube start
Configure your shell environment to use minikubeβs Docker daemon:
eval $(minikube docker-env)
This allows you to run Docker commands inside of minikube. For example: docker images
to view the images that minikube has.
If you want to unset your shell from using minikube's docker daemon:
eval $(minikube docker-env -u)
Adding the Oxhead Alpha Helm Chart Repositoryβ
helm repo add oxheadalpha https://oxheadalpha.github.io/tezos-helm-charts/
Using a custom Tezos buildβ
Create a clone of the [tezos](https://gitlab.com/tezos/tezos)
repository. Set up your development environment as usual. Then run:
eval $(minikube docker-env)
make docker-image
This will create a docker image called tezos:latest
and install it
into the minikube environment.
Or, if you prefer, you can build the image using:
./scripts/create_docker_image.sh
This will create an image with a name like tezos/tezos:v16.0
.
Then you install it thus:
docker image save <image> | ( eval $(minikube docker-env); docker image load )
Either way, inside $CHAIN_NAME_values.yaml
, change the images
section to:
images:
octez: <image>
where image is tezos:latest
or whatever.
Then install the chart as above.
Notesβ
We recommend using a very nice GUI for your k8s Tezos chain infrastructure called Lens. This allows you to easily see all of the k8s resources that have been spun up as well as to view the logs for your Tezos nodes. Checkout a similar tool called k9s that works in the CLI.
Check out Oxheadalpha's Typescript node module tezos-pulumi to deploy tezos-k8s in AWS EKS.