SIGN IN SIGN UP

fix(catalogd): apply TLS profile to catalog server (port 8443) (#2733)

The catalogd HTTP server (port 8443) hardcoded MinVersion: tls.VersionTLS12
and ignored cipher suite/curve configuration, making it non-compliant with
OpenShift's central TLS policy (OPRUN-4415).

The TLS profile flags (--tls-profile, --tls-custom-ciphers, etc.) were already
parsed and applied to the webhook and metrics servers, but the catalog server's
CatalogServerConfig had no field to receive them, and the server did not disable
HTTP/2 (unlike the webhook and metrics servers, which set NextProtos=["http/1.1"]
to mitigate GHSA-qppj-fm5r-hxr3 and GHSA-4374-p667-p6c8).

Add a TLSOpts field to CatalogServerConfig and apply all TLS settings exclusively
via those functions, keeping TLS policy out of serverutil entirely. This includes
GetCertificate (previously hardcoded from the certwatcher), so the cw parameter
is removed from AddCatalogServerToManager. Wire both the TLS profile function and
the HTTP/2-disabling opts into the catalog server config in main — in the same
order as the webhook and metrics servers (tlsOpts then tlsProfile).

Fail fast at startup if TLSOpts do not configure any certificate source
(GetCertificate, GetConfigForClient, or Certificates), so a misconfiguration
surfaces immediately rather than allowing the server to become ready while every
TLS handshake silently fails.

Fixes: OCPBUGS-86797
Relates-to: OPRUN-4415

Signed-off-by: Todd Short <tshort@redhat.com>
Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
T
Todd Short committed
a89e6d681ecb60f7dabb546f8ba4e0f391fe2f10
Parent: 1f0494a
Committed by GitHub <noreply@github.com> on 6/2/2026, 8:20:50 AM