Git Product home page Git Product logo

Comments (8)

itomaldonado avatar itomaldonado commented on July 22, 2024

I am taking a stab at it if you want to....

from kubernetes-letsencrypt.

tazjin avatar tazjin commented on July 22, 2024

Thanks for pointing this out, I'll take a look soon!

from kubernetes-letsencrypt.

tazjin avatar tazjin commented on July 22, 2024

Fixed in #64

from kubernetes-letsencrypt.

itomaldonado avatar itomaldonado commented on July 22, 2024

@tazjin Just wanted to put this here for future reference. If you are using split-brain DNS it is possible for the application to resolve the DNS entry with the built-in name servers which will return the "private hosted zone" NS entries. To force the application to use an external DNS for resolving the name spaces make sure you do add the environment variable "LETSENCRYPT_CONTROLLER_OPTS" as seen below (the example uses google's DNS server).

...
    spec:
      serviceAccountName: letsencrypt
      containers:
        - image: tazjin/letsencrypt-controller:1.7
          imagePullPolicy: Always
          name: letsencrypt-controller
          env:
          - name: LETSENCRYPT_CONTROLLER_OPTS
            value: "-Ddns.server=8.8.8.8"
...

from kubernetes-letsencrypt.

tazjin avatar tazjin commented on July 22, 2024

Ah, so this can cause local validation to fail before the controller asks Let's Encrypt to verify the challenge?

The way it currently works is that the controller uses the OS DNS to ask for the authoritative nameservers after performing the change and polls them until the change has propagated. It should probably be changed to resolve from the root nameservers, too. 🤔

from kubernetes-letsencrypt.

itomaldonado avatar itomaldonado commented on July 22, 2024

Yeah so when the controller should not try to use the OS DNS to ask for the authoritative nameservers but doing so is a good default behavior.

I have run into this issue several times before and there is no easy way to fix this. When using split-brain local DNS (i.e. the OS's default DNS) will resolve to the private side (it should since it is intended behavior) and thus it'll mess with the DNS validation.

So as long as there is a way to tell the controller what DNS server to use during validation, then this problem is solved.

from kubernetes-letsencrypt.

tazjin avatar tazjin commented on July 22, 2024

but doing so is a good default behavior

I'm thinking doing a full resolve from the DNS root may actually be better, because that is what Let's Encrypt does.

Thanks for pointing this out, I'll make a separate issue and see if there's anything that can be done to improve it.

As you mentioned overriding the dns.server property will let people apply a fix currently, I'll probably pull that into the README.

from kubernetes-letsencrypt.

itomaldonado avatar itomaldonado commented on July 22, 2024

Perfect, thanks~ Awesome work by the way.

from kubernetes-letsencrypt.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.