Links

Setup - Digital Ocean

Setting up a Kubernetes Cluster with Digital Ocean (DO)

Deploy a Kubernetes cluster in DO using EKS service.

Requirements

  1. 1.
    DO account
  2. 2.
    doctl and DO credentials configured
  3. 3.
    kubectl
LINUX/MAC is the preferred method of setup.
Windows should choose either:
  1. 1.
    Deploy a THORNode from a Linux VPS.
  2. 2.
    Use Windows Subsystem for Linux - https://docs.microsoft.com/en-us/windows/wsl/about

Steps

Firstly, clone and enter the cluster-launcher repository. All commands in this section are to be run inside this repo.
git clone https://gitlab.com/thorchain/devops/cluster-launcher
cd cluster-launcher
Then install the terraform CLI:
LINUX/MAC
Install Terraform:
brew install terraform

DOCLI

The Digital Ocean Control tool allows you to manage your DO services.
LINUX/MAC
Use the package manager homebrew to install the DO CTL.
brew install doctl
doctl auth init --context <NAME>
doctl auth switch --context <NAME>
doctl account get
You will be asked for you Personal Access Token with read/write priveleges (retrieve from API Panel from the Digital Ocean web console.)
API -> Tokens/Keys -> Create Token.
Make sure you handle your secrets securely!

Kubernetes Control Tool

You must install and configure the Kubernetes CLI tool (kubectl). **To install kubectl** , follow these instructions, or choose a package manager based on your operating system.
LINUX/MAC
Use the package manager homebrew to install kubectl.
brew install kubernetes-cli

wget && jq

You also need wget and jq, follow these instructions, or choose a package manager based on your operating system.
LINUX/MAC
Use the package manager homebrew to install wget and jq Note: You most likely have these installed already.
brew install wget
brew install jq

Deploy Kubernetes Cluster

Use the commands below to deploy a DOKS cluster:
make do
During the deploy, you will be asked to enter information about your cluster:
Kubernetes Availability (note, use lower-case in the terminal)
Final success message: Apply complete! Resources: 2 added, 0 changed, 0 destroyed.
Deploying a cluster takes ~10 minutes

CONFIGURE

Now that you've provisioned your DOKS cluster, you need to configure kubectl. Customize the following command with your cluster name and region.
doctl kubernetes cluster kubeconfig save <use_your_cluster_name>
kubectl version
If successful, you will see:
Notice: Adding cluster credentials to kubeconfig file found in "/home/user/.kube/config"
Notice: Setting current-context to do-<region_name>-<cluster_name>
Test this configuration,
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.6", GitCommit:"dff82dc0de47299ab66c83c626e08b245ab19037", GitTreeState:"clean", BuildDate:"2020-07-16T06:30:04Z", GoVersion:"go1.14.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.6", GitCommit:"dff82dc0de47299ab66c83c626e08b245ab19037", GitTreeState:"clean", BuildDate:"2020-07-15T16:51:04Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
To verify, run this, and check the status is "Ready":
kubectl get nodes
NAME STATUS ROLES AGE VERSION
<cluster_name>-pool-5xhc1 READY <none> 6m v1.18.6
You are now ready to deploy a THORNode.