mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-10 19:55:41 +03:00

Format all Nix files using the officially approved formatter,
making the CI check introduced in the previous commit succeed:
nix-build ci -A fmt.check
This is the next step of the of the [implementation](https://github.com/NixOS/nixfmt/issues/153)
of the accepted [RFC 166](https://github.com/NixOS/rfcs/pull/166).
This commit will lead to merge conflicts for a number of PRs,
up to an estimated ~1100 (~33%) among the PRs with activity in the past 2
months, but that should be lower than what it would be without the previous
[partial treewide format](https://github.com/NixOS/nixpkgs/pull/322537).
Merge conflicts caused by this commit can now automatically be resolved while rebasing using the
[auto-rebase script](8616af08d9/maintainers/scripts/auto-rebase
).
If you run into any problems regarding any of this, please reach out to the
[formatting team](https://nixos.org/community/teams/formatting/) by
pinging @NixOS/nix-formatting.
100 lines
2.5 KiB
Nix
100 lines
2.5 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}:
|
|
|
|
with lib;
|
|
|
|
let
|
|
cfg = config.services.skydns;
|
|
|
|
in
|
|
{
|
|
options.services.skydns = {
|
|
enable = mkEnableOption "skydns service";
|
|
|
|
etcd = {
|
|
machines = mkOption {
|
|
default = [ "http://127.0.0.1:2379" ];
|
|
type = types.listOf types.str;
|
|
description = "Skydns list of etcd endpoints to connect to.";
|
|
};
|
|
|
|
tlsKey = mkOption {
|
|
default = null;
|
|
type = types.nullOr types.path;
|
|
description = "Skydns path of TLS client certificate - private key.";
|
|
};
|
|
|
|
tlsPem = mkOption {
|
|
default = null;
|
|
type = types.nullOr types.path;
|
|
description = "Skydns path of TLS client certificate - public key.";
|
|
};
|
|
|
|
caCert = mkOption {
|
|
default = null;
|
|
type = types.nullOr types.path;
|
|
description = "Skydns path of TLS certificate authority public key.";
|
|
};
|
|
};
|
|
|
|
address = mkOption {
|
|
default = "0.0.0.0:53";
|
|
type = types.str;
|
|
description = "Skydns address to bind to.";
|
|
};
|
|
|
|
domain = mkOption {
|
|
default = "skydns.local.";
|
|
type = types.str;
|
|
description = "Skydns default domain if not specified by etcd config.";
|
|
};
|
|
|
|
nameservers = mkOption {
|
|
default = map (n: n + ":53") config.networking.nameservers;
|
|
defaultText = literalExpression ''map (n: n + ":53") config.networking.nameservers'';
|
|
type = types.listOf types.str;
|
|
description = "Skydns list of nameservers to forward DNS requests to when not authoritative for a domain.";
|
|
example = [
|
|
"8.8.8.8:53"
|
|
"8.8.4.4:53"
|
|
];
|
|
};
|
|
|
|
package = mkPackageOption pkgs "skydns" { };
|
|
|
|
extraConfig = mkOption {
|
|
default = { };
|
|
type = types.attrsOf types.str;
|
|
description = "Skydns attribute set of extra config options passed as environment variables.";
|
|
};
|
|
};
|
|
|
|
config = mkIf (cfg.enable) {
|
|
systemd.services.skydns = {
|
|
wantedBy = [ "multi-user.target" ];
|
|
after = [
|
|
"network.target"
|
|
"etcd.service"
|
|
];
|
|
description = "Skydns Service";
|
|
environment = {
|
|
ETCD_MACHINES = concatStringsSep "," cfg.etcd.machines;
|
|
ETCD_TLSKEY = cfg.etcd.tlsKey;
|
|
ETCD_TLSPEM = cfg.etcd.tlsPem;
|
|
ETCD_CACERT = cfg.etcd.caCert;
|
|
SKYDNS_ADDR = cfg.address;
|
|
SKYDNS_DOMAIN = cfg.domain;
|
|
SKYDNS_NAMESERVERS = concatStringsSep "," cfg.nameservers;
|
|
};
|
|
serviceConfig = {
|
|
ExecStart = "${cfg.package}/bin/skydns";
|
|
};
|
|
};
|
|
|
|
environment.systemPackages = [ cfg.package ];
|
|
};
|
|
}
|