feat: network new node, postgres changes
Some checks failed
/ lint (push) Failing after 41s

This commit is contained in:
Tine 2025-03-23 18:49:03 +01:00
parent d6db51dce6
commit 9d18f11ad0
Signed by: mentos1386
SSH key fingerprint: SHA256:MNtTsLbihYaWF8j1fkOHfkKNlnN1JQfxEU/rBU8nCGw
33 changed files with 14279 additions and 13989 deletions

View file

@ -97,6 +97,9 @@
}
}
},
"github:NixOS/nixpkgs/nixpkgs-unstable": {
"resolved": "github:NixOS/nixpkgs/0740f6f238767d4caf9afe774d3e88105766dfc6?lastModified=1742606399&narHash=sha256-NAxwF5cjgh8o5aylhePXWNQETCWYaTpNvdO2bMfINpQ%3D"
},
"gomplate@latest": {
"last_modified": "2024-11-28T07:51:56Z",
"resolved": "github:NixOS/nixpkgs/226216574ada4c3ecefcbbec41f39ce4655f78ef#gomplate",

View file

@ -56,15 +56,15 @@ resource "dnsimple_zone_record" "tjo_cloud_a" {
ttl = 300
}
resource "dnsimple_zone_record" "tjo_cloud_aaaa" {
for_each = hcloud_server.main
zone_name = var.domain.zone
name = trimsuffix(var.domain.name, ".${var.domain.zone}")
value = each.value.ipv6_address
type = "AAAA"
ttl = 300
}
#resource "dnsimple_zone_record" "tjo_cloud_aaaa" {
# for_each = hcloud_server.main
#
# zone_name = var.domain.zone
# name = trimsuffix(var.domain.name, ".${var.domain.zone}")
# value = each.value.ipv6_address
# type = "AAAA"
# ttl = 300
#}
resource "dnsimple_zone_record" "additional_alias" {
for_each = { for domain in var.additional_domains : domain.name => domain }

View file

@ -1,220 +1,189 @@
{
"version": "ENC[AES256_GCM,data:EQ==,iv:sa/wr6bZrJR40WHJaQSPzxo8Urz6ZNgtCbwV876C4nE=,tag:6w1ODCbt9KJtTOQVRFPeoA==,type:float]",
"terraform_version": "ENC[AES256_GCM,data:A1P+yko=,iv:+CWNE8JwRokbYrJug5qbAHDHY/iJwyrxuuHCCTzkII0=,tag:uy10tdV9xpGLo7b9SO7mKg==,type:str]",
"serial": "ENC[AES256_GCM,data:YoU=,iv:nJcQjKXtpxPfySoQQxR2UteLirCg+Rj8Ayqhik6Qt/0=,tag:byW1vCyCIItZRjjbFaCT+w==,type:float]",
"lineage": "ENC[AES256_GCM,data:3L3BIUF4x3Q7SpbfMfI1wqi0BL7Wswtmv6DxBp9GgYZHwb38,iv:3i05OEtvhn2CsxTnGkbKL7QjybNWKiCp6m4f+7oF53g=,tag:ncjbPJryiTthakc6pibFFQ==,type:str]",
"version": "ENC[AES256_GCM,data:Ug==,iv:8hevSbDgalB3D6AhX3eAeN3mSXfqOD1r18ZSXGrByis=,tag:esVKrNwCurHWhb9wOuvd9w==,type:float]",
"terraform_version": "ENC[AES256_GCM,data:OGgnS9w=,iv:tSH/o8/ttGs7YUIGSaSM5gSS//qNUcFnUlGyPkoGojk=,tag:AvZlCVbkAvWWI4yrL0MWNA==,type:str]",
"serial": "ENC[AES256_GCM,data:BW8=,iv:v5kShvToecHx4OXebhyKkSXO16mxPpxLCuorRJ/2Qpc=,tag:vZacHlCpx27zqYcPe1+wig==,type:float]",
"lineage": "ENC[AES256_GCM,data:tZSWdNeyNa7Q8npuIZ5nsk0fKKCjmGUYAbT8kerKuGvl+3A/,iv:XhiI2w7ASKdJt2+a7aALrX9ClSLwNLYFDDTX54FCbSQ=,tag:PsPRK3lV7wW3HXaEvq40CQ==,type:str]",
"outputs": {
"ipv4": {
"value": {
"01": "ENC[AES256_GCM,data:oVUKuZETXzr/KiRreg==,iv:IUuf6Nzvjut8e4ieuTKZrGmNiLxlptDf1QPPoQzoJDI=,tag:05MQf1nbWMFRy+sySGJqOg==,type:str]"
"01": "ENC[AES256_GCM,data:qpLKpjQias6StfH7+w==,iv:03DMEjTUGuOfw9P99M0FTedMG5EesaN823V+BHjFTo4=,tag:DfEbwnV77HwdLIC64UrdRA==,type:str]"
},
"type": [
"ENC[AES256_GCM,data:Aitr5rmE,iv:AtFFUXTFMtRAoA8YWOXY1awrplxEPSwK2bUNWeK7i6I=,tag:HEMz5zKpHCtI4LnCnsNrQw==,type:str]",
"ENC[AES256_GCM,data:MVZu/ila,iv:IeMDy+Cqv93RksK62SR44I7DzdODm4Xh6GNyQ2ir9kE=,tag:IqRFtF4ypVFd4ASCnw6aDg==,type:str]",
{
"01": "ENC[AES256_GCM,data:FVIh16fl,iv:BFTuFnylOMYczRnZw2e35Q3xDmzEZ1bohyCkxi8fm4g=,tag:TqErxDMOqZeKrdHQN680sA==,type:str]"
"01": "ENC[AES256_GCM,data:8Y1l9rCT,iv:w4DAuL3KkbMLBFFieyuhvvHd0jqF2iuc9Z0RufuZ1a4=,tag:n3WxCH6AnYsEIp1Bp3g5ng==,type:str]"
}
]
},
"ipv6": {
"value": {
"01": "ENC[AES256_GCM,data:GqGEmHohWFfCWBlgBxHYoR2ygBy2,iv:OnNKqCoRQcZ7Krw5oVpXgllwoja3mAhjk9KzWpDUE64=,tag:m9jeBduOftCLhfPDiY6qzA==,type:str]"
"01": "ENC[AES256_GCM,data:LK5JuN91mE/UiSIqLziAmnw0abVo,iv:IxapmCwpxoxiP6rNXptU2qcT3iMgNLC4/tkyWtlQ66s=,tag:MaNVaB0LenxdLsO727gMjQ==,type:str]"
},
"type": [
"ENC[AES256_GCM,data:jMKiN613,iv:HlwW0GkG9vseUD33fBqjoozezVJ98H+m5wyKbLXcjHs=,tag:d4bBYy6TDllaSJrJ+sVEjQ==,type:str]",
"ENC[AES256_GCM,data:usK+ijdq,iv:+CGGpjEQ+PqVWUMU3iRmFDlcgjmCAr4MpNAkW0LBbAA=,tag:PiN7NKXw6ZtTzKXLTt3y/A==,type:str]",
{
"01": "ENC[AES256_GCM,data:B+OD91oF,iv:yYcX3kZg8oMH01fLeUFWv1B+DTyIn2l8A1JP4aMwQcA=,tag:WBP6M0XjLFnH3jzWpbl5UQ==,type:str]"
"01": "ENC[AES256_GCM,data:lBvR9veh,iv:zZSWX1TM43NNOfRWBNFKc19mKlnxVpnKXyBo9Qse/FE=,tag:InvO6GsFuQlEAj1OPM7AIg==,type:str]"
}
]
}
},
"resources": [
{
"mode": "ENC[AES256_GCM,data:FpRck2p17Q==,iv:lEyFfF2/Y1KWBWJCoJHHzSuTmaYrWjn5iyLTF80mXH4=,tag:cRC5dyLzeAYhKGwYCxigdQ==,type:str]",
"type": "ENC[AES256_GCM,data:PwWUJk48q4hkId5uk31z9by6bC8=,iv:BbpaT7tFZ2zNjSJmC1sC8FkS72nFk9FN9OGjdRbtyFw=,tag:e2TBL+HTnk0+Wq0p0wQyvA==,type:str]",
"name": "ENC[AES256_GCM,data:ptG7XzTkeDGqn4+eEIS1FQ==,iv:aSV2aehcjG9/taXcsyf3nd1VNKsrQ4cVaDgXB4lmvuM=,tag:+HSv5ici3DH8DjorZguiOg==,type:str]",
"provider": "ENC[AES256_GCM,data:Wawzslqb4i06NXWPLrbT2tQ8pT9F7KeRSXU1gSP046uDlMzQYlAoZ+BjQBbJEwiatreF,iv:efWf6pGIBxL6/hIm7OuyDwpgkeK6hoLptyhD0FaSptk=,tag:3VEFkWkdhxKEDu0ZU6yVxA==,type:str]",
"mode": "ENC[AES256_GCM,data:74W0131P8Q==,iv:b1HYADf7dXX4u85XvMQdlC7CwdWltnu86kWMou1XXrM=,tag:jXA0paXrE/soRfdQf1yiSw==,type:str]",
"type": "ENC[AES256_GCM,data:iMKPXr+aaiGqfJVYd1/CB/JjH+U=,iv:A+460DlvgSeCeuJo9NVjnA4kelLQUeOrnZKzwgF8akw=,tag:rebrmO1grri4B//e91qYRA==,type:str]",
"name": "ENC[AES256_GCM,data:I9qUnNy+1ErsgJhXzrkkNA==,iv:VsD6pNQKm/AUSderuAjHF+U/EeDTulaHBJ2zV+tMK0Q=,tag:UyWWRQD83UNMSDP7RJErmA==,type:str]",
"provider": "ENC[AES256_GCM,data:yq24zHTXay6SfUrT3tH7Ck/glkAt94CrwzFoIRDLX8wt8Oa6b+KMXeAfc0DANpUg4LoC,iv:yWN/D2BSsRk3ZJQT9svZT99uGzyvKNkNZ09NmQ/YWX4=,tag:UX4XCItly1T8/M65/K3PjA==,type:str]",
"instances": [
{
"index_key": "ENC[AES256_GCM,data:9jaWzJxF/SbhZXu5,iv:yFADKA5/05Vust/gszU5jakONCnW87FadGUjFfVd5lw=,tag:Wpv7qAAg3qo2xEELqAsLpg==,type:str]",
"schema_version": "ENC[AES256_GCM,data:bA==,iv:IfrJJrA5ZZqey+ObomB0ZfyGGuGN2fdq3Xp1evYOHO0=,tag:mRKzQP9p0Ep1PpqEhGGvlw==,type:float]",
"index_key": "ENC[AES256_GCM,data:UDt4XprtlETe6nqI,iv:qZS/ZhJlTfS+vMYChMMyq/qh2CI8bGgcHMjdJhF//DE=,tag:VNzAmfDGcjNb9UH8vX777Q==,type:str]",
"schema_version": "ENC[AES256_GCM,data:CQ==,iv:HPFA5XbJrjKD50aX8k49V92WihubqCNBlgP4ye1pTGw=,tag:DIUdSui4OnzGVjYb6wn40A==,type:float]",
"attributes": {
"id": "ENC[AES256_GCM,data:EYrLHXeHVTU=,iv:Il97RcmVGbgy7Mu1by/N8kg/zFG6W/YYmCQVS8g//i4=,tag:1L14GprWKKfld5XUFaSPHw==,type:float]",
"name": "ENC[AES256_GCM,data:96M=,iv:FCDCgnpe031BU6XDcE7WrNd4st82KiCalX8bgirFnw8=,tag:cOi0xhSOONQdvz2Zu9uGVQ==,type:str]",
"name_normalized": "ENC[AES256_GCM,data:mcE=,iv:CVvqJb19NpFuSQ2WJp/mkcLbu1t51oMkreRIlmCZ1Dk=,tag:MnxJ+912qu2mKciophAgFg==,type:str]",
"priority": "ENC[AES256_GCM,data:Gg==,iv:8rvYW7SsBS9LUbpglqzNMtSW3vKz4qlv5UUdNKBebYQ=,tag:7bjrAGFtNzuDuwnX0Y3DmQ==,type:float]",
"qualified_name": "ENC[AES256_GCM,data:wVvH/OwTejlWEnOg,iv:6U2mtmSX6wd496UBbkuliN3taeb64b9PV8SC8lwT9S4=,tag:30g0kgc+61i0wEq5E6af8Q==,type:str]",
"id": "ENC[AES256_GCM,data:WjQPWcRo4Xg=,iv:9NwDQOpINuKEP6+BDk7Ux2yipwf53lpdr16+QAHGGf0=,tag:hTcCiDkB8GPKReghWllfBw==,type:float]",
"name": "ENC[AES256_GCM,data:PIU=,iv:tvjX14gjx6GUxcrliP09BW+xcnSaVPRoTsgDFZizOuI=,tag:DHQjqyQejCClkTnNPiFqPQ==,type:str]",
"name_normalized": "ENC[AES256_GCM,data:FWY=,iv:/7ryMF8IVl7yvpiRg/iK89OHHwmFbnRsxJm65aw64EI=,tag:CZ2ifHPoQH0yLZS8yUiMMw==,type:str]",
"priority": "ENC[AES256_GCM,data:nA==,iv:xfzaQqOguBkxezug1YKO486oaQHrl5YPKMPlAH7pGyk=,tag:vvo0gFZkGoYG050PbnbaGg==,type:float]",
"qualified_name": "ENC[AES256_GCM,data:Z0qbf4tihYU7Mf7n,iv:5SWBdD8eaW3Lhqcn6EroU9LFc34kriqbguWF4LrCUgg=,tag:h1uUNEbo3hOiMqZDsWeQtw==,type:str]",
"regions": null,
"ttl": "ENC[AES256_GCM,data:qBV6,iv:JoQN102/JHeG5yRqp+Du3gyWn+cIwqQqFscvh0EQSGY=,tag:mmNIxU5odgCiAllzdmH8jg==,type:float]",
"type": "ENC[AES256_GCM,data:gUURBb0=,iv:8UEw68tcbGwD56YEy/pfNaXHPjc69x2s57jRP7ktuOE=,tag:E12fEKvewgeUQsG8G4dzRA==,type:str]",
"value": "ENC[AES256_GCM,data:Qmy3qOLQ1jd4gBm9,iv:sWoBhu+tWx7Osj4wiUiDq+Zs2EiHrnjmINuMV/NXLAg=,tag:dd8EIyLXp1TW7r87xox/+g==,type:str]",
"value_normalized": "ENC[AES256_GCM,data:NnYUh/S5ceJSA0Hw,iv:+umnGoXSRi9PBWiHcRfCsICjXJCcd/WZRw1mL3OZtJw=,tag:PM9M1fda7inWEqQo4qP+NA==,type:str]",
"zone_id": "ENC[AES256_GCM,data:ea+/5orAHVwM,iv:Oz1ZDz7vTgD9sHkX51zvRrjr5pfpFBuMQ6gJEL6bIRE=,tag:uiqks7stAZNSlxi/PXjJxw==,type:str]",
"zone_name": "ENC[AES256_GCM,data:yZwkAigFS1s2,iv:pSu6Elm5upcbYm+7iFsGzUnoq6zc1v8vNo4vHd6jx1Y=,tag:eU81s6iKNX1YGzCGFtnmBw==,type:str]"
"ttl": "ENC[AES256_GCM,data:BlPg,iv:Z38NmyeNmnSb6tLQM1bSio4ChmZWH5POjueB9aJb+bI=,tag:eM4PSqyu6HbmAHcTJPXqgw==,type:float]",
"type": "ENC[AES256_GCM,data:1/u8ytg=,iv:n6hrrP0kB6dE4vWKVOJpmYPtKbaCT4IgfQLxRHpPdhw=,tag:oTKuUTdbCwI3TESpy9xEwA==,type:str]",
"value": "ENC[AES256_GCM,data:jFRsS+AD42DRgL3W,iv:6FSoPJm3MvjvOUBY8Ek/9/H5R+G9A/2C61oaKnc9g+4=,tag:/2jGvY6eU3PDxHmZESsjrA==,type:str]",
"value_normalized": "ENC[AES256_GCM,data:0S8lNUoDgzqLbFsL,iv:j4Ayu+BQS+QIyCawo+B/LMEt9X73u7tv12uPHn5pQ2o=,tag:GhnsV9m2rQenCSqe4q69Eg==,type:str]",
"zone_id": "ENC[AES256_GCM,data:Kr6If//MjTG+,iv:jGOKo1WLeWKMbvKNAHJAL88CxiktFMvHl4B82SYOWrk=,tag:O3kB1aIXMAEbznwVdNtCqA==,type:str]",
"zone_name": "ENC[AES256_GCM,data:PoDba2GnHspv,iv:nq9Xx+iN8bZvsH/yLgOtWn2BmI3MkdVV3McvpfVcmco=,tag:Uw5nbWJTDK0NTtrbHzS+Bw==,type:str]"
},
"sensitive_attributes": []
}
]
},
{
"mode": "ENC[AES256_GCM,data:P44J2T/R7A==,iv:7TwcoJLQw/bn6QDDA8p3xZ9Z0Wi/H10+cw3E3ecHP94=,tag:vbI3jtU5H6cb/Wp2MI1Otw==,type:str]",
"type": "ENC[AES256_GCM,data:mct01nwk4u3Udi029Fn7lzx1+mI=,iv:OeuFL0TkEcPWlTVp+/UfYUdddIaJ5bpuwZ7SrelYk+I=,tag:VwYLFF2SnKv7r8Lxe6pr3w==,type:str]",
"name": "ENC[AES256_GCM,data:P4JEgxl7oOkYFgQ=,iv:qu7KGpu0xbqwwcHc/nCHT5kw8Zyf1Gzba28n41obVf4=,tag:ymaEA1m5HRhe4NEzxMQaFA==,type:str]",
"provider": "ENC[AES256_GCM,data:5rPJjv0BqiANuUlOlccs4JzFwNnsHSIxp394i8bNPWGZmgoeI5nJ3XPAxqSlg7cDnRmG,iv:olNRazWKHzUNEL0YQPusE38oB9F8KK+0r1QE3J6bM4k=,tag:WBpxIvawYmxxkbxbikJJyA==,type:str]",
"mode": "ENC[AES256_GCM,data:FhK0cWuOrw==,iv:aKCYTcsz3aE1ndPiraOVnTA+rSep79RKGW2fDWtCTVQ=,tag:UzuKbN8IMLIxjUxGLTa3IQ==,type:str]",
"type": "ENC[AES256_GCM,data:HLThRftLB2jJkQXqsUus1k3uTE4=,iv:XmvhESdNvWlbb9OXum/Jtxuyqdjdc5dZlIcjLDCNHrg=,tag:p8UpXlWdDaQt3v5uGDoXlA==,type:str]",
"name": "ENC[AES256_GCM,data:HP0NsmRXBGGwLcg=,iv:zjCdirlOXawPwVsEnsStNzg57FaXmLl6uE7t/Y00x9o=,tag:RbNFVaW2PbGlO3SIYOm5cw==,type:str]",
"provider": "ENC[AES256_GCM,data:BST8tDv5VZ+1eRXONAcEn+5F39Xg61kZgfWhiQMS1iQM9psTpKsBo3oxXeAUrxi+JpCi,iv:6tixBBfKIiTsQUUNjHGTJXweLQHkopspMGgilTaJIlw=,tag:hq/sSicDJwiN0dQ2vzDOgw==,type:str]",
"instances": [
{
"index_key": "ENC[AES256_GCM,data:Bfg=,iv:RfDbRtNE3m490Ji00oVQDMVbMBvAXFtRskIwnLbnYjk=,tag:BKIa4DnXBolha8cGP2f96Q==,type:str]",
"schema_version": "ENC[AES256_GCM,data:8Q==,iv:vaG/aNH+Bfix00qqm4wvkLO9Ot5kUyrUd9b36GCOIQ4=,tag:O5UYkntUQxlYt6YcgRRAnQ==,type:float]",
"index_key": "ENC[AES256_GCM,data:j7g=,iv:vBsmqsoj16ujAYeuzBUiYJe6uXR64OceeLJGr2YFYFo=,tag:PNYnulgIVIH5+oCj1pKwFg==,type:str]",
"schema_version": "ENC[AES256_GCM,data:6w==,iv:9yjq7E3CFgn42VdpPeF7oNfAcZSDFkqSqZYRCFEmHRQ=,tag:vdjRocIzMG004tNkI3MEUQ==,type:float]",
"attributes": {
"id": "ENC[AES256_GCM,data:XhjlFYRyes4=,iv:kF3UXkq3eADEDWzznSTjfphHKlC2bFiztTKfsxiBrz4=,tag:n0a+XIcLrAFJZuLFSzrqLA==,type:float]",
"name": "ENC[AES256_GCM,data:iCg=,iv:z2j4b9G48T5/t5C3NWehhB8NAPS66KWl8qL8pIlDzUQ=,tag:3kAKhZjbJ1AGGjQD89Wrfg==,type:str]",
"name_normalized": "ENC[AES256_GCM,data:D6k=,iv:k2+akXyTY7Y4fMJq16e9REVTsAECjWG+4l+Ejr7ecAA=,tag:asPjoGXYf4XW+vdkJPH6Lw==,type:str]",
"priority": "ENC[AES256_GCM,data:Og==,iv:rRK8881Uu6nDDAImprOFbOHgL8Sq6xtLGgs7oxOSUVI=,tag:yJ/Dizab0ERSLo5LVE9aew==,type:float]",
"qualified_name": "ENC[AES256_GCM,data:SC9UbYzhdCUIWp/I,iv:aKgtEsm2CsaegPEAjUu9lf9H/qhBgF2tT6H6nGp7/Kw=,tag:vOrYzSfxB6LwyvCpfwp7jg==,type:str]",
"id": "ENC[AES256_GCM,data:mZKPOEObups=,iv:XjguFDhjNtwWhv/hi9r5DjyBWoq+v/RsSrTw369iqyc=,tag:zNHKvHqSE74lul2OmsrUMw==,type:float]",
"name": "ENC[AES256_GCM,data:MwY=,iv:NluShFN30P8jkBgl4oavNFizdUUePGqZc52/aV7fRUs=,tag:o5TdqVgMmd3M9otQYrd8uw==,type:str]",
"name_normalized": "ENC[AES256_GCM,data:XKQ=,iv:w+xnjf7sRbFk3g7e6eCM5ujTHatRtB4OrIhvqgH2QdM=,tag:RHyTvF2Q020YkGXlifwyFw==,type:str]",
"priority": "ENC[AES256_GCM,data:BQ==,iv:hxKmHqc1kUmQZgANJEXxJ4UtwKXqiFO2c+/y5/x3rPA=,tag:wKG2gK5m43fNj7Gik1AK/g==,type:float]",
"qualified_name": "ENC[AES256_GCM,data:LGPJYoXvczqHzLcs,iv:WhlYHl0fVWmjemaF4Y0CpAfMLDXEUaMwojz0Qlb+8jc=,tag:28b/D9/k6O9cD3Tjs3mfsg==,type:str]",
"regions": null,
"ttl": "ENC[AES256_GCM,data:L5Ro,iv:ivezwlnm8bIJvpfLbjAqT+MAlEXqAGqDfwcuiTs8RyM=,tag:c0scTfYBPhWiafod33uq8w==,type:float]",
"type": "ENC[AES256_GCM,data:gg==,iv:Yxx6cIm314IC5DvbdbYItHjRATkc8ZstkhLFc2WUJ/w=,tag:QrVhyKMznjMl3XQwejS65A==,type:str]",
"value": "ENC[AES256_GCM,data:et+qkBtBBlrp6SNJuQ==,iv:lTheO/VIHFrwd4fUP9DxeUr2WqJlPHQkbCqstm/NUXY=,tag:riYfejgQ7kzN0PxsJw08GA==,type:str]",
"value_normalized": "ENC[AES256_GCM,data:sbr8BeEk6yMRTOCoTA==,iv:jMOGQRQfaj5dUdJy0GosIhLKwSr/j3CRoI4M6YlShpo=,tag:3UCc7+v+0YnX9ieLYQRFFA==,type:str]",
"zone_id": "ENC[AES256_GCM,data:L/VGSasUhPZW,iv:9GfUTUrpdk8vVxRHNjqLvDg54bEYcEU7MHHJRe4xNXw=,tag:PA9bzCpKO7HEDGwfC+MWYA==,type:str]",
"zone_name": "ENC[AES256_GCM,data:gxHXyjjW5DzA,iv:PX/YCjnLvCTcTM6CGctpYFYdCg8xmcL4xuR8MlQI2Mg=,tag:u66KsH44Fch+l4FpMv9EWA==,type:str]"
"ttl": "ENC[AES256_GCM,data:n7gq,iv:+oqLOXViweuG86g609aB30xSUZ2h9kBliigiNWR3kdE=,tag:FImIIDJgy5OzSs2fVtccIA==,type:float]",
"type": "ENC[AES256_GCM,data:HQ==,iv:GIj9uRJM1Ut1q1z8hAGQ/GGNIy7OJonBv+C7wcclykk=,tag:J1XYr6iRaUSpBWLk4lDCDw==,type:str]",
"value": "ENC[AES256_GCM,data:Ka4DohoH0rnSjRtrlw==,iv:C1LymjrNre5O+ZLj5nnSyvBxRgcPuenfTvLhSiQmILY=,tag:/qcnB+f56P7eUbI4Tb+4+w==,type:str]",
"value_normalized": "ENC[AES256_GCM,data:KRuySek6Isz6/bY3+Q==,iv:oJwwSCIH6RhZq40e3b90iAJPJgiqqAJ2dPt3eAF+Cm0=,tag:rxMvz3GSxSS2R+U7gW8PsQ==,type:str]",
"zone_id": "ENC[AES256_GCM,data:ao2Ze0Txfz+s,iv:OAEcrBKopZ23VXMLXWOsHmmOfpf3kWkBgrqg4jOoNd8=,tag:3yd/Bhyb8mhf3DoqtIT9AA==,type:str]",
"zone_name": "ENC[AES256_GCM,data:5XVpmOyAIUOP,iv:67ryWjVMnVsKK+ldCtV1WbAOgWOS0AlktPxc+1YYCwQ=,tag:XmDDu5br0Z3F9JTbUTPuvA==,type:str]"
},
"sensitive_attributes": [],
"dependencies": [
"ENC[AES256_GCM,data:01/EJTeaeW+7arrWrsGoJSx8,iv:7smHPWl+SvEiatPZWlkDCAwM2huGRE3squhzaPMGjHU=,tag:EXa81pPwDCHvd1jr8Xq99A==,type:str]",
"ENC[AES256_GCM,data:CwuTHBCsHiBQDj6LV+EdogcESQ==,iv:5o7EmCSqZtLbrUqK3zZ/5atz/ySj444I07CiJ/2ETbw=,tag:jd5lK32mRk1JnLtllF4nHQ==,type:str]"
"ENC[AES256_GCM,data:2ebblQZt36T1kauv3tQVllIW,iv:e8F75Af6TwB/Zpy+DQ+KweUn+TfJ2K/0mPqzRcvr3LQ=,tag:tDoE6MCxpeMJH3eWRnrZqg==,type:str]",
"ENC[AES256_GCM,data:Mz8Cn9g1BRL4G0rBXJhGfhO6yw==,iv:t8p/8cj7aVtxUhDn2ulNwFnHvfBWbTMSzNI60534pBE=,tag:YvozpacjbZvtTKaPhlSnTg==,type:str]"
]
}
]
},
{
"mode": "ENC[AES256_GCM,data:qBvuzxaryA==,iv:pe/gpWpkRak5qcNbNoHoqR8OYHYyXCvqpK5TbyrK+FE=,tag:hGUhYKMtpT1qm7wzQZ7fJg==,type:str]",
"type": "ENC[AES256_GCM,data:yvec8zTUyqfMfGmyKPX8Izydl+8=,iv:zlSPACZDvxl7uiBsxocKDSJB7Enq8FjRyLPkI7VEZEI=,tag:NfpC0x4t9tlkI2vdAiCikw==,type:str]",
"name": "ENC[AES256_GCM,data:h1Xx/WgUmygJyP4vacE=,iv:dIsaMngKycerFL/sxp/E0r/nO8gpYB4fz6YKnltDRxA=,tag:24QZcvjqwPjVhVpthSuBug==,type:str]",
"provider": "ENC[AES256_GCM,data:1McsnGI9yRJgCiuwWVgO42ckhsnHfO9my/vskNTnv3TBZCuld05tAX40v3MGXgLpuyB7,iv:V1BaF4tQeZiFGwOZckT3ILX9Hq6njbGo8yRPIbEKQ/o=,tag:w7sYBgCLNz4nrm/HdhBe6w==,type:str]",
"mode": "ENC[AES256_GCM,data:+xKLR57q4g==,iv:q3wWNnzox1J9gxrS3JOjv/8b4kPCdfc+7/W99sHyln8=,tag:Xt4gMzQ57SV7TbJvYUFh1A==,type:str]",
"type": "ENC[AES256_GCM,data:GX7gSCU/MN+eYxrNxw==,iv:5/LlmcpCCk7XvC0rBS9VlT3/w8ut81NDeWVl1Yw9Li8=,tag:clSkc5Q4lkLGzpT3BMl+Rg==,type:str]",
"name": "ENC[AES256_GCM,data:OcjcgQ==,iv:OerVJKsotEuAK/oERw8fFDgq83IRbore1YqMEzcKfjs=,tag:qNykPOFvqawXOFuaPzoQMg==,type:str]",
"provider": "ENC[AES256_GCM,data:4PxczDQrOSDgUBiLubBvtBEdMv9vuerHM7GrfkrRPWWqTN0nbyFLcFtbL3pppDCKV6erC7k=,iv:i3iQ6RlcaH2EVpemc2nrz3WOSWZ2u9eCI5KizNPSGT4=,tag:q6PmZQcELs+5k5wBUn8wbg==,type:str]",
"instances": [
{
"index_key": "ENC[AES256_GCM,data:Ydk=,iv:7g2O9BsnWv/Hp7+CTSWMBlK/X8Z4kMqxu+eYcUmG9PE=,tag:G7Navl/aUFyU1jQdAjl6bQ==,type:str]",
"schema_version": "ENC[AES256_GCM,data:Fg==,iv:ny7v56h8975hnPfhO/025h+8K9locTrt8yJcdPLXHoY=,tag:09EpTDyJMh+ld5vE1i0BXA==,type:float]",
"index_key": "ENC[AES256_GCM,data:B0c=,iv:28GtRXdlJKksxc3xr6NnDyMeMNERMW+xlXlzNhJ3VVw=,tag:OlIldEjRsdCUTghgv3ZDzw==,type:str]",
"schema_version": "ENC[AES256_GCM,data:0w==,iv:MQdMuunQwvXaiKp3Y2h6uJqG6ROu1Zw+nDEm1or0iao=,tag:o4naokBUJwalvqrgT3K5tw==,type:float]",
"attributes": {
"id": "ENC[AES256_GCM,data:M+6fdGpG0ww=,iv:h689uzj7cXoC1MDA5pFMmYABp46bXQ5wNm5jSTRa2+U=,tag:QDdkzEsTJHsgo9kZds8MYg==,type:float]",
"name": "ENC[AES256_GCM,data:jiE=,iv:KvpfvqZEGLtuVNuTSlsScgky5ueS3U3m1ZAmP1ykUUc=,tag:os1zi00gmfAW+gK0Yx1kfw==,type:str]",
"name_normalized": "ENC[AES256_GCM,data:cxk=,iv:XokJxuLjPiLpAWpvL2Tf+FgmBTqWaOYGwblREFLplko=,tag:tYaQKOzArZC4gip9ujbZ9Q==,type:str]",
"priority": "ENC[AES256_GCM,data:Pg==,iv:PfmkwcaJkl6yR9qPeOpYb1W/FTHTivWhzvRUw7Qii2o=,tag:7BWV3QOuUO5SoaJIWmB1rQ==,type:float]",
"qualified_name": "ENC[AES256_GCM,data:7npoWf0x9VtHZuzd,iv:xFTybjntFOJWZDkUrgn159xKchJJmBwD+d40Y2xAjso=,tag:7LcEqoUBng/0VsFp/ZN+xA==,type:str]",
"regions": null,
"ttl": "ENC[AES256_GCM,data:6Xqi,iv:NstmYySe3ie+RNto3D90KOAhu07e7yfBdl7RpwH93RI=,tag:SltzpgJwUy6X152kx4IlFg==,type:float]",
"type": "ENC[AES256_GCM,data:Pp/TRQ==,iv:pNC052h3Oufhw1QCx++hCx9kJTAmSlIxy0g88+K0w98=,tag:b/TL4STAYU0g488rq6BDxQ==,type:str]",
"value": "ENC[AES256_GCM,data:9rVm7cSJVUWCgqe2Ah4rC7RewkA8,iv:c/+17CWGsp+w5QefZl8WX4hpDuL+ceTIkamym4I5t4A=,tag:tkjvmCUYCD495uoba2ZNxg==,type:str]",
"value_normalized": "ENC[AES256_GCM,data:Fswh6Y8/0LnY5JL2rclQGclBr1g/,iv:nUp6m11z+341okUUnCnam83V/DQyQV8VUGvY0OARLLE=,tag:qwFOxpShiUMUMOUZKagPEQ==,type:str]",
"zone_id": "ENC[AES256_GCM,data:eZDUU/1x9WLo,iv:hJ22ou8iv51NB6y9tyCgVqtNoKaInAklN95bmhiOjXk=,tag:D/cM//jRCqnGQ0PSW6tDhg==,type:str]",
"zone_name": "ENC[AES256_GCM,data:4JmJrk/Yxf7W,iv:dDyE//HYXTA1gXnQL+GZemixQ8M9/9Frkwou4EfpFzQ=,tag:/KCCbbJjMMk4iqJ1AJVQxw==,type:str]"
},
"sensitive_attributes": [],
"dependencies": [
"ENC[AES256_GCM,data:zeL6ApGmiI8Grir1xnIhQB9b,iv:DnG0GuCOkK7h3iW+D+6vBycvC6w3EmeVsGEobcGSyMk=,tag:oGpObpKLdhJq690179Sw8Q==,type:str]",
"ENC[AES256_GCM,data:qX+Ndj8gZo89qn74WUmRFSdCsw==,iv:EwmT0WTeatnP7nKmWWS7p6+CsAUG+WxaNdn8nzl68gM=,tag:QSWUKvfQxSU6GjTrtColng==,type:str]"
]
}
]
},
{
"mode": "ENC[AES256_GCM,data:Vqd8l3GTWA==,iv:G4lmWXkI5rUQprLDUAQbNDlKvqKiBaZgIttRaWOL6o0=,tag:Y3Mfvu/CTRzqVC2TVn11Zw==,type:str]",
"type": "ENC[AES256_GCM,data:oi6bz9gCaO7qSYHp2Q==,iv:1PP46KSjs3vK0bYbpTt8K/QVdKp6hLNoZhdewz1y18s=,tag:wib6SX0wQxgaRPoCx5U3Wg==,type:str]",
"name": "ENC[AES256_GCM,data:zEo6uQ==,iv:m5JctdIjhaKkaXracynQL8t1YmwwAnhUPwwpxEQiXe4=,tag:3zGWGvbtsOCdKwvsz+96hQ==,type:str]",
"provider": "ENC[AES256_GCM,data:mQLS3n469rHjrQE5sUKMm1obaV9/5WGEs6V+K86Ipv+ZvFm9xk1xuN+bldF6n8m2qUSfk/M=,iv:I3+cEjdPub9DyXk4RxmQv3ktwmuYxtK7iJ8QejBrAP8=,tag:T5s2q/YIRv2x6xAVpvrVdQ==,type:str]",
"instances": [
{
"index_key": "ENC[AES256_GCM,data:q6I=,iv:Ag0tqrQldyd6ge48vBrck6Dl3jCQNsgjkHRvI16NtFg=,tag:/7eQ5moYmFIHmaxVVX3zAw==,type:str]",
"schema_version": "ENC[AES256_GCM,data:4g==,iv:mrT2YKY5CFf+ZJW4+yLlikU2oP9E0u6zrWOTbpnsJ00=,tag:hDO74TQSITiTTMvaLvsFLw==,type:float]",
"attributes": {
"allow_deprecated_images": "ENC[AES256_GCM,data:qT27GMA=,iv:wycTUr/0d57yZ3fmClwriAWLZ69xbyTstyK4jfBp9Vo=,tag:fK9JhOJOytrg52xrc2gTZA==,type:bool]",
"backup_window": "ENC[AES256_GCM,data:71/9gtI=,iv:Sn2xafYX4dJajhTClwrH3qtf9RmgFptiWPM1hRP1hO4=,tag:PpzF52crNBO/WHQ8F3Bg2w==,type:str]",
"backups": "ENC[AES256_GCM,data:1wnFhg==,iv:onlEVEqp+4RKG9a/OMT6tYw/NB1evUajVuTF/015X2o=,tag:1a3SMMmbZG3OcIVG5l/tIg==,type:bool]",
"datacenter": "ENC[AES256_GCM,data:mKGcFpgPx80=,iv:T26pFsxprvOjsLL25CetXVjIab4rfvZ2f4fh4qhnB5g=,tag:YJXKZehGntt5m6U6SqK87g==,type:str]",
"delete_protection": "ENC[AES256_GCM,data:MIRCzNg=,iv:aIxA6UPrbvYA5KgBaBP1ACNRzLMlM8Ip2IW/4sZjIPI=,tag:RkUJi0kqtEUy5VLQSZlRjg==,type:bool]",
"allow_deprecated_images": "ENC[AES256_GCM,data:eI1NCXk=,iv:3lP/Hrb8U83W9O0U+pokjamNcbiIj9TErMXfQP+7Zb8=,tag:zCIncYvkJo5ehVvYeUKRJQ==,type:bool]",
"backup_window": "ENC[AES256_GCM,data:hOMtHlU=,iv:w3Eh2k3ECKtbs6F7MYs7gO/pWy/Uxd1CwrNxBWc3kl4=,tag:KFlMjb200suhUrOEnL446Q==,type:str]",
"backups": "ENC[AES256_GCM,data:olKJNg==,iv:If/2JCWTJMsAB4Ct5A0sm375qW+JllJhjfkFr4pzux8=,tag:8i5S1csqX45Dd4Mj283XUA==,type:bool]",
"datacenter": "ENC[AES256_GCM,data:k0M3HoET0Pg=,iv:yZwX7rUWzMJ3LHGYNr8hfqnc3XhiWPoun4D0srUm+1M=,tag:qijFF3JRNC5c4WYw1wyPeQ==,type:str]",
"delete_protection": "ENC[AES256_GCM,data:7g1GQcg=,iv:SQxgACTCFaFrb4N4uu1GXFLm813RJHfcyafZcg8q794=,tag:X2wWZppashivZVP9/WKDOw==,type:bool]",
"firewall_ids": [],
"id": "ENC[AES256_GCM,data:WS9aoSTt7iA=,iv:B8ySEg/galiFUxg7Pbq+dY17N3ZDs/naAoUHvItnDJ0=,tag:LjojOVjdc5gS1Wlrk4lGPw==,type:str]",
"ignore_remote_firewall_ids": "ENC[AES256_GCM,data:tJecgmc=,iv:P4BwD7A4jpJEogFXE/NhAx8kUdk2+KnWOOisxF2gpU8=,tag:LzgHHzk6L/GJ40JzxhDxyw==,type:bool]",
"image": "ENC[AES256_GCM,data:PXADcKV90ZA9BLT9,iv:eo7c+WAcmD4qvJ3stFuxIS4brVzKrjT9R9l/VcI4XtI=,tag:wDEPwaq156dBsBFDiFdrgg==,type:str]",
"ipv4_address": "ENC[AES256_GCM,data:XtXDO0bfdjYLnLRMtw==,iv:y/TRbQpYVlX4br3Rqhy02jjSsNqD3+sSFR/Y1dUmkuA=,tag:/5rgfCmwZQk9joT6ZpDqfg==,type:str]",
"ipv6_address": "ENC[AES256_GCM,data:C80aX3UKU8rRQvcJotkCUr5g8wEr,iv:FG2uX+zxmMv8DPgEUfDfJx4CecvsTFzSMedUQrKAfjA=,tag:7Q9C3sAo+OEZd1AfCrudnw==,type:str]",
"ipv6_network": "ENC[AES256_GCM,data:JSrOIbiO5jMHBdZeQHH5RKrkSpynoWs=,iv:UFk+S7NV2IIxHAASRLcb7s+FQRzzwczfW83AI+lCbQU=,tag:6Z8nq60W4NjkjXAJdd4ZEQ==,type:str]",
"id": "ENC[AES256_GCM,data:zNPAlYIsufI=,iv:TtYVEnkAiYecRluAgofEUZh0uoq9X5P6JSklaAQ7Yyg=,tag:4co2Ibdy84Vt/jGZSGXe/A==,type:str]",
"ignore_remote_firewall_ids": "ENC[AES256_GCM,data:tYorgmg=,iv:ID8gOO4hSggyvJ6TzMbqOMKa+e2diNoUUNTjNs5ibLk=,tag:WeUCOD6TX3+adJsQCQLoYA==,type:bool]",
"image": "ENC[AES256_GCM,data:lBcWuXCpeiKnyG7P,iv:luOonPP/h1P0U07+JxfvCUBSU0Xv/MGeFf44JKLwIL8=,tag:t9IvF9EZizHD78FX0qG+TA==,type:str]",
"ipv4_address": "ENC[AES256_GCM,data:rl9zmYMKGhCZ2pTBxg==,iv:va7JOk2paHj3ZbGGTbk2/TZHBfvXsgsEdC+fKJSwW9o=,tag:SR7dDwC8596y10FFa5eH8A==,type:str]",
"ipv6_address": "ENC[AES256_GCM,data:EfRkDK07zv66oiZ9D8xdSI+AzGMe,iv:ONla9kdF0nMjd47A8IsF75q1u7XSzFX8u1waIqYLPBk=,tag:ZHbxp5nhawLOVHMqewGD5Q==,type:str]",
"ipv6_network": "ENC[AES256_GCM,data:9cSpljRytmKv3VytlAz6/tactdn7B7o=,iv:vwyhnZsefYu6+EpRPCkXCRaTtycftVAjB8BCDed6hSI=,tag:tA4dLkKCUGVY+gKyRlJqGg==,type:str]",
"iso": null,
"keep_disk": "ENC[AES256_GCM,data:JaACPfo=,iv:8XqVcgO6ic6o+9Q8nuxvrWcBZ9BiCM3wobmm63wmffs=,tag:vwRLSx4p3USNdDybbZbNAQ==,type:bool]",
"keep_disk": "ENC[AES256_GCM,data:wry68Rs=,iv:ZXiRFrtjstHEKSk7evonwUAkO/wAVMcbStlX7tgXANs=,tag:h4BG0VguKqDjtet58+vy5g==,type:bool]",
"labels": {},
"location": "ENC[AES256_GCM,data:VkB/7A==,iv:Cvg0T8Rp2Is7eK5SZRGdujOu/aUakm3AZSrbR8mTwd8=,tag:SSCJe/vr23ZVG7I/ifNfSw==,type:str]",
"name": "ENC[AES256_GCM,data:ltOVDlMiIswsHuyUCrrY,iv:jMQjaFmoTGZ72W8a+fYUNXu+8NjmtO5yxbJWZMTSkmI=,tag:AofVneglolqmIW041Hm3/A==,type:str]",
"location": "ENC[AES256_GCM,data:WIbSRA==,iv:T+Do2pUC8peAjBl7iiiNi0AeN0aL4uAsQPVDn956QZA=,tag:hN9GE5nT65GMRvkNOZhGLA==,type:str]",
"name": "ENC[AES256_GCM,data:lg2Yid96Mz+hIMzSu0Mw,iv:sNF0NYsEFJadnBpYOQ5Gmmyhkp6K9VMztmbuRp+SXJQ=,tag:TFIkewFYiBtzseTTrM4rNg==,type:str]",
"network": [],
"placement_group_id": "ENC[AES256_GCM,data:Zw==,iv:ThVKbbYkmJ/bRV3A/caS2TkYA0JhfIj80KDGlsHUxoc=,tag:ZTD/eghiV5GSerz4elWvAQ==,type:float]",
"primary_disk_size": "ENC[AES256_GCM,data:XLA=,iv:by+ZZl0X2LsYi4QaYSm9xYqyqGn/shJvy40lR0Q2Wx4=,tag:fZUyUzuG/XDwJQyPzJVyfw==,type:float]",
"placement_group_id": "ENC[AES256_GCM,data:9Q==,iv:g+A0EkiM4q2LSp5YVtvCYD4j24zC6ABchlzEcbVg6Ro=,tag:yYSnQG+p0miscthRqEgBow==,type:float]",
"primary_disk_size": "ENC[AES256_GCM,data:XjI=,iv:7npVXyuwcweuh/yc/sE6k7SrcjGN2B6uOZ5pOj+agcQ=,tag:fmUD3agJEB+hqUNyj9ZEMw==,type:float]",
"public_net": [
{
"ipv4": "ENC[AES256_GCM,data:cw==,iv:SxEotgmU+UW/0gfKM5sEoebS1iEL66DxuqhpLScMaIc=,tag:PZ5ZDyjmy8vfkovluCmKCg==,type:float]",
"ipv4_enabled": "ENC[AES256_GCM,data:mt4qbg==,iv:FaqJdTd5qfR4w7j0XyOoFWhfhm/ni87uYiJmMV9XdW0=,tag:jwpamh+VKp9aOeRO2Lr/WQ==,type:bool]",
"ipv6": "ENC[AES256_GCM,data:eg==,iv:+9ge2loX8VNe8netYw/N2Vcfquy0TiYeFKr7/idpd1s=,tag:t8qg2BWH6v3aaGDMH5hLFA==,type:float]",
"ipv6_enabled": "ENC[AES256_GCM,data:GdfByQ==,iv:1747Gqno2gAFA/j+vk/63wqfmUU0vTS/4c6AdTmr0ms=,tag:IyUA5ylIb7jQ0uHv5TbxNA==,type:bool]"
"ipv4": "ENC[AES256_GCM,data:Uw==,iv:2tlKw8KBTCs9gZOlSpVoDyk3geR4YTbmdzbJes26BsY=,tag:LiEwpOl8JF9ftds9lWWW8w==,type:float]",
"ipv4_enabled": "ENC[AES256_GCM,data:H7w4Kw==,iv:ej+jtPJ3Qd326xErrJxXIlOWyMEUN7F1nEFScTbT8D8=,tag:GKiHESJ0OqewyGGvi/bLHg==,type:bool]",
"ipv6": "ENC[AES256_GCM,data:2Q==,iv:54BgRp83Ve8PgHOCNL3/0Ul01WUNyFtDHluMxCwUy4s=,tag:N7CkI8+9qQzFF2jHi/5I8w==,type:float]",
"ipv6_enabled": "ENC[AES256_GCM,data:rZ/Lvg==,iv:JhKbDMh3O03L1n7EnuKAFUbua1LIRphQ3CaBad5cox4=,tag:tkJcv/Q1QTTTLmk0iGUFHg==,type:bool]"
}
],
"rebuild_protection": "ENC[AES256_GCM,data:ziaZjn8=,iv:XRW9XhJYKIswqqHit7lPE4hagSUzrQ6ODVdXGxBdprA=,tag:Y8pR0TXFJjVLxOemGh0ffg==,type:bool]",
"rebuild_protection": "ENC[AES256_GCM,data:InSDidI=,iv:Nnw2Cds4Ene3LQjQtIfk3VY37XTT/6pgmtcR4yji1E4=,tag:15pfNgBlSSHzD4q3IrSh0Q==,type:bool]",
"rescue": null,
"server_type": "ENC[AES256_GCM,data:o910VKA=,iv:heVmXireyIgru+gAeeKrH5v3jURAUiD+sQtYI9vBZvY=,tag:ml01P8XS1sjStZREwfYrqQ==,type:str]",
"shutdown_before_deletion": "ENC[AES256_GCM,data:bM40+Kg=,iv:5OyNcapICbVFAYmdOi4R9ulJaSMd6r4bIsjoXS3YDMY=,tag:4oHK2FNtBulFAiEn7Mt3dw==,type:bool]",
"server_type": "ENC[AES256_GCM,data:bqTskvo=,iv:wSI43T2Y9iQM49cD4owvFShhGIlXTs6GpCpi6pPzOqg=,tag:pyPQp6lfVPaZKvZ1ZsC1FA==,type:str]",
"shutdown_before_deletion": "ENC[AES256_GCM,data:JdOXk/U=,iv:omZzX9Sk6Asl8EWgstBx3xZnIgVF6Di8zapvrLVXgDU=,tag:dRg3AFwwB2C2RaJ/IUfzgA==,type:bool]",
"ssh_keys": [
"ENC[AES256_GCM,data:GV/w2yzQUVs=,iv:kAFNU31egKBIUt8oFYNKRGyq2uUGKhZPCGaDjLSbruo=,tag:vQseJU5q1sUUQXw/Szp8Hg==,type:str]",
"ENC[AES256_GCM,data:cyacTLHOD4k=,iv:ATUWTWsgQNFCzPyEWd708RjyiXtdaus8QhV0VF30UHg=,tag:adXm/mR8j+1I1dEIAbZ+lA==,type:str]",
"ENC[AES256_GCM,data:gvni8yosn3Q=,iv:miqyQ5pinUu7U22vsuD0noXvwqNFN049eqOQzyE7KCI=,tag:JpluOC+bG4lH9c3kTK/LZg==,type:str]"
"ENC[AES256_GCM,data:u15yiFIWDas=,iv:AyTShLMdQXZjZNN3BVXXzRwYwiQLanaIm+gRp9KJP8M=,tag:++2bLosWv55COVw7upoHnQ==,type:str]",
"ENC[AES256_GCM,data:Ott0dgPbWnY=,iv:y2/lYwryN8nIIttqDa7XFbDSRukumhnPp3orb006uvE=,tag:Xlp04ggMgpuvt7/Ole2TWQ==,type:str]",
"ENC[AES256_GCM,data:fjo2tNhDZHA=,iv:HcjyqMA6cNPCSdFBwe1Rj8uG6kzSnDuvYHIq+dlvNBM=,tag:JBGP2jyJ4nvb881pN0lzkg==,type:str]"
],
"status": "ENC[AES256_GCM,data:JtrICriRmw==,iv:7hlMsgLp81xJU/GXNvWfgs4PNib725bhwR4Z5cnD9X4=,tag:pX8XEUA/+bq4IYSVcWx5iA==,type:str]",
"status": "ENC[AES256_GCM,data:mzDYp9VYUQ==,iv:7wMXGWf1MSoqhnnt4KWhJf1Dvj7kzWEcFe+ybufMYhM=,tag:SoGiE/fNrDOStM0SU9YN+A==,type:str]",
"timeouts": null,
"user_data": "ENC[AES256_GCM,data:+XVpBt4ZjSftvXfXHctuHosjW9yCENvkWKefMw==,iv:qNHM3g5UfYX9gLyYPcnKZFHbkp4uI2DhT6ncyT2NMlM=,tag:K1JyvTQKoNuAEx2++87vYw==,type:str]"
"user_data": "ENC[AES256_GCM,data:DF7/PCVuDupCg1dw6D46uWVYWqCFU9ozAk9bbQ==,iv:iLTVUSEV/1SLckLqnjex6fZdKM0J6Pn0HG81jF3B5R4=,tag:RhChfkx2fcm5+28DW9W+XQ==,type:str]"
},
"sensitive_attributes": [],
"private": "ENC[AES256_GCM,data:3iHZtCmht1MiNUds8br2EM5jyivVmtzQe4iC/nmWNEqdxnYtVO9EB/spdBtGI+2Or1osEwxx/0H96zIoRrRVaN8Kh2xMd3O1ns8eCOpVCMDzbHz0zEsLRA==,iv:FCO1QtqyVKDlm74KWJRtZJUR74uYMo4LP6sOgFnoTyw=,tag:z/pjnahzdnpr0gHFt3Qnuw==,type:str]",
"private": "ENC[AES256_GCM,data:9EsnYAg6LK4gmvJOLC+ftd4rcagUOkboJMUXABFEsKXRIVzLCmG0PZQAXUo/TitxdSUh6XM2fv+J5X0+424ScW/GEaN+BTXOjX4AM/xSiGQFLWfex00ghw==,iv:dA5acXRiB18m8vYIuQxiZuBEz6IKBba7E2znENerbA0=,tag:LtUNwU+mL4tGZpxr7ERobA==,type:str]",
"dependencies": [
"ENC[AES256_GCM,data:+cBv811y5jtbGcxqbgRFaUT/zQ==,iv:bpiSHvU2XM4XHShUhL35/neVkv4WJPWt51EA/dEh93g=,tag:pk6mIBBz9j0k8tlwxMHySA==,type:str]"
"ENC[AES256_GCM,data:1ty56T1mbRR6s7VQVcFGEpb5ig==,iv:OzQhwZPid1A2oUWLKML06zmdkr3j9lghVRoPfUle4Fg=,tag:eUpRK8pkkwTrDHM1pNqRBw==,type:str]"
]
}
]
},
{
"mode": "ENC[AES256_GCM,data:BFinE/Lvrg==,iv:TDwTpgBrCzq+Aa+iB3eUWQsMvvx/r1QZt1zxUHh+FPU=,tag:J1t2Ku6YOFpWul4NHHU37A==,type:str]",
"type": "ENC[AES256_GCM,data:tV/DQMPYCODPpFG1d0o=,iv:H0wlitQCoXVqA0Za8SsMFlx9x6sb0WxqDuY8tv5fdUk=,tag:jKblnpdTFCsEqNjHBznI5Q==,type:str]",
"name": "ENC[AES256_GCM,data:byf9dQ==,iv:Eij9zPCYm0BvM/Zh14SufkjTdKCVcYDTuso9BIAo4eI=,tag:o0oL/qWWDNEGeogsGwoJbg==,type:str]",
"provider": "ENC[AES256_GCM,data:a0ldzUR7/oPetKWbRxeumnJRI3/AzE2e4FwnJPLLlebqv9PB6WzyLZ/BJugUr+znTcQ09No=,iv:Yqc/Rwckx03YFYMkzC6TprIAXo9NyOsBJRDBaEfmJ1k=,tag:OsabBB6ZAqgE8xfFaPkp6A==,type:str]",
"mode": "ENC[AES256_GCM,data:sdVY//hxhw==,iv:42xtbVIrmjKUCWYTVG+4UbhvvloiLQRlmWZ3X54WJrE=,tag:QZR2mHeuqj6HBH/wj4mXNA==,type:str]",
"type": "ENC[AES256_GCM,data:T4HW0b6tuTt009C4SdU=,iv:vmAyVU4sa9XGCrEzzx8S5CefBEN1Prz2MjvWzaWg5Tk=,tag:3RZ3TngUDQTZG8RuLiPsBg==,type:str]",
"name": "ENC[AES256_GCM,data:TxKH2w==,iv:ymZC+0kwPvTGIFpUyb7z31XCW2xd+N8zsvNPg7AOW3k=,tag:URMlTVZ0lyQIL3t1bmMNcw==,type:str]",
"provider": "ENC[AES256_GCM,data:IUAsYh9DGimJ8A+aFwFLyflPQcTQJZwrTYNzTuEcLdBN/xwqYgqZSa5paBkdLyHHujyairQ=,iv:57vGXAzuQTdssYzqW0m3dr2wTaq75cTg2VUn5TTmy3Y=,tag:dmOLvNrPYzbMEqOzxcCyDw==,type:str]",
"instances": [
{
"index_key": "ENC[AES256_GCM,data:SdEd88GFSZSS,iv:eAcF8P/917nofZxrSiaxt/wWcwsy3EjWAW2eEjfxYXI=,tag:zl1MxQb+BL0/Wm3v/6cprA==,type:str]",
"schema_version": "ENC[AES256_GCM,data:nQ==,iv:uKmnN/jwr09mX5cEpGASFKvpMcq1Pslk54us6EZCQ80=,tag:Bx0fM+M74rFjgvvuSQ+mOQ==,type:float]",
"index_key": "ENC[AES256_GCM,data:YF2IhMXm9J9O,iv:UcwIdGLyREF5WFI7g8egqkN3pwWZR9weQ8jTvGCJQF0=,tag:bF5LY8GcbABgLb++L5f2AA==,type:str]",
"schema_version": "ENC[AES256_GCM,data:nA==,iv:uDl5U9E4gyX9dIXNzsVuQQfTMVMPTf2XfmtjvH1ReF4=,tag:R56vLv+AtoSo8kHZQwPmLw==,type:float]",
"attributes": {
"fingerprint": "ENC[AES256_GCM,data:zYXJBFBAsEFRx1FE0tw3YFfCX9d4Wz4xRHPM8Y1tHO5wkdgI/+ABVIZ9KSba7z0=,iv:K7mzsy9ABnA8IxntC18K9I+EFGxI1GvFSOXG8V+4rUM=,tag:lerJzbFq6Q3IQcc7rRovvQ==,type:str]",
"id": "ENC[AES256_GCM,data:TL4j2upGiOo=,iv:T3dFTewj07gSqJWebOQLR3DXM6++IR1OGkObvCRtbZU=,tag:EtukVKJq20soKNugxDjq3A==,type:str]",
"fingerprint": "ENC[AES256_GCM,data:urgIvs3auHWBeP8DJtvquYpSKjK40Hhh66bqpUxKwcf8TcNSOMBIhHzpq7eJuG0=,iv:jPKwAytYckz5VaQ5szXvY8FGk5y2xBdwkw/3bPBW3UY=,tag:NXTIAMzVVNgW5Ccr8BLopw==,type:str]",
"id": "ENC[AES256_GCM,data:XNivSOp1yEs=,iv:HpiBcjNMuU/ZEsSQq89WGIAh744sVElLMcUALMQkD7A=,tag:yUpp8uDZ97ACIEUi6lfOag==,type:str]",
"labels": {},
"name": "ENC[AES256_GCM,data:bs2hHmD/h7b/,iv:BIjhfuYxy3Uv87dbLZve6/dktyE6J1NZGHjFU92zcWM=,tag:3nY3Gw8ue1eyCWjj2FulMQ==,type:str]",
"public_key": "ENC[AES256_GCM,data:U4O+lEEm33R5YrofNmoU76KyR76jhELWrA4/26N0HCypqMzOnt4vfCcd0prlad32XuBhenuzYSTuv4L682tXpasloc9z2pz9UzidJ+s3wsfl9C4O4gGauB6QWIXhKaqqi85oXw==,iv:rsEddyfi3uxMiGATEsNG6xAwy+qa7I8q9Mz9diiqUmw=,tag:fis3bsM9OGzTirLtkIB69A==,type:str]"
"name": "ENC[AES256_GCM,data:okwyFm9pNfmx,iv:ogIBowkqvXTsCrp5du9+EZCSu1GGnV5pFmCGjvoOraI=,tag:kBkwqgYP4EDBOwIPEoIB6g==,type:str]",
"public_key": "ENC[AES256_GCM,data:qQwy4SvyMZpLn9cy8/rQDYMH+qj/YPvDCXG9Otm33WzWAJLI+doMYUKpXrkIXTIaJT4n/eICHo55EpLQ0CIGxgzM0++H+dnFR5Bfulz9ZR8l8ulb0UalzgBR4YXqcOZTnRaVhQ==,iv:mEU0nDgJJ8vkG4Yh+zXEZH8oxgcX3Q/aVzkx7Hb6MtA=,tag:NJczzJlblR+QwTN6XXkB4w==,type:str]"
},
"sensitive_attributes": []
},
{
"index_key": "ENC[AES256_GCM,data:Vq4jndGQJFwiFLc=,iv:U4vgoQ+QDMMUdpVZSTIWObEUxIesGZcfZZxmyvIOHrw=,tag:LnwK3FglMNt/v1yjcprbLQ==,type:str]",
"schema_version": "ENC[AES256_GCM,data:uw==,iv:WGWB7aljro4VOjhA7bgCQhWYHCALXRYNTLVxLLyrHmk=,tag:gZ3pBkoASL1Pi7v3VML55Q==,type:float]",
"index_key": "ENC[AES256_GCM,data:TDReOsfHx4IuBN4=,iv:7ahlJF1u/4whhpcBDQhr+8bgC7KrIRxVgtLaYGtlGWI=,tag:h24o73sqE2BYWlgFYdF7Xg==,type:str]",
"schema_version": "ENC[AES256_GCM,data:2g==,iv:n8IvQaa1oe091vo/E8jWGBVeD2NKHLytLA1nQyo+Af4=,tag:ij0ITTvoT+vrThgF2luERQ==,type:float]",
"attributes": {
"fingerprint": "ENC[AES256_GCM,data:NwFTy1u4mP1a4i4OTL/BMPGYnDmv8CQhAq7iC6+GUhPur9iHXF9oyBtL4kcQGiY=,iv:h6VOhcEmSjU1sUKBEKQlmDlfw5X0L2zwtBre6WihrkA=,tag:nJcdtTG+ZAwDDd9z1GOypA==,type:str]",
"id": "ENC[AES256_GCM,data:F4UMuwAVtoQ=,iv:Kp/0geAST1NEFvba6zuwSUlXUsrwAwEJrCB4UdhhCzQ=,tag:cdaHk6gcZl+7BOkLpdHlPg==,type:str]",
"fingerprint": "ENC[AES256_GCM,data:e0Xfgfd7BO/ZsCsK16SY68bzSRXzKnnBWgHWuZTAokCsyPuvgptKt4oht3VxjpM=,iv:huxEQIJ+WLLQzgoQG7Jci9I7O8mNMI6ItPwzhZfmm90=,tag:2gE6gij5Qc9/dLIdrLZcmw==,type:str]",
"id": "ENC[AES256_GCM,data:MeNCJvKPwEQ=,iv:yzLmn7MPAyRZVxx7hQXX8+mP+lG+RbNLnVSxz29ERYQ=,tag:CFAJ5BTBvGyfQhV/2ygV1A==,type:str]",
"labels": {},
"name": "ENC[AES256_GCM,data:F87tUQGP6NuWxYE=,iv:lbzKwcdbPH78GXZx91YM4whxvmWDTsDqiQDREP4Evqg=,tag:e9K9vRXVKkRrYKMlX8KQuQ==,type:str]",
"public_key": "ENC[AES256_GCM,data:03w/6Kq+vlHS8tUIaCZi1v0UQvzm5kLOFp3HeixIi1PXln+HPN/SG+1gqydy3I/092wOHM73+MoJJl7saiQsaVYJ3+joUbha68bzcsZlYXC7esoBK1yXyQwtrjG+k+KwG9KtHTid,iv:7Xsh7ucO6ey7TJ6g6ang9zabhWWxM8eT/xCHnWU63sg=,tag:GCwzx/Gn/CXXg9T1/kmv6w==,type:str]"
"name": "ENC[AES256_GCM,data:M43MNH5ibQb/sIY=,iv:f4CnHbzDOXgWocUsqLn4ksITdLdCqGTlrv3I5esWT14=,tag:paFnD+eyjI41z3Uitgq79w==,type:str]",
"public_key": "ENC[AES256_GCM,data:x+OEg8f9WRHFDItkRI1ys5jOpztN+kmSS1rvcfKNokPpGUV5JSkqh+hOnVjvH5guskrI5eCkKlnru6ECYy4yY+GTf5ku6XN3u2SStrwqYZKkVTQ60RwWKA4yERAG+Um+KqRpOgv+,iv:QtkWZeTF0eTaEFVikwX2YnGd09tv8FJS3zUxHIbOkvE=,tag:2BnIKeD9PoPmi5/ArDQgdg==,type:str]"
},
"sensitive_attributes": []
},
{
"index_key": "ENC[AES256_GCM,data:moaucXTpKw==,iv:lIXISPL6v3xl/u7hs5xy4A+7ZIbACKE3SgfcYAW6C0Y=,tag:RKF9bQ8aNcFRTiUv+fLHUQ==,type:str]",
"schema_version": "ENC[AES256_GCM,data:uA==,iv:rnOxR6FLb9wkR3vb85dZl+AYgfe8e8CSaRimY5jovJk=,tag:URshIBrXz+KCZUm/8MFkFw==,type:float]",
"index_key": "ENC[AES256_GCM,data:6+yhR0iomQ==,iv:OPCjwUWHDtUFGrW4kMPmIG0rEl7zV1Vm0+CxJo4YBco=,tag:3Tsp8euSgfVITqbT5J41Kw==,type:str]",
"schema_version": "ENC[AES256_GCM,data:KQ==,iv:A3kRc+lmwzikXE+Tps8ngDThNtOxkapiM04N6ZYQK2M=,tag:kjyszIBCzFz5uXRC3COv6w==,type:float]",
"attributes": {
"fingerprint": "ENC[AES256_GCM,data:n+az56giHMadO+CwgUthkfAHi5yLAjY9QXujxoajOgKiFGv2J8GhUum2kmEhw2g=,iv:h+Uzjmotl99+MNgWgXNLGQFVjC6gyJn4zTMTw3ujqg0=,tag:vIoY0xRMsdeMKqm7k3iZjw==,type:str]",
"id": "ENC[AES256_GCM,data:Ct4swQav1lM=,iv:FVDfkLhqWLshuiJPr+oy0JEgrF67ndheT8uQCLp8/44=,tag:mfs2bFVMhLr8K3zZSB2GIw==,type:str]",
"fingerprint": "ENC[AES256_GCM,data:JsvEP3wYFF2XyRY2bfpKTtqjbkGEwp65dtgPSlRvhU7y0o54cFCeRnN2mdeKo5c=,iv:bW7wr3Zb4R1OXBCayqdlBCdbeJ+d0dSAWFyfWdMPaBQ=,tag:xy8xsKDVUi34w4WANdB0MQ==,type:str]",
"id": "ENC[AES256_GCM,data:WY6egKgMOUE=,iv:+D4D/RiGRv9vZzNGeAE7SEstzqNsXMHoKPRCTqWJpiQ=,tag:X0w+yeWGdv2wuWAMO31TPg==,type:str]",
"labels": {},
"name": "ENC[AES256_GCM,data:Oji+flSRUQ==,iv:hW1gAP3qihxv+eC4YFIBK6RcdpoiaCS7Me8jXLSdggc=,tag:Pk5X1V/q/PZu0Jt2mdHpgA==,type:str]",
"public_key": "ENC[AES256_GCM,data:kdMCwHzviD8ISBjMvwRYAcjMxpVxF2GMmcTDDmFmw6ggZ/jKaJ3ZbA/Ccm/9EiT5ljjZ6+k4CORCdW+1/+saCxlfSxkv56U1Rocd3PChN+8GkSEl7ye9M1fb8uI7UTq1MLY=,iv:qArhGA8GOLFMaeOipmdjDkaUJ+V/Uxadjln+95Yu9nI=,tag:Ub5P4jiPIE0rVfMht+pfow==,type:str]"
"name": "ENC[AES256_GCM,data:oTZ+ZuGPDA==,iv:fZisS7Sdjc3+f+N3TALTzY2xjuyW/kYkVWiir7wwj20=,tag:FO9Ano/CS3vROA9VaejueA==,type:str]",
"public_key": "ENC[AES256_GCM,data:15nVveBISnM2L5UEliVVUzduy+KkFYtgaze8lzZiw4PjusaKCy/t2hFq3aO/4eXyI5+GgUAm24ALqhz76XmFCZUeduFqALc+KkDK2bhq1tBoiustl4LenQTG6SXJKMi8WHo=,iv:tFpujJ23sdGIfzXL/rujMKRDgLU8EWVwUM5dKyGcmJk=,tag:iFUFASZ6U6YzES1pi2k8uA==,type:str]"
},
"sensitive_attributes": []
}
@ -230,11 +199,11 @@
"age": [
{
"recipient": "age1cl3d4wtrrqrgldmrzpu53q2mk60r7hrhrymsrwss8s57z4mdv9fst4a55h",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJRWZ1M1RBdWVrbFFPeERw\nRm1xckgzbHRkb01lRjB3aCsyMVRmcDk2VWk0CnZYUVN5bGI2aUpLWnZvYjhlaVdz\nLzM0UUJjU1FES1YveGl6Q2sva281SEkKLS0tIFpxWTl6NmQ5SDVBZGhyZ3hPTmxE\ndXE2Y3lzRFkwV0p2Zm94QmsxY0V6Qm8KxrewWpIToP8UZaVJBIX5jbUhPcsGa/dV\nFvPj9kg3MnNc0v3Z+9hz7YeGzrQGesaSJ3nXwiQnykqrTDLwxLm/pQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4Mk83dFVmU2U3TnZuN2hV\nV1VzeVF0VEhjS240eWNYVzlrd1BZblVNRXg0CkFCcENEOEwycENhek1URVpnVDU3\nbWdlWjl4MmdkVnE1WlV5ZktIeXE5VXcKLS0tIFIvaXRmcXJrd1lCRittL2RRbzE4\nT1NTZHFIYVpMQ3NnS3k2a1EweWQybzAKIB3F35BIDS8FSXw5WJpp5vuDgewXSAu5\noisA/57DwKXPqtq6hBSqCb2uuEncw3qL3hqQ1KShvpodKgNJCZ3ikQ==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-03-15T11:23:51Z",
"mac": "ENC[AES256_GCM,data:eFqyW3soabpE9wskRyDQ5oDt1RbFZTs8XXGF9yl/605Cngsn3uXE6hADL3pCall5nLc1b3CNZdjOpsyqcInoVv7CAGEfFr9rQbOICFKcCrwSUVvrWQMVtRpBFYUTeovLCGT4KpELf2HOPmBEXEo2OJVP53yvx7jzyyMQw+W+JqY=,iv:nZ26Jf9BATDEux7CmCVzbeiUeVKrJ7F3wYPma/D1Xkk=,tag:jVS5HzCgh+5LMsGy9++gjg==,type:str]",
"lastmodified": "2025-03-23T17:48:10Z",
"mac": "ENC[AES256_GCM,data:kpP6/rIp2MKrwZwlKpLSPeOJBNclN+V0u8tnONpCXoIN8KHRG/v4vKrAak6LcaJBmdPkbDP8zSRaKUznRvQFSmkKlUXzltjjLFJVu6/oMHhr3dnh1AXXreC5fXCzTtUMqz8gHDt2ll/cMUeYr3+YS6rMTmIbqlJifax9IJAGaHU=,iv:kCPiYfjqXkVNraAvNZZUr2Qc4pwxTcnSafkqAdbLcLo=,tag:s1H3YtRH1nQXJP/tgzR62A==,type:str]",
"pgp": null,
"unencrypted_suffix": "_unencrypted",
"version": "3.9.4"

File diff suppressed because it is too large Load diff

View file

@ -73,6 +73,7 @@ records = {
"stuff.tjo.space" = { to = "any.ingress.tjo.cloud" }
"vault.tjo.space" = { to = "any.ingress.tjo.cloud" }
"yt.tjo.space" = { to = "any.ingress.tjo.cloud" }
"books.tjo.space" = { to = "any.ingress.tjo.cloud" }
# CLOUD.TJO.SPACE
"cloud.tjo.space" = { to = "any.ingress.tjo.cloud" }
"collabora.tjo.space" = { to = "any.ingress.tjo.cloud" }

View file

@ -66,20 +66,20 @@ provider "registry.opentofu.org/hashicorp/helm" {
}
provider "registry.opentofu.org/hashicorp/kubernetes" {
version = "2.31.0"
constraints = "2.31.0"
version = "2.36.0"
constraints = "2.36.0"
hashes = [
"h1:z2qlqn6WbrjbezwQo4vvlwAgVUGz59klzDU4rlYhYi8=",
"zh:0dd25babf78a88a61dd329b8c18538a295ea63630f1b69575e7898c89307da39",
"zh:3138753e4b2ce6e9ffa5d65d73e9236169ff077c10089c7dc71031a0a139ff6d",
"zh:644f94692dc33de0bb1183c307ae373efbf4ef4cb92654ccc646a5716edf9593",
"zh:6cc630e43193220b1599e3227286cc4e3ca195910e8c56b6bacb50c5b5176dbf",
"zh:764173875e77aa482da4dca9fec5f77c455d028848edfc394aa7dac5dfed6afd",
"zh:7b1d380362d50ffbb3697483036ae351b0571e93b33754255cde6968e62b839f",
"zh:a1d93ca3d8d1ecdd3b69242d16ff21c91b34e2e98f02a3b2d02c908aeb45189b",
"zh:b471d0ab56dbf19c95fba68d2ef127bdb353be96a2be4c4a3dcd4d0db4b4180a",
"zh:d610f725ded4acd3d31a240472bb283aa5e657ed020395bdefea18d094b8c2bf",
"zh:d7f3ddd636ad5af6049922f212feb24830b7158410819c32073bf81c359cd2fa",
"h1:eHxAqiBgRe3rEy9aXtOrW/kEr33cyXBonseKSDdXwlw=",
"zh:15e42a6f8c6be77e0266edfb3765065c01e8fbcc8d75c794f1442f39cd9e6cfb",
"zh:2387195e7c80bc3ba93162c5c755482828b309a275d170e0c329145894dc6cb2",
"zh:27775d6f0b53a76c3f91689e553461a10ab2e07f7066ccb7cc0dce2cb8abf72f",
"zh:28e77e1dfafe5881bc28bec76e22735e4be2dcde468a8f3f08f32a52c6f1938e",
"zh:89b6571d33b6607499683b7b1fdfb95576ed08ab80539537c5460de1455df424",
"zh:91cdad0f3a5cb4a82669703f6f017b07e434748cff9b8991432043c733ae50a7",
"zh:a566611bc563c4e8ac843f6b6b868cf8dce2eccb908bd7605040b553983dc5e3",
"zh:d4efb26732e5fbd4e6a5e4c10eea62628d669c9c76e52c6485417c1e0a60fd99",
"zh:e87d8edc93920b75b88e7fb8d1a7941f2b7facc89931b72e4c74fcf137baee91",
"zh:f173c9c66edb046715db10adce1d603fe989a3634b26bb81d556de3de548bd94",
]
}

View file

@ -1,8 +1,8 @@
{
"version": "ENC[AES256_GCM,data:hQ==,iv:SRTQIb6HfAKhSY1zlWeE+QEmHXGytwXCW7Lt0cQ3o0E=,tag:ggb21AsH+1ayDRobWijMLA==,type:float]",
"terraform_version": "ENC[AES256_GCM,data:L987HqY=,iv:MjR4VTecmTbfvXzte+pf676kR+0jx5drRzNW1PkOjWY=,tag:+X3uC6aomOcUH8hrbg3juQ==,type:str]",
"serial": "ENC[AES256_GCM,data:Ig==,iv:Mudn77z6+QUKMKT19DIRVqa92hc0tU607Fw2Ny2D6zg=,tag:NUHvAA0KUOoPMcXSYtvboA==,type:float]",
"lineage": "ENC[AES256_GCM,data:w0xVqbAsDPgkGTvUJspkzPnXG7ZLVvewDxNP3et4V1zxydwY,iv:U/YQBe/kPbuzwcV4st3sRasPkI2rGNMmfvPFapjGFTQ=,tag:cTtlxkTzKHsFkxMCpicKhw==,type:str]",
"version": "ENC[AES256_GCM,data:7Q==,iv:qBpnl3QJZYt4mCTgCyIs9SshaLv+9bCo7l3jaeNMUrI=,tag:/IdwKQtOcd6S7NEN3mtLEA==,type:float]",
"terraform_version": "ENC[AES256_GCM,data:+WOSk5w=,iv:KctJc+UkVTwDC8/CbD5JL5bUgwzRDtol6XfD2nOrK8w=,tag:UHfREDni3R1+/cn6xdC0cw==,type:str]",
"serial": "ENC[AES256_GCM,data:Sg==,iv:P+b80nmFPNN5vuNpj7ZL6UFCPnbe0D6i5UzgTRYsaXo=,tag:j5BDN0U6QSBuTLFT+WHEyw==,type:float]",
"lineage": "ENC[AES256_GCM,data:coFk/wnsqc9+XPR7758b7UBBZFwmdGBqmvWr6Bwkwbrh1mT8,iv:x5l6+5S5HVLzNL3gL+P6fVsbVYiuy4vyqSZKHGWdL/E=,tag:iQWzUJxGIQoyqXSVXPcaGw==,type:str]",
"outputs": {},
"resources": [],
"check_results": null,
@ -14,11 +14,11 @@
"age": [
{
"recipient": "age1cl3d4wtrrqrgldmrzpu53q2mk60r7hrhrymsrwss8s57z4mdv9fst4a55h",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2dS8zZU5UOVdFNFNaMkxo\nN011RUl4Z2VkQW1PcHdkMWd6SEErMkVhQXlVClMxMmVhSVVZN216bDdMTW8xa1Y5\nV3JzcVdpVHpoZ0VjaUlueDFiTEU3OW8KLS0tIHU5bi9kL29iVElDUk1FSTZvVThV\nWWErNy90QjQ0aTFXUVRsY0lyTkFoK2MKpZL2BUYzt8yHP2+Y4eXfY5gl+QqxEALY\nN2dEyOWfORttfRcbDjrwVRyXcL1Rvrs1oKzeTaW+fpVQ7kaNorwpLQ==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhSVpiSUJqZEdVbVlab3J0\ndEkvVEJyLzFxazVmU2RvR3B5K09qdGY5cTJ3CmRmZEtGNFhUclRUUGVXTHlOdmRK\nS1pZR2hqOTd2TlRCa0pYWnhJQU5kQzQKLS0tIC9obWgyS1FvTUhNbGd4WjR2elVT\nN1JMRTBRaUd5SnVpVlZ6cGk3aERBZkkKgiby2nYfUbsrn3ag7ozJaZYQQ84peQj3\nzgLodbz4jBViwDCVZYunM0jsv+HGqZfTZ8fFS8LfYgRXdKwYB2MV+g==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-03-15T11:23:51Z",
"mac": "ENC[AES256_GCM,data:yurRnKt0iJKDsidcu487aQP16+F0XCL4nwRyyO/GQ3T4i/LBbABvCxTxNsBiiitJpTcrnmWaMH3rNkCSgTuWDRYYzYIPNhqI0bNJt3Aqu68uCNLiZMzNfKIiMmLmUAQG9U7v1QrdyPntkh3QcpZB4YUABcUsM+jNMDCVBql39B0=,iv:CcxUXYbPLweMvCgMSMsNsBdLRANugqGSYDyIYKG5+Pc=,tag:7Xqkrb+2M0hU75oIZXJz9w==,type:str]",
"lastmodified": "2025-03-23T17:48:10Z",
"mac": "ENC[AES256_GCM,data:pRd7Wd1TnjwKBeZvFLTD6GbWbZcs7K5iVr9W1D13JrbXZ+H/6fR9uCbxFPmcCkuSH1KcVn4wVh43AnARe73uCfYq+E8zO6B0bi+HtmWI/pIHvmNX4C8inO2GPsQuSyhEX/JIIvSHkhrGSarG0WKD/3qYvr9DxKLo9i67mklirLI=,iv:GrAu21pb5A1APkdLNcUikNjJIKkeSsYDxy96seFgEF4=,tag:Xl5a9wp9HH2icHKorMQkpw==,type:str]",
"pgp": null,
"unencrypted_suffix": "_unencrypted",
"version": "3.9.4"

View file

@ -111,6 +111,5 @@ module "cluster-components" {
dnsimple_token = var.dnsimple_token
dnsimple_account_id = var.dnsimple_account_id
cluster_name = module.cluster.name
cluster_domain = "k8s.tjo.cloud"
}

View file

@ -12,7 +12,7 @@ terraform {
}
kubernetes = {
source = "hashicorp/kubernetes"
version = "2.31.0"
version = "2.36.0"
}
}
}

View file

@ -1,11 +1,11 @@
# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.79.2/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml
# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.81.0/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.5
operator.prometheus.io/version: 0.79.2
controller-gen.kubebuilder.io/version: v0.17.2
operator.prometheus.io/version: 0.81.0
name: podmonitors.monitoring.coreos.com
spec:
group: monitoring.coreos.com
@ -900,6 +900,7 @@ spec:
If empty, Prometheus uses the global scrape timeout unless it is less
than the target's scrape interval value in which the latter is used.
The value cannot be greater than the scrape interval otherwise the operator will reject the resource.
pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
type: string
targetPort:

View file

@ -1,11 +1,11 @@
# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.79.2/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.81.0/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.5
operator.prometheus.io/version: 0.79.2
controller-gen.kubebuilder.io/version: v0.17.2
operator.prometheus.io/version: 0.81.0
name: servicemonitors.monitoring.coreos.com
spec:
group: monitoring.coreos.com
@ -817,6 +817,7 @@ spec:
If empty, Prometheus uses the global scrape timeout unless it is less
than the target's scrape interval value in which the latter is used.
The value cannot be greater than the scrape interval otherwise the operator will reject the resource.
pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
type: string
targetPort:

View file

@ -8,7 +8,7 @@ terraform {
}
kubernetes = {
source = "hashicorp/kubernetes"
version = "2.35.1"
version = "2.36.0"
}
}
}

View file

@ -31,7 +31,7 @@ terraform {
}
kubernetes = {
source = "hashicorp/kubernetes"
version = "2.31.0"
version = "2.36.0"
}
}
}

View file

@ -26,7 +26,7 @@ terraform {
}
kubernetes = {
source = "hashicorp/kubernetes"
version = "2.31.0"
version = "2.36.0"
}
}

File diff suppressed because one or more lines are too long

1
network.tjo.cloud/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
iso

View file

@ -79,16 +79,20 @@ tofu import 'proxmox_virtual_environment_network_linux_bridge.vmbr0["nevaroo"]'
### 4. Set Password (see bitwarden)
### 5. Setup initial network.
```
# Fix want to use eth1.
# Remove all mentions of lan.
vim /etc/config/network
service network restart
```
### 5. Setup Tailscale.
Ref: https://github.com/adyanth/openwrt-tailscale-enabler
```
opkg update
opkg install ca-bundle kmod-tun iptables-nft kmod-ipt-conntrack kmod-ipt-conntrack-extra kmod-ipt-conntrack-label kmod-ipt-nat kmod-nft-nat
/etc/init.d/tailscale start
/etc/init.d/tailscale enable
tailscale up --advertise-routes=10.0.0.0/16,fd74:6a6f:0::/48 --accept-dns=false --ssh
wget -0 - https://code.tjo.space/tjo-cloud/infrastructure/raw/branch/main/network.tjo.cloud/scripts/openwrt-initial-setup.sh | bash
```
### 6. Configure.

View file

@ -1,6 +1,14 @@
default:
@just --list
download:
#!/usr/bin/env sh
set -euo pipefail
mkdir -p {{source_directory()}}/iso
curl -L -o - https://downloads.openwrt.org/releases/23.05.5/targets/x86/64/openwrt-23.05.5-x86-64-generic-ext4-combined-efi.img.gz \
| gunzip > {{source_directory()}}/iso/openwrt-23.05.5-x86-64-generic-ext4-combined-efi.img
apply:
#!/usr/bin/env sh
cd {{source_directory()}}/terraform
@ -10,7 +18,13 @@ apply:
destroy:
#!/usr/bin/env sh
cd {{source_directory()}}/terraform
tofu destroy
tofu destroy
destroy-only node:
#!/usr/bin/env sh
cd {{source_directory()}}/terraform
tofu destroy -target='proxmox_virtual_environment_vm.nodes["{{node}}"]'
configure-all:
#!/usr/bin/env sh

View file

@ -0,0 +1,15 @@
#!/bin/bash
set -eou pipefail
opkg update
# QEMU
opkg install qemu-ga
# TAILSCALE
opkg install ca-bundle kmod-tun iptables-nft kmod-ipt-conntrack kmod-ipt-conntrack-extra kmod-ipt-conntrack-label kmod-ipt-nat kmod-nft-nat
/etc/init.d/tailscale start
/etc/init.d/tailscale enable
tailscale up --advertise-routes=10.0.0.0/16,fd74:6a6f:0::/48 --accept-dns=false --ssh

View file

@ -2,24 +2,24 @@
# Manual edits may be lost in future updates.
provider "registry.opentofu.org/bpg/proxmox" {
version = "0.61.1"
constraints = "0.61.1"
version = "0.73.1"
constraints = "0.73.1"
hashes = [
"h1:6kz2Rdjc8+TVq2aUxEQXLOwbb9OdhJJei0L1fC4K2R4=",
"zh:27d8b589a2dc1e0a5b0f8ab299b9f3704a2f0b69799d1d4d8845c68056986d1f",
"zh:46dfa6b33ddd7007a2144f38090457604eb56a59a303b37bb0ad1be5c84ddaca",
"zh:47a1b14a759393c5ecc76f2feb950677c418c910b8c677fde0dd3e4675c41579",
"zh:582e49d109d1c2b1f3b1268a7cbc43548f3c6d96a87c92a5428767097a5e383e",
"zh:5e98ad6afae5969a4c3ffb14c0484936550c66c8313d7686551c29b633ff32f2",
"zh:7b9e24b76f947ab8f1e571cf61beefc983b7d2aa1b85df35c4f015728fe37a38",
"zh:8255ca210f279a0f7b8ca2762df26d2ea1a01704298c5e3d5cf601bd39a743f0",
"zh:85d7655fdc95dedced9cf8105a0beeb0d7bc8f668c55f62019a7215a76d60300",
"zh:8aeea5a1d001b06baaf923b754e1a14d06c75eb8c8b87a7f65a3c8205fc8b079",
"zh:a9cfab6c06f613658c5fdd83742cd22c0eb7563778924b1407965ef8c36c1ce0",
"zh:ceaab67801d49a92eb5858b1ddae6df2569462e5ffbe31f9dbd79dcb684ea142",
"zh:dc25b506d5c55d1d78a335d3ebd03213c99b4b2a5859812349a955c2f746ff7e",
"zh:e04b477fd77a0d37a0bdb76a7cf69184dad9e7fbba9b4f3a378a8901b82b75e5",
"zh:f1e6838d9141557f73340df9b21fce5a82b41cc16ae36f063a920ccc36bc0758",
"h1:mJqYDYee5WnL6Nejrzk4xRWB5ozbgLtGIDBagldpoj8=",
"zh:094ee6bcd664890918e30ff602d9042a94d6c9e7e687ecd76ccaf39f6019d32f",
"zh:09fd81a2088e280a4947ce7aa6de97612129befccedcbe12ba74ffb8f77c547b",
"zh:488c284e1aed1ef9ed6587956b84ad96433cbecb6c373998a594febac206df5f",
"zh:52668ff9af14662f06fc0bdaeb633fe76d6c4bfbe0024b447d32ca3424b2c136",
"zh:548e7889b0d32d11a4c18aa4c5444291086010eef62d952f84740669788d8bc8",
"zh:5fcaf8ea3e2f0657947394993a5e1f41f4e21f0676a408624c9fc44489e5d59f",
"zh:67949764ca14d110aa94ea92d54e9e337f382932454e28d0ded389bd65d8d0fd",
"zh:7d8263ecdd98f558e88afa95628b3c4e0b8480aa77b470bbc5695fd8e5206109",
"zh:95d9615af70eb73eeb0f1d895baf8c8d9f9c71e7f40143dcb0bf1aa4c792fde4",
"zh:af8c3d8289cfd02ba7e2fcf73e325d7950cba113775139b3123d2cdd806c3cdd",
"zh:ba5b81aeab7a9e84bcbffea4b372252088add1ad6af0a34f0702c0fc0abdf04b",
"zh:d94842ce37447c2cf8981ad602ab4d2f410ee5e724a78611472c87f791f4458d",
"zh:da2d5adc66d7b305ca114ceeecf5133f32211640c9870c4b5e7c7782982a40e3",
"zh:f26e0763dbe6a6b2195c94b44696f2110f7f55433dc142839be16b9697fa5597",
"zh:fb762b9c687fb143116bda5f8a29ca8d61d65a2fcf1bed772828d1b3ff91db5e",
]
}

View file

@ -90,7 +90,8 @@ Repo: https://code.tjo.space/tjo-cloud/network
}
agent {
enabled = false
enabled = true
timeout = "10s"
}
network_device {

View file

@ -2,7 +2,7 @@ terraform {
required_providers {
proxmox = {
source = "bpg/proxmox"
version = "0.61.1"
version = "0.73.1"
}
}
@ -42,5 +42,11 @@ provider "proxmox" {
address = "mustafar.system.tjo.cloud"
port = 22
}
node {
name = "endor"
address = "endor.system.tjo.cloud"
port = 22
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,61 @@
#!/bin/bash
set -euo pipefail
SERVICE_DIR="/root/service"
mkdir -p ${SERVICE_DIR}
cd ${SERVICE_DIR}
echo "== Fetch Source Code (from git)"
# Clone if not yet cloned
if [ ! -d .git ]; then
git clone \
--depth 1 \
--no-checkout \
--filter=tree:0 \
https://github.com/tjo-space/tjo-cloud-infrastructure.git .
git sparse-checkout set --no-cone /id.tjo.cloud
git checkout
else
git fetch --depth=1
git reset --hard origin/main
fi
echo "=== Copy Configuration Files"
rsync -a id.tjo.cloud/root/ /
systemctl daemon-reload
echo "=== Prepare srv directories"
mkdir -p /srv/authentik/{media,certs,custom-templates}
chown -R 1200:1200 /srv/authentik
mkdir -p /srv/postgresql/{data,backups}
echo "=== Read Secrets"
age -d -i /etc/age/key.txt id.tjo.cloud/secrets.env.encrypted >id.tjo.cloud/secrets.env
set -a && source id.tjo.cloud/secrets.env && set +a
echo "=== Prepare Configurations"
cat <<EOF >/etc/postgresql/secrets.env
POSTGRES_PASSWORD=${POSTGRESQL_PASSWORD}
EOF
cat <<EOF >/etc/authentik/secrets.env
AUTHENTIK_SECRET_KEY=${AUTHENTIK_SECRET_KEY}
AUTHENTIK_EMAIL__PASSWORD=${AUTHENTIK_EMAIL__PASSWORD}
AUTHENTIK_POSTGRESQL__PASSWORD=${POSTGRESQL_PASSWORD}
EOF
echo "=== Setup Caddy"
systemctl restart caddy
echo "=== Setup Postgresql"
systemctl restart postgresql
systemctl start postgresql-backup.timer
echo "=== Setup Valkey"
systemctl restart valkey
echo "=== Setup Authentik Server"
systemctl restart authentik-server
echo "=== Setup Authentik Worker"
systemctl restart authentik-worker

View file

@ -1,144 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
##
echo "== Fetch Source Code (from git)"
# We store all initial configs in the /srv location
cd /srv
# Clone if not yet cloned
if [ ! -d .git ]; then
git clone \
--depth 1 \
--no-checkout \
--filter=tree:0 \
https://github.com/tjo-space/tjo-cloud-infrastructure.git .
git sparse-checkout set --no-cone /ingress.tjo.cloud
git checkout
else
git fetch --depth=1
git reset --hard origin/main
fi
# Enter ingress directory
cd /srv/ingress.tjo.cloud
##
echo "== Configure Metadata"
SERVICE_NAME="ingress.tjo.cloud"
SERVICE_VERSION="$(git describe --tags --always --dirty)"
CLOUD_REGION="$(hostname -s)"
SERVICE_ACCOUNT_USERNAME=$(jq -r ".service_account.username" /etc/tjo.cloud/meta.json)
SERVICE_ACCOUNT_PASSWORD=$(jq -r ".service_account.password" /etc/tjo.cloud/meta.json)
TAILSCALE_AUTH_KEY=$(jq -r ".tailscale.auth_key" /etc/tjo.cloud/meta.json)
DNSIMPLE_TOKEN=$(jq -r ".dnsimple.token" /etc/tjo.cloud/meta.json)
##
echo "== Install Dependencies"
apt update -y
apt install -y \
gpg \
git \
ufw \
nginx \
nginx-extras \
libnginx-mod-http-geoip2 \
libnginx-mod-stream-geoip2
# Grafana Alloy
mkdir -p /etc/apt/keyrings/
wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor >/etc/apt/keyrings/grafana.gpg
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" >/etc/apt/sources.list.d/grafana.list
apt update -y
apt install -y alloy
# Tailscale
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.noarmor.gpg >/usr/share/keyrings/tailscale-archive-keyring.gpg
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.tailscale-keyring.list >/etc/apt/sources.list.d/tailscale.list
apt update -y
apt install -y tailscale
##
echo "== Configure Grafana Alloy"
cp -r root/etc/alloy/* /etc/alloy/
cp -r root/etc/default/alloy /etc/default/alloy
# Set Attributes
ATTRIBUTES=""
ATTRIBUTES+="service.name=${SERVICE_NAME},"
ATTRIBUTES+="service.version=${SERVICE_VERSION},"
ATTRIBUTES+="cloud.region=${CLOUD_REGION}"
{
echo ""
echo "OTEL_RESOURCE_ATTRIBUTES=${ATTRIBUTES}"
echo "ALLOY_USERNAME=${SERVICE_ACCOUNT_USERNAME}"
echo "ALLOY_PASSWORD=${SERVICE_ACCOUNT_PASSWORD}"
} >>/etc/default/alloy
systemctl enable --now alloy
systemctl restart alloy
##
echo "== Configure Dyndns"
cp root/etc/systemd/system/dyndns.service /etc/systemd/system/dyndns.service
cp root/usr/local/bin/dyndns /usr/local/bin/dyndns
cp -r root/etc/default/dyndns /etc/default/dyndns
{
echo ""
echo "DNSIMPLE_TOKEN=${DNSIMPLE_TOKEN}"
echo "CLOUD_REGION=${CLOUD_REGION}"
} >>/etc/default/dyndns
systemctl enable --now dyndns
systemctl restart dyndns
##
echo "== Configure Tailscale"
systemctl enable --now tailscaled
if tailscale status --json | jq -e -r '.BackendState != "Running"' >/dev/null; then
tailscale up \
--ssh=true \
--accept-routes=true \
--accept-dns=false \
--advertise-tags="tag:ingress-tjo-cloud" \
--hostname="$(hostname -f | sed 's/\./-/g')" \
--authkey="${TAILSCALE_AUTH_KEY}"
else
echo "Tailscale is already running"
fi
##
echo "== Configure SSH"
cat <<EOF >/etc/ssh/sshd_config.d/port-2222.conf
Port 2222
EOF
systemctl restart ssh
##
echo "== Configure UFW"
# Should basically match nginx.conf
ufw default deny incoming
ufw default allow outgoing
ufw allow in on tailscale0
ufw allow 22 # GIT
ufw allow 25 # EMAIL
ufw allow 143 # EMAIL
ufw allow 443 # HTTPS
ufw allow 465 # EMAIL
ufw allow 587 # EMAIL
ufw allow 993 # EMAIL
ufw allow 1337 # HTTP (healthcheck)
ufw allow 4190 # EMAIL
ufw allow 2222 # SSH ACCESS
ufw --force enable
systemctl enable ufw
##
echo "== Configure NGINX"
cp assets/dbip-city-lite-2023-07.mmdb /var/geoip.mmdb
cp -r root/etc/nginx/* /etc/nginx/
unlink /etc/nginx/sites-enabled/default || true
systemctl enable --now nginx
systemctl reload nginx

View file

@ -0,0 +1,16 @@
#!/bin/bash
set -euo pipefail
pushd "$(mktemp -d)"
echo "=== Installing Dependencies"
DEBIAN_FRONTEND=noninteractive apt update -y
DEBIAN_FRONTEND=noninteractive apt install -y \
rsync \
jq \
podman \
age
echo "=== Generating Age Key"
mkdir -p /etc/age
age-keygen -o /etc/age/key.txt

View file

@ -0,0 +1,2 @@
[Network]
IPv6=true

View file

@ -0,0 +1,22 @@
[Unit]
Description=A Postgresql Container
[Container]
# Make sure the postgres image/version matches the one in backup service.
Image=docker.io/postgres:17.4
Volume=/srv/postgresql/data:/var/lib/postgresql/data
EnvironmentFile=/etc/postgresql/secrets.env
Environment=POSTGRES_USER=id.tjo.space
Environment=POSTGRES_DB=id.tjo.space
Network=main.network
AutoUpdate=registry
HealthCmd=pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}
HealthStartPeriod=20s
[Service]
Restart=always
[Install]
WantedBy=multi-user.target
RequiredBy=authentik-server.service
RequiredBy=authentik-worker.service

View file

@ -0,0 +1,3 @@
#!/bin/bash
echo "CURRENT_DATE=$(date +%Y_%m_%d)"
echo "CURRENT_DATETIME=$(date +%Y-%m-%d_%H-%M-%S)"

View file

@ -0,0 +1,31 @@
[Unit]
Description=Backup PostgreSQL databases
Requires=main-network.service
Requires=postgresql.service
After=main-network.service
After=postgresql.service
RequiresMountsFor=/srv/postgresql/backup
RequiresMountsFor=%t/containers
[Service]
Delegate=yes
Type=notify
NotifyAccess=all
SyslogIdentifier=%N
Environment=PODMAN_SYSTEMD_UNIT=%n
KillMode=mixed
EnvironmentFile=/etc/postgresql/secrets.env
EnvironmentFile=/etc/postgresql/postgresql.env
Environment=BACKUP_DIR=/srv/postgresql/backups
Environment=POSTGRES_HOST=systemd-postgresql
ExecStartPre=/usr/bin/systemctl stop authentik-server authentik-worker
ExecStartPre=/usr/bin/mkdir -p $BACKUP_DIR
ExecStart=/usr/bin/podman run --name=systemd-%N --cidfile=%t/%N.cid --cgroups=split --sdnotify=conmon --detach --replace --rm --network systemd-main -v ${BACKUP_DIR}:/backups -e PGPASSWORD=${POSTGRES_PASSWORD} docker.io/library/postgres:17.4 pg_dump --username=${POSTGRES_USER} --host=${POSTGRES_HOST} --format=custom --file=/backups/${CURRENT_DATETIME}.sql ${POSTGRES_DB}
ExecStop=/usr/bin/podman rm -v -f -i --cidfile=%t/%N.cid
ExecStopPost=-/usr/bin/podman rm -v -f -i --cidfile=%t/%N.cid
ExecStopPost=/usr/bin/systemctl start authentik-server authentik-worker

View file

@ -0,0 +1,13 @@
[Unit]
Description=Backup PostgreSQL databases daily
Requires=postgresql.service
After=postgresql.service
[Timer]
OnCalendar=daily
AccuracySec=1h
Persistent=true
RandomizedDelaySec=4h
[Install]
WantedBy=timers.target

View file

@ -0,0 +1 @@
d /srv/postgresql/backups 0750 root root 10d -

View file

@ -0,0 +1,30 @@
#!/bin/bash
set -euo pipefail
# Restoring PostgreSQL Database
#
# The backup file from pg_dump (with format=custom)
# must be provided via stdin.
#
# Example:
#
# cat /path/to/backup | postgresql-backup-restore
#
echo "=== Reading Configuration"
set -a && source /etc/postgresql/postgresql.env && set +a
echo "== Stopping Authentik..."
systemctl stop authentik-server authentik-worker
echo "== Dropping and Recreating Database..."
podman exec systemd-postgresql dropdb --username="${POSTGRES_USER}" --force --if-exists "${POSTGRES_DB}"
podman exec systemd-postgresql createdb --username="${POSTGRES_USER}" "${POSTGRES_DB}"
echo "== Restoring Database..."
cat /dev/stdin | podman exec -i systemd-postgresql pg_restore \
--username="${POSTGRES_USER}" \
--dbname="${POSTGRES_DB}"
echo "== Starting Authentik..."
systemctl start authentik-server authentik-worker