mirror of
https://github.com/openfaas/faasd.git
synced 2025-06-08 16:06:47 +00:00
68 lines
1.5 KiB
HCL
68 lines
1.5 KiB
HCL
terraform {
|
|
required_version = ">= 1.0.4"
|
|
required_providers {
|
|
digitalocean = {
|
|
source = "digitalocean/digitalocean"
|
|
version = "2.11.0"
|
|
}
|
|
}
|
|
}
|
|
|
|
variable "do_token" {}
|
|
|
|
variable "ssh_key_file" {
|
|
default = "~/.ssh/id_rsa.pub"
|
|
description = "Path to the SSH public key file"
|
|
}
|
|
|
|
provider "digitalocean" {
|
|
token = var.do_token
|
|
}
|
|
|
|
resource "random_password" "password" {
|
|
length = 16
|
|
special = true
|
|
override_special = "_-#"
|
|
}
|
|
|
|
data "template_file" "cloud_init" {
|
|
template = file("cloud-config.tpl")
|
|
vars = {
|
|
gw_password = random_password.password.result
|
|
}
|
|
}
|
|
|
|
resource "digitalocean_ssh_key" "faasd_ssh_key" {
|
|
name = "ssh-key"
|
|
public_key = file(var.ssh_key_file)
|
|
}
|
|
|
|
resource "digitalocean_droplet" "faasd" {
|
|
|
|
region = "lon1"
|
|
image = "ubuntu-18-04-x64"
|
|
name = "faasd"
|
|
# Plans: https://developers.digitalocean.com/documentation/changelog/api-v2/new-size-slugs-for-droplet-plan-changes/
|
|
#size = "512mb"
|
|
size = "s-1vcpu-1gb"
|
|
user_data = data.template_file.cloud_init.rendered
|
|
ssh_keys = [
|
|
digitalocean_ssh_key.faasd_ssh_key.id
|
|
]
|
|
}
|
|
|
|
output "password" {
|
|
value = random_password.password.result
|
|
sensitive = true
|
|
}
|
|
|
|
output "gateway_url" {
|
|
value = "http://${digitalocean_droplet.faasd.ipv4_address}:8080/"
|
|
}
|
|
|
|
output "login_cmd" {
|
|
value = "faas-cli login -g http://${digitalocean_droplet.faasd.ipv4_address}:8080/ -p ${random_password.password.result}"
|
|
sensitive = true
|
|
}
|
|
|