Skip to content

Conversation

@iamtakingiteasy
Copy link

@iamtakingiteasy iamtakingiteasy commented Nov 15, 2025

  • Breaking change? -- Shouldn't be, configuration changes are append-only, unspecified store type is considered as JKS/PKCS12 (both can be handled under either and technically only a preference hint).

What changes did you make?
Resolves #1437

Adds support for PEM keystore/truststore and mTLS configuration, replacing manual KeyManagerFactory/TrustManagerFactory calls with spring boot SslBundle to parametrize the kafka client and http/netty clients.

  • TruststoreConfig/KeystoreConfig extended with truststoreType/keystoreType with possible values of JKS, PKCS12 and PEM
  • KeystoreConfig is extended with keystoreCertificate for [pem] client certificate file.
  • Cluster is extended with securityProtocol and kafkaSsl for mTLS client certificate.

Out-of-the scope FE change: ApplicationConfigPropertiesKafkaSchemaRegistrySsl -> KeystoreConfig as reusable DTO is introduced, auto-generated one no longer exists.

Is there anything you'd like reviewers to focus on?

How Has This Been Tested? (put an "x" (case-sensitive!) next to an item)

  • No need to
  • Manually Tested on mTLS cluster with PEM, JKS and PKCS12 keystores
  • Unit checks
  • Integration checks
  • Covered by existing automation

Checklist (put an "x" (case-sensitive!) next to all the items, otherwise the build will fail)

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation (e.g. ENVIRONMENT VARIABLES) -- no environment variable changes is necessary in documentation compose files
  • My changes generate no new warnings (e.g. Sonar is happy)
  • I have added tests that prove my fix is effective or that my feature works -- a rather heavy setup would be required
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged -- no dependencies

Check out Contributing and Code of Conduct

A picture of a cute animal (not mandatory but encouraged)

@iamtakingiteasy iamtakingiteasy requested review from a team as code owners November 15, 2025 03:12
@kapybro kapybro bot added status/triage Issues pending maintainers triage status/triage/manual Manual triage in progress status/triage/completed Automatic triage completed and removed status/triage Issues pending maintainers triage labels Nov 15, 2025
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Hi iamtakingiteasy! 👋

Welcome, and thank you for opening your first PR in the repo!

Please wait for triaging by our maintainers.

Please take a look at our contributing guide.

@iamtakingiteasy iamtakingiteasy force-pushed the be-support-pem-mtls branch 4 times, most recently from ce8c9fa to dc3d50c Compare November 15, 2025 04:10
type: string
password:
type: string
keystoreType:
Copy link
Member

Choose a reason for hiding this comment

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

@iamtakingiteasy openapi spec here is outdated/a backup, typespec (*.tsp) files need to be obe updated to

Copy link
Author

@iamtakingiteasy iamtakingiteasy Nov 23, 2025

Choose a reason for hiding this comment

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

@Haarolean It is updated accordingly as well, see model KeystoreConfig / enum StoreType / enum SecurityProtocol and corresponding references. I don't see anything missing; kafkaConnect.keystoreType is updated to StoreType among other things.

@Haarolean Haarolean requested a review from germanosin November 23, 2025 13:29
@Haarolean Haarolean added type/enhancement En enhancement/improvement to an already existing feature scope/backend Related to backend changes and removed status/triage/manual Manual triage in progress labels Nov 23, 2025
@iamtakingiteasy
Copy link
Author

iamtakingiteasy commented Nov 23, 2025

Playwright E2E seem flaky, passed on the same commit on fork repo; requesting re-run from someone with permissions.

@iamtakingiteasy
Copy link
Author

Wait, no. it's actually was ran on different commit than PR branch.

Uses: kafbat/kafka-ui/.github/workflows/e2e-playwright-run.yml@refs/pull/1503/merge (0440282)

which is a merge into current upstream, when passing commit is dc3d50c -- nonconflicting, but as of now already behind the upstream main branch, rebased.

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

Labels

scope/backend Related to backend changes status/triage/completed Automatic triage completed type/enhancement En enhancement/improvement to an already existing feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Allow Kafka-UI container to use Kafka certificates directly (.key, .cert, .ca) without manual Java keystore conversion

2 participants