mesosphere / chronos-pkg

Apache License 2.0
5 stars 16 forks source link

Support config from environment #17

Closed felixb closed 8 years ago

felixb commented 8 years ago

Running chronos with systemd is made much easier when configuration is done via environment variables. This allows setting all chronos config in /etc/sysconfig/chronos, systemd will pick it up automatically. It's basically a copy of marathons logic.

refs #16

lingmann commented 8 years ago

@felixb can you provide some test result logs, showing that this code change works as expected? Thanks!

felixb commented 8 years ago

This shows, how it works on my vagrant box using systemd on a RHEL7:

I use /etc/sysconfig/chronos in favor of /etc/default/chronos, because it's loaded by systemd automatically.

There is no config in /etc/chronos:

root@mesos-mgr-dev-f999999:~> ls -l /etc/chronos
ls: cannot access /etc/chronos: No such file or directory

I've put configured everything in /etc/sysconfig/chronos:

root@mesos-mgr-dev-f999999:~> cat /etc/sysconfig/chronos 
CHRONOS_MASTER=zk://mesos-master-dev-f999999:2181/mesos
CHRONOS_ZK_HOSTS=mesos-master-dev-f999999:2181
CHRONOS_ZK_PATH=/develop/vagrant/chronos
CHRONOS_MESOS_ROLE=chronos
CHRONOS_USER=chronos
CHRONOS_HTTP_PORT=8081

Chronos is running with configured flags:

root@mesos-mgr-dev-f999999:~> systemctl status chronos
chronos.service - Chronos
   Loaded: loaded (/etc/systemd/system/chronos.service; enabled)
   Active: active (running) since Wed 2015-11-25 08:10:46 CET; 14min ago
 Main PID: 18331 (java)
   CGroup: /system.slice/chronos.service
           ├─18331 java -Djava.library.path=/usr/local/lib:/usr/lib64:/usr/lib -Djava.util.logging.SimpleFormatter.format=%2$s %5$s%6$s%n -Xmx512m -cp /usr/bin/chronos org.apache.mesos.chronos.scheduler.Main --mesos_role chronos --zk_pa...
           ├─18342 logger -p user.info -t chronos[18331]
           └─18343 logger -p user.notice -t chronos[18331]
[..]

root@mesos-mgr-dev-f999999:~> ps -ef | grep chronos
root     18331     1  2 08:10 ?        00:00:23 java -Djava.library.path=/usr/local/lib:/usr/lib64:/usr/lib -Djava.util.logging.SimpleFormatter.format=%2$s %5$s%6$s%n -Xmx512m -cp /usr/bin/chronos org.apache.mesos.chronos.scheduler.Main --mesos_role chronos --zk_path /develop/vagrant/chronos --http_port 8081 --zk_hosts mesos-master-dev-f999999:2181 --user chronos --master zk://mesos-master-dev-f999999:2181/mesos
[..]
lingmann commented 8 years ago

Looks good! Thanks for the patch @felixb :)

felixb commented 8 years ago

Thanks for merging. Do you mind releasing a new package/rpm?