Initial commit
This commit is contained in:
35
lib/terraform.libsonnet
Normal file
35
lib/terraform.libsonnet
Normal file
@@ -0,0 +1,35 @@
|
||||
local config = import "../config/config.libsonnet";
|
||||
|
||||
{
|
||||
local terraform = self,
|
||||
local rname (server, suffix) = "host_" + server.name + "_" + suffix,
|
||||
|
||||
HcloudInstance:: {
|
||||
name: error "Instance must have field: name",
|
||||
image: "debian-11",
|
||||
server_type: error "Instance must have field: server_type",
|
||||
location: "fsn1"
|
||||
},
|
||||
|
||||
HcloudSSHKey:: {
|
||||
name: error "Key must have field: name",
|
||||
public_key: error "Key must have field: public_key",
|
||||
labels: { source: "terraform" }
|
||||
},
|
||||
|
||||
HdnsRecord:: {
|
||||
zone_id: "${hetznerdns_zone.infra.id}",
|
||||
name: error "Record must have field: name",
|
||||
value: error "Record must have field: value",
|
||||
type: error "Record must have field: type",
|
||||
ttl: config.defaultTTL
|
||||
},
|
||||
|
||||
serverDnsRecords: function (s) {
|
||||
local attr (s, n) = "${hcloud_server." + s.name + "." + n + "}",
|
||||
|
||||
[rname(s, "A")]: terraform.HdnsRecord{ name: s.publicSubdomain, value: attr(s, "ipv4_address"), type: "A" },
|
||||
[rname(s, "AAAA")]: terraform.HdnsRecord{ name: s.publicSubdomain, value: attr(s, "ipv6_address"), type: "AAAA" },
|
||||
[rname(s, "VPN")]: terraform.HdnsRecord{ name: s.internalSubdomain, value: s.wireguardIp, type: "AAAA" },
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user