external-dns icon indicating copy to clipboard operation
external-dns copied to clipboard

RFC2136: Add support for DNS-over-TLS

Open iteratee opened this issue 2 years ago • 23 comments

  • Reuse the existing TLS options.
  • Add two new flags, one to enable DNS-over-TLS, and the second to disable cert checks for DNS-over-TLS.
  • Factor out the connection code so that it can be shared between the zone transfer and the updates. If TLS was requested, it will be used for both.
  • RFC9013 requires TLS 1.3 or later, and an ALPN negotiation of "dot".

Description

RFC2136: Add support for DNS-over-TLS

  • Reuse the existing TLS options.
  • Add two new flags, one to enable DNS-over-TLS, and the second to disable cert checks for DNS-over-TLS.
  • Factor out the connection code so that it can be shared between the zone transfer and the updates. If TLS was requested, it will be used for both.
  • RFC9013 requires TLS 1.3 or later, and an ALPN negotiation of "dot".

Checklist

  • [X] Unit tests updated
  • [X] End user documentation updated

iteratee avatar Oct 06 '23 17:10 iteratee

CLA Signed

The committers listed above are authorized under a signed CLA.

  • :white_check_mark: login: iteratee / name: Kyle Butt (1030de7da95021917ee0c42f473237a04fb68ec4, a3c9908d5e2cb177c2bd750c12715ce49aa66eeb)

Welcome @iteratee!

It looks like this is your first PR to kubernetes-sigs/external-dns 🎉. Please refer to our pull request process documentation to help your PR have a smooth ride to approval.

You will be prompted by a bot to use commands during the review process. Do not be afraid to follow the prompts! It is okay to experiment. Here is the bot commands documentation.

You can also check if kubernetes-sigs/external-dns has its own contribution guidelines.

You may want to refer to our testing guide if you run into trouble with your tests not passing.

If you are having difficulty getting your pull request seen, please follow the recommended escalation practices. Also, for tips and tricks in the contribution process you may want to read the Kubernetes contributor cheat sheet. We want to make sure your contribution gets all the attention it needs!

Thank you, and welcome to Kubernetes. :smiley:

k8s-ci-robot avatar Oct 06 '23 17:10 k8s-ci-robot

Hi @iteratee. Thanks for your PR.

I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

k8s-ci-robot avatar Oct 06 '23 17:10 k8s-ci-robot

Hello @iteratee,

Thanks for this PR. You'll need to sign the CLA, first.

mloiseleur avatar Oct 09 '23 07:10 mloiseleur

Hello @iteratee,

Thanks for this PR. You'll need to sign the CLA, first.

Sorry, I was having trouble with the system. It should be all set now.

iteratee avatar Oct 09 '23 16:10 iteratee

@mloiseleur I did get the CLA signed

iteratee avatar Oct 17 '23 02:10 iteratee

Thanks. Would you please add some tests and some (tutorial) documentation on this ?

mloiseleur avatar Oct 18 '23 06:10 mloiseleur

Thanks. Would you please add some tests and some (tutorial) documentation on this ?

I didn't see an obvious way to test the content of the root cert and client cert and key. I did test the basics of a TLS connection. I also added a note about the flags to the tutorial.

iteratee avatar Oct 19 '23 18:10 iteratee

Thanks. /ok-to-test

mloiseleur avatar Oct 20 '23 08:10 mloiseleur

/retest

iteratee avatar Oct 21 '23 20:10 iteratee

Would you please add some tests on other cases ? The skip TLS Verify, and the case when auth. with a tls key pair is not tested.

mloiseleur avatar Oct 24 '23 06:10 mloiseleur

OK, new tests.

/retest

iteratee avatar Oct 24 '23 07:10 iteratee

/lgtm

mloiseleur avatar Oct 29 '23 16:10 mloiseleur

What else needs to happen for this PR?

iteratee avatar Nov 08 '23 18:11 iteratee

Sorry for the delay. Rebase done. Tests still pass.

iteratee avatar Jan 03 '24 18:01 iteratee

/lgtm /assign @Raffo

mloiseleur avatar Jan 04 '24 07:01 mloiseleur

Just saw the recent merge conflict and fixed again.

iteratee avatar Jan 05 '24 22:01 iteratee

@mloiseleur @Raffo

iteratee avatar Jan 19 '24 17:01 iteratee

/retest

iteratee avatar Jan 24 '24 23:01 iteratee

/lgtm /assign @szuecs

mloiseleur avatar Jan 25 '24 08:01 mloiseleur

@iteratee thanks for the PR, only have small things found

szuecs avatar Feb 07 '24 15:02 szuecs

/lgtm

mloiseleur avatar Feb 27 '24 07:02 mloiseleur

/approve

szuecs avatar Feb 29 '24 17:02 szuecs

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: szuecs

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment Approvers can cancel approval by writing /approve cancel in a comment

k8s-ci-robot avatar Feb 29 '24 17:02 k8s-ci-robot