The original, complete open source DNS implementation. https://www.isc.org/bind/
A Juju charm deploying Bind, configurable to use a git repository for its configuration files.
BIND 9 has evolved to be a very flexible, full-featured DNS system. Whatever your application is, BIND 9 probably has the required features. As the first, oldest, and most commonly deployed solution, there are more network engineers who are already familiar with BIND 9 than with any other system.
To deploy this charm in a juju k8s model:
juju deploy cs:~bind-charmers/bind
The charm will deploy bind with its stock Ubuntu package configuration, which will forward all queries to root name servers.
DNSSEC is also enabled by default.
Custom config can be deployed by setting the
custom_config_repo option to
point to a Git repository containing a valid set of configuration files with
which to populate the
/etc/bind/ directory within the pod(s).
Since bind won't allow recursion from external clients by default, to allow easy testing, you can use a repo with a copy of the stock config, modified to allow recursion from all RFC1918 networks:
juju config bind custom_config_repo=https://git.launchpad.net/~barryprice/junk/+git/etc-bind-stock-config-with-all-rfc1918-nets-allowed
Once the application is ready, you should be able to query the App's IP address (not the Unit addresses) directly from your local machine:
$ juju status Model Controller Cloud/Region Version SLA Timestamp bind-test myk8s-localhost myk8s/localhost 2.8.6 unsupported 16:44:30+07:00 App Version Status Scale Charm Store Rev OS Address Notes bind bind:edge active 1 bind jujucharms 2 kubernetes 10.152.183.246 Unit Workload Agent Address Ports Message bind/0* active idle 10.1.25.35 53/TCP,53/UDP Pod configured $ dig +short example.com @10.152.183.246 126.96.36.199 $
- (string) Password to use for the configured image registry, if required
- (string) The location of the image to use, e.g. "registry.example.com/bind:v1". This setting is required.
- (string) Username to use for the configured image registry, if required
- (string) YAML formatted map of container config keys & values. These are generally accessed from inside the image as environment variables. Use to configure customized Wordpress images. This configuration gets logged; use container_secrets for secrets.
- (string) YAML formatted map of secrets. Works just like container_config, except that values should not be logged.
- (string) Repository from which to populate /etc/bind/. If unset, bind will be deployed with the package defaults. e.g. http://github.com/foo/my-custom-bind-config
- (string) Proxy address to set in the environment, e.g. http://192.168.1.1:8080 Used to clone the configuration files from custom_config_repo, if set. If a username/password is required, they can be embedded in the proxy address e.g. http://username:firstname.lastname@example.org:8080 Traffic is expected to be HTTPS, but this will also work for HTTP.