2023-02-21 07:50:33 -05:00
/ *
Copyright 2023 The Kubernetes Authors .
Licensed under the Apache License , Version 2.0 ( the "License" ) ;
you may not use this file except in compliance with the License .
You may obtain a copy of the License at
http : //www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing , software
distributed under the License is distributed on an "AS IS" BASIS ,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND , either express or implied .
See the License for the specific language governing permissions and
limitations under the License .
* /
2026-02-10 07:04:27 -05:00
package node
2023-02-21 07:50:33 -05:00
import (
v1 "k8s.io/api/core/v1"
)
const (
// SampleDevicePluginDSYAML is the path of the daemonset template of the sample device plugin. // TODO: Parametrize it by making it a feature in TestFramework.
2023-03-02 22:19:44 -05:00
SampleDevicePluginDSYAML = "test/e2e/testing-manifests/sample-device-plugin/sample-device-plugin.yaml"
2022-12-23 13:50:42 -05:00
SampleDevicePluginControlRegistrationDSYAML = "test/e2e/testing-manifests/sample-device-plugin/sample-device-plugin-control-registration.yaml"
2023-02-21 07:50:33 -05:00
// SampleDevicePluginName is the name of the device plugin pod
SampleDevicePluginName = "sample-device-plugin"
// SampleDeviceResourceName is the name of the resource provided by the sample device plugin
SampleDeviceResourceName = "example.com/resource"
SampleDeviceEnvVarNamePluginSockDir = "PLUGIN_SOCK_DIR"
2026-02-10 07:04:27 -05:00
// SampleDevsAmount is an amount of devices provided by the sample device plugin:
// https://github.com/kubernetes/kubernetes/blob/111a2a0d2dfe13639724506f674bc4f342ccfbab/test/images/sample-device-plugin/sampledeviceplugin.go#L100-L101
SampleDevsAmount int64 = 2
2023-02-21 07:50:33 -05:00
)
// CountSampleDeviceCapacity returns the number of devices of SampleDeviceResourceName advertised by a node capacity
func CountSampleDeviceCapacity ( node * v1 . Node ) int64 {
val , ok := node . Status . Capacity [ v1 . ResourceName ( SampleDeviceResourceName ) ]
if ! ok {
return 0
}
return val . Value ( )
}
// CountSampleDeviceAllocatable returns the number of devices of SampleDeviceResourceName advertised by a node allocatable
func CountSampleDeviceAllocatable ( node * v1 . Node ) int64 {
val , ok := node . Status . Allocatable [ v1 . ResourceName ( SampleDeviceResourceName ) ]
if ! ok {
return 0
}
return val . Value ( )
}