Seems like I'm really close...

This commit is contained in:
niten 2021-11-28 10:11:39 -08:00
parent 88f25b5f47
commit a71867ce94
3 changed files with 160 additions and 44 deletions

View File

@ -82,7 +82,7 @@
"evil-org-mode": "evil-org-mode", "evil-org-mode": "evil-org-mode",
"evil-quick-diff": "evil-quick-diff", "evil-quick-diff": "evil-quick-diff",
"explain-pause-mode": "explain-pause-mode", "explain-pause-mode": "explain-pause-mode",
"flake-utils": "flake-utils", "flake-utils": "flake-utils_3",
"nix-straight": "nix-straight", "nix-straight": "nix-straight",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"nose": "nose", "nose": "nose",
@ -262,6 +262,36 @@
} }
}, },
"flake-utils": { "flake-utils": {
"locked": {
"lastModified": 1637014545,
"narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "bba5dcc8e0b20ab664967ad83d24d64cb64ec4f4",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"locked": {
"lastModified": 1637014545,
"narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "bba5dcc8e0b20ab664967ad83d24d64cb64ec4f4",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_3": {
"locked": { "locked": {
"lastModified": 1623875721, "lastModified": 1623875721,
"narHash": "sha256-A8BU7bjS5GirpAUv4QA+QnJ4CceLHkcXdRp4xITDB0s=", "narHash": "sha256-A8BU7bjS5GirpAUv4QA+QnJ4CceLHkcXdRp4xITDB0s=",
@ -276,12 +306,52 @@
"type": "github" "type": "github"
} }
}, },
"fudo-entities": {
"inputs": {
"flake-utils": "flake-utils",
"fudo-lib": "fudo-lib",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"narHash": "sha256-DnIQNMu2E6gQh0SJk4h6iz2cL/vK6VIobp35hS7qQmo=",
"path": "/state/fudo-entities",
"type": "path"
},
"original": {
"path": "/state/fudo-entities",
"type": "path"
}
},
"fudo-entities_2": {
"inputs": {
"flake-utils": "flake-utils_2",
"fudo-lib": "fudo-lib_3",
"nixpkgs": [
"fudo-nixos",
"nixpkgs"
]
},
"locked": {
"narHash": "sha256-DnIQNMu2E6gQh0SJk4h6iz2cL/vK6VIobp35hS7qQmo=",
"path": "/state/fudo-entities",
"type": "path"
},
"original": {
"path": "/state/fudo-entities",
"type": "path"
}
},
"fudo-home": { "fudo-home": {
"inputs": { "inputs": {
"doom-emacs": "doom-emacs", "doom-emacs": "doom-emacs",
"home-manager": "home-manager", "home-manager": "home-manager",
"niten-doom-config": "niten-doom-config", "niten-doom-config": "niten-doom-config",
"nixpkgs": "nixpkgs_2" "nixpkgs": [
"fudo-nixos",
"nixpkgs"
]
}, },
"locked": { "locked": {
"narHash": "sha256-TpFI+nD+c9JXhKKDBgIHJhIfveTScBD6gotTPt8tvg4=", "narHash": "sha256-TpFI+nD+c9JXhKKDBgIHJhIfveTScBD6gotTPt8tvg4=",
@ -293,9 +363,55 @@
"type": "path" "type": "path"
} }
}, },
"fudo-lib": {
"locked": {
"narHash": "sha256-r8qffvJPWbBJmN32thMIxjdmY9X5VCc3TuyQyFAIdks=",
"path": "/state/fudo-lib",
"type": "path"
},
"original": {
"path": "/state/fudo-lib",
"type": "path"
}
},
"fudo-lib_2": {
"locked": {
"narHash": "sha256-gZAKO49RbpNWdmZaqrXnzCrLoSXsGV6H67f+mECJtCk=",
"path": "/state/fudo-lib",
"type": "path"
},
"original": {
"path": "/state/fudo-lib",
"type": "path"
}
},
"fudo-lib_3": {
"locked": {
"narHash": "sha256-r8qffvJPWbBJmN32thMIxjdmY9X5VCc3TuyQyFAIdks=",
"path": "/state/fudo-lib",
"type": "path"
},
"original": {
"path": "/state/fudo-lib",
"type": "path"
}
},
"fudo-lib_4": {
"locked": {
"narHash": "sha256-gZAKO49RbpNWdmZaqrXnzCrLoSXsGV6H67f+mECJtCk=",
"path": "/state/fudo-lib",
"type": "path"
},
"original": {
"path": "/state/fudo-lib",
"type": "path"
}
},
"fudo-nixos": { "fudo-nixos": {
"inputs": { "inputs": {
"fudo-entities": "fudo-entities_2",
"fudo-home": "fudo-home", "fudo-home": "fudo-home",
"fudo-lib": "fudo-lib_4",
"fudo-pkgs": "fudo-pkgs", "fudo-pkgs": "fudo-pkgs",
"fudo-secrets": "fudo-secrets", "fudo-secrets": "fudo-secrets",
"nixpkgs": [ "nixpkgs": [
@ -303,7 +419,7 @@
] ]
}, },
"locked": { "locked": {
"narHash": "sha256-1Z8ZrVFDTq9ohhYwD7Ti4KFYLgnRZG58OHvAQQAKZOU=", "narHash": "sha256-mGmqObOimHmAWntx7GOHjLABKw+9ZMwVn19R7f6f93s=",
"path": "/state/nixops/fudo-nixos", "path": "/state/nixops/fudo-nixos",
"type": "path" "type": "path"
}, },
@ -464,26 +580,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1636944046, "lastModified": 1637875414,
"narHash": "sha256-74KLDsiWSBsYXKj/ql9EGbw1TbIJRE7clFkhl30HV/c=", "narHash": "sha256-Ica++SXFuLyxX9Q7YxhfZulUif6/gwM8AEQYlUxqSgE=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "46251a79f752ae1d46ef733e8e9760b6d3429da4", "rev": "3bea86e918d8b54aa49780505d2d4cd9261413be",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-21.05",
"type": "indirect"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1637316267,
"narHash": "sha256-hfAA/0W3tycKKOSwP7Xt6FXLG9h/FgCu45wdGubHtV0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "24528474d2b3370f2f23879a557ae2cc92a5d50b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -630,9 +731,11 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"fudo-entities": "fudo-entities",
"fudo-lib": "fudo-lib_2",
"fudo-nixos": "fudo-nixos", "fudo-nixos": "fudo-nixos",
"fudo-secrets": "fudo-secrets_2", "fudo-secrets": "fudo-secrets_2",
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_2"
} }
}, },
"rotate-text": { "rotate-text": {

View File

@ -11,14 +11,26 @@
# url = "git+ssh://fudo_git@git.fudo.org:2222/fudosys/NixOS.git?ref=nixops-flake"; # url = "git+ssh://fudo_git@git.fudo.org:2222/fudosys/NixOS.git?ref=nixops-flake";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
fudo-entities = {
url = "path:/state/fudo-entities";
inputs.nixpkgs.follows = "nixpkgs";
};
fudo-lib = {
url = "path:/state/fudo-lib";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = { self, nixpkgs, fudo-nixos, fudo-secrets, ... } @ inputs: outputs = { self, nixpkgs, fudo-nixos, fudo-entities, fudo-secrets, ... } @ inputs:
with nixpkgs.lib; { with nixpkgs.lib; {
nixopsConfigurations.default = let nixopsConfigurations.default = let
deployment-hosts = filterAttrs deployment-hosts = filterAttrs
(hostname: hostOpts: hostOpts.domain == "sea.fudo.org") (hostname: hostOpts:
fudo-nixos.fudoHosts; hostOpts.domain == "sea.fudo.org" &&
hostOpts.nixos-system)
fudo-entities.entities.hosts;
build-timestamp = self.sourceInfo.lastModified; build-timestamp = self.sourceInfo.lastModified;
@ -26,7 +38,7 @@
inherit inputs build-timestamp; inherit inputs build-timestamp;
}; };
host-configs = mapAttrs host-gen-config deployment-hosts; common-configs = mapAttrs host-gen-config deployment-hosts;
in { in {
inherit nixpkgs; inherit nixpkgs;
@ -34,6 +46,6 @@
description = "Seattle NixOps network"; description = "Seattle NixOps network";
enableRollback = true; enableRollback = true;
}; };
} // host-configs; } // common-configs;
}; };
} }

View File

@ -1,6 +1,6 @@
inputs: build-timestamp: hostname: hostOpts: { inputs, build-timestamp, ... }:
{ config, ... }: hostname: hostOpts:
let let
pkgs-for = system: import inputs.nixpkgs { pkgs-for = system: import inputs.nixpkgs {
@ -17,25 +17,26 @@ let
}; };
}; };
host-ip = hostname: host-ip =
inputs.fudo-nixos.fudoNetworks.${hostOpts.domain}.hosts.${hostname}.ipv4-address; inputs.fudo-entities.entities.zones.${hostOpts.domain}.hosts.${hostname}.ipv4-address;
in { config, ... }: {
modules = [
inputs.fudo-nixos.nixosConfigurations.${hostname}
];
in { imports = [
config = { inputs.fudo-secrets.nixosModule
nixpkgs.pkgs = pkgs-for hostOpts.arch; inputs.fudo-lib.nixosModule
];
imports = [ nixpkgs.pkgs = pkgs-for hostOpts.arch;
inputs.fudo-nixos.nixosModule
inputs.fudo-secrets.nixosModule
];
instance = { instance = {
inherit hostname build-timestamp; inherit hostname build-timestamp;
}; };
deployments = { deployment = {
targetHost = host-ip hostname; targetHost = host-ip;
};
}; };
} }