Compare commits

..

2 commits

Author SHA1 Message Date
Gabriel Simmer d4772acd38
Restart homepage deployment on config change
Some checks failed
Lint / lint (push) Failing after 1m47s
2024-01-08 17:08:31 +00:00
Gabriel Simmer 59e449dd75
Cloudflare Exporter 2024-01-07 22:23:15 +00:00
4 changed files with 307 additions and 264 deletions

View file

@ -0,0 +1,19 @@
{ lib, config, kubenix, ... }: {
kubernetes.helm.releases.cloudflare-exporter = {
namespace = "default";
chart = kubenix.lib.helm.fetch {
repo = "https://lablabs.github.io/cloudflare-exporter";
chart = "cloudflare-exporter";
version = "0.1.9";
sha256 = "sha256-ZTyE6I3vV9tjKRRc84EvoqboS01SPKVb74jYN8prnfA=";
};
values = {
image.tag = "0.0.14";
secretRef = "cloudflare-exporter";
serviceMonitor = {
enabled = true;
labels.release = "prometheus";
};
};
};
}

View file

@ -1,4 +1,9 @@
{ lib, ... }: {
kubernetes.resourceOrder =
[ "CustomResourceDefinition"
"Namespace"
"ConfigMap"
];
kubernetes.customTypes = [
{
name = "servicemonitors";

View file

@ -1,42 +1,5 @@
{ lib, config, kubenix, ... }: {
kubernetes.helm.releases.homepage = {
chart = kubenix.lib.helm.fetch {
repo = "https://jameswynn.github.io/helm-charts";
chart = "homepage";
version = "1.2.3";
sha256 = "sha256-tZv/+ePFPifilp8wU4FjogSJhNEERx0PcdHUzsBxfRA=";
};
# arbitrary attrset passed as values to the helm release
values = {
replicaCount = 2;
image = {
repository = "ghcr.io/gethomepage/homepage";
tag = "latest";
};
serviceAccount.create = true;
enableRbac = true;
ingress.main = {
enabled = true;
ingressClassName = "nginx";
hosts = [
{
host = "home.gmem.ca";
paths = [
{
path = "/";
pathType = "Prefix";
}
];
}
];
tls = [
{
hosts = [ "home.gmem.ca" ];
secretName = "gmem-ca-wildcard";
}
];
};
config = {
{ lib, config, kubenix, ... }:
let homepage-config = {
bookmarks = [];
services = [
{
@ -108,7 +71,7 @@
}
{ NextDNS = {
icon = "nextdns.png";
href = "https://my.nextdns.io";
href = "https://my.nextdns.io/bcee89/setup";
description = "DNS provider";
widget = {
type = "nextdns";
@ -117,10 +80,10 @@
};
};
}
{ "Proxmox Homelab" = {
{ "Proxmox" = {
icon = "proxmox.png";
href = "https://proxmox.gmem.ca";
description = "Homelabe proxmox";
description = "Homelab proxmox";
widget = {
type = "proxmox";
url = "https://proxmox.gmem.ca";
@ -140,6 +103,17 @@
};
};
}
{ "NextDNS Tailscale" = {
icon = "nextdns.png";
href = "https://my.nextdns.io/74c6db/setup";
description = "Tailnet DNS provider";
widget = {
type = "nextdns";
profile = "74c6db";
key = "{{HOMEPAGE_VAR_NEXTDNS_KEY}}";
};
};
}
];
}
{
@ -298,11 +272,55 @@
}
];
};
in
{
kubernetes.helm.releases.homepage = {
chart = kubenix.lib.helm.fetch {
repo = "https://jameswynn.github.io/helm-charts";
chart = "homepage";
version = "1.2.3";
sha256 = "sha256-tZv/+ePFPifilp8wU4FjogSJhNEERx0PcdHUzsBxfRA=";
};
# arbitrary attrset passed as values to the helm release
values = {
replicaCount = 2;
image = {
repository = "ghcr.io/gethomepage/homepage";
tag = "latest";
};
serviceAccount.create = true;
enableRbac = true;
config = homepage-config;
ingress.main = {
enabled = true;
ingressClassName = "nginx";
hosts = [
{
host = "home.gmem.ca";
paths = [
{
path = "/";
pathType = "Prefix";
}
];
}
];
tls = [
{
hosts = [ "home.gmem.ca" ];
secretName = "gmem-ca-wildcard";
}
];
};
};
};
kubernetes.resources.deployments.homepage = {
metadata.namespace = "default";
spec.template.spec.containers.homepage.envFrom = [ { secretRef.name = "homepage-config"; } ];
spec.template = {
metadata.annotations."gmem.ca/homepage-config-hash" = (builtins.hashString "md5" (builtins.toJSON homepage-config));
spec.containers.homepage.envFrom = [ { secretRef.name = "homepage-config"; } ];
};
};
}

View file

@ -9,5 +9,6 @@
(import ./endpoints.nix)
(import ./homepage.nix)
(import ./pterodactyl.nix)
(import ./cloudflare-exporter.nix)
];
}