-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Configuration of trust stores for Prometheus and Apicurio clients #1280
Conversation
f224aed
to
f737625
Compare
api/src/main/java/com/github/streamshub/console/api/service/MetricsService.java
Show resolved
Hide resolved
operator/src/main/java/com/github/streamshub/console/dependents/ConsoleSecret.java
Show resolved
Hide resolved
what's the idea here? I'm familiar with alias on the keystore side - to select a single key from potentially many in the store, but in the truststore side you normally trust all the certificates in the truststore. In Java TrustManagerFactory accepts a truststore and gives you a TrustManager which trusts them all. So, what's the role of the alias? |
is this a ref to a secret? you would normally try to avoid an inline secret. EDIT: answered my own question. |
That's what I've typically seen also, but the TLS registry supports configuration of an [1] https://quarkus.io/guides/tls-registry-reference#trust-stores |
Yes, it can be. The field allows for |
api/src/main/java/com/github/streamshub/console/api/support/serdes/ApicurioClient.java
Show resolved
Hide resolved
api/src/main/java/com/github/streamshub/console/api/support/serdes/ApicurioClient.java
Show resolved
Hide resolved
api/src/main/java/com/github/streamshub/console/api/support/serdes/ApicurioClient.java
Show resolved
Hide resolved
operator/src/main/java/com/github/streamshub/console/dependents/ConsoleDeployment.java
Show resolved
Hide resolved
operator/src/main/java/com/github/streamshub/console/dependents/ConsoleDeployment.java
Outdated
Show resolved
Hide resolved
On the whole, the approach looks good. I'm concerned about some of the coding in the ApicurioClient but will be content to overlook providing there's a plan to address the debt. |
a782cf3
to
6ed4dd0
Compare
Signed-off-by: Michael Edgar <[email protected]>
Signed-off-by: Michael Edgar <[email protected]>
Signed-off-by: Michael Edgar <[email protected]>
6ed4dd0
to
5d60312
Compare
Quality Gate passedIssues Measures |
Closes #1277
Approach
This change allows for a trust store to be configured for metrics source (Prometheus) and schema registry (Apicurio) clients. The trust store may be set in the Console CR along with the URLs for each connection type.
For example:
The operator will then read the trust store content either directly from the CR for literal values or from the ConfigMap or Secret, copy to the Console secret being reconciled, and create a volume/mount and appropriate Quarkus environment vars for a TLS configuration bucket [1] specific to the connection.
The clients in the API server will then obtain the trust store/SSL context from the TLS bucket named by convention and use for the connection to the remote service.
[1] https://quarkus.io/guides/tls-registry-reference#using-the-tls-registry