104 lines
2.3 KiB
Nix
104 lines
2.3 KiB
Nix
|
let
|
||
|
appName = "miniflux";
|
||
|
appImage = "docker.io/miniflux/miniflux";
|
||
|
in
|
||
|
{
|
||
|
lib,
|
||
|
config,
|
||
|
kubenix,
|
||
|
...
|
||
|
}: {
|
||
|
kubernetes.resources.deployments.miniflux = {
|
||
|
metadata.namespace = "miniflux";
|
||
|
spec = {
|
||
|
selector.matchLabels.app = appName;
|
||
|
template = {
|
||
|
metadata.labels.app = appName;
|
||
|
spec = {
|
||
|
containers = {
|
||
|
miniflux = {
|
||
|
image = appImage;
|
||
|
envFrom = [{secretRef.name = "miniflux";}
|
||
|
{configMapRef.name = "miniflux";}];
|
||
|
resources = {
|
||
|
requests = {
|
||
|
cpu = "1m";
|
||
|
memory = "256Mi";
|
||
|
};
|
||
|
limits = {
|
||
|
cpu = "1";
|
||
|
memory = "512Mi";
|
||
|
};
|
||
|
};
|
||
|
ports.http.containerPort = 8080;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
kubernetes.resources.services.miniflux = {
|
||
|
metadata.namespace = "miniflux";
|
||
|
metadata.labels.app = appName;
|
||
|
spec = {
|
||
|
selector.app = appName;
|
||
|
ports.http = {
|
||
|
port = 8080;
|
||
|
targetPort = 8080;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
kubernetes.resources.ingresses.miniflux = {
|
||
|
metadata.namespace = "miniflux";
|
||
|
metadata.annotations = {
|
||
|
"cert-manager.io/cluster-issuer" = "le-issuer";
|
||
|
};
|
||
|
spec = {
|
||
|
tls = [
|
||
|
{
|
||
|
hosts = ["rss.gmem.ca"];
|
||
|
}
|
||
|
];
|
||
|
rules = [
|
||
|
{
|
||
|
host = "rss.gmem.ca";
|
||
|
http.paths = [
|
||
|
{
|
||
|
path = "/";
|
||
|
pathType = "Prefix";
|
||
|
backend.service = {
|
||
|
name = "miniflux";
|
||
|
port.number = 8080;
|
||
|
};
|
||
|
}
|
||
|
];
|
||
|
}
|
||
|
];
|
||
|
};
|
||
|
};
|
||
|
|
||
|
kubernetes.resources."monitoring.coreos.com"."v1".ServiceMonitor.miniflux = {
|
||
|
metadata.namespace = "miniflux";
|
||
|
spec = {
|
||
|
selector.matchLabels.app = appName;
|
||
|
endpoints = [
|
||
|
{
|
||
|
port = "http";
|
||
|
interval = "60s";
|
||
|
}
|
||
|
];
|
||
|
};
|
||
|
};
|
||
|
|
||
|
kubernetes.resources.configMaps.miniflux = {
|
||
|
metadata.namespace = "miniflux";
|
||
|
data = {
|
||
|
CLEANUP_ARCHIVE_UNREAD_DAYS = "60";
|
||
|
METRICS_COLLECTOR = "1";
|
||
|
METRICS_ALLOWED_NETWORKS = "0.0.0.0/0";
|
||
|
BASE_URL = "https://rss.gmem.ca/";
|
||
|
};
|
||
|
};
|
||
|
}
|