NE-2333: Add support for configurable SSL curves in HAProxy configuration#678
Conversation
|
Skipping CI for Draft Pull Request. |
|
/test all |
|
/test all |
|
/retest-required |
|
/retest-required |
|
@richardsonnick: The following tests failed, say
Full PR test history. Your PR dashboard. DetailsInstructions 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. I understand the commands that are listed here. |
|
/assign |
|
/assign @rfredette @davidesalerno |
|
@richardsonnick can you please add a jira or RFE number to this PR? |
Hi, I'm not the PR creator, but this PR is also relevant for RFE-5389. |
|
Issues go stale after 90d of inactivity. Mark the issue as fresh by commenting If this issue is safe to close now please do so with /lifecycle stale |
|
Important Review skippedAuto reviews are limited based on label configuration. 🚫 Review skipped — only excluded labels are configured. (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughAdd a conditional Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
@richardsonnick, do we need this for OpenShift 4.22.0? @lihongan did some testing and determined that the default crypto policy does not include ML-KEM, so what do you think about dropping f033f21 and merging this PR in order to have basic PQC-readiness in OpenShift 4.22.0? |
|
/remove-lifecycle stale |
|
/retitle "NE-2333: Add support for configurable SSL curves in HAProxy configuration" |
|
@richardsonnick, sorry if I wasn't clear earlier. When I asked you to drop f033f21, I meant that we should still have a default |
The latest 4.22 nightlies should have OpenSSL 3.5. For example, @lihongan said 4.22.0-0.nightly-2026-03-17-033403 had it. |
@Miciah That makes sense. I can restore the else block with a PQC-inclusive default. My concern is about backportability: if this is cherrypicked to 4.21 branches, which ship OpenSSL 3.2.2, HAProxy will fail to start with unable to set curves list. Is the intent that this change is 4.22+ only? You have more domain knowledge than me with how backports are handled so just making sure :) I'll went ahead and re-added the defaults though. Also reran the tests. |
|
@richardsonnick: This pull request references NE-2333 which is a valid jira issue. DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
I wasn't expecting this change to be backported. Unless the OpenSSL 3.5 bump is backported (which seems unlikely), I don't see much value in backporting the |
|
@richardsonnick will you test again with a nightly that contains the OpenSSL changes? |
None that I'm aware of. |
Typically the operator handles sanitizing/validating the values for environment variables (for example, the operator validates |
|
Thanks! /approve |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: Miciah The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/payload-job periodic-ci-openshift-release-master-nightly-4.22-e2e-aws-ovn-cgroupsv2 periodic-ci-openshift-openshift-tests-private-release-4.22-amd64-nightly-azure-ipi-marketplace-mini-perm-f7 |
|
@lihongan: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command
See details on https://pr-payload-tests.ci.openshift.org/runs/ci/4353d930-297f-11f1-9285-43ceaca58aa8-0 |
|
/payload-job periodic-ci-openshift-release-main-nightly-4.22-e2e-azure-ovn-runc |
|
@lihongan: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command
See details on https://pr-payload-tests.ci.openshift.org/runs/ci/0c1cd720-2982-11f1-9de7-e476ddbcfdd5-0 |
|
/verified by @lihongan |
|
@lihongan: This PR has been marked as verified by DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
|
/jira refresh |
|
Reverted by #754 |
To support new PQC key exchanges add option to set default ssl curves.
Adds a new environment variable ROUTER_CURVES.
This is a colon delimited set of curves to use for ECDHE.
Uses HAProxy's
ssl-default-bind-curvesto configure openssl's supported groups (https://docs.haproxy.org/3.1/configuration.html#ssl-default-bind-curves).By if no
ROUTER_CURVESis given a default group setX25519MLKEM768:X25519:P-256is used.Tested via local cluster (see comments below)