mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 14:37:00 +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
|
// +featureGate=SupplementalGroupsPolicy
|
||||||
// +optional
|
// +optional
|
||||||
User *ContainerUser
|
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
|
// ContainerUser represents user identity information
|
||||||
|
@ -3091,6 +3091,65 @@ type ContainerStatus struct {
|
|||||||
// +featureGate=SupplementalGroupsPolicy
|
// +featureGate=SupplementalGroupsPolicy
|
||||||
// +optional
|
// +optional
|
||||||
User *ContainerUser `json:"user,omitempty" protobuf:"bytes,13,opt,name=user,casttype=ContainerUser"`
|
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
|
// ContainerUser represents user identity information
|
||||||
|
Loading…
Reference in New Issue
Block a user