Merge pull request 'clanModules/state-version: init state-version' (#2077) from kenji/clan-core:state-version into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/2077
This commit is contained in:
@@ -21,6 +21,7 @@
|
|||||||
postgresql = ./postgresql;
|
postgresql = ./postgresql;
|
||||||
root-password = ./root-password;
|
root-password = ./root-password;
|
||||||
single-disk = ./single-disk;
|
single-disk = ./single-disk;
|
||||||
|
state-version = ./state-version;
|
||||||
sshd = ./sshd;
|
sshd = ./sshd;
|
||||||
static-hosts = ./static-hosts;
|
static-hosts = ./static-hosts;
|
||||||
sunshine = ./sunshine;
|
sunshine = ./sunshine;
|
||||||
|
|||||||
7
clanModules/state-version/README.md
Normal file
7
clanModules/state-version/README.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
description = "Automatically generate the state version of the nixos installation."
|
||||||
|
---
|
||||||
|
|
||||||
|
This module generates the `system.stateVersion` of the nixos installation automatically.
|
||||||
|
|
||||||
|
Options: [system.stateVersion](https://search.nixos.org/options?channel=unstable&show=system.stateVersion&from=0&size=50&sort=relevance&type=packages&query=stateVersion)
|
||||||
@@ -1,7 +1,14 @@
|
|||||||
{ config, lib, ... }:
|
{ config, lib, ... }:
|
||||||
|
let
|
||||||
|
var = config.clan.core.vars.generators.state-version.files.version or { };
|
||||||
|
in
|
||||||
{
|
{
|
||||||
system.stateVersion = config.clan.core.vars.generators.state-version.files.version.value;
|
config = lib.mkMerge [
|
||||||
|
(lib.mkIf ((var.value or null) != null) {
|
||||||
|
system.stateVersion = lib.mkDefault (lib.removeSuffix "\n" var.value);
|
||||||
|
})
|
||||||
|
|
||||||
|
{
|
||||||
clan.core.vars.generators.state-version = {
|
clan.core.vars.generators.state-version = {
|
||||||
files.version.secret = false;
|
files.version.secret = false;
|
||||||
runtimeInputs = [ ];
|
runtimeInputs = [ ];
|
||||||
@@ -10,3 +17,5 @@
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|||||||
1
clanModules/state-version/roles/default.nix
Normal file
1
clanModules/state-version/roles/default.nix
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{ }
|
||||||
@@ -60,24 +60,24 @@ nav:
|
|||||||
- reference/clanModules/borgbackup.md
|
- reference/clanModules/borgbackup.md
|
||||||
- reference/clanModules/deltachat.md
|
- reference/clanModules/deltachat.md
|
||||||
- reference/clanModules/dyndns.md
|
- reference/clanModules/dyndns.md
|
||||||
- reference/clanModules/nginx.md
|
|
||||||
- reference/clanModules/vaultwarden.md
|
|
||||||
- reference/clanModules/ergochat.md
|
- reference/clanModules/ergochat.md
|
||||||
- reference/clanModules/garage.md
|
- reference/clanModules/garage.md
|
||||||
- reference/clanModules/golem-provider.md
|
- reference/clanModules/golem-provider.md
|
||||||
|
- reference/clanModules/heisenbridge.md
|
||||||
- reference/clanModules/index.md
|
- reference/clanModules/index.md
|
||||||
- reference/clanModules/iwd.md
|
- reference/clanModules/iwd.md
|
||||||
- reference/clanModules/localbackup.md
|
- reference/clanModules/localbackup.md
|
||||||
- reference/clanModules/localsend.md
|
- reference/clanModules/localsend.md
|
||||||
- reference/clanModules/matrix-synapse.md
|
- reference/clanModules/matrix-synapse.md
|
||||||
- reference/clanModules/heisenbridge.md
|
|
||||||
- reference/clanModules/moonlight.md
|
- reference/clanModules/moonlight.md
|
||||||
- reference/clanModules/mumble.md
|
- reference/clanModules/mumble.md
|
||||||
|
- reference/clanModules/nginx.md
|
||||||
- reference/clanModules/packages.md
|
- reference/clanModules/packages.md
|
||||||
- reference/clanModules/postgresql.md
|
- reference/clanModules/postgresql.md
|
||||||
- reference/clanModules/root-password.md
|
- reference/clanModules/root-password.md
|
||||||
- reference/clanModules/single-disk.md
|
- reference/clanModules/single-disk.md
|
||||||
- reference/clanModules/sshd.md
|
- reference/clanModules/sshd.md
|
||||||
|
- reference/clanModules/state-version.md
|
||||||
- reference/clanModules/static-hosts.md
|
- reference/clanModules/static-hosts.md
|
||||||
- reference/clanModules/sunshine.md
|
- reference/clanModules/sunshine.md
|
||||||
- reference/clanModules/syncthing-static-peers.md
|
- reference/clanModules/syncthing-static-peers.md
|
||||||
@@ -85,6 +85,7 @@ nav:
|
|||||||
- reference/clanModules/thelounge.md
|
- reference/clanModules/thelounge.md
|
||||||
- reference/clanModules/trusted-nix-caches.md
|
- reference/clanModules/trusted-nix-caches.md
|
||||||
- reference/clanModules/user-password.md
|
- reference/clanModules/user-password.md
|
||||||
|
- reference/clanModules/vaultwarden.md
|
||||||
- reference/clanModules/xfce.md
|
- reference/clanModules/xfce.md
|
||||||
- reference/clanModules/zerotier-static-peers.md
|
- reference/clanModules/zerotier-static-peers.md
|
||||||
- reference/clanModules/zt-tcp-relay.md
|
- reference/clanModules/zt-tcp-relay.md
|
||||||
|
|||||||
@@ -218,6 +218,37 @@ class ServiceSingleDisk:
|
|||||||
machines: dict[str, ServiceSingleDiskMachine] = field(default_factory = dict)
|
machines: dict[str, ServiceSingleDiskMachine] = field(default_factory = dict)
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class StateVersionConfig:
|
||||||
|
pass
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class ServiceStateVersionMachine:
|
||||||
|
config: StateVersionConfig = field(default_factory = StateVersionConfig)
|
||||||
|
imports: list[str] = field(default_factory = list)
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class ServiceStateVersionRoleDefault:
|
||||||
|
config: StateVersionConfig = field(default_factory = StateVersionConfig)
|
||||||
|
imports: list[str] = field(default_factory = list)
|
||||||
|
machines: list[str] = field(default_factory = list)
|
||||||
|
tags: list[str] = field(default_factory = list)
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class ServiceStateVersionRole:
|
||||||
|
default: ServiceStateVersionRoleDefault
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class ServiceStateVersion:
|
||||||
|
meta: ServiceMeta
|
||||||
|
roles: ServiceStateVersionRole
|
||||||
|
config: StateVersionConfig = field(default_factory = StateVersionConfig)
|
||||||
|
machines: dict[str, ServiceStateVersionMachine] = field(default_factory = dict)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class Service:
|
class Service:
|
||||||
admin: dict[str, ServiceAdmin] = field(default_factory = dict)
|
admin: dict[str, ServiceAdmin] = field(default_factory = dict)
|
||||||
@@ -225,6 +256,7 @@ class Service:
|
|||||||
iwd: dict[str, ServiceIwd] = field(default_factory = dict)
|
iwd: dict[str, ServiceIwd] = field(default_factory = dict)
|
||||||
packages: dict[str, ServicePackage] = field(default_factory = dict)
|
packages: dict[str, ServicePackage] = field(default_factory = dict)
|
||||||
single_disk: dict[str, ServiceSingleDisk] = field(default_factory = dict, metadata = {"alias": "single-disk"})
|
single_disk: dict[str, ServiceSingleDisk] = field(default_factory = dict, metadata = {"alias": "single-disk"})
|
||||||
|
state_version: dict[str, ServiceStateVersion] = field(default_factory = dict, metadata = {"alias": "state-version"})
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
|||||||
Reference in New Issue
Block a user