[WIP] [POC] Remove multiple server support from the orchestrator process. #21535
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR is a PoC to show how we don't need as_each_server at the evm_server level. It probably does not work as is. This is a partial revert of #19734
The idea here is that the orchestrator should only be responsible for its own "server". In appliances this is done automatically because we only watch one server anwyay, and we presume the rest of the server records are being watched by their orchestrators. In podified, this was changed to watch every "server", however all of the servers are fake records that are only in place to deal with the zone -> miq_server relationship which we need for zone support.
Instead, what we can do is just watch the one "server" record we care about, and then change the way we monitor other servers in server_monitor.rb. What's missing from this PR is that the server_monitor.rb code needs to change such that we can have a subclass for Kubernetes that effectively does nothing for the other "fake" servers (i.e. we don't care about heartbeats), but still allow for role management to support the zones concept of placement. @agrare had a good idea for a
MiqServer::PlatformManagement
, which I think aligns with this.Built on #21532, so only look at the latest commit: https://github.com/Fryguy/manageiq/compare/Fryguy:remove_as_each_server~...Fryguy:remove_as_each_server?expand=1
cc @agrare @jrafanie