Merge pull request 'ClanModule: init Admin module' (#1978) from hsjobeki/clan-core:hsjobeki-main into main
This commit is contained in:
4
clanModules/admin/README.md
Normal file
4
clanModules/admin/README.md
Normal file
@@ -0,0 +1,4 @@
|
||||
---
|
||||
description = "Convenient Administration for the Clan App"
|
||||
categories = ["administration"]
|
||||
---
|
||||
17
clanModules/admin/default.nix
Normal file
17
clanModules/admin/default.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{ lib, config, ... }:
|
||||
{
|
||||
options.clan.admin = {
|
||||
allowedKeys = lib.mkOption {
|
||||
default = [ ];
|
||||
type = lib.types.listOf lib.types.str;
|
||||
description = "The allowed public keys for ssh access to the admin user";
|
||||
};
|
||||
};
|
||||
imports = [
|
||||
../sshd
|
||||
../root-password
|
||||
];
|
||||
config = {
|
||||
users.users.root.openssh.authorizedKeys.keys = config.clan.admin.allowedKeys;
|
||||
};
|
||||
}
|
||||
1
clanModules/admin/roles/default.nix
Normal file
1
clanModules/admin/roles/default.nix
Normal file
@@ -0,0 +1 @@
|
||||
{ }
|
||||
@@ -1,6 +1,7 @@
|
||||
{ ... }:
|
||||
{
|
||||
flake.clanModules = {
|
||||
admin = ./admin;
|
||||
borgbackup = ./borgbackup;
|
||||
borgbackup-static = ./borgbackup-static;
|
||||
deltachat = ./deltachat;
|
||||
|
||||
@@ -55,6 +55,7 @@ nav:
|
||||
- Reference:
|
||||
- reference/index.md
|
||||
- Clan Modules:
|
||||
- reference/clanModules/admin.md
|
||||
- reference/clanModules/borgbackup-static.md
|
||||
- reference/clanModules/borgbackup.md
|
||||
- reference/clanModules/deltachat.md
|
||||
|
||||
@@ -30,6 +30,45 @@ class Meta:
|
||||
icon: None | str = field(default = None)
|
||||
|
||||
|
||||
@dataclass
|
||||
class AdminConfig:
|
||||
allowedKeys: list[str] = field(default_factory = list)
|
||||
|
||||
|
||||
@dataclass
|
||||
class ServiceAdminMachine:
|
||||
config: AdminConfig = field(default_factory = AdminConfig)
|
||||
imports: list[str] = field(default_factory = list)
|
||||
|
||||
|
||||
@dataclass
|
||||
class ServiceMeta:
|
||||
name: str
|
||||
description: None | str = field(default = None)
|
||||
icon: None | str = field(default = None)
|
||||
|
||||
|
||||
@dataclass
|
||||
class ServiceAdminRoleDefault:
|
||||
config: AdminConfig = field(default_factory = AdminConfig)
|
||||
imports: list[str] = field(default_factory = list)
|
||||
machines: list[str] = field(default_factory = list)
|
||||
tags: list[str] = field(default_factory = list)
|
||||
|
||||
|
||||
@dataclass
|
||||
class ServiceAdminRole:
|
||||
default: ServiceAdminRoleDefault
|
||||
|
||||
|
||||
@dataclass
|
||||
class ServiceAdmin:
|
||||
meta: ServiceMeta
|
||||
roles: ServiceAdminRole
|
||||
config: AdminConfig = field(default_factory = AdminConfig)
|
||||
machines: dict[str, ServiceAdminMachine] = field(default_factory = dict)
|
||||
|
||||
|
||||
@dataclass
|
||||
class BorgbackupConfigDestination:
|
||||
name: str
|
||||
@@ -48,13 +87,6 @@ class ServiceBorgbackupMachine:
|
||||
imports: list[str] = field(default_factory = list)
|
||||
|
||||
|
||||
@dataclass
|
||||
class ServiceMeta:
|
||||
name: str
|
||||
description: None | str = field(default = None)
|
||||
icon: None | str = field(default = None)
|
||||
|
||||
|
||||
@dataclass
|
||||
class ServiceBorgbackupRoleClient:
|
||||
config: BorgbackupConfig = field(default_factory = BorgbackupConfig)
|
||||
@@ -151,6 +183,7 @@ class ServiceSingleDisk:
|
||||
|
||||
@dataclass
|
||||
class Service:
|
||||
admin: dict[str, ServiceAdmin] = field(default_factory = dict)
|
||||
borgbackup: dict[str, ServiceBorgbackup] = 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"})
|
||||
|
||||
Reference in New Issue
Block a user