Skip to content

WIP: use TLS groups/curve preferences from controller-runtime-common#308

Draft
damdo wants to merge 4 commits into
openshift:mainfrom
damdo:use-tls-groups-support
Draft

WIP: use TLS groups/curve preferences from controller-runtime-common#308
damdo wants to merge 4 commits into
openshift:mainfrom
damdo:use-tls-groups-support

Conversation

@damdo

@damdo damdo commented Jul 3, 2026

Copy link
Copy Markdown
Member

Summary

  • Bump controller-runtime-common and library-go forks to pick up TLS groups/curve preferences support
  • Use NewTLSConfigFromProfile curve preferences in the cluster TLS profile path
  • Update log messages to mention groups alongside ciphers
  • Add --tls-curve-preferences CLI flag (numeric tls.CurveID values, matching k8s.io/component-base convention)

The --tls-curve-preferences flag uses cliflag.TLSCurvePreferences from k8s.io/component-base v0.36+. This won't compile until the k8s 1.36 dependency bump lands.

CPO (HyperShift) can leverage libgocrypto.CurveIDsForTLSGroups() from o/library-go to convert IANA TLS group names from o/api into numeric tls.CurveID values, and pass them to this flag on the CMA Deployment spec.

Dependencies

Test plan

  • Verify the feat commit compiles and passes existing tests
  • The WIP commit (--tls-curve-preferences) is expected to fail compilation until the k8s 1.36 bump
  • Once k8s 1.36 is bumped, verify --tls-curve-preferences 29,23 correctly sets CurvePreferences on the TLS config

damdo added 4 commits July 3, 2026 14:44
Bump openshift/api and openshift/client-go to pick up the TLS Groups
field in TLSProfileSpec. Add replace directives for controller-runtime-common
and library-go forks that implement CurveIDsForTLSGroups.

TODO: Remove the replace directives once the TLS groups/curve preferences
support is merged and released upstream.

Depends on: openshift/controller-runtime-common#22
Update log messages and variable names to reflect that
NewTLSConfigFromProfile now returns unsupported groups alongside
unsupported ciphers.
Add support for configuring TLS curve preferences via a CLI flag,
using numeric Go crypto/tls CurveID values, consistent with the
upstream k8s convention (cliflag.TLSCurvePreferences).

This won't compile until the k8s 1.36 bump, which introduces
cliflag.TLSCurvePreferences in k8s.io/component-base.
@openshift-ci openshift-ci Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jul 3, 2026
@openshift-ci

openshift-ci Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci

openshift-ci Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

[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 mdbooth for approval. For more information see the Code Review Process.

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

Details 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant