Skip to content

Conversation

@andrewazores
Copy link
Member

@andrewazores andrewazores commented Jan 21, 2026

Depends on cryostatio/cryostat#1258
Closes #779
See cryostatio/cryostat-operator#1218 (comment)

  1. Use smallrye-config directly. This is an implementation of the microprofile-config spec, but with additional capabilities. Up to this point we have managed to use the plain microprofile-config interfaces with smallrye-config as the implementation provider, but microprofile-config is missing the ability to bind sets of configuration values with a shared prefix into a Java Map. This is a convenient feature in general, but essentially required for the next point:
  2. Adds a configuration property cryostat.agent.publish.context, which is a Map<String, String> of additional contextual information that the Agent should pass along to Cryostat when it performs its discovery publication step (ie advertising its own presence as a connectable Target). This may be used for other purposes in the future, but for now the intended use is discussed here: feat(autoconfig): inject Agent discovery augmentations cryostat-operator#1218 (comment) . The Cryostat Operator will set environment variables on autoconfigured Pods so that the Pod name and namespace can be passed on to Cryostat along with the self-describing nodes that the Agent publishes. See feat(discovery): implement subtree fill algorithm, plugin publication context cryostat#1258 for the server-side PR which handles this new data.
  3. Adds a configuration property cryostat.agent.publish.fill-strategy, which tells Cryostat what kind of context the Agent finds itself in and what kind of augmentation Cryostat should do to the nodes published by this Agent. See the Cryostat PR for a detailed explanation of the KUBERNETES strategy.

FIXME:

  • using smallrye-config directly results in a build error on Java 11, since the published dependency is built with Java 17 and the class file version numbers are a mismatch. This isn't a problem before this PR since we previously used microprofile-config as the compile dependency and smallrye-config as the runtime dependency. Now that smallrye-config is compiled against too, the build sees the mismatch and fails. This reveals a problem we hadn't noticed before: Cryostat Agent is supposed to be compatible with JDK 11, but smallrye-config (at least the version we're currently using) is not as it's built with JDK 17. We either need to drop JDK 11 support in Cryostat Agent, or preferably find an older smallrye-config version or alternate microprofile-config implementation which does support JDK 11.

See smallrye/smallrye-config#1287

@andrewazores andrewazores requested a review from a team as a code owner January 21, 2026 02:37
@github-actions github-actions bot added the needs-triage Needs thorough attention from code reviewers label Jan 21, 2026
@mergify mergify bot added the safe-to-test label Jan 21, 2026
@andrewazores andrewazores added feat New feature or request and removed needs-triage Needs thorough attention from code reviewers labels Jan 21, 2026
@andrewazores andrewazores changed the title feat(discovery): implement publication fillAlgo and additional context feat(discovery): implement publication fillStrategy and additional context Jan 21, 2026
@andrewazores andrewazores requested a review from a team January 21, 2026 03:11
ebaron
ebaron previously approved these changes Jan 21, 2026
@andrewazores andrewazores dismissed ebaron’s stale review January 21, 2026 19:50

The merge-base changed after approval.

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

Labels

feat New feature or request safe-to-test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants