Skip to content

Conversation

@sfleen
Copy link
Collaborator

@sfleen sfleen commented Aug 5, 2025

The broader ecosystem has mostly moved to aws-lc-rs as the primary rustls backend, and we should follow suit. This will also simplify the maintenance of the proxy's TLS implementation in the long term.

This requires some extra configuration for successful cross-compilation, ideally we can remove this extra configuration once linkerd/dev v48 is available.

This doesn't remove ring as a crypto backend, that can come in a follow-up at #4029

sfleen added 4 commits August 5, 2025 11:06
This changes the default crypto backend from ring to aws-lc-rs. Eventually we can remove ring entirely from the dependency tree, but for now this simply changes the default.

Signed-off-by: Scott Fleener <[email protected]>
This adds the cross compilation toolchain and required environment variables to the release workflows and local Dockerfile. These will end up in the dev image, but for now we can specify them manually.

Signed-off-by: Scott Fleener <[email protected]>
@sfleen sfleen requested a review from a team as a code owner August 5, 2025 15:16
linkerd-io = { path = "../../io" }
linkerd-stack = { path = "../../stack" }
socket2 = "0.5"
socket2 = { version = "0.5", features = ["all"] }
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this needed here? 🙇‍♀️ looking at the rest of this diff, i'm not sure if we need to alter our socket2 dependency.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Best as I can figure, yes. I think the old backend was enabling this feature implicitly somewhere in the dep stack, and we rely on that feature being enabled even if we didn't declare it explicitly.

This comment was marked as resolved.

@cratelyn
Copy link
Member

cratelyn commented Aug 5, 2025

i'm a huge fan of this change. breaking this out into (a) changing a default, followed by (b) removing alternative providers, seems like a great way to go about doing this.

linkerd-io = { path = "../../io" }
linkerd-stack = { path = "../../stack" }
socket2 = "0.5"
socket2 = { version = "0.5", features = ["all"] }

This comment was marked as resolved.

@olix0r olix0r merged commit b558ce5 into main Aug 5, 2025
19 checks passed
@olix0r olix0r deleted the sfleen/aws-lc-default branch August 5, 2025 20:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants