The original, complete open source DNS implementation
A Juju charm deploying Bind, configurable to use a git repository for its configuration files.
This is a k8s workload charm and can only be deployed to a Juju k8s cloud,
attached to a controller using
This charm is not currently ready for production due to issues with providing an egress to route TCP and UDP traffic to the pods. See:
See config option descriptions in config.yaml.
Notes for deploying a test setup locally using microk8s:
sudo snap install juju --classic sudo snap install juju-wait --classic sudo snap install microk8s --classic sudo snap alias microk8s.kubectl kubectl microk8s.reset # Warning! Clean slate! microk8s.enable dns dashboard registry storage microk8s.status --wait-ready microk8s.config | juju add-k8s myk8s --client juju bootstrap myk8s juju add-model bind-test #1. Either deploy with the default image from Dockerhub: juju deploy cs:~bind-charmers/bind #2. Or optionally build your own image locally and deploy with that sudo snap install charmcraft git clone https://git.launchpad.net/charm-k8s-bind cd charm-k8s-bind make image-build docker push localhost:32000/bind juju deploy cs:~bind-charmers/bind --config bind_image_path=localhost:32000/bind:latest bind juju wait juju status
Assuming you're using the image from dockerhub, or an image built locally from this repo without changes, 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).
- (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.