mirror of
https://github.com/lordmathis/dev-cluster.git
synced 2025-12-22 16:44:24 +00:00
Add cloudflare
This commit is contained in:
@@ -3,10 +3,15 @@ terraform {
|
|||||||
required_providers {
|
required_providers {
|
||||||
hcloud = {
|
hcloud = {
|
||||||
source = "hetznercloud/hcloud"
|
source = "hetznercloud/hcloud"
|
||||||
|
version = "~> 1.0"
|
||||||
}
|
}
|
||||||
sops = {
|
sops = {
|
||||||
source = "carlpett/sops"
|
source = "carlpett/sops"
|
||||||
version = "~> 0.5"
|
version = "~> 1.0"
|
||||||
|
}
|
||||||
|
cloudflare = {
|
||||||
|
source = "cloudflare/cloudflare"
|
||||||
|
version = "~> 4.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
required_version = ">= 0.13"
|
required_version = ">= 0.13"
|
||||||
@@ -25,6 +30,10 @@ provider "hcloud" {
|
|||||||
|
|
||||||
provider "sops" {}
|
provider "sops" {}
|
||||||
|
|
||||||
|
provider "cloudflare" {
|
||||||
|
api_token = var.cloudflare_api_token
|
||||||
|
}
|
||||||
|
|
||||||
data "sops_file" "secrets" {
|
data "sops_file" "secrets" {
|
||||||
source_file = "secrets.enc.yaml"
|
source_file = "secrets.enc.yaml"
|
||||||
}
|
}
|
||||||
@@ -100,6 +109,20 @@ resource "hcloud_firewall" "cluster-firewall" {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
data "cloudflare_zones" "domain" {
|
||||||
|
filter {
|
||||||
|
name = data.sops_file.secrets.data["domain_name"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "cloudflare_record" "cluster" {
|
||||||
|
zone_id = data.cloudflare_zones.domain.zones[0].id
|
||||||
|
name = "@"
|
||||||
|
value = hcloud_server.cluster.ipv4_address
|
||||||
|
type = "A"
|
||||||
|
proxied = false
|
||||||
|
}
|
||||||
|
|
||||||
output "server_ip" {
|
output "server_ip" {
|
||||||
value = hcloud_server.cluster.ipv4_address
|
value = hcloud_server.cluster.ipv4_address
|
||||||
}
|
}
|
||||||
@@ -3,3 +3,9 @@ variable "hcloud_token" {
|
|||||||
type = string
|
type = string
|
||||||
sensitive = true
|
sensitive = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
variable "cloudflare_api_token" {
|
||||||
|
description = "Cloudflare API Token"
|
||||||
|
type = string
|
||||||
|
sensitive = true
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user