trator terranix config functional; move disko configs to individual outputs; touching up trantor

This commit is contained in:
William 2025-11-02 22:01:43 -03:00
parent 5899e42fa4
commit 716ed5cc53
19 changed files with 298 additions and 193 deletions

1
.gitignore vendored
View file

@ -2,6 +2,7 @@
result result
result-* result-*
.direnv/ .direnv/
oci-trantor/
# Personal notes and temporary files # Personal notes and temporary files
todo.md todo.md

75
disko/io.nix Normal file
View file

@ -0,0 +1,75 @@
{
disko.devices.disk.main = {
type = "disk";
device = "/dev/disk/by-id/mmc-hDEaP3_0x1041b689";
content = {
type = "gpt";
partitions = {
ESP = {
priority = 1;
name = "ESP";
start = "1MiB";
end = "1GiB";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot/efi";
mountOptions = [
"noatime"
"fmask=0077"
"dmask=0077"
];
};
};
cryptroot = {
priority = 2;
name = "root";
size = "100%";
content = {
type = "luks";
name = "cryptroot";
content = {
type = "btrfs";
extraArgs = [ "-f" ];
subvolumes = {
"@root" = {
mountpoint = "/";
mountOptions = [
"noatime"
"compress=zstd"
"subvol=@root"
];
};
"@home" = {
mountpoint = "/home";
mountOptions = [
"noatime"
"compress=zstd"
"subvol=@home"
];
};
"@nix" = {
mountpoint = "/nix";
mountOptions = [
"noatime"
"compress=zstd"
"subvol=@nix"
];
};
"@persistent" = {
mountpoint = "/persistent";
mountOptions = [
"noatime"
"compress=zstd"
"subvol=@persistent"
];
};
};
};
};
};
};
};
};
}

61
disko/trantor.nix Normal file
View file

@ -0,0 +1,61 @@
{
disko.devices.disk.main = {
type = "disk";
device = "/dev/disk/by-id/scsi-36067d367fe184830a89bbe708c7b1066";
content = {
type = "gpt";
partitions = {
ESP = {
priority = 1;
name = "ESP";
start = "1MiB";
end = "512MiB";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot/efi";
mountOptions = [
"noatime"
"fmask=0077"
"dmask=0077"
];
};
};
root = {
priority = 2;
name = "root";
size = "100%";
content = {
type = "filesystem";
format = "btrfs";
extraArgs = [ "-f" ];
subvolumes = {
"@root" = {
mountpoint = "/";
mountOptions = [
"noatime"
"compress=zstd"
];
};
"@nix" = {
mountpoint = "/nix";
mountOptions = [
"noatime"
"compress=zstd"
];
};
"@persistent" = {
mountpoint = "/persistent";
mountOptions = [
"noatime"
"compress=zstd"
];
};
};
};
};
};
};
};
}

12
diskoConfigurations.nix Normal file
View file

@ -0,0 +1,12 @@
{ inputs, ... }:
{
imports = [
inputs.disko.flakeModule
];
flake.diskoConfigurations = {
io.modules = [ ./disko/io.nix ];
trantor.modules = [ ./disko/trantor.nix ];
};
}

53
flake.lock generated
View file

@ -135,21 +135,18 @@
}, },
"disko": { "disko": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": "nixpkgs_2"
"nixpkgs-stable"
]
}, },
"locked": { "locked": {
"lastModified": 1736864502, "lastModified": 1761899396,
"narHash": "sha256-ItkIZyebGvNH2dK9jVGzJHGPtb6BSWLN8Gmef16NeY0=", "narHash": "sha256-XOpKBp6HLzzMCbzW50TEuXN35zN5WGQREC7n34DcNMM=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "0141aabed359f063de7413f80d906e1d98c0c123", "rev": "6f4cf5abbe318e4cd1e879506f6eeafd83f7b998",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "v1.11.0",
"repo": "disko", "repo": "disko",
"type": "github" "type": "github"
} }
@ -393,7 +390,7 @@
}, },
"niri": { "niri": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_3",
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
@ -415,7 +412,7 @@
"inputs": { "inputs": {
"niri-stable": "niri-stable", "niri-stable": "niri-stable",
"niri-unstable": "niri-unstable", "niri-unstable": "niri-unstable",
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_4",
"nixpkgs-stable": "nixpkgs-stable", "nixpkgs-stable": "nixpkgs-stable",
"xwayland-satellite-stable": "xwayland-satellite-stable", "xwayland-satellite-stable": "xwayland-satellite-stable",
"xwayland-satellite-unstable": "xwayland-satellite-unstable" "xwayland-satellite-unstable": "xwayland-satellite-unstable"
@ -506,7 +503,7 @@
"nix-options-doc": { "nix-options-doc": {
"inputs": { "inputs": {
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_5",
"rust-overlay": "rust-overlay_2" "rust-overlay": "rust-overlay_2"
}, },
"locked": { "locked": {
@ -528,7 +525,7 @@
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_2",
"nix-options-doc": "nix-options-doc", "nix-options-doc": "nix-options-doc",
"nixpkgs": "nixpkgs_5" "nixpkgs": "nixpkgs_6"
}, },
"locked": { "locked": {
"lastModified": 1760856139, "lastModified": 1760856139,
@ -608,6 +605,22 @@
} }
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": {
"lastModified": 1761880412,
"narHash": "sha256-QoJjGd4NstnyOG4mm4KXF+weBzA2AH/7gn1Pmpfcb0A=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a7fc11be66bdfb5cdde611ee5ce381c183da8386",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1757967192, "lastModified": 1757967192,
"narHash": "sha256-/aA9A/OBmnuOMgwfzdsXRusqzUpd8rQnQY8jtrHK+To=", "narHash": "sha256-/aA9A/OBmnuOMgwfzdsXRusqzUpd8rQnQY8jtrHK+To=",
@ -623,7 +636,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_3": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1760878510, "lastModified": 1760878510,
"narHash": "sha256-K5Osef2qexezUfs0alLvZ7nQFTGS9DL2oTVsIXsqLgs=", "narHash": "sha256-K5Osef2qexezUfs0alLvZ7nQFTGS9DL2oTVsIXsqLgs=",
@ -639,7 +652,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1740695751, "lastModified": 1740695751,
"narHash": "sha256-D+R+kFxy1KsheiIzkkx/6L63wEHBYX21OIwlFV8JvDs=", "narHash": "sha256-D+R+kFxy1KsheiIzkkx/6L63wEHBYX21OIwlFV8JvDs=",
@ -655,7 +668,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_5": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1759070547, "lastModified": 1759070547,
"narHash": "sha256-JVZl8NaVRYb0+381nl7LvPE+A774/dRpif01FKLrYFQ=", "narHash": "sha256-JVZl8NaVRYb0+381nl7LvPE+A774/dRpif01FKLrYFQ=",
@ -671,7 +684,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_6": { "nixpkgs_7": {
"locked": { "locked": {
"lastModified": 1760878510, "lastModified": 1760878510,
"narHash": "sha256-K5Osef2qexezUfs0alLvZ7nQFTGS9DL2oTVsIXsqLgs=", "narHash": "sha256-K5Osef2qexezUfs0alLvZ7nQFTGS9DL2oTVsIXsqLgs=",
@ -687,7 +700,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_7": { "nixpkgs_8": {
"locked": { "locked": {
"lastModified": 1758690382, "lastModified": 1758690382,
"narHash": "sha256-NY3kSorgqE5LMm1LqNwGne3ZLMF2/ILgLpFr1fS4X3o=", "narHash": "sha256-NY3kSorgqE5LMm1LqNwGne3ZLMF2/ILgLpFr1fS4X3o=",
@ -703,7 +716,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_8": { "nixpkgs_9": {
"locked": { "locked": {
"lastModified": 1755615617, "lastModified": 1755615617,
"narHash": "sha256-HMwfAJBdrr8wXAkbGhtcby1zGFvs+StOp19xNsbqdOg=", "narHash": "sha256-HMwfAJBdrr8wXAkbGhtcby1zGFvs+StOp19xNsbqdOg=",
@ -800,7 +813,7 @@
"nix-flatpak": "nix-flatpak", "nix-flatpak": "nix-flatpak",
"nix-index-database": "nix-index-database", "nix-index-database": "nix-index-database",
"nixos-cli": "nixos-cli", "nixos-cli": "nixos-cli",
"nixpkgs": "nixpkgs_6", "nixpkgs": "nixpkgs_7",
"nixpkgs-stable": "nixpkgs-stable_2", "nixpkgs-stable": "nixpkgs-stable_2",
"noctalia": "noctalia", "noctalia": "noctalia",
"stylix": "stylix", "stylix": "stylix",
@ -860,7 +873,7 @@
"firefox-gnome-theme": "firefox-gnome-theme", "firefox-gnome-theme": "firefox-gnome-theme",
"flake-parts": "flake-parts_2", "flake-parts": "flake-parts_2",
"gnome-shell": "gnome-shell", "gnome-shell": "gnome-shell",
"nixpkgs": "nixpkgs_7", "nixpkgs": "nixpkgs_8",
"nur": "nur", "nur": "nur",
"systems": "systems_5", "systems": "systems_5",
"tinted-foot": "tinted-foot", "tinted-foot": "tinted-foot",
@ -1130,7 +1143,7 @@
"zen-browser": { "zen-browser": {
"inputs": { "inputs": {
"home-manager": "home-manager_3", "home-manager": "home-manager_3",
"nixpkgs": "nixpkgs_8" "nixpkgs": "nixpkgs_9"
}, },
"locked": { "locked": {
"lastModified": 1760934351, "lastModified": 1760934351,

View file

@ -17,10 +17,7 @@
inputs.nixpkgs.follows = "nixpkgs-stable"; inputs.nixpkgs.follows = "nixpkgs-stable";
}; };
disko = { disko.url = "github:nix-community/disko";
url = "github:nix-community/disko?ref=v1.11.0";
inputs.nixpkgs.follows = "nixpkgs-stable";
};
noctalia = { noctalia = {
url = "github:noctalia-dev/noctalia-shell"; url = "github:noctalia-dev/noctalia-shell";
@ -63,13 +60,14 @@
]; ];
imports = [ imports = [
./deploy.nix
./devShells.nix ./devShells.nix
./diskoConfigurations.nix
./homeConfigurations.nix ./homeConfigurations.nix
./nixosConfigurations.nix ./nixosConfigurations.nix
./nixosModules.nix ./nixosModules.nix
./overlays.nix ./overlays.nix
./packages.nix ./packages.nix
./deploy.nix
./terranixConfigurations.nix ./terranixConfigurations.nix
]; ];
}; };

View file

@ -1,83 +0,0 @@
{ inputs, ... }:
{
imports = [ inputs.disko.nixosModules.default ];
disko.devices = {
disk = {
main = {
type = "disk";
device = "/dev/disk/by-id/mmc-hDEaP3_0x1041b689";
content = {
type = "gpt";
partitions = {
ESP = {
priority = 1;
name = "ESP";
start = "1MiB";
end = "1GiB";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot/efi";
mountOptions = [
"noatime"
"fmask=0077"
"dmask=0077"
];
};
};
cryptroot = {
priority = 2;
name = "root";
size = "100%";
content = {
type = "luks";
name = "cryptroot";
content = {
type = "btrfs";
extraArgs = [ "-f" ];
subvolumes = {
"@root" = {
mountpoint = "/";
mountOptions = [
"noatime"
"compress=zstd"
"subvol=@root"
];
};
"@home" = {
mountpoint = "/home";
mountOptions = [
"noatime"
"compress=zstd"
"subvol=@home"
];
};
"@nix" = {
mountpoint = "/nix";
mountOptions = [
"noatime"
"compress=zstd"
"subvol=@nix"
];
};
"@persistent" = {
mountpoint = "/persistent";
mountOptions = [
"noatime"
"compress=zstd"
"subvol=@persistent"
];
};
};
};
};
};
};
};
};
};
};
}

View file

@ -2,11 +2,15 @@
config, config,
lib, lib,
modulesPath, modulesPath,
self,
... ...
}: }:
{ {
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; imports = [
(modulesPath + "/installer/scan/not-detected.nix")
self.diskoConfigurations.io
];
boot = { boot = {
initrd = { initrd = {

View file

@ -1,4 +1,4 @@
{ inputs, ... }: { config, inputs, ... }:
{ {
imports = [ imports = [
@ -8,7 +8,11 @@
ephemeral = { ephemeral = {
enable = true; enable = true;
rootDevice = "/dev/mapper/cryptroot"; rootDevice =
if config.networking.hostName == "trantor" then
"/dev/disk/by-id/scsi-36067d367fe184830a89bbe708c7b1066"
else
"/dev/mapper/cryptroot";
rootSubvolume = "@root"; rootSubvolume = "@root";
}; };

View file

@ -1,6 +1,3 @@
{ {
boot = { boot.initrd.systemd.enable = true;
loader.efi.efiSysMountPoint = "/boot";
initrd.systemd.enable = true;
};
} }

View file

@ -1,36 +0,0 @@
{ inputs, ... }:
{
imports = [ inputs.disko.nixosModules.default ];
disko.devices = {
disk = {
main = {
type = "disk";
device = "/dev/disk/by-id/scsi-3605e4addb4c640319c8c03436205530b";
content = {
type = "gpt";
partitions = {
boot = {
size = "512M";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
};
};
root = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
};
};
};
};
};
};
}

View file

@ -1,11 +1,15 @@
{ {
lib, lib,
modulesPath, modulesPath,
self,
... ...
}: }:
{ {
imports = [ (modulesPath + "/profiles/qemu-guest.nix") ]; imports = [
(modulesPath + "/profiles/qemu-guest.nix")
self.diskoConfigurations.trantor
];
boot = { boot = {
kernelModules = [ ]; kernelModules = [ ];

View file

@ -47,6 +47,7 @@ in
system = "aarch64-linux"; system = "aarch64-linux";
tags = [ tags = [
"server" "server"
"ephemeral"
]; ];
}; };
}; };

View file

View file

View file

@ -3,16 +3,16 @@
{ {
terraform.required_providers.oci = { terraform.required_providers.oci = {
source = "oracle/oci"; source = "oracle/oci";
version = "~> 5.0"; version = "~> 7.0";
}; };
provider.oci.region = "sa-saopaulo-1"; provider.oci.region = "sa-saopaulo-1";
terraform.backend.s3 = { terraform.backend.s3 = {
bucket = "terraform-state"; bucket = "terraform-state";
key = "oci/homelab.tfstate"; key = "oci/trantor.tfstate";
region = "auto"; region = "auto";
endpoint = "https://<ACCOUNT_ID>.r2.cloudflarestorage.com"; endpoint = "https://fcdf920bde00c3d013ee541f984da70e.r2.cloudflarestorage.com";
skip_credentials_validation = true; skip_credentials_validation = true;
skip_metadata_api_check = true; skip_metadata_api_check = true;
skip_region_validation = true; skip_region_validation = true;
@ -21,8 +21,13 @@
}; };
variable = { variable = {
tenancy_ocid = {
default = "ocid1.tenancy.oc1..aaaaaaaap3vfdz4piygqza6e6zqunbcuso43ddqfo3ydmpmnomidyghh7rvq";
type = "string";
};
compartment_name = { compartment_name = {
default = "homelab"; default = "trantor";
type = "string"; type = "string";
}; };
@ -46,14 +51,12 @@
}; };
data = { data = {
oci_identity_tenancy.tenancy = { };
oci_identity_availability_domains.ads = { oci_identity_availability_domains.ads = {
compartment_id = config.data.oci_identity_tenancy.tenancy.id; compartment_id = config.variable.tenancy_ocid.default;
}; };
oci_core_images.ubuntu_arm = { oci_core_images.ubuntu_arm = {
compartment_id = config.data.oci_identity_tenancy.tenancy.id; compartment_id = config.variable.tenancy_ocid.default;
operating_system = "Canonical Ubuntu"; operating_system = "Canonical Ubuntu";
operating_system_version = "24.04"; operating_system_version = "24.04";
shape = "VM.Standard.A1.Flex"; shape = "VM.Standard.A1.Flex";
@ -63,34 +66,34 @@
}; };
resource = { resource = {
oci_identity_compartment.homelab = { oci_identity_compartment.trantor = {
compartment_id = config.data.oci_identity_tenancy.tenancy.id; compartment_id = config.variable.tenancy_ocid.default;
description = "Homelab infrastructure compartment"; description = "trantor infrastructure compartment";
name = config.variable.compartment_name.default; name = config.variable.compartment_name.default;
}; };
oci_core_vcn.vcn = { oci_core_vcn.vcn = {
compartment_id = config.resource.oci_identity_compartment.homelab.id; compartment_id = config.resource.oci_identity_compartment.trantor "id";
cidr_blocks = [ config.variable.vcn_cidr.default ]; cidr_blocks = [ config.variable.vcn_cidr.default ];
display_name = "homelab-vcn"; display_name = "trantor-vcn";
dns_label = "homelab"; dns_label = "trantor";
}; };
oci_core_internet_gateway.ig = { oci_core_internet_gateway.ig = {
compartment_id = config.resource.oci_identity_compartment.homelab.id; compartment_id = config.resource.oci_identity_compartment.trantor "id";
vcn_id = config.resource.oci_core_vcn.vcn.id; vcn_id = config.resource.oci_core_vcn.vcn "id";
display_name = "homelab-ig"; display_name = "trantor-ig";
enabled = true; enabled = true;
}; };
oci_core_route_table.rt = { oci_core_route_table.rt = {
compartment_id = config.resource.oci_identity_compartment.homelab.id; compartment_id = config.resource.oci_identity_compartment.trantor "id";
vcn_id = config.resource.oci_core_vcn.vcn.id; vcn_id = config.resource.oci_core_vcn.vcn "id";
display_name = "homelab-rt"; display_name = "trantor-rt";
route_rules = [ route_rules = [
{ {
network_entity_id = config.resource.oci_core_internet_gateway.ig.id; network_entity_id = config.resource.oci_core_internet_gateway.ig "id";
destination = "0.0.0.0/0"; destination = "0.0.0.0/0";
destination_type = "CIDR_BLOCK"; destination_type = "CIDR_BLOCK";
} }
@ -98,9 +101,9 @@
}; };
oci_core_security_list.sl = { oci_core_security_list.sl = {
compartment_id = config.resource.oci_identity_compartment.homelab.id; compartment_id = config.resource.oci_identity_compartment.trantor "id";
vcn_id = config.resource.oci_core_vcn.vcn.id; vcn_id = config.resource.oci_core_vcn.vcn "id";
display_name = "homelab-sl"; display_name = "trantor-sl";
egress_security_rules = [ egress_security_rules = [
{ {
@ -138,23 +141,50 @@
max = 443; max = 443;
}; };
} }
{
protocol = "6"; # TCP
source = "0.0.0.0/0";
stateless = false;
tcp_options = {
min = 25565;
max = 25565;
};
}
{
protocol = "6"; # TCP
source = "0.0.0.0/0";
stateless = false;
tcp_options = {
min = 19132;
max = 19133;
};
}
{
protocol = "17"; # UDP
source = "0.0.0.0/0";
stateless = false;
udp_options = {
min = 19132;
max = 19133;
};
}
]; ];
}; };
oci_core_subnet.subnet = { oci_core_subnet.subnet = {
compartment_id = config.resource.oci_identity_compartment.homelab.id; compartment_id = config.resource.oci_identity_compartment.trantor "id";
vcn_id = config.resource.oci_core_vcn.vcn.id; vcn_id = config.resource.oci_core_vcn.vcn "id";
cidr_block = config.variable.vcn_cidr.default; cidr_block = config.variable.vcn_cidr.default;
display_name = "homelab-subnet"; display_name = "trantor-subnet";
dns_label = "subnet"; dns_label = "subnet";
route_table_id = config.resource.oci_core_route_table.rt.id; route_table_id = config.resource.oci_core_route_table.rt "id";
security_list_ids = [ config.resource.oci_core_security_list.sl.id ]; security_list_ids = [ (config.resource.oci_core_security_list.sl "id") ];
prohibit_public_ip_on_vnic = false; prohibit_public_ip_on_vnic = false;
}; };
oci_core_instance.trantor = { oci_core_instance.trantor = {
availability_domain = config.data.oci_identity_availability_domains.ads.availability_domains .0.name; availability_domain = config.data.oci_identity_availability_domains.ads "availability_domains[0].name";
compartment_id = config.resource.oci_identity_compartment.homelab.id; compartment_id = config.resource.oci_identity_compartment.trantor "id";
display_name = config.variable.instance_name.default; display_name = config.variable.instance_name.default;
shape = "VM.Standard.A1.Flex"; shape = "VM.Standard.A1.Flex";
@ -165,12 +195,12 @@
source_details = { source_details = {
source_type = "image"; source_type = "image";
source_id = config.data.oci_core_images.ubuntu_arm.images .0.id; source_id = config.data.oci_core_images.ubuntu_arm "images[0].id";
boot_volume_size_in_gbs = 50; boot_volume_size_in_gbs = 100;
}; };
create_vnic_details = { create_vnic_details = {
subnet_id = config.resource.oci_core_subnet.subnet.id; subnet_id = config.resource.oci_core_subnet.subnet "id";
display_name = "trantor-vnic"; display_name = "trantor-vnic";
assign_public_ip = true; assign_public_ip = true;
hostname_label = config.variable.instance_name.default; hostname_label = config.variable.instance_name.default;
@ -182,15 +212,35 @@
preserve_boot_volume = false; preserve_boot_volume = false;
}; };
oci_budget_budget.trantor_budget = {
compartment_id = config.variable.tenancy_ocid.default;
targets = [ (config.resource.oci_identity_compartment.trantor "id") ];
amount = 1;
reset_period = "MONTHLY";
display_name = "trantor-budget";
description = "Monthly budget for trantor compartment";
target_type = "COMPARTMENT";
};
oci_budget_alert_rule.daily_spend_alert = {
budget_id = config.resource.oci_budget_budget.trantor_budget "id";
type = "ACTUAL";
threshold = 5;
threshold_type = "PERCENTAGE";
display_name = "daily-spend-alert";
description = "Alert when daily spending exceeds $0.05";
message = "Daily spending has exceeded $0.05 in the trantor compartment";
};
}; };
output = { output = {
compartment_id = { compartment_id = {
value = config.resource.oci_identity_compartment.homelab.id; value = config.resource.oci_identity_compartment.trantor "id";
}; };
instance_public_ip = { instance_public_ip = {
value = config.resource.oci_core_instance.trantor.public_ip; value = config.resource.oci_core_instance.trantor "public_ip";
}; };
}; };
} }

View file

View file

@ -5,10 +5,14 @@
inputs.terranix.flakeModule inputs.terranix.flakeModule
]; ];
perSystem = { perSystem =
{ pkgs, ... }:
{
terranix.terranixConfigurations = { terranix.terranixConfigurations = {
oci-homelab = { oci-trantor = {
modules = [ ./terranix/oci/homelab.nix ]; modules = [ ./terranix/oci/trantor.nix ];
terraformWrapper.package = pkgs.opentofu;
}; };
}; };
}; };