Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extract pd auto-https code into standalone utility crate, or else make it unnecessary #3119

Closed
hdevalence opened this issue Sep 29, 2023 · 0 comments · Fixed by #3714
Closed
Assignees
Labels
A-node Area: System design and implementation for node software C-enhancement Category: an enhancement to the codebase

Comments

@hdevalence
Copy link
Member

Is your feature request related to a problem? Please describe.

In #1406, we added automatic HTTPS support to pd. However, this is only usable inside of pd, but there are other places we would like to have HTTPS support, including:

Doing this involved writing custom wrappers between Tokio types and types used by the rustls_acme crate we use for auto-HTTPS.

Also, the code in pd has some special tweaks that turned out to be necessary to get things working and were difficult to debug. For instance, we had mysterious issues with grpc-web support until we realized that we needed to manually configure TLS ALPN settings. Ideally these tweaks could be shared with other code, but on the other hand, the work of figuring them out might be the more important part.

Describe the solution you'd like

There are two paths forward, depending on whether or not we can discard our wrapper code.

In the first path, we would make the custom shim code unnecessary. Newer versions of rustls_acme apparently have Tokio support. We could attempt to remove our wrapper code. Then we could just copy over the setup code from pd into other binaries we want to have auto-https.

In the second path, if we still needed the custom shim code, we should extract it into a new crate under crates/util, maybe crates/util/penumbra-auto-https. Then other crates in our workspace could depend on it.

@conorsch conorsch moved this to Future in Testnets Oct 6, 2023
@aubrika aubrika added this to Penumbra Oct 30, 2023
@github-project-automation github-project-automation bot moved this to 🗄️ Backlog in Penumbra Oct 30, 2023
@cratelyn cratelyn added A-node Area: System design and implementation for node software C-enhancement Category: an enhancement to the codebase labels Jan 30, 2024
@cratelyn cratelyn self-assigned this Jan 30, 2024
@cratelyn cratelyn moved this from 🗄️ Backlog to In progress in Penumbra Jan 30, 2024
cratelyn added a commit that referenced this issue Jan 31, 2024
fixes #3119. see also, #1886.

this pulls the auto-https code (see #3627, #3652) into a standalone
library crate.
conorsch pushed a commit that referenced this issue Jan 31, 2024
fixes #3119. see also, #1886.

this pulls the auto-https code (see #3627, #3652) into a standalone
library crate.
@github-project-automation github-project-automation bot moved this from In progress to Done in Penumbra Jan 31, 2024
TalDerei pushed a commit that referenced this issue Feb 8, 2024
fixes #3119. see also, #1886.

this pulls the auto-https code (see #3627, #3652) into a standalone
library crate.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-node Area: System design and implementation for node software C-enhancement Category: an enhancement to the codebase
Projects
Archived in project
Status: Future
Development

Successfully merging a pull request may close this issue.

2 participants