linkxzhou / kotal

Blockchain Kubernetes Operator

Home Page:https://kotal.co

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Kotal Operator

Kotal operator is a cloud agnostic blockchain deployer that makes it super easy to deploy highly-available, self-managing, self-healing blockchain infrastructure (networks, nodes, storage clusters ...) on any cloud.

What can I do with Kotal Operator ?

  • Deploy ipfs peers and cluster peers
  • Deploy ipfs swarms
  • Deploy Ethereum transaction and mining nodes
  • Deploy Ethereum 2 beacon and validation nodes
  • Deploy private Ethereum networks
  • Deploy Filecoin nodes
  • Deploy Filecoin backed pinning services (FPS)

Kubernetes Custom Resources

Kotal extended kubernetes with custom resources in different API groups.

Group Description API Group Status
Ethereum Deploy ethereum nodes and networks ethereum.kotal.io/v1alpha1 alpha
IPFS Deploy IPFS peers, cluster peers, and swarms ipfs.kotal.io/v1alpha1 alpha
Filecoin Deploy Filecoin nodes filecoin.kotal.io/v1alpha1 alpha
Ethereum 2.0 Deploy validator and beacon chain nodes ethereum2.kotal.io/v1alpha1 alpha
Algorand Deploy relay and participation nodes ethereum2.kotal.io/v1alpha1 coming soon 🚀

Client support

For each protocol, kotal supports at least 1 client (reference client), client can be changed by updating client: ... specification parameter.

Protocol Client(s)
Ethereum Hyperledger Besu, Go-Ethereum, Open Ethereum
Ethereum 2.0 Teku, Prysm, Lighthouse, Nimbus
Filecoin Lotus
IFPS go-ipfs

Install Kotal

Kotal requires access to Kubernetes cluster with cert-manager installed.

For development purposes, we recommend KinD (Kubernetes in Docker) to create kubernetes clusters and tear down kubernetes clusters in seconds:

kind create cluster

After the cluster is up and running, install cert-manager:

kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.2.0/cert-manager.yaml

Install kotal custom resources and controllers:

kubectl apply -f https://github.com/kotalco/kotal/releases/download/v0.1-alpha.3/kotal.yaml

Example

Ethereum node using Hyperleger Besu client, joining rinkeby network, and enabling RPC HTTP server:

# ethereum-node.yaml
apiVersion: ethereum.kotal.io/v1alpha1
kind: Node
metadata:
  name: ethereum-node
spec:
  client: besu
  join: rinkeby
  rpc: true
kubectl apply -f ethereum-node.yaml

Documentation

Kotal documentation is available here

Get in touch

Contriubuting

TODO

Licensing

TODO

About

Blockchain Kubernetes Operator

https://kotal.co


Languages

Language:Go 99.2%Language:Makefile 0.5%Language:Dockerfile 0.2%Language:Shell 0.1%