dns: improve automatic dns configuration #7074
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR moves the
-dns-address
machinery into hood/helm and adds a|dns-config
%ask generator to set it up. The changes include:Eyre
/~/ip
endpoint that reflects the requester's IP in the same manner as icanhazip.com so public ip addresses can be discovered automatically without depending on services outside the network/=domains=
scry endpoint to get the set of currently configured turfs/=ports=
scry endpoint to get the [insecure=@ud secure=(unit @ud)]` ports configured%turf
case of thehttp-rule:eyre
to include a%new
case along with the existing%put
and�l
. The%new
case replaces all existing turfs and triggers a new certificate fetch even if nothing changed.Acme: remove all self-check steps.
Acme's self-check features created more problems than they solved because:
Instead, I've moved the self-checks into helm & the generator with the option to skip them if you have an unusual setup and know what you're doing. The generator also lets you continue if you're not running on port 80 in case you're behind a load balancer or reverse proxy or whatever. It warns you and forces you to confirm you want to continue though so it should be pretty idiot-proof.
The generator lets you either enter an IP address or else it will try automatically discover it by making a request to
https://zod.urbit.org/~/ip
.The generator also gives you the option to reset Eyre's domain configuration (using the
%new
%turf
http-rule if enabled). This solves the problem where Eyre doesn't tell Acme to re-setup the certificate if the turf was already in Eyre. This behaviour had created problems for people trying to troubleshoot certificate problems.The thread that Helm runs includes much better retry login on the self-checks, trying the domain every 30s for up to 15 minutes. This solves the problem of it failing the first few times simply because the new DNS entry took a few minutes to propagate.
Helm and the generator have very verbose error messages with suggestions of what to do that should cover the vast majority of problems people will encounter. The generator also has a preamble with extra info. This should make it much easier for noobs.