DNS-based service discovery for Mesos.
Clone or download
GoelDeepak Merge pull request #525 from mesosphere/deepak/state-endpoint
Moves mesos state endpoint from /state.json to /state
Latest commit 211986e Sep 19, 2018
Permalink
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 Fix URL in contrib/ansible-gce/README.md May 24, 2017
detect Clean up ineffectual variable assignment Nov 18, 2016
dnstest Support IPv6 (#508) Oct 10, 2017
docs Clean up docs (formatting, typos and so on) (#526) Sep 18, 2018
errorutil lint: fix CI problems reported by linter Jul 12, 2017
exchanger lint: fix CI problems reported by linter Jul 12, 2017
factories Support IPv6 (#508) Oct 10, 2017
httpcli Whitelist gometalinter:gosec errors Sep 13, 2018
logging Transparent forwarding Oct 7, 2015
models Support IPv6 (#508) Oct 10, 2017
records Whitelist gometalinter:gosec errors Sep 13, 2018
resolver Merge pull request #525 from mesosphere/deepak/state-endpoint Sep 19, 2018
tools Clean up docs (formatting, typos and so on) (#526) Sep 18, 2018
urls Support IPv6 (#508) Oct 10, 2017
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 Clean up docs (formatting, typos and so on) (#526) Sep 18, 2018
LICENSE Initial release. Jan 21, 2015
README.md Clean up docs (formatting, typos and so on) (#526) Sep 18, 2018
auth.go cleanup: introduce DoerFunc, DoerFactory, ConfigMap, and an auth plug… Jul 12, 2016
circle.yml Clean up docs (formatting, typos and so on) (#526) Sep 18, 2018
config.json.sample add non-zero weight for returned SRV records (#515) Jan 26, 2018
main.go Wait for a reload before serving DNS and HTTP Jan 30, 2017
release.md Clean up docs (formatting, typos and so on) (#526) Sep 18, 2018
version.go Release script Sep 23, 2015

README.md

Mesos-DNS Circle CI velocity Coverage Status GoDoc Gitter

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

Architecture Diagram

Compatibility

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

Installing

The official release binaries are available at Github releases.

Building

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 CircleCI, 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 a release

  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 to CircleCI, find your branch, and trigger the build.

Making a private build

  1. Fork the repo on Github.
  2. Customize that repo.
  3. Add it to CircleCI. Please note that CircleCI allows for private repositories to be kept, and built in private.
  4. Go to the build steps.

Releasing

  1. Download the artifacts from CircleCI.
  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 uses code signing. There is an armored, encrypted GPG key in the repo in 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.

Testing

go test -race ./...

Documentation

The detailed documentation on how to configure, operate and use Mesos-DNS under different scenarios and environments is available at the project's home page.

Contributing

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

Contact

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

License

This project is licensed under Apache License 2.0.