# reload ## Name *reload* - allows automatic reload of a changed Corefile. ## Description This plugin allows automatic reload of a changed _Corefile_. To enable automatic reloading of _zone file_ changes, use the `auto` plugin. This plugin periodically checks if the Corefile has changed by reading it and calculating its SHA512 checksum. If the file has changed, it reloads CoreDNS with the new Corefile. This eliminates the need to send a SIGHUP or SIGUSR1 after changing the Corefile. The reloads are graceful - you should not see any loss of service when the reload happens. Even if the new Corefile has an error, CoreDNS will continue to run the old config and an error message will be printed to the log. But see the Bugs section for failure modes. In some environments (for example, Kubernetes), there may be many CoreDNS instances that started very near the same time and all share a common Corefile. To prevent these all from reloading at the same time, some jitter is added to the reload check interval. This is jitter from the perspective of multiple CoreDNS instances; each instance still checks on a regular interval, but all of these instances will have their reloads spread out across the jitter duration. This isn't strictly necessary given that the reloads are graceful, and can be disabled by setting the jitter to `0s`. Jitter is re-calculated whenever the Corefile is reloaded. This plugin can only be used once per Server Block. ## Syntax ~~~ txt reload [INTERVAL] [JITTER] ~~~ The plugin will check for changes every **INTERVAL**, subject to +/- the **JITTER** duration. * **INTERVAL** and **JITTER** are Golang [durations](https://golang.org/pkg/time/#ParseDuration). The default **INTERVAL** is 30s, default **JITTER** is 15s, the minimal value for **INTERVAL** is 2s, and for **JITTER** it is 1s. If **JITTER** is more than half of **INTERVAL**, it will be set to half of **INTERVAL** ## Examples Check with the default intervals: ~~~ corefile . { reload erratic } ~~~ Check every 10 seconds (jitter is automatically set to 10 / 2 = 5 in this case): ~~~ corefile . { reload 10s erratic } ~~~ ## Bugs The reload happens without data loss (i.e. DNS queries keep flowing), but there is a corner case where the reload fails, and you loose functionality. Consider the following Corefile: ~~~ txt . { health :8080 whoami } ~~~ CoreDNS starts and serves health from :8080. Now you change `:8080` to `:443` not knowing a process is already listening on that port. The process reloads and performs the following steps: 1. close the listener on 8080 2. reload and parse the config again 3. fail to start a new listener on 443 4. fail loading the new Corefile, abort and keep using the old process After the aborted attempt to reload we are left with the old processes running, but the listener is closed in step 1; so the health endpoint is broken. The same can happen in the prometheus plugin. In general be careful with assigning new port and expecting reload to work fully. In CoreDNS v1.6.0 and earlier any `import` statements are not discovered by this plugin. This means if any of these imported files changes the *reload* plugin is ignorant of that fact. CoreDNS v1.7.0 and later does parse the Corefile and supports detecting changes in imported files. ## Metrics If monitoring is enabled (via the *prometheus* plugin) then the following metric is exported: * `coredns_reload_failed_total{}` - counts the number of failed reload attempts. * `coredns_reload_version_info{hash, value}` - record the hash value during reload. Currently the type of `hash` is "sha512", the `value` is the returned hash value. ## See Also See coredns-import(7) and corefile(5). lan/change-pathname-assert'>dylan/change-pathname-assert Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/integration/snippets/bundled-entry-point.js (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2022-02-05Update bun-flavored-toml.mdGravatar Jarred Sumner 1-0/+2
2022-02-05Add unit test for toml importsGravatar Jarred Sumner 2-0/+47
2022-02-05[TOML] Fix bug with [[arrays]]Gravatar Jarred Sumner 1-2/+5
2022-02-05Handle promise rejections in testsGravatar Jarred Sumner 2-19/+35
2022-02-05Update resolve_path.zigGravatar Jarred Sumner 1-37/+35
2022-02-05Always try to load bunfig.toml for `install`, `dev`, `bun`, `test`Gravatar Jarred Sumner 1-3/+25
2022-02-05()Gravatar Jarred Sumner 1-1/+1
2022-02-05One less memcpyGravatar Jarred Sumner 1-68/+100
2022-02-05Further reliability improvements to http clientGravatar Jarred Sumner 2-14/+62
2022-02-05Implement keep-alive but disable itGravatar Jarred Sumner 2-17/+126
2022-02-05Make bun-install slower but more reliable on Linux Kernel 5.5 and lowerGravatar Jarred SUmner 1-112/+31
2022-02-04Several reliability improvements to HTTPGravatar Jarred SUmner 12-141/+189
2022-02-04reminderGravatar Jarred Sumner 3-5/+6
2022-02-04`path.resolve()` passes testsGravatar Jarred Sumner 2-13/+81
2022-02-04Update multiple-var.jsGravatar Jarred Sumner 1-1/+2
2022-02-04:camera:Gravatar Jarred Sumner 74-340/+669
2022-02-04Update snippets.jsonGravatar Jarred Sumner 1-1/+3
2022-02-04Add integration test for reading .json files that have UTF-8 string literalsGravatar Jarred Sumner 2-0/+9
2022-02-04[http] fix segfaultGravatar Jarred Sumner 1-17/+25
2022-02-04[bun dev] Fix bug with serving static files on next.js apps introduced in af6...Gravatar Jarred Sumner 1-5/+7
2022-02-04Update types.zigGravatar Jarred Sumner 1-9/+10
2022-02-04Update test_command.zigGravatar Jarred Sumner 1-2/+0
2022-02-04`path.normalize()` tests passGravatar Jarred Sumner 2-146/+213
2022-02-03Fix test failures in path.joinGravatar Jarred Sumner 1-8/+115
2022-02-03Update mimalloc_arena.zigGravatar Jarred Sumner 1-0/+9
2022-02-03[bun test] Support multiple filesGravatar Jarred Sumner 1-2/+12
2022-02-03Update js_ast.zigGravatar Jarred Sumner 1-0/+1
2022-02-03Support loading multiple entry points by changing what `bun:main` points toGravatar Jarred Sumner 6-4/+36
2022-02-03[bun install] Configurable max http retry countGravatar Jarred Sumner 1-0/+7
2022-02-03Missing newline in errors in bun installGravatar Jarred Sumner 1-4/+8
2022-02-03Fix bug with http clientGravatar Jarred Sumner 6-107/+101
2022-02-03Move detectFastRefresh to later so HTTP request handler starts fasterGravatar Jarred Sumner 1-2/+1
2022-02-03Fix bug with macro remaps in Bun.Transpiler apiGravatar Jarred Sumner 2-5/+8
2022-02-03Slight improvement to non-ascii file path handlingGravatar Jarred Sumner 4-18/+79
2022-02-02`path.relative` passes Node's tests (which also fixed bugs)Gravatar Jarred Sumner 8-283/+571