Allow more control of TLS versions & ciphers#7617
Conversation
|
Thank you for your contribution! 🙏 Please understand that we will do our best to review your PR and give you feedback as soon as possible, but please bear with us if it takes a little longer as expected. While you are waiting, make sure to:
Once the initial tests are successful, a KEDA member will ensure that the e2e tests are run. Once the e2e tests have been successfully completed, the PR may be merged at a later date. Please be patient. Learn more about our contribution guide. |
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
|
@JorTurFer @zroubalik could one or both of you PTAL? I'm not sure what you'll think of the dichotomy in the PR of HTTP TLS settings and HTTP Service TLS settings. The docs have always said that Not sure if I have enough privs to kick off E2Es, but I'll try. |
|
/run-e2e external |
There was a problem hiding this comment.
Pull request overview
This PR adds configurable TLS cipher suite lists and a configurable minimum TLS version for the gRPC server, extending existing TLS hardening controls used by the webhook/HTTP path and TLS clients.
Changes:
- Add parsing/support for
KEDA_HTTP_TLS_CIPHER_LIST(and expose it viaCreateTLSClientConfig+ webhook TLS opts). - Add gRPC server support for
KEDA_GRPC_MIN_TLS_VERSIONandKEDA_GRPC_TLS_CIPHER_LIST. - Add unit tests for TLS version parsing and cipher list parsing; update changelog.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| pkg/util/tls_config.go | Adds cipher list parsing + exported getters; refactors TLS version parsing. |
| pkg/util/tls_config_test.go | Updates min TLS version tests and adds cipher list parsing tests. |
| pkg/metricsservice/utils/tls.go | Makes gRPC TLS config respect env-configured min TLS version + cipher list. |
| cmd/webhooks/main.go | Applies configured cipher list to webhook TLS server config. |
| CHANGELOG.md | Adds entry for new TLS controls (but includes a malformed/duplicate line). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
430c73a to
3f19f32
Compare
|
Typo: |
Good catch, thanks! |
|
/run-e2e internal |
Add 2 new env vars KEDA_HTTP_TLS_CIPHER_LIST and KEDA_SERVICE_TLS_CIPHER_LIST to provide fine-grained control to restrict the cipher suites used by the webhook and gRPC servers as well as TLS clients in the scalers. Also add KEDA_SERVICE_MIN_TLS_VERSION to mirror the behovior of KEDA_HTTP_MIN_TLS_VERSION for the gRPC server. Signed-off-by: Joel Smith <joelsmith@redhat.com>
|
/run-e2e internal |
Add 2 new env vars KEDA_HTTP_TLS_CIPHER_LIST and KEDA_SERVICE_TLS_CIPHER_LIST to provide fine-grained control to restrict the cipher suites used by the webhook and gRPC servers as well as TLS clients in the scalers. Also add KEDA_SERVICE_MIN_TLS_VERSION to mirror the behovior of KEDA_HTTP_MIN_TLS_VERSION for the gRPC server. Signed-off-by: Joel Smith <joelsmith@redhat.com>
Add 2 new env vars KEDA_HTTP_TLS_CIPHER_LIST and KEDA_SERVICE_TLS_CIPHER_LIST to provide fine-grained control to restrict the cipher suites used by the webhook and gRPC servers as well as TLS clients in the scalers. Also add KEDA_SERVICE_MIN_TLS_VERSION to mirror the behovior of KEDA_HTTP_MIN_TLS_VERSION for the gRPC server. Signed-off-by: Joel Smith <joelsmith@redhat.com> Signed-off-by: Abhishek Kumar Kushwaha <abhithegabbar@gmail.com>
Add 2 new env vars
KEDA_HTTP_TLS_CIPHER_LISTandKEDA_SERVICE_TLS_CIPHER_LISTtoprovide fine-grained control to restrict the cipher suites used by the webhook and gRPC
servers as well as TLS clients in the scalers. Also add
KEDA_SERVICE_MIN_TLS_VERSIONto mirror the behovior of
KEDA_HTTP_MIN_TLS_VERSIONfor the gRPC server and webhooks server.Checklist
make generate-scalers-schemahas been run to update any outdated generated files