This is a sample Marathon app for encrypting your Marathon-lb HAProxy endpoints using Let's Encrypt. With this, you can automatically generate and renew valid SSL certs with Marathon-lb.
Clone (or manually copy) this repo, and modify the letsencrypt-dcos.json file to include:
HAPROXY_0_VHOST
)LETSENCRYPT_EMAIL
)MARATHON_URL
)MARATHON_LB_ID
)Now launch the letsencrypt-dcos
Marathon app:
$ dcos marathon app add letsencrypt-dcos.json
There are 2 test apps included, based on openresty, which you can use to test everything. Have a look in the test/
directory within the repo.
The app includes 2 scripts: run.sh
and post_cert.py
. The first script (run.sh
) will generate the initial SSL cert and POST the cert to Marathon for Marathon-lb. It will then attempt to renew & update the cert every 24 hours. The post_cert.py
script will compare the current cert in Marathon to the current live cert, and update it as necessary. post_cert.py
is called after the initial cert is generated, and again every 24 hours after a renewal attempt.
A persistent volume called data
is mounted inside the container at /etc/letsencrypt
which contains the certificates and other generated state.