tnozicka / openshift-acme

ACME Controller for OpenShift and Kubernetes Cluster. (Supports e.g. Let's Encrypt)
Apache License 2.0
319 stars 116 forks source link

Poll async #168

Open alesuiss opened 2 years ago

alesuiss commented 2 years ago

What type of PR is this?

Uncomment only one /kind <> line, hit enter to put that in a new line, and remove leading whitespaces from that line:

/kind api-change /kind cleanup /kind design /kind documentation /kind failing-test /kind feature /kind flake

/kind bug

What this PR does / why we need it:

Currently, when an order is ready, openshift-acme calls the go ACME library to submit the CSR and obtain the certificate. The library waits until the certificate is returned. Therefore, if the ACME server takes too long, the library will timeout and no certificate is configured. But the ACME server still creates the certificate and switches the order to valid. However, openshift-acme does nothing with that, and the certificate is never pushed to the Route.

This PR extends the logic to allow obtaining the certificate in valid state.

Which issue(s) this PR fixes:

The ability to obtain certificates asynchronously, fixing problems with ACME servers that take longer than the ACME library timeout to generate certificates.

Special notes for your reviewer:

Please excuse the crudity of this PR, I didn't have time to build it do scale or to paint it, as this was an emergency fix for our systems. There is some duplicated code and I didn't clean up the comments.

Does this PR introduce a user-facing change?:

No

openshift-ci[bot] commented 2 years ago

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: alesuiss To complete the pull request process, please assign tnozicka after the PR has been reviewed. You can assign the PR to them by writing /assign @tnozicka in a comment when ready.

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

Needs approval from an approver in each of these files: - **[OWNERS](https://github.com/tnozicka/openshift-acme/blob/master/OWNERS)** Approvers can indicate their approval by writing `/approve` in a comment Approvers can cancel approval by writing `/approve cancel` in a comment
openshift-ci[bot] commented 2 years ago

Hi @alesuiss. Thanks for your PR.

I'm waiting for a tnozicka 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](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository.