Charm Interface - BIND RNDC
Go to file
Alex Kavanagh 4c69d8ceb1 Migrate unit tests from testr to stestr
Note: there aren't any unit tests, but this at least migrates away from
the deprecated testr module.

Change-Id: Ib95f7631c8ee5b2e00fcf146d6ab7ac43b81c795
2021-02-10 10:59:39 +00:00
.gitignore Add support for verification process 2016-07-08 13:56:48 +01:00
.gitreview OpenDev Migration Patch 2019-04-19 19:32:44 +00:00
.stestr.conf Migrate unit tests from testr to stestr 2021-02-10 10:59:39 +00:00
.zuul.yaml import zuul job settings from project-config 2018-10-04 12:44:37 +00:00
LICENSE Add support for verification process 2016-07-08 13:56:48 +01:00
README.md Add support for verification process 2016-07-08 13:56:48 +01:00
__init__.py initial version 2016-01-15 13:28:42 +00:00
copyright Add support for verification process 2016-07-08 13:56:48 +01:00
interface.yaml Change openstack-dev to openstack-discuss 2018-11-18 03:08:50 -05:00
provides.py Add egress_subnets helper 2020-07-21 10:02:20 +01:00
requires.py Implement "dns-backend" binding 2017-10-17 14:40:22 +02:00
test-requirements.txt Migrate unit tests from testr to stestr 2021-02-10 10:59:39 +00:00
tox.ini Migrate unit tests from testr to stestr 2021-02-10 10:59:39 +00:00

README.md

Overview

This interface supports integration with BIND using RNDC keys.

Usage

No explicit handler is required to consume this interface in charms that consume this interface.

metadata

To consume this interface in your charm or layer, add the following to layer.yaml:

includes: ['interface:bind-rndc']

and add a requires interface of type bind-rndc to your charm or layers metadata.yaml:

requires:
  dns-backend:
    interface: bind-rndc

state: {relation_name}.connected

This state is set when a relation of type bind-rndc is detected, but the data may not have yet been presented by the providing charm.

state: {relation_name}.available

This state is set when the providing application unit has set all required data items on the interface.

The interface provides implicit bindings for:

  • algorithm - RNDC algorithm to use.
  • rndckey - key to use to secure RNDC commands.
  • private_address - address of providing application unit.

handler

@when('dns-backend.available')
def sync_zones(bind_interface):
    sync_all_zones(bind_interface.private_address,
                   bind_interface.algorithm,
                   bind_interface.rndckey)

In this case, sync_all_zones is a function provided by the consuming charm.

Bugs

Please report bugs on Launchpad.

For development questions please refer to the OpenStack Charm Guide.