2019-03-12 20:33:56 +01:00
|
|
|
{ config, lib, ... }:
|
|
|
|
|
|
|
|
|
|
with lib;
|
|
|
|
|
|
|
|
|
|
{
|
2019-10-06 21:30:20 +02:00
|
|
|
options = {
|
|
|
|
|
kubenix.project = mkOption {
|
2019-03-12 20:33:56 +01:00
|
|
|
description = "Name of the project";
|
|
|
|
|
type = types.str;
|
|
|
|
|
default = "kubenix";
|
|
|
|
|
};
|
2019-10-06 21:30:20 +02:00
|
|
|
|
2020-04-04 18:23:25 +07:00
|
|
|
_m.features = mkOption {
|
2019-10-06 21:30:20 +02:00
|
|
|
description = "List of features exposed by module";
|
|
|
|
|
type = types.listOf types.str;
|
2021-05-13 17:27:08 -04:00
|
|
|
default = [ ];
|
2019-10-06 21:30:20 +02:00
|
|
|
};
|
|
|
|
|
|
2020-04-04 18:23:25 +07:00
|
|
|
_m.propagate = mkOption {
|
2019-10-06 21:30:20 +02:00
|
|
|
description = "Module propagation options";
|
2021-05-13 17:27:08 -04:00
|
|
|
type = types.listOf (types.submodule ({ config, ... }: {
|
2019-10-06 21:30:20 +02:00
|
|
|
options = {
|
|
|
|
|
features = mkOption {
|
|
|
|
|
description = "List of features that submodule has to have to propagate module";
|
|
|
|
|
type = types.listOf types.str;
|
2021-05-13 17:27:08 -04:00
|
|
|
default = [ ];
|
2019-10-06 21:30:20 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
module = mkOption {
|
|
|
|
|
description = "Module to propagate";
|
|
|
|
|
type = types.unspecified;
|
2021-05-13 17:27:08 -04:00
|
|
|
default = { };
|
2019-10-06 21:30:20 +02:00
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
}));
|
2021-05-13 17:27:08 -04:00
|
|
|
default = [ ];
|
2019-10-06 21:30:20 +02:00
|
|
|
};
|
2019-03-12 20:33:56 +01:00
|
|
|
};
|
|
|
|
|
}
|