migrate nayeonie.com to dnsimple

Signed-off-by: ahuston-0 <aliceghuston@gmail.com>
This commit is contained in:
ahuston-0 2025-02-27 01:13:34 -05:00
parent fe2783273c
commit 92352375f6
No known key found for this signature in database
GPG Key ID: 47940175096C1330
7 changed files with 113 additions and 88 deletions

View File

@ -21,7 +21,7 @@ servers: &servers
# update keys by executing: sops updatekeys secrets.yaml
# note: add .* before \.yaml if you'd like to use the mergetool config
creation_rules:
- path_regex: secrets.*json$
- path_regex: secrets.*yaml$
key_groups:
- pgp:
- *admin_alice

37
.terraform.lock.hcl generated
View File

@ -16,24 +16,25 @@ provider "registry.terraform.io/carlpett/sops" {
]
}
provider "registry.terraform.io/valodim/desec" {
version = "0.5.0"
constraints = "0.5.0"
provider "registry.terraform.io/dnsimple/dnsimple" {
version = "1.8.0"
constraints = "1.8.0"
hashes = [
"h1:cjk3hxvxbu70hluQ2mZ+NUhN8818ESaddHmPhMLlwtM=",
"zh:02a1a8c93fdf480683518580d95660c26e4a573c03ecc145b8f7cf4a94206e50",
"zh:08d84a229c20b78da4426195047805fb5b1dd0b803a0d0d219528782fa4fc638",
"zh:15159f119c4afceca551abca814a085a0f2c277d69ff3a2a235a1e5100969e58",
"zh:1a23c57a25e258d26a86f3b01e6ee7e6b5cd75867ea6e9460765261cdc0a4a02",
"zh:2417beec12f72d6a82474737880988c7499dcd7cacfb2a91bc26d440c3335820",
"zh:46cde27d77f1bf1d5ca0e051504727073a9318016f18f3ba61e796a80493e8d6",
"zh:7a8f392dc6cc48328e7783d4f7bae3f9b8fec4047f4f5b3bab0bd3adfd9cd061",
"zh:88e849be319b262caa5d6c8aa1926109c69934292d1c7740dedf979ef6c87f55",
"zh:8c722a10660ddef51f087611fdc202ae087f16d10da1f5e8c5afcec2ee920dc2",
"zh:90335bf608b845ac59fdd0860faacadd195c94422aa19dc44342ece458de0ef6",
"zh:939273e7453421f1570dfd96792d3c72566474e9087007fbda4bc7d1b47c926a",
"zh:c42e33dce10ab70fdcf1cd18dc44672c4894a36369fb59964156a7072d21eb3d",
"zh:d57d776833aa1af41e1a037c8d6b176eb75562f9933fb3050587bb5097aa1e97",
"zh:d65cb7d81f9ac31b107cfebd100d6baca93edc7be85ff6ee8488531265cfcc9e",
"h1:Nwu+3tVJnNmSJQoctRSWAamUX3AiTCZ5mOMtAUPtg7Q=",
"zh:0852fd9523268b30fb637a03a0cb6d6a5878cbbf7e0e4219615c9ba073fbdf17",
"zh:0ac43193082dd467abad4937b0abb97ea349205726fc450cb3a94dc0db6e9a49",
"zh:10e4aad54c2d6cbd9328a1661d72a978357743eda7099a3f120a497119be4ff1",
"zh:211d481935dec36903928c51f5f4f15d98313f6d50649ea064bc20a4d6541678",
"zh:2705b5ebac4219449f9126cc19fa982cf0644e5df60d3d5254131d2e2d676afd",
"zh:27f0df80af6652e96f85a0856daa571af495d2119ab126199d6d5ab53f6eb887",
"zh:27fbb2fb69291a660d8e99ba960f01051b7fc28658f7932772ce7e80a42bd6e9",
"zh:3ecf20ead1f044f08ae9e411c9341d47319eb6af5d6543b58f2f6932c6b288b0",
"zh:635055f0af3eb27d30801aeead51d8b960c386f369a378fad7146350ec6b4d68",
"zh:7ca26f64221a9c6634a02296e30a87e3fffed1144ac57e0ae9a86a448f42d4ca",
"zh:895e0732da00942b2eb13c78673a9c9268e87e92a225999cddf2d13b823f3295",
"zh:b3806e5b687faf97ad8cb2a23e105729059693ae07a229fecef52da5279d7bd1",
"zh:c3c284a54aab3ddea2dba140af4a707ce077c9c2d9d34556902afdb25fe6ca8e",
"zh:d2539f2cc5960a55a53eaaa90248abfb3167275e34af7e93735ec4571eb879eb",
"zh:f809ab383cca0a5f83072981c64208cbd7fa67e986a86ee02dd2c82333221e32",
]
}

14
main.tf
View File

@ -1,19 +1,20 @@
terraform {
required_providers {
desec = {
source = "Valodim/desec"
version = "0.5.0"
}
sops = {
source = "carlpett/sops"
version = "1.1.1"
}
dnsimple = {
source = "dnsimple/dnsimple"
version = "1.8.0"
}
}
backend "s3" {
bucket = "tfstate" # Name of the S3 bucket
endpoints = {
s3 = "http://192.168.76.2:8502" # Minio endpoint
#s3 = "http://alicehuston.duckdns.org" # Minio endpoint
}
key = "dns-management/desec-io.tfstate" # Name of the tfstate file
workspace_key_prefix = "tfstate"
@ -32,6 +33,7 @@ terraform {
provider "sops" {}
provider "desec" {
api_token = data.sops_file.secrets.data["desec_api"]
provider "dnsimple" {
account = data.sops_file.secrets.data["dnsimple.account"]
token = data.sops_file.secrets.data["dnsimple.token"]
}

View File

@ -1,40 +1,41 @@
resource "desec_domain" "nayeonie_com" {
# Create a zone
resource "dnsimple_zone" "nayeonie_com" {
name = "nayeonie.com"
}
resource "desec_rrset" "wildcard_nayeonie_com_cname" {
domain = "nayeonie.com"
subname = "*"
type = "CNAME"
records = ["alicehuston.duckdns.org."]
ttl = 3600
depends_on = [desec_domain.nayeonie_com]
# Add a record to the root domain
resource "dnsimple_zone_record" "root_nayeonie_com_cname" {
zone_name = "nayeonie.com"
name = ""
value = "alicehuston.duckdns.org"
type = "ALIAS"
ttl = 3600
}
# not needed as its dynamically created
# resource "desec_rrset" "nayeonie_com_ns" {
# domain = "nayeonie.com"
# subname = ""
# type = "NS"
# records = ["ns2.desec.org.", "ns1.desec.io."]
# ttl = 3600
# depends_on = [desec_domain.nayeonie_com]
# }
# Add a record to the root domain
resource "dnsimple_zone_record" "wildcard_nayeonie_com_cname" {
zone_name = "nayeonie.com"
name = "*"
value = "alicehuston.duckdns.org"
type = "ALIAS"
ttl = 3600
depends_on = [dnsimple_zone.nayeonie_com]
}
resource "desec_rrset" "tiktok_txt" {
domain = "nayeonie.com"
subname = ""
resource "dnsimple_zone_record" "tiktok_txt" {
zone_name = "nayeonie.com"
name = ""
type = "TXT"
records = [trim(data.sops_file.secrets.data["tiktok_txt"], "\"")]
value = data.sops_file.secrets.data["tiktok.txt"]
ttl = 3600
depends_on = [desec_domain.nayeonie_com]
depends_on = [dnsimple_zone.nayeonie_com]
}
resource "desec_rrset" "gitea_nayeonie_com_srv" {
domain = "nayeonie.com"
subname = "_gitea._tcp"
resource "dnsimple_zone_record" "gitea_nayeonie_com_srv" {
zone_name = "nayeonie.com"
name = "_gitea._tcp"
type = "SRV"
records = ["0 100 2222 nayeonie.com."]
value = "100 2222 nayeonie.com."
ttl = 3600
depends_on = [desec_domain.nayeonie_com]
depends_on = [dnsimple_zone.nayeonie_com]
}

View File

@ -1,35 +0,0 @@
{
"desec_api": "ENC[AES256_GCM,data:3l1SNtRY6Cto3+CwkcJc95IjzHqa+G+Hbe2/yw==,iv:12m1GaG4ZNiWPqSZp1hmBJsbXqUjMn3hOf9bKHaGZuQ=,tag:aKJ8o/2alhzmoPB5dVvRQQ==,type:str]",
"tiktok_txt": "ENC[AES256_GCM,data:3sNHYlsJuCgJoDZ6A8RxbXGMwP760qjE8es0Px2HTJJ12eqtK1aB62OP7SJFVFHVm43gg3TUlhtVMffE51Q1TItawiA=,iv:gvcULZVb4EdrtJT9V1uJ8twoCf6pBO5BOGULdQCT5Tw=,tag:LT2EjnlBKQdfOlqxvwzWRw==,type:str]",
"sops": {
"kms": null,
"gcp_kms": null,
"azure_kv": null,
"hc_vault": null,
"age": [
{
"recipient": "age1qw5k8h72k3fjg5gmlxx8q8gwlc2k6n6u08d8hdzpm2pk9r0fnfxsmw33nh",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBybFUzRTM2NjdZcFV5Vk9W\nNko3Sm1VcWZ1V1FoTnZJS09jK0NST0hXejEwCnZDUzZENDAxZzl4OEluUTAyS0ZC\nem9CL08yb3NJemEvbFROTVcyRmc5S28KLS0tIDZZMlhFd3psY0NpSnl3WXhZY1Q1\neFNoUmR6MmxndmdVc1gzSGwvWW01SDgKA99BQjEcwLZ4EvFz39xO619U+MVH1rEv\n+b8X4jJCgUmqG5QGaYFjJRtUfOQJCU3qNEmFpIZlf63mE0mWweNlcg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1jd2dcpykagz20kpk2kkchte3augqncwfn6nywursx0dkfyze6feqdzxkq2",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPOUp0M1NJRDlDMGdsT2kr\nTkRHbWdyMlV0WWdZaDRXaUNtdmNGajl2QlgwClphUXlESnFTaUNSOWNmZ1RjZnVu\nbnpBTEZidTYzenl1R2ZycFJ0eFVjSWsKLS0tIGMrTVZmRXZYWlpoaE13Rkp2Smh6\nZStUWG4rNk1qWFR5TysyOHFCUWlRdkUKTj/CgFLWH5msyRTjoh7RePCI7kEIO05v\nQQ9TSRmThLQAQ998hnIeZ1ec3QJ4AvOhHzqFMwZCvwh28drjUADDyg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1t29a6z6cfy8m3cnc8uva0ey833vhcppue8psyumts7mtyf0zufcqvfshuc",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUQ0ZEQ0prNjZiZzV6YnlG\nTWlHQk1mV0t2ZE1peFFsdWIybXdVdWh3ZGg0ClJhc3ZsZk10Ti9CbU4yMk8xZ3JS\nQUNXbWtyRXJ6amFBejg0NVhNQmk0MXMKLS0tIHJrVmhETmxOYUV6S3JtY1BVa09i\nSW9wV0pvNWx6ZEZDVE5Hc2syVVo2NjQKV16Dq1BJr/mIsnZMlH04WOIwi2CK2GIV\nc1Rpi1b2GXeXr0avCyhilCBgVJU+R9mEwunm7vfbBjD/hyEZXSYaVg==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-02-14T22:18:09Z",
"mac": "ENC[AES256_GCM,data:oy6AH5kB2NTkTGq9smpEB8qWoRnnrJPbm++qDFWOJoeyExA6OFkZg78UGQSDzUf04nGqN7XQIiErZc2J5aPayu3XSOM78LwJ/ZsX3q+Fm3cpVgZKjuwLfxVebGYA+DCJtyvdbI8SlLL9U4Z+SeBnF9cCCg3Gcp0oRiJUJvwx73E=,iv:wGOAe27/vn0h02ylHzX2Ru/oIFRhPQRj3sA+gx8cxlE=,tag:f9MzqGtPvAVHqso0VNuKQQ==,type:str]",
"pgp": [
{
"created_at": "2025-02-14T20:43:56Z",
"enc": "-----BEGIN PGP MESSAGE-----\n\nhF4DQWNzDMjrP2ISAQdAK3zlysJ2QMIjTEfJwN6k1xa/8VmwkSPXU2TDpOuVJjYw\nLj4ANsUO5cFWw0VCR9AcU7Eui3OF7/jSLSM+JGBTy7CSbOo7uAJ46mt7QmzkXaTp\n0l4BLxY6ZHexCArTaN73vunTSFJsmBIw1W15xckcN523A1Dw/cZXYRazkMpQVdXc\nU6SaxkSwgZpcC0wBYUwYjFyUSwD9w3/gmhjnltrbsU7EbKFPz5hBkQpGDwFZgXoJ\n=INhR\n-----END PGP MESSAGE-----",
"fp": "5EFFB75F7C9B74EAA5C4637547940175096C1330"
}
],
"unencrypted_suffix": "_unencrypted",
"version": "3.9.3"
}
}

View File

@ -1,3 +1,3 @@
data "sops_file" "secrets" {
source_file = "secrets.json"
source_file = "secrets.yaml"
}

56
secrets.yaml Normal file
View File

@ -0,0 +1,56 @@
desec:
api: ENC[AES256_GCM,data:208LIsuEe06aDWOucVnNmVjbUdXjT/9OLVKM1Q==,iv:ft8+ui1/EcGCXM7/FBEk6UwgRJ6CDX5Gy7AMlCSrbsk=,tag:jV0wuKK2Ok0BESMUPNapwA==,type:str]
tiktok:
txt: ENC[AES256_GCM,data:XHtpPSPf/IHh1n9qn7QIBeWIolAS8hNugAryOcpsLAGukSZCHubtPjiRWcErm3rJz2iRgs9IE197AhBORhLa9kNYb0w=,iv:+0K8qxM7hEHVfw+ZZ0suPILjxtjOQLCd4unbrXff61c=,tag:e/t2yltQu/X5zcJZOSA70w==,type:str]
dnsimple:
account: ENC[AES256_GCM,data:3wAR4C3z,iv:bPMrRCySF56ry28rjwVKmi8vvhj7xv3TymKn8l2S7MI=,tag:+q2I37HbzTXAY/Q7H/TNJQ==,type:str]
token: ENC[AES256_GCM,data:zJstjpUIR5q6c1ZK9JMg5A6QQ9gLCI/15cgaEEF266D5qclvrCjSzU1pcw==,iv:HgI50IN84iqcSuovtREZUppEEHFeeZGsY8bU5r8B70g=,tag:jWK6a4UNZlCwdk8tsQ7w3Q==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1qw5k8h72k3fjg5gmlxx8q8gwlc2k6n6u08d8hdzpm2pk9r0fnfxsmw33nh
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6Yzg2RG5MMTNJVjBPVHJn
RXl1Y2hmMjFZT2wxeWhTZUFMeUswdnZhWmpZCnVuZ3FEdHNRQ1VCMTc2MlZySkhQ
VVFxbnhKd0NQM2RrMFBXVlR5TVcvSW8KLS0tIFNMWGt0eG52RXArVVFEdGlGNXpw
Q09Od08zQzNTQkFqY2xyVFNmU2dYV2sKQu1lFgLueFfREOqQr/KNzl+QoMMAltvU
rw0XzMilOEgd3PzedgGVWgWPF3Bfl0eO0Z85bOXoBowEFF7ZT7ZwHQ==
-----END AGE ENCRYPTED FILE-----
- recipient: age1jd2dcpykagz20kpk2kkchte3augqncwfn6nywursx0dkfyze6feqdzxkq2
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5RlhXY3hmUkc2Vysrck90
NTcySDVhYlE5L01GcjkzNkJQeVU4L20wdWxZCjBIcFpyQkRJaDdwdGxML045UEov
Zm9waTYrb1U0MXZWL3NiMFNEbFFtZUUKLS0tICtYMHNkek5RTVcwK1pJTmI5emFX
YkJLU0xMWWY1cDlQVFVCM3BsRjZOK2sK2ukAnhzv2FoNGZNs6kvoK7Uhq9AET3/Y
t5CeUgxDrYjmhKg4RK6U0XFayx7h6armhC3MTpS0H30i15Ph9JjGGg==
-----END AGE ENCRYPTED FILE-----
- recipient: age1t29a6z6cfy8m3cnc8uva0ey833vhcppue8psyumts7mtyf0zufcqvfshuc
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArd20vU2lQbkdUSThIa1Nk
YzRPY1NoVytuR0FxWTBMUTNvTURYL0ZvQkN3CmNZYytNZ0lYUzRCSVlRTzhXUEFs
N3lqWkIzcDRsTVZqSHVmc3NGTEZhZmMKLS0tIGtrMVMrVmVNT3ErQW04SzB3SXdI
Y0pZNTZRNWFiS2o3YmlwbXpHSjU3WEUKeP/QqhWgbVrNO2NNqQq2JzvOugUKmjLZ
1VfsllJBQGzcWAllecbV6ZjfuVNLt1btnX4Yug0VDdQs8Ds38xIU5g==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-02-27T06:09:54Z"
mac: ENC[AES256_GCM,data:T5QplfNf2yU8ZHHF0LFHx72v06OXDHw1a+/T5UbIB0GU8Hsdg45VIAMEQed+QqeTIINMjzEEzfZvDcVQYnhHHjCeWjtq3ZsBE8n49FvnkjltnIvXBZO3pH2Zp7K+sDxPol+CgRSx0SUOF24boUDYFMNitG0BZ5wL6V0+7l6I3Zg=,iv:8+MwOaj5NnB2emAATaXJ2NdlUmwOcTWdQSQe7O0St28=,tag:8ce4QcAHZxOgG/zd4OeTsw==,type:str]
pgp:
- created_at: "2025-02-27T06:09:54Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hF4DQWNzDMjrP2ISAQdArkYM3X8lh9SmCckGtsmXn0P5Mp/KQybPTGSN4ip53i8w
J0FZKicpH+oPDrDa/jU1EUaCebv+vqmzD83zbOcEoLU9bte6OM9MJlnXcnyxAp20
0l4Bozr3JjpBoyzKL0GGAOLwoKndhpPZgINqF3W5BT4dbWp1+nEnnU5nW9Dan+Sl
UIMCCRonJn6dlunQeIYrMMLo4PCuQrLsSm7z3+jjqA6cL8j9pBEMD5UhwGhjOcu6
=i5U/
-----END PGP MESSAGE-----
fp: 5EFFB75F7C9B74EAA5C4637547940175096C1330
unencrypted_suffix: _unencrypted
version: 3.9.3