kotal

command module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 28, 2023 License: Apache-2.0 Imports: 31 Imported by: 0

README

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 Bitcoin rpc nodes
  • 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 NEAR rpc, archive, and validator nodes
  • Deploy Polkadot rpc and validator nodes
  • Deploy Chainlink nodes
  • Deploy Filecoin nodes
  • Deploy Filecoin backed pinning services (FPS)
  • Deploy Stacks rpc and api nodes
  • Deploy Aptos full and validator nodes

Kubernetes Custom Resources

Kotal extended kubernetes with custom resources in different API groups.

Protocol Description API Group Status
Aptos Deploy Aptos full and validator nodes aptos.kotal.io/v1alpha1 alpha
Bitcoin Deploy Bitcoin nodes bitcoin.kotal.io/v1alpha1 alpha
Chainlink Deploy Chainlink nodes chainlink.kotal.io/v1alpha1 alpha
Ethereum Deploy private and public network Ethereum nodes ethereum.kotal.io/v1alpha1 alpha
Ethereum 2.0 Deploy validator and beacon chain nodes ethereum2.kotal.io/v1alpha1 alpha
Filecoin Deploy Filecoin nodes filecoin.kotal.io/v1alpha1 alpha
Graph Deploy graph nodes graph.kotal.io/v1alpha1 alpha
IPFS Deploy IPFS peers, cluster peers, and swarms ipfs.kotal.io/v1alpha1 alpha
NEAR Deploy NEAR rpc, archive and validator nodes near.kotal.io/v1alpha1 alpha
Polkadot Deploy Polkadot nodes and validator nodes polkadot.kotal.io/v1alpha1 alpha
Stacks Deploy Stacks rpc and api nodes stacks.kotal.io/v1alpha1 alpha

Client support

For each protocol, kotal supports at least 1 client (reference client):

Protocol Client(s)
Aptos Aptos Core
Bitcoin Bitcoin Core
Chainlink Chainlink
Ethereum Hyperledger Besu, Go-Ethereum, Nethermind
Ethereum 2.0 Teku, Prysm, Lighthouse, Nimbus
Filecoin Lotus
Graph graph-node
IPFS kubo, ipfs-cluster-service
NEAR nearcore
Polkadot Parity Polkadot
Stacks Stacks Node

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.5.3/cert-manager.yaml

Install kotal custom resources and controllers:

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

Example

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

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

Documentation

Kotal documentation is available here

Get in touch

Contriubuting

TODO

Licensing

Kotal Blockchain Kubernetes operator is free and open-source software licensed under the Apache 2.0 License

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
apis
aptos/v1alpha1
Package v1alpha1 contains API Schema definitions for the aptos v1alpha1 API group +kubebuilder:object:generate=true +groupName=aptos.kotal.io
Package v1alpha1 contains API Schema definitions for the aptos v1alpha1 API group +kubebuilder:object:generate=true +groupName=aptos.kotal.io
bitcoin/v1alpha1
Package v1alpha1 contains API Schema definitions for the bitcoin v1alpha1 API group +kubebuilder:object:generate=true +groupName=bitcoin.kotal.io
Package v1alpha1 contains API Schema definitions for the bitcoin v1alpha1 API group +kubebuilder:object:generate=true +groupName=bitcoin.kotal.io
chainlink/v1alpha1
Package v1alpha1 contains API Schema definitions for the chainlink v1alpha1 API group +kubebuilder:object:generate=true +groupName=chainlink.kotal.io
Package v1alpha1 contains API Schema definitions for the chainlink v1alpha1 API group +kubebuilder:object:generate=true +groupName=chainlink.kotal.io
ethereum/v1alpha1
Package v1alpha1 contains API Schema definitions for the ethereum v1alpha1 API group +kubebuilder:object:generate=true +groupName=ethereum.kotal.io
Package v1alpha1 contains API Schema definitions for the ethereum v1alpha1 API group +kubebuilder:object:generate=true +groupName=ethereum.kotal.io
ethereum2/v1alpha1
Package v1alpha1 contains API Schema definitions for the ethereum2 v1alpha1 API group +kubebuilder:object:generate=true +groupName=ethereum2.kotal.io
Package v1alpha1 contains API Schema definitions for the ethereum2 v1alpha1 API group +kubebuilder:object:generate=true +groupName=ethereum2.kotal.io
filecoin/v1alpha1
Package v1alpha1 contains API Schema definitions for the filecoin v1alpha1 API group +kubebuilder:object:generate=true +groupName=filecoin.kotal.io
Package v1alpha1 contains API Schema definitions for the filecoin v1alpha1 API group +kubebuilder:object:generate=true +groupName=filecoin.kotal.io
graph/v1alpha1
Package v1alpha1 contains API Schema definitions for the graph v1alpha1 API group +kubebuilder:object:generate=true +groupName=graph.kotal.io
Package v1alpha1 contains API Schema definitions for the graph v1alpha1 API group +kubebuilder:object:generate=true +groupName=graph.kotal.io
ipfs/v1alpha1
Package v1alpha1 contains API Schema definitions for the ipfs v1alpha1 API group +kubebuilder:object:generate=true +groupName=ipfs.kotal.io
Package v1alpha1 contains API Schema definitions for the ipfs v1alpha1 API group +kubebuilder:object:generate=true +groupName=ipfs.kotal.io
near/v1alpha1
Package v1alpha1 contains API Schema definitions for the near v1alpha1 API group +kubebuilder:object:generate=true +groupName=near.kotal.io
Package v1alpha1 contains API Schema definitions for the near v1alpha1 API group +kubebuilder:object:generate=true +groupName=near.kotal.io
polkadot/v1alpha1
Package v1alpha1 contains API Schema definitions for the polkadot v1alpha1 API group +kubebuilder:object:generate=true +groupName=polkadot.kotal.io
Package v1alpha1 contains API Schema definitions for the polkadot v1alpha1 API group +kubebuilder:object:generate=true +groupName=polkadot.kotal.io
stacks/v1alpha1
Package v1alpha1 contains API Schema definitions for the stacks v1alpha1 API group +kubebuilder:object:generate=true +groupName=stacks.kotal.io
Package v1alpha1 contains API Schema definitions for the stacks v1alpha1 API group +kubebuilder:object:generate=true +groupName=stacks.kotal.io
controllers

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL