git.delta.rocks / fleet / refs/commits / 0ea4b47ffa04

difftreelog

source

docs/features/modules.adoc1.0 KiBrenderedsourcehistory
1= Multi-host Modules2:order: 034Fleet modules configure multiple hosts simultaneously. Unlike standard NixOS modules which configure a single machine, fleet modules have access to all hosts in the cluster.56== Basic Module78[source,nix]9----10# wireguard/default.nix11{ config, ... }: {12  hosts = builtins.mapAttrs (name: host: {13    nixos.networking.wireguard.interfaces.wg0 = {14      ips = [ host.config.wireguardIp ];15      peers = builtins.filter (p: p.name != name)16        (builtins.attrValues config.hosts);17    };18  }) config.hosts;19}20----2122== Using Modules2324Modules are imported in the `fleetConfigurations` block:2526[source,nix]27----28fleetConfigurations.default = {29  imports = [30    ./wireguard31    ./monitoring32  ];3334  hosts.node-1 = { ... };35  hosts.node-2 = { ... };36};37----3839== Multi-instance Modules4041Modules can be parameterized and imported multiple times:4243[source,nix]44----45fleetConfigurations.default = {46  imports = [47    (import ./kubernetes { hosts = ["cp-1" "cp-2"]; })48    (import ./kubernetes { hosts = ["cp-3" "cp-4"]; })49  ];50};51----