chore: upgrade from dnsmasq to bind
This commit is contained in:
@@ -65,6 +65,7 @@
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
lib' = import ./lib { inherit (top.nixunstable) lib; };
|
||||||
in
|
in
|
||||||
top.flake-parts.lib.mkFlake { inputs = top; } {
|
top.flake-parts.lib.mkFlake { inputs = top; } {
|
||||||
inherit systems;
|
inherit systems;
|
||||||
@@ -76,6 +77,7 @@
|
|||||||
nixpkgs = imported_packages.x86_64-linux;
|
nixpkgs = imported_packages.x86_64-linux;
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit
|
inherit
|
||||||
|
lib'
|
||||||
metadata
|
metadata
|
||||||
self
|
self
|
||||||
top
|
top
|
||||||
@@ -112,7 +114,7 @@
|
|||||||
|
|
||||||
nixosConfigurations = (
|
nixosConfigurations = (
|
||||||
import ./hosts {
|
import ./hosts {
|
||||||
inherit top metadata;
|
inherit top metadata lib';
|
||||||
nixpkgs = imported_packages;
|
nixpkgs = imported_packages;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
+2
-1
@@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
top,
|
top,
|
||||||
|
lib',
|
||||||
metadata,
|
metadata,
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
}:
|
}:
|
||||||
@@ -18,7 +19,7 @@ let
|
|||||||
channel.lib.nixosSystem {
|
channel.lib.nixosSystem {
|
||||||
pkgs = nixpkgs.${system};
|
pkgs = nixpkgs.${system};
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit metadata top;
|
inherit metadata top lib';
|
||||||
};
|
};
|
||||||
modules = [
|
modules = [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
lib,
|
||||||
|
lib',
|
||||||
metadata,
|
metadata,
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
@@ -9,7 +11,6 @@ let
|
|||||||
lanIP = metadata.hosts.${config.networking.hostName}.ip;
|
lanIP = metadata.hosts.${config.networking.hostName}.ip;
|
||||||
iot = "enp2s0";
|
iot = "enp2s0";
|
||||||
iotIP = "192.168.66.250";
|
iotIP = "192.168.66.250";
|
||||||
#routerIP = metadata.infra.gw;
|
|
||||||
extraHosts = builtins.readFile ./net/hosts;
|
extraHosts = builtins.readFile ./net/hosts;
|
||||||
|
|
||||||
proxyPort = 3128;
|
proxyPort = 3128;
|
||||||
@@ -84,17 +85,42 @@ in
|
|||||||
#########
|
#########
|
||||||
# dnsmasq config
|
# dnsmasq config
|
||||||
########
|
########
|
||||||
dnsmasq = {
|
bind = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
cacheNetworks = [
|
||||||
domain = "thehellings.lan";
|
metadata.infra.lan
|
||||||
expand-hosts = true;
|
metadata.infra.tailscale
|
||||||
log-queries = true;
|
metadata.infra.nebula
|
||||||
no-hosts = true; # Do not read /etc/hosts, which makes genesis resolve to 127.0.0.2
|
];
|
||||||
addn-hosts = "/etc/adblock_hosts";
|
zones =
|
||||||
hostsdir = "/etc/hosts.d/";
|
let
|
||||||
server = dnsServers;
|
makeZoneFile =
|
||||||
};
|
hosts: domain:
|
||||||
|
let
|
||||||
|
preamble = [
|
||||||
|
"$ORIGIN\t${domain}."
|
||||||
|
"$TTL\t1h"
|
||||||
|
"@\tIN\tSOA\t${config.networking.hostName}\tgreg@thehellings.com (1 1m 1m 1m 1m)"
|
||||||
|
"\tIN\tNS\t${config.networking.hostName}"
|
||||||
|
];
|
||||||
|
makeHost = host: "${host.name}\tIN\tA\t${host.address}";
|
||||||
|
in
|
||||||
|
pkgs.writeText "${domain}" (
|
||||||
|
builtins.concatStringsSep "\n" (preamble ++ (lib.map makeHost hosts) ++ [ "" ])
|
||||||
|
);
|
||||||
|
in
|
||||||
|
lib.mapAttrs
|
||||||
|
(domain: net: {
|
||||||
|
master = true;
|
||||||
|
file = makeZoneFile (lib'.hostsByNet net metadata.hosts) domain;
|
||||||
|
})
|
||||||
|
{
|
||||||
|
"shire-zebra.ts.net" = "tailscale";
|
||||||
|
"nebula.thehellings.com" = "nebula";
|
||||||
|
nebula = "nebula";
|
||||||
|
"thehellings.lan" = "lan";
|
||||||
|
lan = "lan";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
prometheus.exporters = {
|
prometheus.exporters = {
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
{ lib, ... }:
|
||||||
|
{
|
||||||
|
hostsByNet =
|
||||||
|
net: hosts:
|
||||||
|
let
|
||||||
|
netAttr =
|
||||||
|
{
|
||||||
|
lan = "ip";
|
||||||
|
nebula = "nebulaIp";
|
||||||
|
tailscale = "ts";
|
||||||
|
}
|
||||||
|
.${net};
|
||||||
|
in
|
||||||
|
lib.mapAttrsToList
|
||||||
|
(name: value: {
|
||||||
|
inherit name;
|
||||||
|
address = builtins.getAttr netAttr value;
|
||||||
|
})
|
||||||
|
(
|
||||||
|
lib.filterAttrs (
|
||||||
|
_host: settings: (builtins.hasAttr netAttr settings) && (builtins.getAttr netAttr settings) != null
|
||||||
|
) hosts
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -20,14 +20,14 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
interval: 10m
|
interval: 10m
|
||||||
dependsOn:
|
dependsOn:
|
||||||
- name: tailscale-operator
|
- name: tailscale
|
||||||
namespace: tailscale
|
namespace: tailscale
|
||||||
- name: kyverno
|
- name: kyverno
|
||||||
namespace: kyverno
|
namespace: kyverno-system
|
||||||
chart:
|
chart:
|
||||||
spec:
|
spec:
|
||||||
chart: longhorn
|
chart: longhorn
|
||||||
version: "1.10.2"
|
version: "1.11.1"
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: longhorn
|
name: longhorn
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ spec:
|
|||||||
containers:
|
containers:
|
||||||
main:
|
main:
|
||||||
image:
|
image:
|
||||||
tag: v2.4.1
|
tag: v2.7.5
|
||||||
env:
|
env:
|
||||||
DB_HOSTNAME: immich-rw.db.svc.cluster.local
|
DB_HOSTNAME: immich-rw.db.svc.cluster.local
|
||||||
DB_DATABASE_NAME: immich
|
DB_DATABASE_NAME: immich
|
||||||
|
|||||||
+4
-1
@@ -2,8 +2,11 @@
|
|||||||
"infra": {
|
"infra": {
|
||||||
"dns": "10.42.1.5",
|
"dns": "10.42.1.5",
|
||||||
"gw": "10.42.1.1",
|
"gw": "10.42.1.1",
|
||||||
|
"lan": "10.42.0.0/16",
|
||||||
"netmask": "255.255.0.0",
|
"netmask": "255.255.0.0",
|
||||||
"prefix": "16"
|
"nebula": "10.157.0.0/16",
|
||||||
|
"prefix": "16",
|
||||||
|
"tailscale": "100.64.0.0/10"
|
||||||
},
|
},
|
||||||
"hosts": {
|
"hosts": {
|
||||||
"chronicles": {
|
"chronicles": {
|
||||||
|
|||||||
Reference in New Issue
Block a user