coredns-netbox-plugin icon indicating copy to clipboard operation
coredns-netbox-plugin copied to clipboard

Support for netbox-dns plugin

Open apoxa opened this issue 1 year ago • 4 comments

I'm using the netbox-dns-plugin, which extends NetBox with complete DNS zone management functionality. This adds additional features like zones and other record types. It'd be great if I could query this information from coredns with your plugin.

I had a look at the plugin code and have some ideas how to implement this. I'd add a boolean argument in setup.go, which toggles if the native API or the DNS plugin API is used.

case "zoneplugin":
	if !c.NextArg() {
		return nil, c.ArgErr()
	}
	zoneplugin, err := strconv.ParseBool(c.Val())
	if err != nil {
		return n, c.Errf("could not parse 'zoneplugin': %s", err)
	}
	n.ZonePlugin = zoneplugin

Then I'd convert func query() to a wrapper function which calls either the existing query() (renamed to e.g. queryNative()) function or a new function queryZonePlugin().

func (n *Netbox) query(host string, family int) ([]net.IP, error) {
	if n.ZonePlugin {
		return n.queryZonePlugin(host, family)
	}
	return n.queryNative(host, family)
}

I'd be happy to try and implement that functionality into your plugin, if you find this useful.

apoxa avatar Jan 20 '24 11:01 apoxa

Seems like a useful thing.

oz123 avatar Jan 21 '24 08:01 oz123

Accidentally closed. Please submit a PR.

oz123 avatar Jan 21 '24 08:01 oz123

Adding support for the netbox-dns plugin would be a game changer, in my opinion.

I don't think I'm skilled enough to help with the actual implementation, but if there's anything I can do to assist (even if that just means buying ya'll some coffee), please let me know! 😁

bsirayne avatar Apr 04 '24 01:04 bsirayne

You can contact me in private. I am actually interested in that, I am just not interested in doing all the work for free. A few coffees might be enough ;-)

oz123 avatar Apr 04 '24 08:04 oz123