Add tags to tailscale nodes

This commit is contained in:
Greg Hellings
2025-11-16 22:34:22 -06:00
parent 53e431f4ee
commit 1165917832
9 changed files with 72 additions and 10 deletions
+4 -1
View File
@@ -32,7 +32,10 @@
gnome.enable = true;
podman.enable = true;
print.enable = true;
tailscale.enable = true;
tailscale = {
enable = true;
tags = [ "mobile" ];
};
runner = {
enable = true;
qemu = true;
+4 -1
View File
@@ -19,7 +19,10 @@ let
];
in
{
greg.tailscale.enable = true;
greg.tailscale = {
enable = true;
tags = [ "home" ];
};
# Really, why do I still have to force-disable this crap?
boot.kernel.sysctl = {
+4 -1
View File
@@ -45,7 +45,10 @@ in
"jellyfin.home".target = "http://localhost:8096/";
"jellyfin.thehellings.lan".target = "http://localhost:8096/";
};
tailscale.enable = true;
tailscale = {
enable = true;
tags = [ "home" ];
};
};
hardware = {
+4 -1
View File
@@ -39,7 +39,10 @@
vipInterface = "enp38s0";
priority = 255;
};
tailscale.enable = true;
tailscale = {
enable = true;
tags = [ "home" ];
};
remote-builder.enable = true;
runner = {
enable = true;
+4 -1
View File
@@ -75,7 +75,10 @@
vipInterface = "br0";
priority = 254;
};
tailscale.enable = true;
tailscale = {
enable = true;
tags = [ "home" ];
};
remote-builder.enable = true;
runner = {
enable = true;
+4 -1
View File
@@ -21,7 +21,10 @@
greg = {
home = true;
tailscale.enable = true;
tailscale = {
enable = true;
tags = [ "home" ];
};
};
networking = {
+4 -1
View File
@@ -59,7 +59,10 @@ in
dest = "gitlab";
};
home = true;
tailscale.enable = true;
tailscale = {
enable = true;
tags = [ "home" ];
};
};
networking = {
+4 -1
View File
@@ -26,7 +26,10 @@
enable = true;
vbox = true;
};
tailscale.enable = true;
tailscale = {
enable = true;
tags = [ "home" ];
};
};
hardware = {
+40 -2
View File
@@ -1,7 +1,23 @@
{ lib, config, ... }:
{
pkgs,
lib,
config,
...
}:
let
cfg = config.greg.tailscale;
tags = lib.concatMapStringsSep "," (s: "tag:${s}") cfg.tags;
setScript = pkgs.writeShellApplication {
name = "tailscale-set";
runtimeInputs = [
config.services.tailscale.package
];
text = ''
tailscale set --accept-routes
tailscale set --hostname ${cfg.hostname}
'';
};
in
{
options = {
@@ -13,6 +29,12 @@ in
default = config.networking.hostName;
type = lib.types.str;
};
tags = lib.mkOption {
type = lib.types.listOf lib.types.singleLineStr;
default = [ ];
description = "The tags to request for this node";
};
};
};
@@ -31,9 +53,25 @@ in
extraUpFlags = [
"--hostname"
cfg.hostname
"--accept-routes"
]
++ lib.optionals ((builtins.length cfg.tags) > 0) [
"--advertise-tags"
tags
];
useRoutingFeatures = "both";
};
systemd.services.tailscaled.partOf = [ "network-online.target" ];
systemd.services = {
tailscale-set = {
enable = true;
after = [
"tailscaled.service"
"tailscale-autoconnect.service"
];
partOf = [ "network-online.target" ];
script = lib.getExe setScript;
};
tailscaled.partOf = [ "network-online.target" ];
};
};
}