diff options
| author | seth <[email protected]> | 2023-12-27 04:49:26 -0500 |
|---|---|---|
| committer | seth <[email protected]> | 2023-12-27 05:09:07 -0500 |
| commit | 773d59f2606c924de218d8d5bdfadcc875084047 (patch) | |
| tree | 10bd52f58715adb47dcf87993885d2b3989d85c5 /tf | |
| parent | 6f2a3fc6e3e20e719a4d570d883d64023db00653 (diff) | |
terranix: better handle deployments
Diffstat (limited to 'tf')
| -rw-r--r-- | tf/cloud.nix | 7 | ||||
| -rw-r--r-- | tf/cloudflare/default.nix | 21 | ||||
| -rw-r--r-- | tf/cloudflare/dns.nix | 64 | ||||
| -rw-r--r-- | tf/cloudflare/ruleset.nix | 64 | ||||
| -rw-r--r-- | tf/cloudflare/tunnels.nix | 11 | ||||
| -rw-r--r-- | tf/default.nix | 33 | ||||
| -rw-r--r-- | tf/tailscale/acl.nix | 25 | ||||
| -rw-r--r-- | tf/tailscale/default.nix | 12 | ||||
| -rw-r--r-- | tf/tailscale/devices.nix | 17 | ||||
| -rw-r--r-- | tf/tailscale/dns.nix | 5 | ||||
| -rw-r--r-- | tf/tailscale/tags.nix | 15 | ||||
| -rw-r--r-- | tf/vars.nix | 11 | ||||
| -rw-r--r-- | tf/versions.nix | 13 |
13 files changed, 0 insertions, 298 deletions
diff --git a/tf/cloud.nix b/tf/cloud.nix deleted file mode 100644 index 5ee0113..0000000 --- a/tf/cloud.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - terraform.cloud = { - hostname = "app.terraform.io"; - organization = "getchoo"; - workspaces.name = "flake"; - }; -} diff --git a/tf/cloudflare/default.nix b/tf/cloudflare/default.nix deleted file mode 100644 index 80e8e39..0000000 --- a/tf/cloudflare/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{lib, ...}: { - imports = [ - ./dns.nix - ./ruleset.nix - ./tunnels.nix - ]; - - resource = { - cloudflare_url_normalization_settings.incoming = { - scope = "incoming"; - type = "cloudflare"; - zone_id = lib.tfRef "var.zone_id"; - }; - - cloudflare_bot_management.bots = { - enable_js = false; - fight_mode = false; - zone_id = lib.tfRef "var.zone_id"; - }; - }; -} diff --git a/tf/cloudflare/dns.nix b/tf/cloudflare/dns.nix deleted file mode 100644 index 9618019..0000000 --- a/tf/cloudflare/dns.nix +++ /dev/null @@ -1,64 +0,0 @@ -{lib, ...}: let - mkRecord = name: { - value, - type, - ... - } @ args: - { - name = args.name or name; - zone_id = lib.tfRef "var.zone_id"; - ttl = 1; - inherit value type; - } - // lib.optionalAttrs (type != "TXT") {proxied = true;}; - - atlas_tunnel = lib.tfRef "data.cloudflare_tunnel.atlas-nginx.id" + ".cfargotunnel.com"; -in { - resource.cloudflare_record = builtins.mapAttrs mkRecord { - website = { - name = "@"; - value = "website-86j.pages.dev"; - type = "CNAME"; - }; - - www = { - value = "mydadleft.me"; - type = "CNAME"; - }; - - api = { - value = "teawieapi.pages.dev"; - type = "CNAME"; - }; - - miniflux = { - value = atlas_tunnel; - type = "CNAME"; - }; - - msix = { - value = atlas_tunnel; - type = "CNAME"; - }; - - # prevent email spoofing - - dmarc = { - name = "_dmarc"; - value = "v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;"; - type = "TXT"; - }; - - domainkey = { - name = "*._domainkey"; - value = "v=DKIM1; p="; - type = "TXT"; - }; - - email = { - name = "mydadleft.me"; - value = "v=spf1 -all"; - type = "TXT"; - }; - }; -} diff --git a/tf/cloudflare/ruleset.nix b/tf/cloudflare/ruleset.nix deleted file mode 100644 index 1be98aa..0000000 --- a/tf/cloudflare/ruleset.nix +++ /dev/null @@ -1,64 +0,0 @@ -{lib, ...}: { - resource.cloudflare_ruleset = { - default = { - kind = "zone"; - name = "default"; - phase = "http_config_settings"; - zone_id = lib.tfRef "var.zone_id"; - - rules = [ - { - action = "set_config"; - action_parameters = { - automatic_https_rewrites = true; - email_obfuscation = true; - opportunistic_encryption = false; - }; - description = "base redirects"; - enabled = true; - expression = "true"; - } - ]; - }; - - redirect = { - kind = "zone"; - name = "default"; - phase = "http_request_dynamic_redirect"; - zone_id = lib.tfRef "var.zone_id"; - - rules = [ - { - action = "redirect"; - action_parameters = { - from_value = { - preserve_query_string = false; - status_code = 301; - target_url = { - value = "https://www.youtube.com/watch?v=RvVdFXOFcjw"; - }; - }; - }; - description = "funny"; - enabled = true; - expression = "(http.request.uri.path eq \"/hacks\" and http.host eq \"mydadleft.me\")"; - } - { - action = "redirect"; - action_parameters = { - from_value = { - preserve_query_string = false; - status_code = 301; - target_url = { - value = "https://www.youtube.com/watch?v=RvVdFXOFcjw"; - }; - }; - }; - description = "onlyfriends"; - enabled = true; - expression = "(http.request.uri.path eq \"/onlyfriends\" and http.host eq \"mydadleft.me\")"; - } - ]; - }; - }; -} diff --git a/tf/cloudflare/tunnels.nix b/tf/cloudflare/tunnels.nix deleted file mode 100644 index bea9811..0000000 --- a/tf/cloudflare/tunnels.nix +++ /dev/null @@ -1,11 +0,0 @@ -{lib, ...}: { - data.cloudflare_tunnel = - lib.genAttrs - [ - "atlas-nginx" - ] - (name: { - inherit name; - account_id = lib.tfRef "var.account_id"; - }); -} diff --git a/tf/default.nix b/tf/default.nix deleted file mode 100644 index 0112339..0000000 --- a/tf/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{inputs, ...}: { - perSystem = { - lib, - pkgs, - system, - ... - }: let - tfConfig = inputs.terranix.lib.terranixConfiguration { - inherit system; - modules = [ - ./cloudflare - ./tailscale - ./cloud.nix - ./vars.nix - ./versions.nix - ]; - }; - in { - apps.gen-tf = { - type = "app"; - - program = pkgs.writeShellApplication { - name = "gen-tf"; - - text = '' - config_file="config.tf.json" - [ -e "$config_file" ] && rm -f "$config_file" - cp ${tfConfig} "$config_file" - ''; - }; - }; - }; -} diff --git a/tf/tailscale/acl.nix b/tf/tailscale/acl.nix deleted file mode 100644 index d27d3e1..0000000 --- a/tf/tailscale/acl.nix +++ /dev/null @@ -1,25 +0,0 @@ -{lib, ...}: { - resource.tailscale_acl.default = { - acl = toString (builtins.toJSON { - tagOwners = let - me = ["getchoo@github"]; - tags = map (name: "tag:${name}") ["server" "personal" "gha"]; - in - lib.genAttrs tags (_: me); - - acls = let - mkAcl = action: src: dst: {inherit action src dst;}; - in [ - (mkAcl "accept" ["tag:personal"] ["*:*"]) - (mkAcl "accept" ["tag:server" "tag:gha"] ["tag:server:*"]) - ]; - - ssh = let - mkSshAcl = action: src: dst: users: {inherit action src dst users;}; - in [ - (mkSshAcl "accept" ["tag:personal"] ["tag:server" "tag:personal"] ["autogroup:nonroot" "root"]) - (mkSshAcl "accept" ["tag:gha"] ["tag:server"] ["root"]) - ]; - }); - }; -} diff --git a/tf/tailscale/default.nix b/tf/tailscale/default.nix deleted file mode 100644 index 2225fd5..0000000 --- a/tf/tailscale/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{lib, ...}: { - imports = [ - ./acl.nix - ./devices.nix - ./dns.nix - ./tags.nix - ]; - - provider.tailscale = { - tailnet = lib.tfRef "var.tailnet"; - }; -} diff --git a/tf/tailscale/devices.nix b/tf/tailscale/devices.nix deleted file mode 100644 index 44ee3f1..0000000 --- a/tf/tailscale/devices.nix +++ /dev/null @@ -1,17 +0,0 @@ -{lib, ...}: { - data.tailscale_device = let - toDevices = devices: - lib.genAttrs devices (name: { - name = "${name}.tailc59d6.ts.net"; - wait_for = "60s"; - }); - in - toDevices [ - "atlas" - "caroline" - "glados" - "glados-wsl" - "glados-windows" - "iphone-14" - ]; -} diff --git a/tf/tailscale/dns.nix b/tf/tailscale/dns.nix deleted file mode 100644 index 320a24b..0000000 --- a/tf/tailscale/dns.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ - resource.tailscale_dns_preferences.default = { - magic_dns = true; - }; -} diff --git a/tf/tailscale/tags.nix b/tf/tailscale/tags.nix deleted file mode 100644 index c519a25..0000000 --- a/tf/tailscale/tags.nix +++ /dev/null @@ -1,15 +0,0 @@ -{lib, ...}: { - resource.tailscale_device_tags = let - getDeviceID = device: lib.tfRef "data.tailscale_device.${device}.id"; - toTags = n: v: {device_id = getDeviceID n;} // v; - - tags = lib.genAttrs ["server" "personal" "gha"] (n: ["tag:${n}"]); - in - builtins.mapAttrs toTags { - atlas.tags = tags.server; - caroline.tags = tags.personal; - glados.tags = tags.personal; - glados-wsl.tags = tags.personal; - iphone-14.tags = tags.personal; - }; -} diff --git a/tf/vars.nix b/tf/vars.nix deleted file mode 100644 index 2f640c2..0000000 --- a/tf/vars.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ - variable = { - # cloudflare - zone_id.default = "53286ae07c44ed39e4b1249a2adb6d4d"; - account_id.default = "44c47ae2d55db34c1bf2f378ea8202f1"; - cf_domain.default = "mydadleft.me"; - - # tailscale - tailnet.default = "getchoo.github"; - }; -} diff --git a/tf/versions.nix b/tf/versions.nix deleted file mode 100644 index d4b6713..0000000 --- a/tf/versions.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ - terraform.required_providers = { - cloudflare = { - source = "registry.terraform.io/cloudflare/cloudflare"; - version = "~> 4"; - }; - - tailscale = { - source = "registry.terraform.io/tailscale/tailscale"; - version = "0.13.13"; - }; - }; -} |
