forked from fediversity/fediversity
91 lines
2.4 KiB
Nix
91 lines
2.4 KiB
Nix
{
|
|
lib,
|
|
...
|
|
}:
|
|
let
|
|
inherit (lib) mkOption types;
|
|
in
|
|
{
|
|
options = {
|
|
host = mkOption {
|
|
type = types.str;
|
|
description = "name of the host to deploy to";
|
|
};
|
|
targetSystem = mkOption {
|
|
type = types.str;
|
|
description = "name of the host to deploy to";
|
|
};
|
|
sshOpts = mkOption {
|
|
description = "Extra SSH options (`-o`) to use.";
|
|
type = types.listOf types.str;
|
|
default = [ ];
|
|
example = "ConnectTimeout=60";
|
|
};
|
|
httpBackend = mkOption {
|
|
description = "environment variables to configure the TF HTTP back-end, see <https://developer.hashicorp.com/terraform/language/backend/http#configuration-variables>";
|
|
type = types.attrsOf (types.either types.str types.int);
|
|
};
|
|
key-file = mkOption {
|
|
type = types.str;
|
|
default = "";
|
|
};
|
|
proxmox-user = mkOption {
|
|
description = "The ProxmoX user to use.";
|
|
type = types.str;
|
|
default = "root@pam";
|
|
};
|
|
proxmox-password = mkOption {
|
|
description = "The ProxmoX password to use.";
|
|
type = types.str;
|
|
};
|
|
node-name = mkOption {
|
|
description = "the name of the ProxmoX node to use.";
|
|
type = types.str;
|
|
};
|
|
bridge = mkOption {
|
|
description = "The name of the network bridge (defaults to vmbr0).";
|
|
type = types.str;
|
|
default = "vmbr0";
|
|
};
|
|
vlanId = mkOption {
|
|
description = "The VLAN identifier.";
|
|
type = types.int;
|
|
default = 0;
|
|
};
|
|
imageDatastoreId = mkOption {
|
|
description = "ID of the datastore of the image.";
|
|
type = types.str;
|
|
default = "local";
|
|
};
|
|
vmDatastoreId = mkOption {
|
|
description = "ID of the datastore of the VM.";
|
|
type = types.str;
|
|
default = "local";
|
|
};
|
|
cdDatastoreId = mkOption {
|
|
description = "ID of the datastore of the virtual CD-rom drive to use for cloud-init.";
|
|
type = types.str;
|
|
default = "local";
|
|
};
|
|
ipv4Gateway = mkOption {
|
|
description = "Gateway for IPv4.";
|
|
type = types.str;
|
|
default = "";
|
|
};
|
|
ipv4Address = mkOption {
|
|
description = "IPv4 address.";
|
|
type = types.str;
|
|
default = "";
|
|
};
|
|
ipv6Gateway = mkOption {
|
|
description = "Gateway for IPv6.";
|
|
type = types.str;
|
|
default = "";
|
|
};
|
|
ipv6Address = mkOption {
|
|
description = "IPv6 address.";
|
|
type = types.str;
|
|
default = "";
|
|
};
|
|
};
|
|
}
|