Skip to content

Machines conditions should provide more visibility to the underlying Node #3138

@vincepri

Description

@vincepri

Today, it's hard to understand that a Machine is fully healthy, and what determines a Machine not healthy.

For example, KCP performs kubeadm-specific health checks (inspect the etcd node, static pods, and so on). We should expose all of these internal checks by writing specific conditions on Machines from different controllers.

Let's brainstorm though on a design that could work across the board, given that kubeadm isn't the one and only bootstrapper used out there.

  • Machine controller should try to verify as much as possible, and only manage conditions that are common across bootstrappers. For example, "NodeReady" is something that we can easily check.
  • A new controller under KCP could check all control-plane nodes managed by KCP and start adding conditions that are very specific to how KCP deploys control plane nodes (stacked etcd, and so on).
  • CABPK controller could be responsible for all generic kubeadm-specific machine information (TBD what that would look like though).

There is a clear overlap in these examples, in the final form they shouldn't have any. Each condition needs a clear owner/manager. The main goal of this issue is to provide a uniform and coherent in-depth view on a Machine's health.

/kind feature

Metadata

Metadata

Labels

kind/featureCategorizes issue or PR as related to a new feature.lifecycle/activeIndicates that an issue or PR is actively being worked on by a contributor.priority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next release.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions