Skip to content

Deprecation Info API cannot check filtered settings #37845

Closed
@gwbrown

Description

@gwbrown

As noted in #37793 (comment), the Deprecation Info API uses the NodeInfo API to check for problems with settings. This means that issues involving filtered settings cannot be detected by the Deprecation Info API.

This issue was masked by the fact that we only have unit tests for the node deprecation checks, which do not go through the filtering process.

This impacts a few different checks:

We do not want to allow filtered settings to be accessed via the NodeInfo API, as there is a reason these settings are filtered: they typically contain sensitive information.

One possible solution is to change how the Deprecation API operates: instead of retrieving the settings from the nodes and performing the checks on the master node, we could have each node perform the checks on its own settings and send the results back to the master. This would allow filtered settings to be examined in deprecation checks, but add significant complexity and create problems in mixed clusters unless it is done carefully.

Another possible solution is to simply say that these issues cannot be detected via the Deprecation Info API, and the user will have to check the deprecation log to find out about these issues. We have done this for one potential issue, the changed file path for file-based discovery, which is not detectable through the NodeInfo API: #36190. If we go this route, we may want to consider returning a WARNING level issue (or resurrecting INFO) if Watcher/Security are enabled reminding users to check the deprecation logs and informing them of these changes we cannot detect.

/cc @bleskes for awareness

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions