create custom nixos module for k8s nfs volumes
This commit is contained in:
parent
4ded27d82e
commit
dce3919f31
14 changed files with 216 additions and 464 deletions
|
@ -22,5 +22,6 @@
|
||||||
./cert-manager.nix
|
./cert-manager.nix
|
||||||
./minecraft.nix
|
./minecraft.nix
|
||||||
./custom/ingress.nix
|
./custom/ingress.nix
|
||||||
|
./custom/nfs-volume.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,6 @@ in
|
||||||
options = {
|
options = {
|
||||||
lab.ingresses = lib.mkOption {
|
lab.ingresses = lib.mkOption {
|
||||||
type = with lib.types; attrsOf (submodule ingressOpts);
|
type = with lib.types; attrsOf (submodule ingressOpts);
|
||||||
|
|
||||||
default = { };
|
default = { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
47
kubenix-modules/custom/nfs-volume.nix
Normal file
47
kubenix-modules/custom/nfs-volume.nix
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
{ lib, config, ... }:
|
||||||
|
let
|
||||||
|
nfsVolumeOpts = { name, ... }: {
|
||||||
|
options = {
|
||||||
|
path = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
lab.nfsVolumes = lib.mkOption {
|
||||||
|
type = with lib.types; attrsOf (submodule nfsVolumeOpts);
|
||||||
|
default = { };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
kubernetes.resources = {
|
||||||
|
persistentVolumes = builtins.mapAttrs
|
||||||
|
(name: nfsVolume: {
|
||||||
|
spec = {
|
||||||
|
capacity.storage = "1Mi";
|
||||||
|
accessModes = [ "ReadWriteMany" ];
|
||||||
|
|
||||||
|
nfs = {
|
||||||
|
server = "lewis.dmz";
|
||||||
|
path = "/mnt/data/nfs/${nfsVolume.path}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})
|
||||||
|
config.lab.nfsVolumes;
|
||||||
|
|
||||||
|
persistentVolumeClaims = builtins.mapAttrs
|
||||||
|
(name: nfsVolume: {
|
||||||
|
spec = {
|
||||||
|
accessModes = [ "ReadWriteMany" ];
|
||||||
|
storageClassName = "";
|
||||||
|
resources.requests.storage = "1Mi";
|
||||||
|
volumeName = name;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
config.lab.nfsVolumes;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -158,23 +158,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
persistentVolumes.forgejo.spec = {
|
|
||||||
capacity.storage = "1Mi";
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
|
|
||||||
nfs = {
|
|
||||||
server = "lewis.dmz";
|
|
||||||
path = "/mnt/data/nfs/forgejo";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
persistentVolumeClaims.forgejo.spec = {
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
storageClassName = "";
|
|
||||||
resources.requests.storage = "1Mi";
|
|
||||||
volumeName = "forgejo";
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
forgejo-web.spec = {
|
forgejo-web.spec = {
|
||||||
selector.app = "forgejo";
|
selector.app = "forgejo";
|
||||||
|
@ -198,12 +181,16 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
lab.ingresses.forgejo = {
|
lab = {
|
||||||
host = "git.kun.is";
|
nfsVolumes.forgejo.path = "forgejo";
|
||||||
|
|
||||||
service = {
|
ingresses.forgejo = {
|
||||||
name = "forgejo-web";
|
host = "git.kun.is";
|
||||||
portName = "web";
|
|
||||||
|
service = {
|
||||||
|
name = "forgejo-web";
|
||||||
|
portName = "web";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,23 +48,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
persistentVolumes.freshrss.spec = {
|
|
||||||
capacity.storage = "1Mi";
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
|
|
||||||
nfs = {
|
|
||||||
server = "lewis.dmz";
|
|
||||||
path = "/mnt/data/nfs/freshrss/data";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
persistentVolumeClaims.freshrss.spec = {
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
storageClassName = "";
|
|
||||||
resources.requests.storage = "1Mi";
|
|
||||||
volumeName = "freshrss";
|
|
||||||
};
|
|
||||||
|
|
||||||
services.freshrss.spec = {
|
services.freshrss.spec = {
|
||||||
selector.app = "freshrss";
|
selector.app = "freshrss";
|
||||||
|
|
||||||
|
@ -75,12 +58,16 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
lab.ingresses.freshrss = {
|
lab = {
|
||||||
host = "rss.kun.is";
|
nfsVolumes.freshrss.path = "freshrss/data";
|
||||||
|
|
||||||
service = {
|
ingresses.freshrss = {
|
||||||
name = "freshrss";
|
host = "rss.kun.is";
|
||||||
portName = "web";
|
|
||||||
|
service = {
|
||||||
|
name = "freshrss";
|
||||||
|
portName = "web";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -73,23 +73,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
persistentVolumes.hedgedoc.spec = {
|
|
||||||
capacity.storage = "1Mi";
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
|
|
||||||
nfs = {
|
|
||||||
server = "lewis.dmz";
|
|
||||||
path = "/mnt/data/nfs/hedgedoc/uploads";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
persistentVolumeClaims.hedgedoc.spec = {
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
storageClassName = "";
|
|
||||||
resources.requests.storage = "1Mi";
|
|
||||||
volumeName = "hedgedoc";
|
|
||||||
};
|
|
||||||
|
|
||||||
services.hedgedoc.spec = {
|
services.hedgedoc.spec = {
|
||||||
selector.app = "hedgedoc";
|
selector.app = "hedgedoc";
|
||||||
|
|
||||||
|
@ -100,12 +83,16 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
lab.ingresses.hedgedoc = {
|
lab = {
|
||||||
host = "md.kun.is";
|
nfsVolumes.hedgedoc.path = "hedgedoc/uploads";
|
||||||
|
|
||||||
service = {
|
ingresses.hedgedoc = {
|
||||||
name = "hedgedoc";
|
host = "md.kun.is";
|
||||||
portName = "web";
|
|
||||||
|
service = {
|
||||||
|
name = "hedgedoc";
|
||||||
|
portName = "web";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,23 +72,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
persistentVolumes.kitchenowl.spec = {
|
|
||||||
capacity.storage = "1Mi";
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
|
|
||||||
nfs = {
|
|
||||||
server = "lewis.dmz";
|
|
||||||
path = "/mnt/data/nfs/kitchenowl/data";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
persistentVolumeClaims.kitchenowl.spec = {
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
storageClassName = "";
|
|
||||||
resources.requests.storage = "1Mi";
|
|
||||||
volumeName = "kitchenowl";
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
kitchenowl-web.spec = {
|
kitchenowl-web.spec = {
|
||||||
selector = {
|
selector = {
|
||||||
|
@ -116,12 +99,16 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
lab.ingresses.kitchenowl = {
|
lab = {
|
||||||
host = "boodschappen.kun.is";
|
nfsVolumes.kitchenowl.path = "kitchenowl/data";
|
||||||
|
|
||||||
service = {
|
ingresses.kitchenowl = {
|
||||||
name = "kitchenowl-web";
|
host = "boodschappen.kun.is";
|
||||||
portName = "web";
|
|
||||||
|
service = {
|
||||||
|
name = "kitchenowl-web";
|
||||||
|
portName = "web";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -341,146 +341,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
persistentVolumes = {
|
|
||||||
jellyfin-config.spec = {
|
|
||||||
capacity.storage = "1Mi";
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
|
|
||||||
nfs = {
|
|
||||||
server = "lewis.dmz";
|
|
||||||
path = "/mnt/data/nfs/jellyfin/config";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
media.spec = {
|
|
||||||
capacity.storage = "1Mi";
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
|
|
||||||
nfs = {
|
|
||||||
server = "lewis.dmz";
|
|
||||||
path = "/mnt/data/nfs/media";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
transmission-config.spec = {
|
|
||||||
capacity.storage = "1Mi";
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
|
|
||||||
nfs = {
|
|
||||||
server = "lewis.dmz";
|
|
||||||
path = "/mnt/data/nfs/transmission/config";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
jellyseerr-config.spec = {
|
|
||||||
capacity.storage = "1Mi";
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
|
|
||||||
nfs = {
|
|
||||||
server = "lewis.dmz";
|
|
||||||
path = "/mnt/data/nfs/jellyseerr/config";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
radarr-config.spec = {
|
|
||||||
capacity.storage = "1Mi";
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
|
|
||||||
nfs = {
|
|
||||||
server = "lewis.dmz";
|
|
||||||
path = "/mnt/data/nfs/radarr/config";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
prowlarr-config.spec = {
|
|
||||||
capacity.storage = "1Mi";
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
|
|
||||||
nfs = {
|
|
||||||
server = "lewis.dmz";
|
|
||||||
path = "/mnt/data/nfs/prowlarr/config";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
sonarr-config.spec = {
|
|
||||||
capacity.storage = "1Mi";
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
|
|
||||||
nfs = {
|
|
||||||
server = "lewis.dmz";
|
|
||||||
path = "/mnt/data/nfs/sonarr/config";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
bazarr-config.spec = {
|
|
||||||
capacity.storage = "1Mi";
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
|
|
||||||
nfs = {
|
|
||||||
server = "lewis.dmz";
|
|
||||||
path = "/mnt/data/nfs/bazarr/config";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
persistentVolumeClaims = {
|
|
||||||
jellyfin-config.spec = {
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
storageClassName = "";
|
|
||||||
resources.requests.storage = "1Mi";
|
|
||||||
volumeName = "jellyfin-config";
|
|
||||||
};
|
|
||||||
|
|
||||||
media.spec = {
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
storageClassName = "";
|
|
||||||
resources.requests.storage = "1Mi";
|
|
||||||
volumeName = "media";
|
|
||||||
};
|
|
||||||
|
|
||||||
transmission-config.spec = {
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
storageClassName = "";
|
|
||||||
resources.requests.storage = "1Mi";
|
|
||||||
volumeName = "transmission-config";
|
|
||||||
};
|
|
||||||
|
|
||||||
jellyseerr-config.spec = {
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
storageClassName = "";
|
|
||||||
resources.requests.storage = "1Mi";
|
|
||||||
volumeName = "jellyseerr-config";
|
|
||||||
};
|
|
||||||
|
|
||||||
radarr-config.spec = {
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
storageClassName = "";
|
|
||||||
resources.requests.storage = "1Mi";
|
|
||||||
volumeName = "radarr-config";
|
|
||||||
};
|
|
||||||
|
|
||||||
prowlarr-config.spec = {
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
storageClassName = "";
|
|
||||||
resources.requests.storage = "1Mi";
|
|
||||||
volumeName = "prowlarr-config";
|
|
||||||
};
|
|
||||||
|
|
||||||
sonarr-config.spec = {
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
storageClassName = "";
|
|
||||||
resources.requests.storage = "1Mi";
|
|
||||||
volumeName = "sonarr-config";
|
|
||||||
};
|
|
||||||
|
|
||||||
bazarr-config.spec = {
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
storageClassName = "";
|
|
||||||
resources.requests.storage = "1Mi";
|
|
||||||
volumeName = "bazarr-config";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
jellyfin.spec = {
|
jellyfin.spec = {
|
||||||
selector = {
|
selector = {
|
||||||
|
@ -583,74 +443,87 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
lab.ingresses = {
|
lab = {
|
||||||
jellyfin = {
|
ingresses = {
|
||||||
host = "media.kun.is";
|
jellyfin = {
|
||||||
|
host = "media.kun.is";
|
||||||
|
|
||||||
service = {
|
service = {
|
||||||
name = "jellyfin";
|
name = "jellyfin";
|
||||||
portName = "web";
|
portName = "web";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
transmission = {
|
||||||
|
host = "transmission.kun.is";
|
||||||
|
entrypoint = "localsecure";
|
||||||
|
|
||||||
|
service = {
|
||||||
|
name = "transmission-web";
|
||||||
|
portName = "web";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
jellyseerr = {
|
||||||
|
host = "jellyseerr.kun.is";
|
||||||
|
entrypoint = "localsecure";
|
||||||
|
|
||||||
|
service = {
|
||||||
|
name = "jellyseerr";
|
||||||
|
portName = "web";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
radarr = {
|
||||||
|
host = "radarr.kun.is";
|
||||||
|
entrypoint = "localsecure";
|
||||||
|
|
||||||
|
service = {
|
||||||
|
name = "radarr";
|
||||||
|
portName = "web";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
prowlarr = {
|
||||||
|
host = "prowlarr.kun.is";
|
||||||
|
entrypoint = "localsecure";
|
||||||
|
|
||||||
|
service = {
|
||||||
|
name = "prowlarr";
|
||||||
|
portName = "web";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
sonarr = {
|
||||||
|
host = "sonarr.kun.is";
|
||||||
|
entrypoint = "localsecure";
|
||||||
|
|
||||||
|
service = {
|
||||||
|
name = "sonarr";
|
||||||
|
portName = "web";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
bazarr = {
|
||||||
|
host = "bazarr.kun.is";
|
||||||
|
entrypoint = "localsecure";
|
||||||
|
|
||||||
|
service = {
|
||||||
|
name = "bazarr";
|
||||||
|
portName = "web";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
transmission = {
|
nfsVolumes = {
|
||||||
host = "transmission.kun.is";
|
jellyfin-config.path = "jellyfin/config";
|
||||||
entrypoint = "localsecure";
|
media.path = "media";
|
||||||
|
transmission-config.path = "transmission/config";
|
||||||
service = {
|
jellyseerr-config.path = "jellyseerr/config";
|
||||||
name = "transmission-web";
|
radarr-config.path = "radarr/config";
|
||||||
portName = "web";
|
prowlarr-config.path = "prowlarr/config";
|
||||||
};
|
sonarr-config.path = "sonarr/config";
|
||||||
};
|
bazarr-config.path = "bazarr/config";
|
||||||
|
|
||||||
jellyseerr = {
|
|
||||||
host = "jellyseerr.kun.is";
|
|
||||||
entrypoint = "localsecure";
|
|
||||||
|
|
||||||
service = {
|
|
||||||
name = "jellyseerr";
|
|
||||||
portName = "web";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
radarr = {
|
|
||||||
host = "radarr.kun.is";
|
|
||||||
entrypoint = "localsecure";
|
|
||||||
|
|
||||||
service = {
|
|
||||||
name = "radarr";
|
|
||||||
portName = "web";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
prowlarr = {
|
|
||||||
host = "prowlarr.kun.is";
|
|
||||||
entrypoint = "localsecure";
|
|
||||||
|
|
||||||
service = {
|
|
||||||
name = "prowlarr";
|
|
||||||
portName = "web";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
sonarr = {
|
|
||||||
host = "sonarr.kun.is";
|
|
||||||
entrypoint = "localsecure";
|
|
||||||
|
|
||||||
service = {
|
|
||||||
name = "sonarr";
|
|
||||||
portName = "web";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
bazarr = {
|
|
||||||
host = "bazarr.kun.is";
|
|
||||||
entrypoint = "localsecure";
|
|
||||||
|
|
||||||
service = {
|
|
||||||
name = "bazarr";
|
|
||||||
portName = "web";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,23 +29,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
persistentVolumes.minecraft.spec = {
|
|
||||||
capacity.storage = "1Mi";
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
|
|
||||||
nfs = {
|
|
||||||
server = "lewis.dmz";
|
|
||||||
path = "/mnt/data/nfs/minecraft";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
persistentVolumeClaims.minecraft.spec = {
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
storageClassName = "";
|
|
||||||
resources.requests.storage = "1Mi";
|
|
||||||
volumeName = "minecraft";
|
|
||||||
};
|
|
||||||
|
|
||||||
services.minecraft.spec = {
|
services.minecraft.spec = {
|
||||||
type = "LoadBalancer";
|
type = "LoadBalancer";
|
||||||
loadBalancerIP = myLib.globals.minecraftIPv4;
|
loadBalancerIP = myLib.globals.minecraftIPv4;
|
||||||
|
@ -57,4 +40,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
lab.nfsVolumes.minecraft.path = "minecraft";
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,23 +40,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
persistentVolumes.nextcloud.spec = {
|
|
||||||
capacity.storage = "1Mi";
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
|
|
||||||
nfs = {
|
|
||||||
server = "lewis.dmz";
|
|
||||||
path = "/mnt/data/nfs/nextcloud/data";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
persistentVolumeClaims.nextcloud.spec = {
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
storageClassName = "";
|
|
||||||
resources.requests.storage = "1Mi";
|
|
||||||
volumeName = "nextcloud";
|
|
||||||
};
|
|
||||||
|
|
||||||
services.nextcloud.spec = {
|
services.nextcloud.spec = {
|
||||||
selector.app = "nextcloud";
|
selector.app = "nextcloud";
|
||||||
|
|
||||||
|
@ -67,12 +50,16 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
lab.ingresses.nextcloud = {
|
lab = {
|
||||||
host = "cloud.kun.is";
|
nfsVolumes.nextcloud.path = "nextcloud/data";
|
||||||
|
|
||||||
service = {
|
ingresses.nextcloud = {
|
||||||
name = "nextcloud";
|
host = "cloud.kun.is";
|
||||||
portName = "web";
|
|
||||||
|
service = {
|
||||||
|
name = "nextcloud";
|
||||||
|
portName = "web";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,44 +105,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
persistentVolumes = {
|
|
||||||
paperless-ngx-redisdata.spec = {
|
|
||||||
capacity.storage = "1Mi";
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
|
|
||||||
nfs = {
|
|
||||||
server = "lewis.dmz";
|
|
||||||
path = "/mnt/data/nfs/paperless-ngx/redisdata";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
paperless-ngx-data.spec = {
|
|
||||||
capacity.storage = "1Mi";
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
|
|
||||||
nfs = {
|
|
||||||
server = "lewis.dmz";
|
|
||||||
path = "/mnt/data/nfs/paperless-ngx/data";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
persistentVolumeClaims = {
|
|
||||||
paperless-ngx-redisdata.spec = {
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
storageClassName = "";
|
|
||||||
resources.requests.storage = "1Mi";
|
|
||||||
volumeName = "paperless-ngx-redisdata";
|
|
||||||
};
|
|
||||||
|
|
||||||
paperless-ngx-data.spec = {
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
storageClassName = "";
|
|
||||||
resources.requests.storage = "1Mi";
|
|
||||||
volumeName = "paperless-ngx-data";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
paperless-ngx-web.spec = {
|
paperless-ngx-web.spec = {
|
||||||
selector = {
|
selector = {
|
||||||
|
@ -170,12 +132,19 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
lab.ingresses.paperless-ngx = {
|
lab = {
|
||||||
host = "paperless.kun.is";
|
ingresses.paperless-ngx = {
|
||||||
|
host = "paperless.kun.is";
|
||||||
|
|
||||||
service = {
|
service = {
|
||||||
name = "paperless-ngx-web";
|
name = "paperless-ngx-web";
|
||||||
portName = "web";
|
portName = "web";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nfsVolumes = {
|
||||||
|
paperless-ngx-redisdata.path = "paperless-ngx/redisdata";
|
||||||
|
paperless-ngx-data.path = "paperless-ngx/data";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,44 +56,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
persistentVolumes = {
|
|
||||||
pihole-data.spec = {
|
|
||||||
capacity.storage = "1Mi";
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
|
|
||||||
nfs = {
|
|
||||||
server = "lewis.dmz";
|
|
||||||
path = "/mnt/data/nfs/pihole/data";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
pihole-dnsmasq.spec = {
|
|
||||||
capacity.storage = "1Mi";
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
|
|
||||||
nfs = {
|
|
||||||
server = "lewis.dmz";
|
|
||||||
path = "/mnt/data/nfs/pihole/dnsmasq";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
persistentVolumeClaims = {
|
|
||||||
pihole-data.spec = {
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
storageClassName = "";
|
|
||||||
resources.requests.storage = "1Mi";
|
|
||||||
volumeName = "pihole-data";
|
|
||||||
};
|
|
||||||
|
|
||||||
pihole-dnsmasq.spec = {
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
storageClassName = "";
|
|
||||||
resources.requests.storage = "1Mi";
|
|
||||||
volumeName = "pihole-dnsmasq";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
pihole-web.spec = {
|
pihole-web.spec = {
|
||||||
selector.app = "pihole";
|
selector.app = "pihole";
|
||||||
|
@ -118,13 +80,20 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
lab.ingresses.pihole = {
|
lab = {
|
||||||
host = "pihole.kun.is";
|
ingresses.pihole = {
|
||||||
entrypoint = "localsecure";
|
host = "pihole.kun.is";
|
||||||
|
entrypoint = "localsecure";
|
||||||
|
|
||||||
service = {
|
service = {
|
||||||
name = "pihole-web";
|
name = "pihole-web";
|
||||||
portName = "web";
|
portName = "web";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nfsVolumes = {
|
||||||
|
pihole-data.path = "pihole/data";
|
||||||
|
pihole-dnsmasq.path = "pihole/dnsmasq";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -73,23 +73,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
persistentVolumes.radicale.spec = {
|
|
||||||
capacity.storage = "1Mi";
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
|
|
||||||
nfs = {
|
|
||||||
server = "lewis.dmz";
|
|
||||||
path = "/mnt/data/nfs/radicale";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
persistentVolumeClaims.radicale.spec = {
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
storageClassName = "";
|
|
||||||
resources.requests.storage = "1Mi";
|
|
||||||
volumeName = "radicale";
|
|
||||||
};
|
|
||||||
|
|
||||||
services.radicale.spec = {
|
services.radicale.spec = {
|
||||||
selector.app = "radicale";
|
selector.app = "radicale";
|
||||||
|
|
||||||
|
@ -100,12 +83,16 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
lab.ingresses.radicale = {
|
lab = {
|
||||||
host = "dav.kun.is";
|
nfsVolumes.radicale.path = "radicale";
|
||||||
|
|
||||||
service = {
|
ingresses.radicale = {
|
||||||
name = "radicale";
|
host = "dav.kun.is";
|
||||||
portName = "web";
|
|
||||||
|
service = {
|
||||||
|
name = "radicale";
|
||||||
|
portName = "web";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,23 +42,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
persistentVolumes.syncthing.spec = {
|
|
||||||
capacity.storage = "1Mi";
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
|
|
||||||
nfs = {
|
|
||||||
server = "lewis.dmz";
|
|
||||||
path = "/mnt/data/nfs/syncthing/config";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
persistentVolumeClaims.syncthing.spec = {
|
|
||||||
accessModes = [ "ReadWriteMany" ];
|
|
||||||
storageClassName = "";
|
|
||||||
resources.requests.storage = "1Mi";
|
|
||||||
volumeName = "syncthing";
|
|
||||||
};
|
|
||||||
|
|
||||||
services.syncthing.spec = {
|
services.syncthing.spec = {
|
||||||
selector.app = "syncthing";
|
selector.app = "syncthing";
|
||||||
|
|
||||||
|
@ -69,13 +52,17 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
lab.ingresses.syncthing = {
|
lab = {
|
||||||
host = "sync.kun.is";
|
nfsVolumes.syncthing.path = "syncthing/config";
|
||||||
entrypoint = "localsecure";
|
|
||||||
|
|
||||||
service = {
|
ingresses.syncthing = {
|
||||||
name = "syncthing";
|
host = "sync.kun.is";
|
||||||
portName = "web";
|
entrypoint = "localsecure";
|
||||||
|
|
||||||
|
service = {
|
||||||
|
name = "syncthing";
|
||||||
|
portName = "web";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue