Files
quixos/tofu/runtime/user-data-flake.nix.tftpl
T
2026-06-27 13:30:29 -07:00

75 lines
2.4 KiB
Plaintext

{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
quixos.url = "${quixos_flake_uri}";
};
outputs = { nixpkgs, quixos, ... }:
let
quixosHost = nixpkgs.lib.nixosSystem {
system = "aarch64-linux";
modules = [
quixos.nixosModules.quixosHost
({ modulesPath, ... }: {
imports = [ "$${modulesPath}/virtualisation/amazon-image.nix" ];
networking.hostName = "quixos";
users.users."${admin_user}" = {
isNormalUser = true;
extraGroups = [ "wheel" "quixos-control" ];
openssh.authorizedKeys.keys = ${ssh_authorized_keys};
};
security.sudo.wheelNeedsPassword = false;
services.quixosHost = {
enable = true;
domain = "${domain}";
persistDevice = "${persist_device}";
persistZfsPool = "quixos-persist";
sharedPersistDevice = ${shared_persist_device};
sharedPersistZfsPool = "quixos-shared";
nixZfsPool = "nixos-zfs-nix";
packageTreeRepo = "${package_tree_repo_url}";
packageTreeRef = "${package_tree_ref}";
forcePackageTreeRefOnBoot = ${force_package_tree_ref_on_boot};
enableSsh = ${enable_ssh};
devHome.enable = ${dev_mode};
sourceCheckout = {
enable = ${dev_mode};
repo = "${quixos_repo_url}";
ref = "${quixos_ref}";
};
orchestrator = {
nix.enable = ${!dev_mode};
source.enable = ${dev_mode};
};
visualizer = {
static.enable = ${!dev_mode};
vite.enable = ${dev_mode};
};
secrets = {
provider = "aws-ssm";
awsSsm = {
controlSecretParameter = "${control_secret_parameter}";
stateContextSecretParameter = "${state_context_secret_parameter}";
packageTreeGitUsernameParameter = "${package_tree_git_username_parameter}";
packageTreeGitPasswordParameter = "${package_tree_git_password_parameter}";
};
};
};
system.stateVersion = "25.05";
})
];
};
in
{
nixosConfigurations.nixos-zfs-ec2 = quixosHost;
nixosConfigurations.quixos = quixosHost;
nixosConfigurations.quixos-host = quixosHost;
};
}