README ¶
federation
federation enables federated queries to be resolved via the kubernetes plugin.
Enabling federation without also having kubernetes is a noop.
Syntax
federation [ZONES...] {
NAME DOMAIN
- Each NAME and DOMAIN defines federation membership. One entry for each. A duplicate NAME will silently overwrite any previous value.
Examples
Here we handle all service requests in the prod
and stage
federations.
. {
kubernetes cluster.local
federation cluster.local {
prod prod.feddomain.com
staging staging.feddomain.com
}
}
Or slightly shorter:
cluster.local {
kubernetes
federation {
prod prod.feddomain.com
staging staging.feddomain.com
}
}
Documentation ¶
Overview ¶
Package federation implements kubernetes federation. It checks if the qname matches a possible federation. If this is the case and the captured answer is an NXDOMAIN, federation is performed. If this is not the case the original answer is returned.
The federation label is always the 2nd to last once the zone is chopped of. For instance "nginx.mynamespace.myfederation.svc.example.com" has "myfederation" as the federation label. For federation to work we do a normal k8s lookup *without* that label, if that comes back with NXDOMAIN or NODATA(??) we create a federation record and return that.
Federation is only useful in conjunction with the kubernetes plugin, without it is a noop.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Federation ¶
type Federation struct { Next plugin.Handler Federations Func // contains filtered or unexported fields }
Federation contains the name to zone mapping used for federation in kubernetes.
func (*Federation) Name ¶
func (f *Federation) Name() string
Name implements the plugin.Handle interface.