forked from fediversity/fediversity
		
	```
cp /nix/store/.../nixos.img disk.raw
chmod 0644 disk.raw
qemu-system-x86_64 -enable-kvm -m 2048 -drive
if=virtio,file=./disk.raw,format=raw -bios "$(nix eval --impure --expr
'(import <nixpkgs> { }).OVMF.fd.outPath' | jq -r)/FV/OVMF.fd"
```
Signed-off-by: Kiara Grouwstra <kiara@procolix.eu>
		
	
			
		
			
				
	
	
		
			133 lines
		
	
	
	
		
			4.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			133 lines
		
	
	
	
		
			4.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  inputs = {
 | 
						|
    nixops4.follows = "nixops4-nixos/nixops4";
 | 
						|
    nixops4-nixos.url = "github:nixops4/nixops4-nixos";
 | 
						|
  };
 | 
						|
 | 
						|
  outputs =
 | 
						|
    inputs:
 | 
						|
    {
 | 
						|
      nixConfig = {
 | 
						|
        extra-trusted-substituters = "https://cache.saumon.network/proxmox-nixos";
 | 
						|
        extra-trusted-public-keys = "proxmox-nixos:D9RYSWpQQC/msZUWphOY2I5RLH5Dd6yQcaHIuug7dWM=";
 | 
						|
      };
 | 
						|
    }
 | 
						|
    // import ./mkFlake.nix inputs (
 | 
						|
      { inputs, sources, ... }:
 | 
						|
      {
 | 
						|
        imports = [
 | 
						|
          "${sources.git-hooks}/flake-module.nix"
 | 
						|
          inputs.nixops4.modules.flake.default
 | 
						|
 | 
						|
          ./deployment/flake-part.nix
 | 
						|
          ./infra/flake-part.nix
 | 
						|
          ./keys/flake-part.nix
 | 
						|
          ./secrets/flake-part.nix
 | 
						|
          ./services/tests/flake-part.nix
 | 
						|
        ];
 | 
						|
 | 
						|
        perSystem =
 | 
						|
          {
 | 
						|
            pkgs,
 | 
						|
            lib,
 | 
						|
            system,
 | 
						|
            ...
 | 
						|
          }:
 | 
						|
          {
 | 
						|
            checks = {
 | 
						|
              panel = (import ./. { inherit sources system; }).tests.panel.basic;
 | 
						|
            };
 | 
						|
            formatter = pkgs.nixfmt-rfc-style;
 | 
						|
 | 
						|
            pre-commit.settings.hooks =
 | 
						|
              let
 | 
						|
                ## Add a directory here if pre-commit hooks shouldn't apply to it.
 | 
						|
                optout = [ "npins" ];
 | 
						|
                excludes = map (dir: "^${dir}/") optout;
 | 
						|
                addExcludes = lib.mapAttrs (_: c: c // { inherit excludes; });
 | 
						|
              in
 | 
						|
              addExcludes {
 | 
						|
                nixfmt-rfc-style.enable = true;
 | 
						|
                deadnix.enable = true;
 | 
						|
                trim-trailing-whitespace.enable = true;
 | 
						|
                shellcheck.enable = true;
 | 
						|
              };
 | 
						|
 | 
						|
            # https://192.168.51.81:8006/#v1:0:=node%2Fnode051:4:::::8::=apitokens
 | 
						|
 | 
						|
            # apps.default = {
 | 
						|
            #   type = "app";
 | 
						|
            #   program = pkgs.writers.writeBashBin "provision-proxmox.sh"
 | 
						|
            #     {
 | 
						|
            #       makeWrapperArgs = [
 | 
						|
            #         "--prefix"
 | 
						|
            #         "PATH"
 | 
						|
            #         ":"
 | 
						|
            #         "${lib.makeBinPath [
 | 
						|
            #           pkgs.jq
 | 
						|
            #           pkgs.httpie
 | 
						|
            #         ]}"
 | 
						|
            #       ];
 | 
						|
            #     }
 | 
						|
            #     ''
 | 
						|
            #       sh ./infra/proxmox-remove.sh    --api-url "https://192.168.51.81:8006/api2/json" --username "kiara@ProcoliX" --password "" 7014 # test14
 | 
						|
            #       sh ./infra/proxmox-provision.sh --api-url "https://192.168.51.81:8006/api2/json" --username "kiara@ProcoliX" --password "" test14
 | 
						|
            #     '';
 | 
						|
            # };
 | 
						|
 | 
						|
            # api_token = "terraform@pve!provider=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
 | 
						|
            # kiara@ProcoliX!dsdfsfdsfd=30df234b-02f3-4ed9-b778-00d28ad3499c
 | 
						|
 | 
						|
            # # iso: No bootable option or device was found
 | 
						|
            # apps.default = let
 | 
						|
            #   inherit (pkgs) system;
 | 
						|
            #   deployment =
 | 
						|
            #     (import ./deployment/check/common/data-model.nix {
 | 
						|
            #       inherit system;
 | 
						|
            #       config = {
 | 
						|
            #         targetSystem = system;
 | 
						|
            #         nodeName = "192.168.51.81"; # root@fediversity-proxmox
 | 
						|
            #         pathToRoot = builtins.path {
 | 
						|
            #           path = ./.;
 | 
						|
            #           name = "root";
 | 
						|
            #         };
 | 
						|
            #         sshOpts = [];
 | 
						|
            #         proxmox-user  = "kiara@ProcoliX";
 | 
						|
            #         proxmox-password = "";
 | 
						|
            #         node-name = "node051";
 | 
						|
            #         vm-names = [ "test14" ];
 | 
						|
            #       };
 | 
						|
            #     })."bash-proxmox-deployment".bash-proxmox-host;
 | 
						|
            # in {
 | 
						|
            #   type = "app";
 | 
						|
            #   program = deployment.run;
 | 
						|
            # };
 | 
						|
 | 
						|
            apps.default = let
 | 
						|
              inherit (pkgs) system;
 | 
						|
              deployment =
 | 
						|
                (import ./deployment/check/common/data-model.nix {
 | 
						|
                  inherit system;
 | 
						|
                  config = {
 | 
						|
                    targetSystem = system;
 | 
						|
                    nodeName = "192.168.51.81"; # root@fediversity-proxmox
 | 
						|
                    pathToRoot = builtins.path {
 | 
						|
                      path = ./.;
 | 
						|
                      name = "root";
 | 
						|
                    };
 | 
						|
                    sshOpts = [];
 | 
						|
                    proxmox-user  = "kiara@ProcoliX";
 | 
						|
                    proxmox-password = "";
 | 
						|
                    node-name = "node051";
 | 
						|
                  };
 | 
						|
                  # opt not to pass `inputs`, as we could only pass serializable arguments through to its self-call
 | 
						|
                })."tf-proxmox-deployment".tf-proxmox-host;
 | 
						|
            in {
 | 
						|
              type = "app";
 | 
						|
              program = deployment.run;
 | 
						|
            };
 | 
						|
 | 
						|
          };
 | 
						|
      }
 | 
						|
    );
 | 
						|
}
 |