Make it easy to override the marathon framework user
Currently the module hardcodes the systemd service user to "marathon". With this change one would not need to create an extra systemd config to override the user. So why would one need to override the Marathon user? Some apps require root access to run. You can't run those with Marathon unless you override the default user to root. Marathon also provides a `--mesos_user` command line flag which allows you to run apps using arbitrary users. You need to run the framework as root to enable this functionality.
This commit is contained in:
parent
eb0a21a512
commit
9c7fae83ee
|
@ -19,14 +19,6 @@ in {
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
httpPort = mkOption {
|
|
||||||
type = types.int;
|
|
||||||
default = 8080;
|
|
||||||
description = ''
|
|
||||||
Marathon listening port for HTTP connections.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
master = mkOption {
|
master = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "zk://${concatStringsSep "," cfg.zookeeperHosts}/mesos";
|
default = "zk://${concatStringsSep "," cfg.zookeeperHosts}/mesos";
|
||||||
|
@ -45,6 +37,25 @@ in {
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
user = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "marathon";
|
||||||
|
example = "root";
|
||||||
|
description = ''
|
||||||
|
The user that the Marathon framework will be launched as. If the user doesn't exist it will be created.
|
||||||
|
If you want to run apps that require root access or you want to launch apps using arbitrary users, that
|
||||||
|
is using the `--mesos_user` flag then you need to change this to `root`.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
httpPort = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 8080;
|
||||||
|
description = ''
|
||||||
|
Marathon listening port for HTTP connections.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
extraCmdLineOptions = mkOption {
|
extraCmdLineOptions = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [ ];
|
default = [ ];
|
||||||
|
@ -76,14 +87,12 @@ in {
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${pkgs.marathon}/bin/marathon --master ${cfg.master} --zk zk://${concatStringsSep "," cfg.zookeeperHosts}/marathon --http_port ${toString cfg.httpPort} ${concatStringsSep " " cfg.extraCmdLineOptions}";
|
ExecStart = "${pkgs.marathon}/bin/marathon --master ${cfg.master} --zk zk://${concatStringsSep "," cfg.zookeeperHosts}/marathon --http_port ${toString cfg.httpPort} ${concatStringsSep " " cfg.extraCmdLineOptions}";
|
||||||
User = "marathon";
|
User = cfg.user;
|
||||||
Restart = "always";
|
Restart = "always";
|
||||||
RestartSec = "2";
|
RestartSec = "2";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
users.extraUsers.marathon = {
|
users.extraUsers.${cfg.user} = { };
|
||||||
description = "Marathon mesos framework user";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue