Skip to content

Consider a structured KubeletConfigOk field in Node.Status #56896

@mtaufen

Description

@mtaufen

Currently, the Kubelet reports its configuration status in a NodeCondition with type KubeletConfigOK. This has limited use, because most of the node condition is not machine readable. A machine can tell if the config is OK, but can't easily aggregate details of the NodeConfigSource in use (especially if the node has rolled back to its last-known-good config).

We should consider adding a structured field to Node.Status instead, to facilitate machine consumption of the configuration status:

type NodeStatus struct {
    ...
    Config NodeConfigStatus
    ...
}

type NodeConfigStatus struct {
    Status ConditionStatus // one of True, False, or Unknown, machine-readable, as it is in a NodeCondition
    // Reports the config the Kubelet runtime chose to use
    ActiveSource *NodeConfigSource // now machine-readable, since it's a structured, versioned API type
    // ACK from the Kubelet that it has seen the currently set Node.Spec.ConfigSource
    AssignedSource *NodeConfigSource // now machine-readable, since it's a structured, versioned API type
    // Kubelet's chosen last-known-good source
    LastKnownGoodSource *NodeConfigSource // now machine-readable, since it's a structured, versioned API type
    // human-readable error string describing any problems with the configuration
    Error string 
    // human-readable string providing additional information about the configuration status
    Message string 
}

/cc @liggitt @mikedanese @dchen1107

Metadata

Metadata

Assignees

Labels

priority/awaiting-more-evidenceLowest priority. Possibly useful, but not yet enough support to actually get it done.sig/nodeCategorizes an issue or PR as relevant to SIG Node.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions