mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 12:15:52 +00:00
add AllocatedResourcesStatus field to ContainerStatus
This commit is contained in:
parent
1353c08110
commit
16e8911fdc
@ -2780,6 +2780,59 @@ type ContainerStatus struct {
|
||||
// +featureGate=SupplementalGroupsPolicy
|
||||
// +optional
|
||||
User *ContainerUser
|
||||
// AllocatedResourcesStatus represents the status of various resources
|
||||
// allocated for this Pod.
|
||||
// +featureGate=ResourceHealthStatus
|
||||
// +optional
|
||||
AllocatedResourcesStatus []ResourceStatus
|
||||
}
|
||||
|
||||
type ResourceStatus struct {
|
||||
Name ResourceName
|
||||
// List of unique Resources health. Each element in the list contains a unique resource ID and resource health.
|
||||
// At a minimum, ResourceID must uniquely identify the Resource
|
||||
// allocated to the Pod on the Node for the lifetime of a Pod.
|
||||
// See ResourceID type for it's definition.
|
||||
Resources []ResourceHealth
|
||||
|
||||
// allow to extend this struct in future with the overall health fields or things like Device Plugin version
|
||||
}
|
||||
|
||||
// ResourceID is calculated based on the source of this resource health information.
|
||||
// For DevicePlugin:
|
||||
//
|
||||
// deviceplugin:DeviceID, where DeviceID is from the Device structure of DevicePlugin's ListAndWatchResponse type: https://github.com/kubernetes/kubernetes/blob/eda1c780543a27c078450e2f17d674471e00f494/staging/src/k8s.io/kubelet/pkg/apis/deviceplugin/v1alpha/api.proto#L61-L73
|
||||
//
|
||||
// DevicePlugin ID is usually a constant for the lifetime of a Node and typically can be used to uniquely identify the device on the node.
|
||||
// For DRA:
|
||||
//
|
||||
// dra:<driver name>/<pool name>/<device name>: such a device can be looked up in the information published by that DRA driver to learn more about it. It is designed to be globally unique in a cluster.
|
||||
type ResourceID string
|
||||
|
||||
type ResourceHealthStatus string
|
||||
|
||||
const (
|
||||
ResourceHealthStatusHealthy ResourceHealthStatus = "Healthy"
|
||||
ResourceHealthStatusUnhealthy ResourceHealthStatus = "Unhealthy"
|
||||
ResourceHealthStatusUnknown ResourceHealthStatus = "Unknown"
|
||||
)
|
||||
|
||||
// ResourceHealth represents the health of a resource. It has the latest device health information.
|
||||
// This is a part of KEP https://kep.k8s.io/4680 and historical health changes are planned to be added in future iterations of a KEP.
|
||||
type ResourceHealth struct {
|
||||
// ResourceID is the unique identifier of the resource. See the ResourceID type for more information.
|
||||
ResourceID ResourceID
|
||||
// Health of the resource.
|
||||
// can be one of:
|
||||
// - Healthy: operates as normal
|
||||
// - Unhealthy: reported unhealthy. We consider this a temporary health issue
|
||||
// since we do not have a mechanism today to distinguish
|
||||
// temporary and permanent issues.
|
||||
// - Unknown: The status cannot be determined.
|
||||
// For example, Device Plugin got unregistered and hasn't been re-registered since.
|
||||
//
|
||||
// In future we may want to introduce the PermanentlyUnhealthy Status.
|
||||
Health ResourceHealthStatus
|
||||
}
|
||||
|
||||
// ContainerUser represents user identity information
|
||||
|
@ -3091,6 +3091,65 @@ type ContainerStatus struct {
|
||||
// +featureGate=SupplementalGroupsPolicy
|
||||
// +optional
|
||||
User *ContainerUser `json:"user,omitempty" protobuf:"bytes,13,opt,name=user,casttype=ContainerUser"`
|
||||
// AllocatedResourcesStatus represents the status of various resources
|
||||
// allocated for this Pod.
|
||||
// +featureGate=ResourceHealthStatus
|
||||
// +optional
|
||||
// +patchMergeKey=name
|
||||
// +patchStrategy=merge
|
||||
// +listType=map
|
||||
// +listMapKey=name
|
||||
AllocatedResourcesStatus []ResourceStatus `json:"allocatedResourcesStatus,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,14,rep,name=allocatedResourcesStatus"`
|
||||
}
|
||||
|
||||
type ResourceStatus struct {
|
||||
// Name of the resource. Must be unique within the pod and match one of the resources from the pod spec.
|
||||
// +required
|
||||
Name ResourceName `json:"name" protobuf:"bytes,1,opt,name=name"`
|
||||
// List of unique Resources health. Each element in the list contains an unique resource ID and resource health.
|
||||
// At a minimum, ResourceID must uniquely identify the Resource
|
||||
// allocated to the Pod on the Node for the lifetime of a Pod.
|
||||
// See ResourceID type for it's definition.
|
||||
// +listType=map
|
||||
// +listMapKey=resourceID
|
||||
Resources []ResourceHealth `json:"resources,omitempty" protobuf:"bytes,2,rep,name=resources"`
|
||||
}
|
||||
|
||||
type ResourceHealthStatus string
|
||||
|
||||
const (
|
||||
ResourceHealthStatusHealthy ResourceHealthStatus = "Healthy"
|
||||
ResourceHealthStatusUnhealthy ResourceHealthStatus = "Unhealthy"
|
||||
ResourceHealthStatusUnknown ResourceHealthStatus = "Unknown"
|
||||
)
|
||||
|
||||
// ResourceID is calculated based on the source of this resource health information.
|
||||
// For DevicePlugin:
|
||||
//
|
||||
// deviceplugin:DeviceID, where DeviceID is from the Device structure of DevicePlugin's ListAndWatchResponse type: https://github.com/kubernetes/kubernetes/blob/eda1c780543a27c078450e2f17d674471e00f494/staging/src/k8s.io/kubelet/pkg/apis/deviceplugin/v1alpha/api.proto#L61-L73
|
||||
//
|
||||
// DevicePlugin ID is usually a constant for the lifetime of a Node and typically can be used to uniquely identify the device on the node.
|
||||
// For DRA:
|
||||
//
|
||||
// dra:<driver name>/<pool name>/<device name>: such a device can be looked up in the information published by that DRA driver to learn more about it. It is designed to be globally unique in a cluster.
|
||||
type ResourceID string
|
||||
|
||||
// ResourceHealth represents the health of a resource. It has the latest device health information.
|
||||
// This is a part of KEP https://kep.k8s.io/4680 and historical health changes are planned to be added in future iterations of a KEP.
|
||||
type ResourceHealth struct {
|
||||
// ResourceID is the unique identifier of the resource. See the ResourceID type for more information.
|
||||
ResourceID ResourceID `json:"resourceID" protobuf:"bytes,1,opt,name=resourceID"`
|
||||
// Health of the resource.
|
||||
// can be one of:
|
||||
// - Healthy: operates as normal
|
||||
// - Unhealthy: reported unhealthy. We consider this a temporary health issue
|
||||
// since we do not have a mechanism today to distinguish
|
||||
// temporary and permanent issues.
|
||||
// - Unknown: The status cannot be determined.
|
||||
// For example, Device Plugin got unregistered and hasn't been re-registered since.
|
||||
//
|
||||
// In future we may want to introduce the PermanentlyUnhealthy Status.
|
||||
Health ResourceHealthStatus `json:"health,omitempty" protobuf:"bytes,2,name=health"`
|
||||
}
|
||||
|
||||
// ContainerUser represents user identity information
|
||||
|
Loading…
Reference in New Issue
Block a user