Algorand node stable channel helm chart compatible with testnet and mainnet.
- Fast catchup https://developer.algorand.org/docs/run-a-node/setup/install/#sync-node-network-using-fast-catchup
- Node config.json management
- Data persistence with persistent volumes https://kubernetes.io/docs/concepts/storage/persistent-volumes/
- Load-balancing example
- Minikube https://minikube.sigs.k8s.io/docs/handbook/
- Minikube ingress https://kubernetes.io/docs/tasks/access-application-cluster/ingress-minikube/
- kubectl https://kubernetes.io/docs/tasks/tools/install-kubectl/
- helm https://helm.sh/docs/intro/install/
- jq https://stedolan.github.io/jq/download/
helm repo add algon https://randmeister.github.io/algon
helm repo update
kubectl create namespace algon
helm upgrade --install algon algon/algon --namespace algon
The helm default values are a good starting point. values.yaml
- Copy URL from minikube
minikube service list algon -n algon
Example output: | NAMESPACE | NAME | TARGET PORT | URL | | algon | algon | http/8080 | http://192.168.64.12:31902 |
- Make request to node from localhost
curl http://${URL_FROM_MINIKUBE_SERVICE_LIST_COMMAND}/v2/status -H "X-Algo-API-Token: $ALGON_API_TOKEN" -v | jq .
-
Run
minikube tunnel
-
In a new terminal run:
export ALGON_IP=`kubectl -n algon get svc algon -o json | jq -r '.status.loadBalancer | .ingress[].ip'`
export ALGON_API_TOKEN=`kubectl -n algon get secrets/algon-api-token --template="{{index .data \"algod.token\" | base64decode}}"`
echo "\n\nAlgorand Node IP: $ALGON_IP\nAlgorand Node Port: 8080 \nAlgorand API Token: $ALGON_API_TOKEN\n"
curl http://$ALGON_IP:8080/v2/status -H "X-Algo-API-Token: $ALGON_API_TOKEN" -v | jq .
- The Algorand node is now accessible under algon.local.
The algon docker image is hosted on docker hub: https://hub.docker.com/repository/docker/randmeister/algon