depot/cluster/services/ways/options/way.nix

58 lines
1.2 KiB
Nix
Raw Normal View History

{ lib, name, options, ... }:
2024-07-04 02:57:36 +03:00
with lib;
{
options = {
internal = mkOption {
description = "Whether to only make this Way available internally. Will use the internal subdomain.";
type = types.bool;
default = false;
};
name = mkOption {
description = "Subdomain name to use.";
type = types.str;
default = name;
};
target = mkOption {
type = types.str;
};
consulService = mkOption {
type = types.str;
};
2024-07-04 02:57:36 +03:00
healthCheckPath = mkOption {
type = types.path;
default = "/.well-known/ways/internal-health-check";
};
useConsul = mkOption {
type = types.bool;
internal = true;
default = false;
};
nginxUpstreamName = mkOption {
type = types.str;
internal = true;
};
2024-07-04 02:57:36 +03:00
extras = mkOption {
description = "Extra configuration to pass to the nginx virtual host submodule.";
type = types.deferredModule;
default = {};
};
};
config = lib.mkMerge [
(lib.mkIf options.consulService.isDefined {
useConsul = true;
nginxUpstreamName = "ways_upstream_${builtins.hashString "md5" options.consulService.value}";
target = "http://${options.nginxUpstreamName.value}";
})
];
2024-07-04 02:57:36 +03:00
}