cert-manager icon indicating copy to clipboard operation
cert-manager copied to clipboard

fix: refactor challenge controller to be entirely non blocking

Open ThatsMrTalbot opened this issue 5 months ago • 4 comments

Pull Request Motivation

  • The challenge controller now will only ever perform a single step at a time, updating the state on the Challenge and re-reconciling.
  • New status fields on the challenge are used to store data for polling, allowing us to refactor out blocking calls.
  • Solvers now return state that is persisted on the Challenge instead of blocking
  • The ACME fork now has a non blocking CheckAuthorization which we use instead of the blocking WaitAuthorization

This PR is an extension of #7804, it is a larger refactor that removes all blocking.

Kind

/kind fix

Release Note

Refactor the challenge controller to no longer call the blocking method WaitAuthorization, removing the need for a timeout which can fail challenges prematurely.
Refactor the solver checks to be non blocking, instead persisting state on the challenge object.

ThatsMrTalbot avatar Jun 14 '25 21:06 ThatsMrTalbot

@ThatsMrTalbot: The label(s) kind/fix cannot be applied, because the repository doesn't have them.

In response to this:

Pull Request Motivation

  • The challenge controller now will only ever perform a single step at a time, updating the state on the Challenge and re-reconciling.
  • New status fields on the challenge are used to store data for polling, allowing us to refactor out blocking calls.
  • Solvers now return state that is persisted on the Challenge instead of blocking
  • The ACME fork now has a non blocking CheckAuthorization which we use instead of the blocking WaitAuthorization

This PR is an extension of #7804, it is a larger refactor that removes all blocking.

Kind

/kind fix

Release Note

Refactor the challenge controller to no longer call the blocking method WaitAuthorization, removing the need for a timeout which can fail challenges prematurely.
Refactor the solver checks to be non blocking, instead persisting state on the challenge object.

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-sigs/prow repository.

cert-manager-prow[bot] avatar Jun 14 '25 21:06 cert-manager-prow[bot]

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: Once this PR has been reviewed and has the lgtm label, please assign sgtcodfish for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found 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

cert-manager-prow[bot] avatar Jun 14 '25 21:06 cert-manager-prow[bot]

/kind bug

ThatsMrTalbot avatar Jun 14 '25 21:06 ThatsMrTalbot

/test pull-cert-manager-master-e2e-v1-33

ThatsMrTalbot avatar Jun 14 '25 22:06 ThatsMrTalbot

/kind feat

ThatsMrTalbot avatar Oct 06 '25 21:10 ThatsMrTalbot

@ThatsMrTalbot: The label(s) kind/feat cannot be applied, because the repository doesn't have them.

In response to this:

/kind feat

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-sigs/prow repository.

cert-manager-prow[bot] avatar Oct 06 '25 21:10 cert-manager-prow[bot]

/label cybr

mladen-rusev-cyberark avatar Oct 07 '25 10:10 mladen-rusev-cyberark

@mladen-rusev-cyberark: The label(s) /label cybr cannot be applied. These labels are supported: tide/merge-method-merge, tide/merge-method-rebase, tide/merge-method-squash. Is this label configured under labels -> additional_labels or labels -> restricted_labels in plugin.yaml?

In response to this:

/label cybr

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-sigs/prow repository.

cert-manager-prow[bot] avatar Oct 07 '25 10:10 cert-manager-prow[bot]

@ThatsMrTalbot could you split off a few smaller refactor PRs?

inteon avatar Oct 23 '25 11:10 inteon

PR needs rebase.

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-sigs/prow repository.

cert-manager-prow[bot] avatar Nov 04 '25 13:11 cert-manager-prow[bot]