2021-02-08 22:26:22 +00:00
|
|
|
# SPDX-FileCopyrightText: 2020 Luke Granger-Brown <depot@lukegb.com>
|
|
|
|
#
|
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
|
|
|
{ depot, lib, pkgs, rebuilder, config, ... }:
|
|
|
|
let
|
|
|
|
inherit (depot.ops) secrets;
|
2021-03-29 11:47:44 +00:00
|
|
|
|
|
|
|
internetAddresses = {
|
|
|
|
v4 = { local = "195.74.55.23"; remote = "195.74.55.22"; };
|
|
|
|
v6 = {
|
|
|
|
local = "2a03:ee40:8080:9:2::2";
|
|
|
|
remote = "2a03:ee40:8080:9:2::1";
|
|
|
|
};
|
|
|
|
};
|
2021-02-08 22:26:22 +00:00
|
|
|
in {
|
|
|
|
imports = [
|
|
|
|
../lib/blade.nix
|
2021-03-29 11:47:44 +00:00
|
|
|
../lib/bgp.nix
|
2021-02-08 22:26:22 +00:00
|
|
|
];
|
|
|
|
|
2021-02-09 00:00:18 +00:00
|
|
|
boot.loader.grub.device = "/dev/disk/by-id/usb-USB_SanDisk_3.2Gen1_0101da58c052a35c497ff39f7bd33f46a018bf2f2cd4503e52a89df5e552da8d661f000000000000000000005e0619e7ff90240091558107b6a8e58d-0:0";
|
2021-02-08 22:26:22 +00:00
|
|
|
|
2021-03-29 11:47:44 +00:00
|
|
|
services.lukegbgp = {
|
|
|
|
enable = true;
|
|
|
|
config = {
|
|
|
|
local.routerID = internetAddresses.v4.local;
|
|
|
|
peering.veloxserv = {
|
|
|
|
local = {
|
|
|
|
asn = 205479;
|
|
|
|
v4 = internetAddresses.v4.local;
|
|
|
|
v6 = internetAddresses.v6.local;
|
|
|
|
};
|
|
|
|
remote = {
|
|
|
|
asn = 3170;
|
|
|
|
export_community = 4001;
|
|
|
|
routers = [{ v4 = internetAddresses.v4.remote; v6 = internetAddresses.v6.remote; }];
|
|
|
|
};
|
|
|
|
};
|
2021-03-29 12:06:39 +00:00
|
|
|
export.v4 = [ "92.118.28.0/24" ];
|
|
|
|
export.v6 = [ "2a09:a441::/32" ];
|
2021-03-29 11:47:44 +00:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2021-02-08 22:26:22 +00:00
|
|
|
# Networking!
|
|
|
|
networking = {
|
|
|
|
hostName = "blade-paris";
|
|
|
|
hostId = "41b2a198";
|
2021-03-12 14:47:08 +00:00
|
|
|
interfaces.en-internet.ipv4.addresses = [{
|
2021-03-29 11:47:44 +00:00
|
|
|
address = internetAddresses.v4.local;
|
2021-03-12 14:47:08 +00:00
|
|
|
prefixLength = 31;
|
2021-02-08 22:26:22 +00:00
|
|
|
}];
|
2021-03-12 14:47:08 +00:00
|
|
|
interfaces.en-internet.ipv6.addresses = [{
|
2021-03-29 11:47:44 +00:00
|
|
|
address = internetAddresses.v6.local;
|
2021-03-12 14:47:08 +00:00
|
|
|
prefixLength = 126;
|
|
|
|
}];
|
2021-03-29 11:47:44 +00:00
|
|
|
defaultGateway = internetAddresses.v4.remote;
|
|
|
|
defaultGateway6 = internetAddresses.v6.remote;
|
2021-03-20 01:08:33 +00:00
|
|
|
firewall.extraCommands = "iptables -A INPUT -p vrrp -i br-mgmt -j ACCEPT";
|
2021-02-08 22:26:22 +00:00
|
|
|
};
|
2021-02-09 00:00:18 +00:00
|
|
|
my.ip.tailscale = "100.117.185.118";
|
2021-03-12 14:47:08 +00:00
|
|
|
my.blade.bay = 2;
|
|
|
|
my.blade.macAddress = {
|
|
|
|
internal = "e4:11:5b:ac:e4:8a";
|
|
|
|
storage = "e4:11:5b:ac:e4:8e";
|
|
|
|
internet = "e4:11:5b:ac:e4:8c";
|
|
|
|
};
|
2021-03-28 15:27:46 +00:00
|
|
|
my.deploy.enable = false;
|
2021-02-09 01:17:54 +00:00
|
|
|
|
|
|
|
services.ceph = {
|
|
|
|
mon.enable = true;
|
2021-02-09 22:29:11 +00:00
|
|
|
osd = {
|
|
|
|
enable = true;
|
|
|
|
daemons = [ "2" ];
|
|
|
|
};
|
2021-02-09 01:17:54 +00:00
|
|
|
};
|
2021-03-20 01:08:33 +00:00
|
|
|
|
|
|
|
services.keepalived = {
|
|
|
|
enable = true;
|
|
|
|
vrrpInstances.mgmtGateway = {
|
|
|
|
interface = "br-mgmt";
|
|
|
|
state = "MASTER";
|
|
|
|
priority = 100;
|
2021-03-29 11:47:44 +00:00
|
|
|
virtualIps = [
|
|
|
|
{ addr = "10.100.0.1/23"; }
|
|
|
|
{ addr = "92.118.28.1/24"; dev = "br-public"; }
|
|
|
|
];
|
2021-03-20 01:08:33 +00:00
|
|
|
virtualRouterId = 1;
|
|
|
|
};
|
|
|
|
};
|
2021-02-08 22:26:22 +00:00
|
|
|
}
|