Skip to content
This repository has been archived by the owner on Sep 8, 2023. It is now read-only.
/ rdns-server Public archive

Dynamic DNS server for on-rio.io

License

Notifications You must be signed in to change notification settings

rancher/rdns-server

Repository files navigation

rdns-server

Build Status Go Report Card

The rdns-server implements the API interface of Dynamic DNS, its goal is to use a variety of DNS servers such as Route53, CoreDNS etc. Now rdns-server only supports A/TXT records, other record types will be added as soon as possible.

  • Default - Route53 - Store the records in the AWS Route53 service and copy them to the database
  • Alternative - Etcdv3 - Store the records in the ETCD and query by CoreDNS

Latest Release

  • Latest - v0.5.8 - rancher/rdns-server:v0.5.8-rancher-amd64.

Building

make

Running

Different environment variables need to be set for different backend before running.

See here for the environment variables you can set.

Running route53 backend

export MYSQL_ROOT_PASSWORD="xxx"
export AWS_HOSTED_ZONE_ID="xxx"
export AWS_ACCESS_KEY_ID="xxx"
export AWS_SECRET_ACCESS_KEY="xxx"
export DSN="root:${MYSQL_ROOT_PASSWORD}@tcp(127.0.0.1:3306)/rdns?parseTime=true"
export TTL="10"
./scripts/start route53

Running etcdv3 backend

This backend will launches the CoreDNS service by default and users no need to run additional CoreDNS.

docker-compose -f deploy/etcdv3/etcd-compose.yaml up -d
export ETCD_ENDPOINTS="http://localhost:2379"
export DOMAIN="lb.rancher.cloud"
./scripts/start etcdv3

If user wants to enables serving zone data from an RFC 1035-style master file. Please put db file to deploy/etcdv3/config directory and add CORE_DNS_DB_FILE & CORE_DNS_DB_ZONE environments before running.

Migrate Datum From v0.4.x To v0.5.x

Now supports migration from the v0.4.x data to the new v0.5.x data store (etcdv3, route53).

Please see here for details.

Testing

Now we only add integration tests, others will coming soon.

Please see here for details.

Monitoring

Now provides prometheus metrics data at /metrics endpoints.

API References

Please see here for details.

Usages

Please see here for details.

License

Copyright (c) 2014-2019 Rancher Labs, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.