openvpn: add option to store credentials

Changed files
+26
nixos
modules
services
networking
+26
nixos/modules/services/networking/openvpn.nix
···
"up ${pkgs.writeScript "openvpn-${name}-up" upScript}"}
${optionalString (cfg.down != "" || cfg.updateResolvConf)
"down ${pkgs.writeScript "openvpn-${name}-down" downScript}"}
+
${optionalString (cfg.authUserPass != null)
+
"auth-user-pass ${pkgs.writeText "openvpn-credentials-${name}" ''
+
${cfg.authUserPass.username}
+
${cfg.authUserPass.password}
+
''}"}
'';
in {
···
'';
};
+
authUserPass = mkOption {
+
default = null;
+
description = ''
+
This option can be used to store the username / password credentials
+
with the "auth-user-pass" authentication method.
+
'';
+
type = types.nullOr (types.submodule {
+
+
options = {
+
username = mkOption {
+
description = "The username to store inside the credentials file.";
+
type = types.string;
+
};
+
+
password = mkOption {
+
description = "The password to store inside the credentials file.";
+
type = types.string;
+
};
+
};
+
});
+
};
};
});