forked from fediversity/fediversity
inline proxmox-template call
this did not need to go thru a separate file, as it turned out not recursive Signed-off-by: Kiara Grouwstra <kiara@procolix.eu>
This commit is contained in:
parent
ddbd7abbb2
commit
10431f42ad
4 changed files with 55 additions and 87 deletions
|
|
@ -2,14 +2,14 @@
|
|||
config,
|
||||
system,
|
||||
modulesPath,
|
||||
sources ? import ../../../../npins,
|
||||
sources ? import ../../../npins,
|
||||
...
|
||||
}@args:
|
||||
let
|
||||
inherit (sources) nixpkgs;
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
inherit (pkgs) lib;
|
||||
inherit (pkgs.callPackage ../../common/utils.nix { inherit modulesPath; }) mkNixosConfiguration;
|
||||
inherit (pkgs.callPackage ../common/utils.nix { inherit modulesPath; }) mkNixosConfiguration;
|
||||
inherit (config)
|
||||
nodeName
|
||||
pathToRoot
|
||||
|
|
@ -30,10 +30,10 @@ let
|
|||
ipv6Address
|
||||
;
|
||||
in
|
||||
(pkgs.callPackage ../../../utils.nix { }).evalModel (
|
||||
(pkgs.callPackage ../../utils.nix { }).evalModel (
|
||||
{ config, ... }:
|
||||
{
|
||||
imports = [ ../../common/model.nix ];
|
||||
imports = [ ../common/model.nix ];
|
||||
config = {
|
||||
environments.default = environment: {
|
||||
resources."operator-environment".login-shell = {
|
||||
|
|
@ -7,23 +7,61 @@
|
|||
}:
|
||||
let
|
||||
inherit (pkgs) system;
|
||||
inherit (pkgs.callPackage ../../utils.nix { }) evalModel;
|
||||
inherit (pkgs.callPackage ../common/utils.nix { inherit modulesPath; }) mkNixosConfiguration;
|
||||
backendPort = builtins.toString 8080;
|
||||
tfBackend = fragment: {
|
||||
address = "http://localhost:${backendPort}/state/${fragment}";
|
||||
};
|
||||
template-deployment =
|
||||
(import ./setups/template.nix {
|
||||
inherit sources system modulesPath;
|
||||
(evalModel (
|
||||
{ config, ... }:
|
||||
{
|
||||
imports = [ ../common/model.nix ];
|
||||
config = {
|
||||
environments.default = environment: {
|
||||
resources."operator-environment".login-shell = {
|
||||
wheel = true;
|
||||
username = "operator";
|
||||
};
|
||||
implementation =
|
||||
{
|
||||
required-resources,
|
||||
...
|
||||
}:
|
||||
{
|
||||
tf-proxmox-template = {
|
||||
nixos-configuration = {
|
||||
imports = [
|
||||
(mkNixosConfiguration environment required-resources)
|
||||
./shared.nix
|
||||
];
|
||||
};
|
||||
inherit system;
|
||||
ssh.host = "pve";
|
||||
httpBackend = tfBackend "proxmox-test/upload";
|
||||
nodeName = "pve";
|
||||
targetSystem = system;
|
||||
node-name = "pve";
|
||||
imageDatastoreId = "local";
|
||||
};
|
||||
}).default.tf-proxmox-template;
|
||||
};
|
||||
};
|
||||
};
|
||||
options.default =
|
||||
let
|
||||
env = config.environments.default;
|
||||
in
|
||||
lib.mkOption {
|
||||
type = env.resource-mapping.output-type;
|
||||
default = env.deployment {
|
||||
deployment-name = "default";
|
||||
# normally our template is distinct, but our test cannot download build deps due to sandboxing
|
||||
configuration = config."example-configuration";
|
||||
};
|
||||
};
|
||||
}
|
||||
)).default.tf-proxmox-template;
|
||||
vm-deployment =
|
||||
(import ./setups/vm.nix {
|
||||
(import ./data-model.nix {
|
||||
inherit sources system modulesPath;
|
||||
config = {
|
||||
httpBackend = tfBackend "proxmox-test/nixos";
|
||||
|
|
|
|||
|
|
@ -1,70 +0,0 @@
|
|||
{
|
||||
config,
|
||||
system,
|
||||
modulesPath,
|
||||
sources ? import ../../../../npins,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (sources) nixpkgs;
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
inherit (pkgs) lib;
|
||||
inherit (pkgs.callPackage ../../common/utils.nix { inherit modulesPath; }) mkNixosConfiguration;
|
||||
inherit (config)
|
||||
nodeName
|
||||
targetSystem
|
||||
httpBackend
|
||||
node-name
|
||||
imageDatastoreId
|
||||
;
|
||||
in
|
||||
(pkgs.callPackage ../../../utils.nix { }).evalModel (
|
||||
{ config, ... }:
|
||||
{
|
||||
imports = [ ../../common/model.nix ];
|
||||
config = {
|
||||
environments.default = environment: {
|
||||
resources."operator-environment".login-shell = {
|
||||
wheel = true;
|
||||
username = "operator";
|
||||
};
|
||||
implementation =
|
||||
{
|
||||
required-resources,
|
||||
...
|
||||
}:
|
||||
{
|
||||
tf-proxmox-template = {
|
||||
nixos-configuration = {
|
||||
imports = [
|
||||
(mkNixosConfiguration environment required-resources)
|
||||
./shared.nix
|
||||
];
|
||||
};
|
||||
system = targetSystem;
|
||||
ssh = {
|
||||
host = nodeName;
|
||||
};
|
||||
inherit
|
||||
node-name
|
||||
httpBackend
|
||||
imageDatastoreId
|
||||
;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
options.default =
|
||||
let
|
||||
env = config.environments.default;
|
||||
in
|
||||
lib.mkOption {
|
||||
type = env.resource-mapping.output-type;
|
||||
default = env.deployment {
|
||||
deployment-name = "default";
|
||||
# normally our template is distinct, but our test cannot download build deps due to sandboxing
|
||||
configuration = config."example-configuration";
|
||||
};
|
||||
};
|
||||
}
|
||||
)
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
lib,
|
||||
sources ? import ../../../../npins,
|
||||
sources ? import ../../../npins,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
"${sources.disko}/module.nix"
|
||||
../../../../infra/common/proxmox-qemu-vm.nix
|
||||
../../../infra/common/proxmox-qemu-vm.nix
|
||||
];
|
||||
networking.useDHCP = false;
|
||||
services.qemuGuest.enable = true;
|
||||
Loading…
Add table
Reference in a new issue