diff --git a/ingress.tjo.cloud/.terraform.lock.hcl b/ingress.tjo.cloud/.terraform.lock.hcl deleted file mode 100644 index 3536fdb..0000000 --- a/ingress.tjo.cloud/.terraform.lock.hcl +++ /dev/null @@ -1,44 +0,0 @@ -# This file is maintained automatically by "tofu init". -# Manual edits may be lost in future updates. - -provider "registry.opentofu.org/digitalocean/digitalocean" { - version = "2.40.0" - constraints = "~> 2.0" - hashes = [ - "h1:Y7VkuuqOBgv+1jgL/4Hi247K2BskXwXtR/Uk9ssK/e4=", - "zh:00235830abae70642ebefc4d9c00e5eb978e28b74abc6b34f16b078f242aa217", - "zh:09d77785f768bd568f85a121d3d79316083befe903ce4ccd5567689a23236fb0", - "zh:0c9c4e19b411702d316a6bd044903e2ec506a69d38495ed32cc31e3f3f26acae", - "zh:12b34c88faad5b6149e9a3ad1396680588e1bae263b20d6b19835460f111c190", - "zh:15f041fc57ea46673a828919efe2ef3f05f7c4b863b7d7881336b93e92bd1159", - "zh:45e01972de2fab1687a09ea8fb3e4519be11c93ef93a63f28665630850858a20", - "zh:4e18bf5c1d2ec1ec6b6a9f4b58045309006f510edf770168fc18e273e6a09289", - "zh:575528b7e36e3489d2309e0c6cb9bd9952595cac5459b914f2d2827de1a1e4fc", - "zh:67462192212f810875d556462c79f574a8f5713b7a869ba4fce25953bfcf2dd2", - "zh:7024637b31e8276b653265fdf3f479220182edde4b300b034562b4c287faefa5", - "zh:a7904721b2680be8330dde98dd826be15c67eb274da7876f042cbcd6592ac970", - "zh:b225d4b67037a19392b0ab00d1f5fc9e729db4dfc32d18d4b36225693270ef52", - "zh:bd1e8768819d6113b2ec16f939196a1f2ae6d2803824fde463a20d06e071b212", - "zh:c5da40dc0749548ee2e1943776fb41b952c994e50bbc404251df20a81f730242", - "zh:dabc3387392aaba297739e1e97fadf059258fc3efb4dff2f499dbc407b6e088d", - "zh:f42137cf424c3e7c9c935b3f73618e51096bd0367a8d364073e2d70588d2cbf2", - ] -} - -provider "registry.opentofu.org/hashicorp/dns" { - version = "3.4.1" - constraints = "~> 3.4.1" - hashes = [ - "h1:6Tb2wZRxfKunvjLw47ihfkaoARWIQrJd+WCOXkx0hg4=", - "zh:53f46f16fc3b25d9bdce61d7cc9a67cea9c67ea5347fcde35833451d5011f1c4", - "zh:662669802c99c7e698ca52e7a32afc19acf66d97bbc05f5effacdf0fe471848f", - "zh:8289aee49df8a0cb2fcdfded575e68df1721fc3e6ce75555def499d31b7e910d", - "zh:90aa9b049d19137ed15ea3f88238824e1fde7d1a806378cb97520391e169a96d", - "zh:9e5795e10d65927ba689cfabc06b72085055543342d1db26ef5963ae5ab5d64a", - "zh:9f39b6e0ca35cf2405fe4e13af8a405cf9b0b0c34b6b06ad36f319631405a3aa", - "zh:c37a2c140c95b3eaa9d0aeb79496b220ba1a0456d01a77fcc68bd565bee7edd5", - "zh:cd40d356c5382f0b868df2d8539f95031e3cf0c210053674ec4c7cd20c73b82a", - "zh:fde59f09e4e62fc84012fff8493bc64eac287a0245e1c8abf29b0138d3018dfb", - "zh:ffee5b54936bd43247e9316de0ecc0dde36556a2cd50f090d7f6443a3f689b95", - ] -} diff --git a/ingress.tjo.cloud/nodes.tf b/ingress.tjo.cloud/nodes.tf deleted file mode 100644 index 40e7713..0000000 --- a/ingress.tjo.cloud/nodes.tf +++ /dev/null @@ -1,28 +0,0 @@ - -locals { - locations = { - DE = ["46.4.88.62", "2a01:4f8:202:2395::"] - SI = ["93.103.125.118", "2a01:261:455:6c00:21e:6ff:fe45:c34"] - } -} - -data "digitalocean_domain" "ingress" { - name = "ingress.tjo.cloud" -} - -resource "digitalocean_record" "locations" { - for_each = merge([ - for location, ips in local.locations : { - for ip in ips : "${location} at ${ip}" => { - location = location, - ip = ip, - } - } - ]...) - - domain = data.digitalocean_domain.ingress.id - type = strcontains(each.value.ip, ":") ? "AAAA" : "A" - name = lower(each.value.location) - value = each.value.ip - ttl = 60 -} diff --git a/ingress.tjo.cloud/records.tf b/ingress.tjo.cloud/records.tf deleted file mode 100644 index 5221de4..0000000 --- a/ingress.tjo.cloud/records.tf +++ /dev/null @@ -1,35 +0,0 @@ -locals { - listeners = [ - { - domain = "k8s.tjo.cloud" - name = "api" - locations = ["SI", "DE"] - }, - { - domain = "k8s.tjo.cloud" - name = "dashboard" - locations = ["SI", "DE"] - } - ] -} - -resource "digitalocean_record" "listeners" { - for_each = merge(flatten([ - for listener in local.listeners : - [ - for location in listener.locations : { - for ip in local.locations[location] : "${ip} for ${listener.name}.${listener.domain} at ${location}" => { - ip = ip - domain = listener.domain - name = listener.name - } - } - ] - ])...) - - domain = each.value.domain - type = strcontains(each.value.ip, ":") ? "AAAA" : "A" - name = each.value.name - value = each.value.ip - ttl = 60 -} diff --git a/ingress.tjo.cloud/terraform.tf b/ingress.tjo.cloud/terraform.tf deleted file mode 100644 index 56e079a..0000000 --- a/ingress.tjo.cloud/terraform.tf +++ /dev/null @@ -1,18 +0,0 @@ -terraform { - required_providers { - digitalocean = { - source = "digitalocean/digitalocean" - version = "~> 2.0" - } - dns = { - source = "hashicorp/dns" - version = "~> 3.4.1" - } - } - - required_version = "~> 1.7.3" -} - -provider "digitalocean" { - token = var.digitalocean_token -} diff --git a/ingress.tjo.cloud/variables.tf b/ingress.tjo.cloud/variables.tf deleted file mode 100644 index bfca604..0000000 --- a/ingress.tjo.cloud/variables.tf +++ /dev/null @@ -1,4 +0,0 @@ -variable "digitalocean_token" { - type = string - sensitive = true -} diff --git a/justfile b/justfile index 8975f5c..1dc9d3b 100644 --- a/justfile +++ b/justfile @@ -4,7 +4,6 @@ set shell := ["devbox", "run"] set dotenv-load mod k8s 'k8s.tjo.cloud' -mod proxmox 'proxmox.tjo.cloud' default: @just --list diff --git a/proxmox.tjo.cloud/.terraform.lock.hcl b/proxmox.tjo.cloud/.terraform.lock.hcl deleted file mode 100644 index 55f9b40..0000000 --- a/proxmox.tjo.cloud/.terraform.lock.hcl +++ /dev/null @@ -1,25 +0,0 @@ -# This file is maintained automatically by "tofu init". -# Manual edits may be lost in future updates. - -provider "registry.opentofu.org/bpg/proxmox" { - version = "0.61.1" - constraints = "0.61.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", - "zh:f26e0763dbe6a6b2195c94b44696f2110f7f55433dc142839be16b9697fa5597", - ] -} diff --git a/proxmox.tjo.cloud/configuration.nix b/proxmox.tjo.cloud/configuration.nix deleted file mode 100644 index e1155ef..0000000 --- a/proxmox.tjo.cloud/configuration.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ - lib, - pkgs, - modulesPath, - ... -}: -{ - imports = [ - "${toString modulesPath}/profiles/qemu-guest.nix" - ]; - - system.stateVersion = "24.05"; - - fileSystems."/" = { - device = "/dev/disk/by-label/nixos"; - autoResize = true; - fsType = "ext4"; - }; - - fileSystems."/boot" = { - device = "/dev/disk/by-label/ESP"; - fsType = "vfat"; - }; - - boot.growPartition = true; - boot.kernelParams = [ "console=ttyS0" ]; - boot.loader.systemd-boot.enable = true; - boot.loader.timeout = 0; - - services.qemuGuest.enable = true; - - services.cloud-init = { - enable = true; - network.enable = true; - settings = lib.mkOptionDefault { - datasource = { - NoCloud = { }; - ConfigDrive = { }; - }; - }; - }; - - # Needed due to cloud-init.network.enable = true - networking.useNetworkd = true; - - # Create default user - security.sudo.wheelNeedsPassword = false; - nix.settings.trusted-users = [ "nixos" ]; - users.users.nixos = { - isNormalUser = true; - password = "hunter2"; - extraGroups = [ "wheel" ]; - }; - - nix.settings.experimental-features = [ - "nix-command" - "flakes" - ]; - environment.systemPackages = [ pkgs.nginx ]; -} diff --git a/proxmox.tjo.cloud/flake.lock b/proxmox.tjo.cloud/flake.lock deleted file mode 100644 index 3305ce1..0000000 --- a/proxmox.tjo.cloud/flake.lock +++ /dev/null @@ -1,27 +0,0 @@ -{ - "nodes": { - "nixpkgs": { - "locked": { - "lastModified": 1724316499, - "narHash": "sha256-Qb9MhKBUTCfWg/wqqaxt89Xfi6qTD3XpTzQ9eXi3JmE=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "797f7dc49e0bc7fab4b57c021cdf68f595e47841", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-24.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "nixpkgs": "nixpkgs" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/proxmox.tjo.cloud/flake.nix b/proxmox.tjo.cloud/flake.nix deleted file mode 100644 index 438e980..0000000 --- a/proxmox.tjo.cloud/flake.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ - description = "Basic NixOS qcow2 image with CloudInit for Proxmox"; - inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05"; - }; - outputs = - { self, nixpkgs }: - { - nixosConfigurations = { - build-qcow2 = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - modules = [ - ./qcow2.nix - ./configuration.nix - ]; - }; - }; - }; -} diff --git a/proxmox.tjo.cloud/justfile b/proxmox.tjo.cloud/justfile deleted file mode 100644 index 555c2de..0000000 --- a/proxmox.tjo.cloud/justfile +++ /dev/null @@ -1,18 +0,0 @@ -default: - @just --list - -build: - @nix build .#nixosConfigurations.build-qcow2.config.system.build.qcow2 - -apply: build - #!/usr/bin/env sh - export NIXOS_IMAGE=$(nix path-info --quiet .#nixosConfigurations.build-qcow2.config.system.build.qcow2)/nixos.qcow2 - export TF_VAR_image_path=$NIXOS_IMAGE - - echo "Deploying $NIXOS_IMAGE" - tofu init - tofu apply - -destroy: - #!/usr/bin/env sh - tofu destroy diff --git a/proxmox.tjo.cloud/main.tf b/proxmox.tjo.cloud/main.tf deleted file mode 100644 index 1f6221f..0000000 --- a/proxmox.tjo.cloud/main.tf +++ /dev/null @@ -1,50 +0,0 @@ -variable "storage" { - type = string - default = "proxmox-backup-tjo-cloud" -} - -variable "node_name" { - type = string - default = "hetzner" -} - -variable "proxmox_token" { - type = string - sensitive = true -} - -variable "image_path" { - type = string -} - -terraform { - required_providers { - proxmox = { - source = "bpg/proxmox" - version = "0.61.1" - } - } - required_version = "~> 1.7.3" -} - -provider "proxmox" { - # FIXME: Traefik/NGINX breaks this! 500 ERROR - endpoint = "https://178.63.49.225:8006/api2/json" - insecure = true - api_token = var.proxmox_token - ssh { - agent = true - username = "root" - } -} - -resource "proxmox_virtual_environment_file" "nixos-cloudinit" { - content_type = "iso" - datastore_id = var.storage - node_name = var.node_name - - source_file { - path = var.image_path - file_name = "nixos-cloudinit.img" - } -} diff --git a/proxmox.tjo.cloud/qcow2.nix b/proxmox.tjo.cloud/qcow2.nix deleted file mode 100644 index 82c528e..0000000 --- a/proxmox.tjo.cloud/qcow2.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - lib, - config, - pkgs, - modulesPath, - ... -}: -{ - system.build.qcow2 = import "${toString modulesPath}/../lib/make-disk-image.nix" { - inherit lib config pkgs; - name = "nixos"; - diskSize = "auto"; - format = "qcow2-compressed"; - partitionTableType = "efi"; - copyChannel = true; - configFile = pkgs.writeText "configuration.nix" (pkgs.lib.readFile ./configuration.nix); - }; -}