diff --git a/hosts/myself/ceph.nix b/hosts/myself/ceph.nix new file mode 100644 index 0000000..6e8f8b5 --- /dev/null +++ b/hosts/myself/ceph.nix @@ -0,0 +1,33 @@ +{ config, ... }: + +let + publicIp = (builtins.elemAt config.networking.interfaces.enp38s0.ipv4.addresses 0).address; + sanIp = (builtins.elemAt config.networking.interfaces.enp39s0.ipv4.addresses 0).address; + vip = (builtins.elemAt config.networking.interfaces.enp38s0.ipv4.addresses 1).address; + hostname = config.networking.hostName; + baseConfig = import ../../ceph/home.nix; +in { + services.ceph-benaco = baseConfig // { + enable = true; + monitor = { + enable = true; + initialKeyring = ../../secrets/home.mon.keyring; + nodeName = hostname; + bindAddr = publicIp; + advertisedPublicAddr = vip; + }; + osdBindAddr = publicIp; + osdAdvertisedPublicAddr = publicIp; + osds = { + osd1 = { + enable = true; + bootstrapKeyring = ../../secrets/home.osd-bootstrap.keyring; + id = 2; + uuid = "73424b68-210b-415f-800f-8767babea625"; + blockDevice = "/dev/disk/by-id/ata-ST12000NM0558_ZHZ5WM4L"; + blockDeviceUdevRuleMatcher = ''KERNEL=="sdb"''; + clusterAddress = sanIp; + }; + }; + }; +} diff --git a/hosts/myself/default.nix b/hosts/myself/default.nix index bf31c63..dc806b0 100644 --- a/hosts/myself/default.nix +++ b/hosts/myself/default.nix @@ -1,6 +1,7 @@ { config, pkgs, lib, ... }: { imports = [ + ./ceph.nix ./hardware-configuration.nix ./git.nix ./matrix.nix diff --git a/modules/nixos/ceph.nix b/modules/nixos/ceph.nix index 87e2c58..fcd1d7d 100644 --- a/modules/nixos/ceph.nix +++ b/modules/nixos/ceph.nix @@ -445,7 +445,7 @@ in OSD_SECRET=$(${cfg.package}/bin/ceph-authtool --gen-print-key) echo "{\"cephx_secret\": \"$OSD_SECRET\"}" | \ - ${cfg.package}/bin/ceph osd new ${osdConfig.uuid} ${toString osdConfig.id} -i - \ + ${cfg.package}/bin/ceph --cluster ${cfg.clusterName} osd new ${osdConfig.uuid} ${toString osdConfig.id} -i - \ -n client.bootstrap-osd -k ${osdConfig.bootstrapKeyring} mkdir -p /var/lib/ceph/osd/${cfg.clusterName}-${toString osdConfig.id}