DNS-based service discovery for Mesos.
Latest commit bf08ab7 Feb 23, 2017 @alberts alberts committed on GitHub Merge pull request #494 from mesosphere/gpaul/bump-miekg-dns-75229ee
vendor/github.com/miekg/dns: bump to 75229ee
Failed to load latest commit information.
Godeps godep: Move from govendor to godep Oct 1, 2016
build Add some more process around releases Nov 24, 2015
contrib/ansible-gce ansible scripts for mesos-dns support on GCE/mesosphere nodes Mar 18, 2015
detect Clean up ineffectual variable assignment Nov 18, 2016
dnstest resolver: Refactor ext resolver into exchanger pkg Sep 8, 2015
docs docs: Document the `enumerate` endpoint Oct 12, 2016
errorutil Update circle.yml, fix linter warnings Aug 23, 2016
exchanger Add support for ports in resolver list Sep 9, 2016
factories Fix #377 - Use spec() on DiscoveryInfo records Feb 25, 2016
httpcli Added client side certificate and key pair. Nov 18, 2016
logging Transparent forwarding Oct 7, 2015
models First cut at adding AXFR API to Mesos-DNS May 18, 2016
records records: add note about non-compliance of SetTruncateBit Jan 26, 2017
resolver resolver: make resolver_test.go pass golint Feb 17, 2017
tools fix problems reported by go vet Apr 16, 2015
urls return a more generic url-builder option (vs scheme) from TLSConfig Jun 22, 2016
util Move util.IgnoreError to errorutil.Ignore Nov 16, 2015
vendor vendor/github.com/miekg/dns: bump to 75229eecb7af00b2736e93b779a78429… Feb 17, 2017
.gitignore add vendored sources Jun 22, 2016
CHANGELOG Release v0.6.0 Sep 14, 2016
CONTRIBUTING.md Rewrite CONTRIBUTING.md Sep 21, 2015
LICENSE Initial release. Jan 21, 2015
README.md godep: Move from govendor to godep Oct 1, 2016
auth.go cleanup: introduce DoerFunc, DoerFactory, ConfigMap, and an auth plug… Jul 12, 2016
circle.yml godep: Move from govendor to godep Oct 1, 2016
config.json.sample Add basic enumeration of records to mesos-dns Mar 1, 2016
main.go Wait for a reload before serving DNS and HTTP Jan 30, 2017
release.md Update build & release documentation Sep 14, 2016
version.go Release script Sep 23, 2015


Mesos-DNS Circle CI velocity Coverage Status GoDoc Gitter

Mesos-DNS enables DNS based service discovery in Apache Mesos clusters.



mesos-N tags mark the start of support for a specific Mesos version while maintaining backwards compatibility with the previous major version.


The official distribution and installation channel is pre-compiled binaries available in Github releases.


Building the master branch from source should always succeed but doesn't provide the same stability and compatibility guarantees as releases.

All branches and pull requests are tested by Circle-CI, which also outputs artifacts for Mac OS X, Windows, and Linux via cross-compilation.

You will need Go 1.6 or later to build the project. All dependencies are tracked using godep.

# Install godep
$ go get github.com/tools/godep

# Save new dependencies
$ godep save ./...

# Build
$ go build ./...

Building for release

To do a build:

  1. Cut a branch
  2. Tag it with the relevant version, and push the tags along with the branch
  3. If the build doesn't trigger automatically, go here: https://circleci.com/gh/mesosphere/mesos-dns, find your branch, and trigger the build.

If you choose to do a private build:

  1. Fork the repo on Github to a private repo
  2. Customize that repo
  3. Add it to Circle-CI

    Circle-CI allows for private repositories to be kept, and built in private

  4. Go to the build steps.


  1. Download the artifacts from the Circle-CI builds
  2. Cut a release based on the tag on Github
  3. Upload the artifacts back to Github. Ensure you upload all the artifacts, including the .asc files.

Code signing

This repo using code signing. There is an armored, encrypted gpg key in the repo at build/private.key. This file includes the Mesos-DNS gpg signing key. The passphrase for the key is stored in Circle-CI's environment. This makes it fairly difficult to leak both components without detectable maliciousness.

There are only very few users with access to the private key, and they also have access to a revocation certificate in case the private key leaks.


$ go test -race ./...


Detailed documentation on how to configure, operate and use Mesos-DNS under different scenarios and environments is available in http://mesosphere.github.io/mesos-dns/.


Contributions are welcome. Please refer to CONTRIBUTING.md for guidelines.


For any discussion that isn't well suited for Github issues, please use our mailing list or our public chat room.


This project is Apache License 2.0.