Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


DNS-based service discovery for Mesos.

Subscribe to updates I use mesos-dns

Statistics on mesos-dns

Number of watchers on Github 449
Number of open issues 70
Average time to close an issue 15 days
Main language Go
Average time to merge a PR 2 days
Open pull requests 23+
Closed pull requests 17+
Last commit almost 2 years ago
Repo Created about 5 years ago
Repo Last Updated almost 2 years ago
Size 2.21 MB
Homepage https://mesospher...
Organization / Authormesosphere
Latest Releasev0.6.0
Page Updated
Do you use mesos-dns? Leave a review!
View open issues (70)
View mesos-dns activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating mesos-dns for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

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

# 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:, 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


Contributions are welcome. Please refer to 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.

mesos-dns open issues Ask a question     (View All Issues)
  • about 3 years mesos-dns is not working on Ubuntu 16.04.1 LTS
  • about 3 years Document all api endpoint
  • about 3 years Document port name query
  • about 3 years Returns docker container IP instead of mesos host one
  • about 3 years please remove -v in this command
  • about 3 years Add IPSources priority to Documentation
  • about 3 years Mesos DNS doesn't run on Alpine Linux (compiled with non-static linking?)
  • about 3 years Aurora tasks create odd DNS entries
  • about 3 years DNS SRV entries need port names to be addressable ... PORT_NAME.SERVICE.PROTOCOL.FRAMEWORK.MESOS
  • over 3 years HTTP API inappropriately rejects Accept header
  • over 3 years Add metadata to distinguish multiple ports
  • over 3 years Proposal: Add support for multiple resolver backends (eg consul)
  • over 3 years Support SSL-enabled Mesos
  • over 3 years DNS name differences on 0.27 vs 0.28
  • over 3 years our CI should fail if code isn't properly formatted
  • over 3 years Read configuration from environment variables
  • over 3 years Distinguish between routable NetworkInfo and unroutable NetworkInfo
  • over 3 years no_proxy error master cant connect to master
  • over 3 years Leaked file descriptors
  • over 3 years Having "method redeclared" errors
  • over 3 years mesos-dns ignore ipAddress{} when a healthchecks was setted
  • over 3 years "failed to unpack truncated message" errors
  • over 3 years Allow framework to better customize record names with dots in it
  • over 3 years Break out HTTP JSON data representations into separate package
  • over 3 years Remove Legacy handling of DiscoveryInfo - REMIND ME June
  • almost 4 years Tutorial to run Mesos DNS should not rely on constraints
  • almost 4 years Cleanup insertRR
  • almost 4 years Mesos-DNS should not try and guess it's IP
  • almost 4 years Update naming.html to reflect all valid IPSources values
  • almost 4 years AS cluster operator I WANT to limit which Tasks are listed in response to DNS/HTTP queries
mesos-dns open pull requests (View All Pulls)
  • improve performance of record generation
  • generate additional SRV records if port name is specified
  • Fixes #377 - Apply label schema to task.DiscoveryInfo.Name
  • Implement service enumeration
  • Proposal: Generate records for staging tasks
  • Allow hostnames for delegate resolvers
  • Implementation of a domain name template based generator
  • [WIP] Dnstap support
  • WIP: Plugins (v2) API Support
  • Make `state.json` fetching more robust
  • Fix URL in contrib/ansible-gce/
  • Vipsupport
  • rollback trimcut changes
  • Add vendored code itself
  • Update vendored go-zookeeper dependency
  • Adding in support for additional resolvers
  • Adding dockerized build environment
  • Update README badge.
  • WIP: Serve PTR records for unambiguous tasks
  • Added client side certificate and key pair.
  • Upgrade to latest mesos-go
  • Added error message when no masters given.
  • Updated logging regarding new masters.
mesos-dns questions on Stackoverflow (View All Questions)
  • Dcos on premises , How out side world reach to docker container if we are using mesos-dns?
  • Setting Mesos DNS on ubuntu
  • Setup Mesos-DNS dockerized on a mesos cluster
  • Release PORT 53 | Mesos-DNS on Marathon
  • How does Mesos-DNS name tasks with slash ("nested")?
  • Cant connect to an app using Mesos-DNS
  • What's the service name mesos-dns provides to access Cassandra when using the Cassandra-mesos framework?
  • mesos-dns, best practice for working with ports
mesos-dns list of languages used
mesos-dns latest release notes
v0.6.0 v0.6.0
Release v0.6.0

-Added some benchmarks for RecordGenerator.insertRR
-Make minor fixes to enumeration API, where it would return null, as as opposed to an empty list
-Add the AXFR (record listing) HTTP API endpoint
-Make HTTP listener address configurable
-General improvements to the HTTP client
  -Pool HTTP connections, preventing connection leakage
  -Set the User Agent
-Switch the project to Go Vendor as opposed to Godeps
-Add HTTPS Client support to Mesos-DNS (for state.json)
-Add Mesos authentication support
-Fix tasks from more than 63 dashes and a non - character from
  crashing Mesos-DNS
-Don't treat truncated records as an error.
v0.5.3-rc2 v0.5.3-rc2

This is a pre-release to prepare for v0.5.3. We're cutting this pre-release to align along DC/OS 1.8.3, Early Access.

Other projects in Go