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