Setup - Digital Ocean
Setting up a Kubernetes Cluster with Digital Ocean (DO)

Deploy a Kubernetes cluster in DO using EKS service.

Requirements

    1.
    DO account
    2.
    doctl and DO credentials configured
    3.
    kubectl
LINUX/MAC is the preferred method of setup.
Windows should choose either:
    1.
    Deploy a THORNode from a Linux VPS.
    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.
1
git clone https://gitlab.com/thorchain/devops/cluster-launcher
2
cd cluster-launcher
Copied!
Then install the terraform CLI:
LINUX/MAC
Install Terraform:
1
brew install terraform
Copied!

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.
1
brew install doctl
2
doctl auth init --context <NAME>
3
doctl auth switch --context <NAME>
4
doctl account get
Copied!
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.
1
brew install kubernetes-cli
Copied!

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.
1
brew install wget
2
brew install jq
Copied!

Deploy Kubernetes Cluster

Use the commands below to deploy a DOKS cluster:
1
make do
Copied!
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.
1
doctl kubernetes cluster kubeconfig save <use_your_cluster_name>
2
kubectl version
Copied!
If successful, you will see:
1
Notice: Adding cluster credentials to kubeconfig file found in "/home/user/.kube/config"
2
Notice: Setting current-context to do-<region_name>-<cluster_name>
Copied!
Test this configuration,
1
$ kubectl version
2
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"}
3
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"}
Copied!
To verify, run this, and check the status is "Ready":
1
kubectl get nodes
2
3
NAME STATUS ROLES AGE VERSION
4
<cluster_name>-pool-5xhc1 READY <none> 6m v1.18.6
Copied!
You are now ready to deploy a THORNode.
Last modified 5d ago