From edc6b85046103fe1d885dc0e663f4071414ebbde Mon Sep 17 00:00:00 2001 From: Adam Shamblin Date: Sun, 25 Sep 2022 20:18:21 -0600 Subject: [PATCH] Create terraform for gitlab runner --- cicd/.gitignore | 2 ++ cicd/provider.tf | 20 ++++++++++++++++++++ cicd/runner.tf | 29 +++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 cicd/.gitignore create mode 100644 cicd/provider.tf create mode 100644 cicd/runner.tf diff --git a/cicd/.gitignore b/cicd/.gitignore new file mode 100644 index 00000000..5dfe3103 --- /dev/null +++ b/cicd/.gitignore @@ -0,0 +1,2 @@ +.terraform* +terraform.tfstate* diff --git a/cicd/provider.tf b/cicd/provider.tf new file mode 100644 index 00000000..7bbfa001 --- /dev/null +++ b/cicd/provider.tf @@ -0,0 +1,20 @@ +terraform { + required_providers { + digitalocean = { + source = "digitalocean/digitalocean" + version = "~> 2.0" + } + } +} + +variable "do_token" {} +variable "ssh_key" {} +variable "pvt_key" {} + +provider "digitalocean" { + token = var.do_token +} + +data "digitalocean_ssh_key" "ssh_key" { + name = var.ssh_key +} diff --git a/cicd/runner.tf b/cicd/runner.tf new file mode 100644 index 00000000..491a7bd6 --- /dev/null +++ b/cicd/runner.tf @@ -0,0 +1,29 @@ +resource "digitalocean_droplet" "veilid-runner-1" { + image = "debian-11-x64" + name = "veilid-runner-1" + region = "nyc1" + size = "s-1vcpu-512mb-10gb" + ssh_keys = [ + data.digitalocean_ssh_key.ssh_key.id + ] + + connection { + host = self.ipv4_address + user = "root" + type = "ssh" + private_key = file(var.pvt_key) + timeout = "2m" + } + + provisioner "remote-exec" { + inline = [ + "apt-get update", + "apt-get -y install ca-certificates curl gnupg lsb-release", + "mkdir -p /etc/apt/keyrings/", + "curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg", + "echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable\" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null", + "apt-get update", + "apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin" + ] + } +}