diff --git a/cluster/clustercfg/clustercfg.py b/cluster/clustercfg/clustercfg.py index c5f5c6c9..0adef403 100644 --- a/cluster/clustercfg/clustercfg.py +++ b/cluster/clustercfg/clustercfg.py @@ -207,8 +207,8 @@ def nodestrap(args, nocerts=False): ca_admitomatic.make_cert('admitomatic-webhook', ou='Admitomatic Webhook', hosts=['admitomatic.admitomatic.svc']) subprocess.check_call(["nix", "run", - "-f", os.path.join(local_root, "cluster/nix/default.nix"), - "provision", + "-f", local_root, + "cluster.nix.provision", "-c", "provision-{}".format(fqdn.split('.')[0])]) diff --git a/cluster/nix/default.nix b/cluster/nix/default.nix deleted file mode 100644 index 39d693b0..00000000 --- a/cluster/nix/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -let - # Tracking nixos-unstable as of 2021-01-31. - nixpkgsCommit = "44ad80ab1036c5cc83ada4bfa451dac9939f2a10"; - nixpkgsSrc = fetchTarball { - url = "https://github.com/NixOS/nixpkgs/archive/${nixpkgsCommit}.tar.gz"; - sha256 = "1b61nzvy0d46cspy07szkc0rggacxiqg9v1py27pkqpj7rvawfsk"; - }; - pkgs = import nixpkgsSrc; - cfg = { - overlays = [ - (import ./provision.nix) - ]; - }; - -in pkgs cfg diff --git a/cluster/nix/provision.nix b/cluster/nix/provision.nix index 20ed0a09..7ab7e714 100644 --- a/cluster/nix/provision.nix +++ b/cluster/nix/provision.nix @@ -1,10 +1,12 @@ -self: super: +{ hscloud, pkgs, ... }: + +with builtins; let machines = (import ./defs-machines.nix); configurations = builtins.listToAttrs (map (machine: { name = machine.fqdn; - value = super.nixos ({ config, pkgs, ... }: { + value = pkgs.nixos ({ config, pkgs, ... }: { networking.hostName = machine.name; imports = [ ./modules/base.nix @@ -32,18 +34,16 @@ let fi ''; - machineProvisioners = builtins.listToAttrs (map (machine: { - name = "provision-${machine.name}"; - value = super.writeScriptBin "provision-${machine.name}" (scriptForMachine machine); - }) machines); + provisioners = (map (machine: + pkgs.writeScriptBin "provision-${machine.name}" (scriptForMachine machine) + ) machines); + + provision = pkgs.writeScriptBin "provision" ( + '' + echo "Available provisioniers:" + '' + (concatStringsSep "\n" (map (machine: "echo ' provision-${machine.name}'") machines))); in -{ - provision = ({ - provision = super.writeScriptBin "provision" - ( - '' - echo "Available provisioniers:" - '' + (builtins.concatStringsSep "\n" (map (machine: "echo ' provision-${machine.name}'") machines)) - ); - }) // machineProvisioners; +pkgs.symlinkJoin { + name = "provision"; + paths = [ provision ] ++ provisioners; }