79 lines
1.8 KiB
Nix
79 lines
1.8 KiB
Nix
let
|
|
appName = "overseerr";
|
|
appImage = "sctx/overseerr";
|
|
in
|
|
{
|
|
kubernetes.resources.services.overseerr = {
|
|
spec = {
|
|
selector.app = appName;
|
|
ports.http = {
|
|
port = 5055;
|
|
targetPort = 5055;
|
|
};
|
|
};
|
|
};
|
|
kubernetes.resources.statefulSets.overseerr.spec = {
|
|
selector.matchLabels.app = appName;
|
|
serviceName = appName;
|
|
template = {
|
|
metadata.labels.app = appName;
|
|
spec = {
|
|
volumes = {
|
|
config.configMap.name = "overseerr";
|
|
};
|
|
containers = {
|
|
overseerr = {
|
|
image = appImage;
|
|
volumeMounts = [
|
|
{ name = "data"; mountPath = "/app/config"; }
|
|
];
|
|
ports.metrics.containerPort = 5055;
|
|
resources = {
|
|
requests = {
|
|
cpu = "50m";
|
|
memory = "32Mi";
|
|
};
|
|
limits = {
|
|
cpu = "500m";
|
|
memory = "256Mi";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
volumeClaimTemplates = [
|
|
{ metadata.name = "data";
|
|
spec = {
|
|
storageClassName = "nfs-client";
|
|
accessModes = [ "ReadWriteOnce" ];
|
|
resources.requests.storage = "1Gi";
|
|
};
|
|
}
|
|
];
|
|
};
|
|
kubernetes.resources.ingresses.overseerr = {
|
|
metadata = {
|
|
name = appName;
|
|
annotations = {
|
|
"cert-manager.io/issuer" = "le-issuer";
|
|
};
|
|
};
|
|
spec = {
|
|
tls = [ { hosts = [ "request-media.gmem.ca" ]; secretName = "gmem-ca-wildcard"; } ];
|
|
rules = [
|
|
{
|
|
host = "request-media.gmem.ca";
|
|
http.paths = [
|
|
{ path = "/"; pathType = "Prefix";
|
|
backend.service = {
|
|
name = appName;
|
|
port.name = "http"; };
|
|
}
|
|
];
|
|
}
|
|
];
|
|
};
|
|
};
|
|
}
|