tezos-pulumi
is a Pulumi Typescript node module for deploying Tezos infrastructure on AWS using Kubernetes. The library provides various components and helpers to simplify the process of deploying Tezos nodes, baking infrastructure, and related services. It is designed to work in conjunction with Oxhead Alpha's tezos-k8s project for managing Tezos infrastructure on Kubernetes. You can find the tezos-k8s
documentation here.
For a step-by-step guide on how to use this library to deploy scalable Tezos nodes in AWS, please refer to our tutorial on Medium.
Also see our baking tutorial for deploying a baker on Mainnet using a Ledger Wallet, remote signer, and consensus key.
This library provides a set of components to help you deploy and manage Tezos infrastructure. For detailed documentation on each component, please refer to the respective TypeScript source files. You can find an example of using this library in the examples/tutorial
directory within this repository. Below is a short description of each component:
TezosK8sHelmChart
: Simplifies the deployment of tezos-k8s Helm charts into your Kubernetes cluster. The Helm charts can deploy various Tezos components such as RPC nodes, bakers, indexers, remote signers, and faucets.
-
AlbIngressController
: Deploys the AWS Load Balancer Controller in your Kubernetes cluster. This controller manages the creation of AWS Application Load Balancers (ALB) for your Tezos nodes, allowing you to expose the RPC and P2P endpoints with ease. -
ExternalDns
: Deploys the external-dns controller in your Kubernetes cluster. This controller synchronizes exposed Kubernetes Services and Ingresses with DNS providers like Route 53, automating the management of DNS records for your Tezos infrastructure. -
RpcIngress
: Creates a Kubernetes ingress resource for your Tezos nodes' RPC endpoint. With theAlbIngressController
in place, this ingress resource results in an ALB being provisioned, exposing the RPC endpoint to the internet. -
P2PService
: Creates a Kubernetes service for your Tezos nodes' P2P endpoint. The ALB controller will create a Network Load Balancer allowing other Tezos nodes to communicate with your nodes. -
TzktIngress
: Creates an ingress resource for the TzKT API of a deployed indexer. Similar to theRpcIngress
, this component works with theAlbIngressController
to expose the TzKT API via an ALB.