diff --git a/modules/compute/compute.nix b/modules/compute/compute.nix index 33f3d59..a085916 100644 --- a/modules/compute/compute.nix +++ b/modules/compute/compute.nix @@ -2,6 +2,7 @@ { ... }: { imports = [ + ../generic/controller-host-entry.nix (import ./neutron.nix { inherit neutron; }) (import ./nova.nix { inherit nova; }) ]; diff --git a/modules/controller/openstack-controller.nix b/modules/controller/openstack-controller.nix index b49c81d..321f432 100644 --- a/modules/controller/openstack-controller.nix +++ b/modules/controller/openstack-controller.nix @@ -25,6 +25,7 @@ in { imports = [ ./generic.nix + ../generic/controller-host-entry.nix (import ./keystone.nix { inherit keystone; }) (import ./glance.nix { inherit glance; }) (import ./placement.nix { inherit placement; }) diff --git a/modules/generic/controller-host-entry.nix b/modules/generic/controller-host-entry.nix new file mode 100644 index 0000000..1a80a62 --- /dev/null +++ b/modules/generic/controller-host-entry.nix @@ -0,0 +1,19 @@ +{ lib, config, ... }: +with lib; +{ + options.openstack = { + controllerIP = mkOption { + type = types.str; + description = '' + IP address of the controller. Will be used to make a /etc/hosts entry + to make the controller available via "controller". + ''; + }; + }; + + config = { + networking.extraHosts = '' + ${config.openstack.controllerIP} controller controller.local + ''; + }; +} diff --git a/modules/testing/default.nix b/modules/testing/default.nix index 6ac9f2b..413d4ce 100644 --- a/modules/testing/default.nix +++ b/modules/testing/default.nix @@ -13,26 +13,30 @@ let common = { pkgs, lib, ... }: { - system.stateVersion = lib.trivial.release; + imports = [ + ../generic/controller-host-entry.nix + ]; - services.getty.autologinUser = "root"; + config = { + system.stateVersion = lib.trivial.release; - networking.extraHosts = '' - 10.0.0.11 controller controller.local - ''; + services.getty.autologinUser = "root"; - networking = { - useDHCP = false; - networkmanager.enable = false; - useNetworkd = true; - firewall.enable = false; - }; + openstack.controllerIP = "10.0.0.11"; - environment.systemPackages = [ - pkgs.openstackclient - ]; + networking = { + useDHCP = false; + networkmanager.enable = false; + useNetworkd = true; + firewall.enable = false; + }; - environment.variables = adminEnv; + environment.systemPackages = [ + pkgs.openstackclient + ]; + + environment.variables = adminEnv; + }; }; in {