github.com/kotalco/kotal@v0.3.0/README.md (about)

     1  # Kotal Operator
     2  
     3  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.
     4  
     5  ## What can I do with Kotal Operator ?
     6  
     7  - Deploy Bitcoin rpc nodes
     8  - Deploy ipfs peers and cluster peers
     9  - Deploy ipfs swarms
    10  - Deploy Ethereum transaction and mining nodes
    11  - Deploy Ethereum 2 beacon and validation nodes
    12  - Deploy private Ethereum networks
    13  - Deploy NEAR rpc, archive, and validator nodes
    14  - Deploy Polkadot rpc and validator nodes
    15  - Deploy Chainlink nodes
    16  - Deploy Filecoin nodes
    17  - Deploy Filecoin backed pinning services (FPS)
    18  - Deploy Stacks rpc and api nodes
    19  - Deploy Aptos full and validator nodes
    20  
    21  
    22  ## Kubernetes Custom Resources
    23  
    24  Kotal extended kubernetes with custom resources in different API groups.
    25  
    26  | Protocol         | Description                                      | API Group                   | Status |
    27  | ---------------- | ------------------------------------------------ | --------------------------- | ------ |
    28  | **Aptos**        | Deploy Aptos full and validator nodes            | aptos.kotal.io/v1alpha1     | alpha  |
    29  | **Bitcoin**      | Deploy Bitcoin nodes                             | bitcoin.kotal.io/v1alpha1   | alpha  |
    30  | **Chainlink**    | Deploy Chainlink nodes                           | chainlink.kotal.io/v1alpha1 | alpha  |
    31  | **Ethereum**     | Deploy private and public network Ethereum nodes | ethereum.kotal.io/v1alpha1  | alpha  |
    32  | **Ethereum 2.0** | Deploy validator and beacon chain nodes          | ethereum2.kotal.io/v1alpha1 | alpha  |
    33  | **Filecoin**     | Deploy Filecoin nodes                            | filecoin.kotal.io/v1alpha1  | alpha  |
    34  | **Graph**        | Deploy graph nodes                               | graph.kotal.io/v1alpha1     | alpha  |
    35  | **IPFS**         | Deploy IPFS peers, cluster peers, and swarms     | ipfs.kotal.io/v1alpha1      | alpha  |
    36  | **NEAR**         | Deploy NEAR rpc, archive and validator nodes     | near.kotal.io/v1alpha1      | alpha  |
    37  | **Polkadot**     | Deploy Polkadot nodes and validator nodes        | polkadot.kotal.io/v1alpha1  | alpha  |
    38  | **Stacks**       | Deploy Stacks rpc and api nodes                  | stacks.kotal.io/v1alpha1    | alpha  |
    39  
    40  ## Client support
    41  
    42  For each protocol, kotal supports at least 1 client (reference client):
    43  
    44  | Protocol         | Client(s)                                                                                                                                                                                        |
    45  | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
    46  | **Aptos**        | [Aptos Core](https://github.com/aptos-labs/aptos-core)                                                                                                                                           |
    47  | **Bitcoin**      | [Bitcoin Core](https://github.com/bitcoin/bitcoin)                                                                                                                                               |
    48  | **Chainlink**    | [Chainlink](https://github.com/smartcontractkit/chainlink)                                                                                                                                       |
    49  | **Ethereum**     | [Hyperledger Besu](https://github.com/hyperledger/besu), [Go-Ethereum](https://github.com/ethereum/go-ethereum), [Nethermind](https://github.com/NethermindEth/nethermind)                       |
    50  | **Ethereum 2.0** | [Teku](https://github.com/ConsenSys/teku), [Prysm](https://github.com/prysmaticlabs/prysm), [Lighthouse](https://github.com/sigp/lighthouse), [Nimbus](https://github.com/status-im/nimbus-eth2) |
    51  | **Filecoin**     | [Lotus](https://github.com/filecoin-project/lotus)                                                                                                                                               |
    52  | **Graph**        | [graph-node](https://github.com/graphprotocol/graph-node)                                                                                                                                        |
    53  | **IPFS**         | [kubo](https://github.com/ipfs/kubo), [ipfs-cluster-service](https://github.com/ipfs/ipfs-cluster)                                                                                         |
    54  | **NEAR**         | [nearcore](https://github.com/near/nearcore)                                                                                                                                                     |
    55  | **Polkadot**     | [Parity Polkadot](https://github.com/paritytech/polkadot)                                                                                                                                        |
    56  | **Stacks**       | [Stacks Node](https://github.com/stacks-network/stacks-blockchain)                                                                                                                               |
    57  
    58  ## Install Kotal
    59  
    60  Kotal requires access to Kubernetes cluster with cert-manager installed.
    61  
    62  For development purposes, we recommend [KinD](https://kind.sigs.k8s.io/) (Kubernetes in Docker) to create kubernetes clusters and tear down kubernetes clusters in seconds:
    63  
    64  ```bash
    65  kind create cluster
    66  ```
    67  
    68  After the cluster is up and running, [install](https://cert-manager.io/docs/installation/kubernetes/) cert-manager:
    69  
    70  ```bash
    71  kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.3/cert-manager.yaml
    72  ```
    73  
    74  Install kotal custom resources and controllers:
    75  
    76  ```bash
    77  kubectl apply -f https://github.com/kotalco/kotal/releases/download/v0.2.0/kotal.yaml
    78  ```
    79  
    80  ## Example
    81  
    82  Ethereum node using Hyperleger Besu client, joining goerli network, and enabling RPC HTTP server:
    83  
    84  ```yaml
    85  # ethereum-node.yaml
    86  apiVersion: ethereum.kotal.io/v1alpha1
    87  kind: Node
    88  metadata:
    89    name: ethereum-node
    90  spec:
    91    client: besu
    92    network: goerli
    93    rpc: true
    94  ```
    95  
    96  ```bash
    97  kubectl apply -f ethereum-node.yaml
    98  ```
    99  
   100  ## Documentation
   101  
   102  Kotal documentation is available [here](https://docs.kotal.co)
   103  
   104  ## Get in touch
   105  
   106  - [Discord](https://discord.com/invite/kTxy4SA)
   107  - [website](https://kotal.co)
   108  - [@kotalco](https://twitter.com/kotalco)
   109  - [mostafa@kotal.co](mailto:mostafa@kotal.co)
   110  
   111  ## Contriubuting
   112  
   113  TODO
   114  
   115  ## Licensing
   116  
   117  Kotal Blockchain Kubernetes operator is free and open-source software licensed under the [Apache 2.0](LICENSE) License