Add deployment options for media kubenix manifest
Cleanup sonarr log files Increase size of sonarr volume
This commit is contained in:
parent
5b3687f802
commit
0c75d07f73
3 changed files with 462 additions and 420 deletions
|
@ -132,7 +132,7 @@
|
|||
jellyseerr.storage = "75Mi";
|
||||
radarr.storage = "300Mi";
|
||||
prowlarr.storage = "150Mi";
|
||||
sonarr.storage = "150Mi";
|
||||
sonarr.storage = "250Mi";
|
||||
bazarr.storage = "25Mi";
|
||||
minecraft.storage = "1Gi";
|
||||
ntfy.storage = "300Mi";
|
||||
|
|
|
@ -4,13 +4,25 @@
|
|||
lib,
|
||||
utils,
|
||||
...
|
||||
}: {
|
||||
options.media.enable = lib.mkEnableOption "media";
|
||||
}: let
|
||||
cfg = config.media;
|
||||
in {
|
||||
options.media = {
|
||||
enable = lib.mkEnableOption "media";
|
||||
jellyfin.enable = (lib.mkEnableOption "jellyfin") // {default = true;};
|
||||
deluge.enable = (lib.mkEnableOption "deluge") // {default = true;};
|
||||
jellyseerr.enable = (lib.mkEnableOption "jellyseerr") // {default = true;};
|
||||
radarr.enable = (lib.mkEnableOption "radarr") // {default = true;};
|
||||
prowlarr.enable = (lib.mkEnableOption "prowlarr") // {default = true;};
|
||||
sonarr.enable = (lib.mkEnableOption "sonarr") // {default = true;};
|
||||
bazarr.enable = (lib.mkEnableOption "bazarr") // {default = true;};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.media.enable {
|
||||
config = lib.mkIf cfg.enable {
|
||||
kubernetes.resources = {
|
||||
deployments = {
|
||||
jellyfin.spec = {
|
||||
jellyfin = lib.mkIf cfg.jellyfin.enable {
|
||||
spec = {
|
||||
selector.matchLabels = {
|
||||
app = "media";
|
||||
component = "jellyfin";
|
||||
|
@ -84,8 +96,10 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
deluge.spec = {
|
||||
deluge = lib.mkIf cfg.deluge.enable {
|
||||
spec = {
|
||||
selector.matchLabels = {
|
||||
app = "media";
|
||||
component = "deluge";
|
||||
|
@ -147,8 +161,10 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
jellyseerr.spec = {
|
||||
jellyseerr = lib.mkIf cfg.jellyseerr.enable {
|
||||
spec = {
|
||||
selector.matchLabels = {
|
||||
app = "media";
|
||||
component = "jellyseerr";
|
||||
|
@ -198,8 +214,10 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
radarr.spec = {
|
||||
radarr = lib.mkIf cfg.radarr.enable {
|
||||
spec = {
|
||||
selector.matchLabels = {
|
||||
app = "media";
|
||||
component = "radarr";
|
||||
|
@ -256,8 +274,10 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
prowlarr.spec = {
|
||||
prowlarr = lib.mkIf cfg.prowlarr.enable {
|
||||
spec = {
|
||||
selector.matchLabels = {
|
||||
app = "media";
|
||||
component = "prowlarr";
|
||||
|
@ -307,8 +327,10 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sonarr.spec = {
|
||||
sonarr = lib.mkIf cfg.sonarr.enable {
|
||||
spec = {
|
||||
selector.matchLabels = {
|
||||
app = "media";
|
||||
component = "sonarr";
|
||||
|
@ -365,8 +387,10 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
bazarr.spec = {
|
||||
bazarr = lib.mkIf cfg.bazarr.enable {
|
||||
spec = {
|
||||
selector.matchLabels = {
|
||||
app = "media";
|
||||
component = "bazarr";
|
||||
|
@ -424,9 +448,11 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
jellyfin.spec = {
|
||||
jellyfin = lib.mkIf cfg.jellyfin.enable {
|
||||
spec = {
|
||||
selector = {
|
||||
app = "media";
|
||||
component = "jellyfin";
|
||||
|
@ -437,8 +463,10 @@
|
|||
targetPort = "web";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
deluge.spec = {
|
||||
deluge = lib.mkIf cfg.deluge.enable {
|
||||
spec = {
|
||||
type = "LoadBalancer";
|
||||
loadBalancerIP = globals.transmissionIPv4;
|
||||
|
||||
|
@ -459,8 +487,10 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
jellyseerr.spec = {
|
||||
jellyseerr = lib.mkIf cfg.jellyseerr.enable {
|
||||
spec = {
|
||||
type = "LoadBalancer";
|
||||
loadBalancerIP = globals.jellyseerrIPv4;
|
||||
|
||||
|
@ -474,8 +504,10 @@
|
|||
targetPort = "web";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
radarr.spec = {
|
||||
radarr = lib.mkIf cfg.radarr.enable {
|
||||
spec = {
|
||||
type = "LoadBalancer";
|
||||
loadBalancerIP = globals.radarrIPv4;
|
||||
|
||||
|
@ -489,8 +521,10 @@
|
|||
targetPort = "web";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
prowlarr.spec = {
|
||||
prowlarr = lib.mkIf cfg.prowlarr.enable {
|
||||
spec = {
|
||||
type = "LoadBalancer";
|
||||
loadBalancerIP = globals.prowlarrIPv4;
|
||||
|
||||
|
@ -504,8 +538,10 @@
|
|||
targetPort = "web";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sonarr.spec = {
|
||||
sonarr = lib.mkIf cfg.sonarr.enable {
|
||||
spec = {
|
||||
type = "LoadBalancer";
|
||||
loadBalancerIP = globals.sonarrIPv4;
|
||||
|
||||
|
@ -519,8 +555,10 @@
|
|||
targetPort = "web";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
bazarr.spec = {
|
||||
bazarr = lib.mkIf cfg.bazarr.enable {
|
||||
spec = {
|
||||
type = "LoadBalancer";
|
||||
loadBalancerIP = globals.bazarrIPv4;
|
||||
|
||||
|
@ -535,12 +573,15 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
persistentVolumeClaims = {
|
||||
jellyfin-cache.spec = {
|
||||
jellyfin-cache = lib.mkIf cfg.jellyfin.enable {
|
||||
spec = {
|
||||
accessModes = ["ReadWriteOnce"];
|
||||
resources.requests.storage = "20Gi";
|
||||
};
|
||||
};
|
||||
|
||||
media.spec = {
|
||||
accessModes = ["ReadWriteMany"];
|
||||
|
@ -553,7 +594,7 @@
|
|||
|
||||
lab = {
|
||||
ingresses = {
|
||||
jellyfin = {
|
||||
jellyfin = lib.mkIf cfg.jellyfin.enable {
|
||||
host = "media.kun.is";
|
||||
|
||||
service = {
|
||||
|
@ -562,7 +603,7 @@
|
|||
};
|
||||
};
|
||||
|
||||
jellyseerr = {
|
||||
jellyseerr = lib.mkIf cfg.jellyseerr.enable {
|
||||
host = "jellyseerr.kun.is";
|
||||
entrypoint = "localsecure";
|
||||
|
||||
|
@ -574,69 +615,69 @@
|
|||
};
|
||||
|
||||
tailscaleIngresses = {
|
||||
tailscale-jellyseerr = {
|
||||
tailscale-jellyseerr = lib.mkIf cfg.jellyseerr.enable {
|
||||
host = "jellyseerr";
|
||||
service.name = "jellyseerr";
|
||||
};
|
||||
|
||||
tailscale-radarr = {
|
||||
tailscale-radarr = lib.mkIf cfg.radarr.enable {
|
||||
host = "radarr";
|
||||
service.name = "radarr";
|
||||
};
|
||||
|
||||
tailscale-sonarr = {
|
||||
tailscale-sonarr = lib.mkIf cfg.sonarr.enable {
|
||||
host = "sonarr";
|
||||
service.name = "sonarr";
|
||||
};
|
||||
|
||||
tailscale-bazarr = {
|
||||
tailscale-bazarr = lib.mkIf cfg.bazarr.enable {
|
||||
host = "bazarr";
|
||||
service.name = "bazarr";
|
||||
};
|
||||
|
||||
tailscale-prowlarr = {
|
||||
tailscale-prowlarr = lib.mkIf cfg.prowlarr.enable {
|
||||
host = "prowlarr";
|
||||
service.name = "prowlarr";
|
||||
};
|
||||
|
||||
tailscale-deluge = {
|
||||
tailscale-deluge = lib.mkIf cfg.deluge.enable {
|
||||
host = "deluge";
|
||||
service.name = "deluge";
|
||||
};
|
||||
};
|
||||
|
||||
longhorn.persistentVolumeClaim = {
|
||||
jellyfin = {
|
||||
jellyfin = lib.mkIf cfg.jellyfin.enable {
|
||||
volumeName = "jellyfin";
|
||||
storage = "5Gi";
|
||||
};
|
||||
|
||||
deluge = {
|
||||
deluge = lib.mkIf cfg.deluge.enable {
|
||||
volumeName = "deluge";
|
||||
storage = "500Mi";
|
||||
};
|
||||
|
||||
jellyseerr = {
|
||||
jellyseerr = lib.mkIf cfg.jellyseerr.enable {
|
||||
volumeName = "jellyseerr";
|
||||
storage = "75Mi";
|
||||
};
|
||||
|
||||
radarr = {
|
||||
radarr = lib.mkIf cfg.radarr.enable {
|
||||
volumeName = "radarr";
|
||||
storage = "300Mi";
|
||||
};
|
||||
|
||||
prowlarr = {
|
||||
prowlarr = lib.mkIf cfg.prowlarr.enable {
|
||||
volumeName = "prowlarr";
|
||||
storage = "150Mi";
|
||||
};
|
||||
|
||||
sonarr = {
|
||||
sonarr = lib.mkIf cfg.sonarr.enable {
|
||||
volumeName = "sonarr";
|
||||
storage = "150Mi";
|
||||
storage = "250Mi";
|
||||
};
|
||||
|
||||
bazarr = {
|
||||
bazarr = lib.mkIf cfg.bazarr.enable {
|
||||
volumeName = "bazarr";
|
||||
storage = "25Mi";
|
||||
};
|
||||
|
|
|
@ -24,6 +24,7 @@ in {
|
|||
enabled = true;
|
||||
user = lib.mkDefault "sonarr";
|
||||
group = lib.mkDefault "sonarr";
|
||||
tmpfiles = with nglib.nottmpfiles.dsl; [(e "${cfg.dataDir}/logs" "-" cfgInit.user cfgInit.group "7d" _)];
|
||||
|
||||
script = pkgs.writeShellScript "sonarr-run" ''
|
||||
umask 0002
|
||||
|
@ -35,7 +36,7 @@ in {
|
|||
|
||||
users.users.${cfgInit.user} = lib.mkIf (cfgInit.user == "sonarr") (nglib.mkDefaultRec {
|
||||
description = "sonarr";
|
||||
group = cfgInit.group;
|
||||
inherit (cfgInit) group;
|
||||
createHome = false;
|
||||
home = "/var/empty";
|
||||
useDefaultShell = true;
|
||||
|
|
Loading…
Add table
Reference in a new issue