Compare commits
2 commits
5b96e3a64c
...
d4772acd38
Author | SHA1 | Date | |
---|---|---|---|
Gabriel Simmer | d4772acd38 | ||
Gabriel Simmer | 59e449dd75 |
19
homelab/cloudflare-exporter.nix
Normal file
19
homelab/cloudflare-exporter.nix
Normal 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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,4 +1,9 @@
|
||||||
{ lib, ... }: {
|
{ lib, ... }: {
|
||||||
|
kubernetes.resourceOrder =
|
||||||
|
[ "CustomResourceDefinition"
|
||||||
|
"Namespace"
|
||||||
|
"ConfigMap"
|
||||||
|
];
|
||||||
kubernetes.customTypes = [
|
kubernetes.customTypes = [
|
||||||
{
|
{
|
||||||
name = "servicemonitors";
|
name = "servicemonitors";
|
||||||
|
|
|
@ -1,42 +1,5 @@
|
||||||
{ lib, config, kubenix, ... }: {
|
{ lib, config, kubenix, ... }:
|
||||||
kubernetes.helm.releases.homepage = {
|
let homepage-config = {
|
||||||
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 = {
|
|
||||||
bookmarks = [];
|
bookmarks = [];
|
||||||
services = [
|
services = [
|
||||||
{
|
{
|
||||||
|
@ -108,7 +71,7 @@
|
||||||
}
|
}
|
||||||
{ NextDNS = {
|
{ NextDNS = {
|
||||||
icon = "nextdns.png";
|
icon = "nextdns.png";
|
||||||
href = "https://my.nextdns.io";
|
href = "https://my.nextdns.io/bcee89/setup";
|
||||||
description = "DNS provider";
|
description = "DNS provider";
|
||||||
widget = {
|
widget = {
|
||||||
type = "nextdns";
|
type = "nextdns";
|
||||||
|
@ -117,10 +80,10 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
{ "Proxmox Homelab" = {
|
{ "Proxmox" = {
|
||||||
icon = "proxmox.png";
|
icon = "proxmox.png";
|
||||||
href = "https://proxmox.gmem.ca";
|
href = "https://proxmox.gmem.ca";
|
||||||
description = "Homelabe proxmox";
|
description = "Homelab proxmox";
|
||||||
widget = {
|
widget = {
|
||||||
type = "proxmox";
|
type = "proxmox";
|
||||||
url = "https://proxmox.gmem.ca";
|
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 = {
|
kubernetes.resources.deployments.homepage = {
|
||||||
metadata.namespace = "default";
|
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"; } ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,5 +9,6 @@
|
||||||
(import ./endpoints.nix)
|
(import ./endpoints.nix)
|
||||||
(import ./homepage.nix)
|
(import ./homepage.nix)
|
||||||
(import ./pterodactyl.nix)
|
(import ./pterodactyl.nix)
|
||||||
|
(import ./cloudflare-exporter.nix)
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue