coredns/plugin/erratic
Miek Gieben c778b3a67c
plugin/health: remove ability to poll other plugins (#2547)
* plugin/health: remove ability to poll other plugins

This mechanism defeats the purpose any plugin (mostly) caching can still
be alive, we can probably forward queries still. Don't poll plugins,
just tell the world we're up and running.

It was only actually used in kubernetes; and there specifically would
mean any network hiccup would NACK the entire server health.

Fixes: #2534

Signed-off-by: Miek Gieben <miek@miek.nl>

* update docs based on feedback

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-03-07 22:13:47 +00:00
..
autopath.go Remove the word middleware (#1067) 2017-09-14 09:36:06 +01:00
erratic.go Fix EDNS0 compliance (#2357) 2018-12-06 21:18:11 +00:00
erratic_test.go server: actually scrub response (#2225) 2018-10-23 09:55:40 -07:00
log_test.go Clean up tests logging (#1979) 2018-07-19 16:23:06 +01:00
OWNERS Add OWNERS file (#1486) 2018-02-08 10:55:51 +00:00
README.md plugin/health: remove ability to poll other plugins (#2547) 2019-03-07 22:13:47 +00:00
ready.go Add *ready* plugin (#2616) 2019-03-07 20:35:16 +00:00
setup.go server: actually scrub response (#2225) 2018-10-23 09:55:40 -07:00
setup_test.go just use setup (#1574) 2018-02-28 19:56:14 -08:00
xfr.go plugin/erratic: add axfr support (#1977) 2018-07-20 10:25:54 +01:00

erratic

Name

erratic - a plugin useful for testing client behavior.

Description

erratic returns a static response to all queries, but the responses can be delayed, dropped or truncated. The erratic plugin will respond to every A or AAAA query. For any other type it will return a SERVFAIL response. The reply for A will return 192.0.2.53 (see RFC 5737, for AAAA it returns 2001:DB8::53 (see RFC 3849) and for an AXFR request it will respond with a small zone transfer.

erratic can also be used in conjunction with the autopath plugin. This is mostly to aid in testing.

Syntax

erratic {
    drop [AMOUNT]
    truncate [AMOUNT]
    delay [AMOUNT [DURATION]]
}
  • drop: drop 1 per AMOUNT of queries, the default is 2.
  • truncate: truncate 1 per AMOUNT of queries, the default is 2.
  • delay: delay 1 per AMOUNT of queries for DURATION, the default for AMOUNT is 2 and the default for DURATION is 100ms.

In case of a zone transfer and truncate the final SOA record isn't added to the response.

Ready

This plugin reports readiness to the ready plugin.

Examples

. {
    erratic {
        drop 3
    }
}

Or even shorter if the defaults suits you. Note this only drops queries, it does not delay them.

. {
    erratic
}

Delay 1 in 3 queries for 50ms

. {
    erratic {
        delay 3 50ms
    }
}

Delay 1 in 3 and truncate 1 in 5.

. {
    erratic {
        delay 3 5ms
        truncate 5
    }
}

Drop every second query.

. {
    erratic {
        drop 2
        truncate 2
    }
}

Also See

RFC 3849 and RFC 5737.