Digital Ocean

The Digital ocean driver is in the 'beta' phase.

Overview

By default it will create a pool with a max size of 2 running Ubuntu 18.04 with s-2vcpu-4gb in nyc1. The pool is called testpool.

Digital Ocean specific configuration in a pool file.

Authentication

Create a Digital Ocean Personal Access Token

You need to create a Digital Ocean Personal Access token that you can provide to the runner. The runner will use the token to authorize API requests. For further documentaiton look here

Firewall rules

By default it will create the necessary firewall. It is named “harness runner”.

Pool Spec

Digital Ocean specific configuration.

1
2
3
4
5
6
7
8
  account         Account   # explained in section below
  image           string    # the image ID of a public or private image or the slug identifier for a public image 
  size            string    # the slug identifier for the size, `https://www.digitalocean.com/community/questions/how-do-i-work-out-the-size-slug-string-for-a-given-droplet-size`
  firewall_id     string    # use a specific firewall (fingerprint)
  ssh_keys        []string  # list of keys to add (fingerprint)
  tags            []string  # tags to apply to the instance
  user_data       string    # user data to apply to the instance
  user_data_path  string    # path to user data script

More information on user_data and user_data_path can be found custom cloud-init

Account

Contains the Digital ocean account configuration.

1
2
  pat     string  # personal access token, for more information see above
  region  string  # region `https://docs.digitalocean.com/products/platform/availability-matrix/`

Example pool setup

EG, This pool.yml file configures 2 pools each with a pool size of 2 and a limit of 4.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
version: "1"
instances:
  - name: ubuntu
    default: true
    type: digitalocean
    pool: 1    # total number of warm instances in the pool at all times
    limit: 4   # limit the total number of running servers. If exceeded block or error.
    platform:
      os: linux
      arch: amd64
    spec:
      account:
        region: nyc2
      image: docker-18-04
      size: s-2vcpu-8gb