aboutsummaryrefslogtreecommitdiff
path: root/terraform/main.tf
diff options
context:
space:
mode:
Diffstat (limited to 'terraform/main.tf')
-rw-r--r--terraform/main.tf57
1 files changed, 57 insertions, 0 deletions
diff --git a/terraform/main.tf b/terraform/main.tf
new file mode 100644
index 0000000..8a5e599
--- /dev/null
+++ b/terraform/main.tf
@@ -0,0 +1,57 @@
+variable "secret_hcloud_token" {
+ type = "string"
+}
+
+variable "secret_cloudflare_token" {
+ type = "string"
+}
+
+provider "hcloud" {
+ token = "${var.secret_hcloud_token}"
+}
+
+provider "cloudflare" {
+ email = "jakob@odersky.com"
+ token = "${var.secret_cloudflare_token}"
+}
+
+provider "acme" {
+ #server_url = "https://acme-staging-v02.api.letsencrypt.org/directory"
+ server_url = "https://acme-v02.api.letsencrypt.org/directory"
+}
+
+################################################################################
+
+# Main ssh key
+resource "hcloud_ssh_key" "root" {
+ name = "root"
+ public_key = "${file("~/.ssh/id_rsa.pub")}"
+}
+
+module "vps" {
+ source = "./stdvps"
+ location = "nbg1"
+ ssh_key_name = "${hcloud_ssh_key.root.name}"
+}
+
+module "volume" {
+ source = "./volume"
+ server_id = "${module.vps.id}"
+ server_fqdn = "${module.vps.fqdn}"
+}
+
+module "roles" {
+ source = "./role"
+ secret_cloudflare_token = "${var.secret_cloudflare_token}"
+ host = "${module.vps.fqdn}"
+ id = "${module.volume.server_id}"
+ roles = ["ip", "git"]
+}
+
+output "vps_address" {
+ value = "${module.vps.fqdn}"
+}
+
+output "vps_roles" {
+ value = "${join(" ", module.roles.roles)}"
+}