kubernetesk8s.io/kubernetes/test/e2e/dra Index | Files | Directories

package dra

import "k8s.io/kubernetes/test/e2e/dra"

Index

Constants

const (
	NodePrepareResourcesMethod   = "/k8s.io.kubelet.pkg.apis.dra.v1beta1.DRAPlugin/NodePrepareResources"
	NodeUnprepareResourcesMethod = "/k8s.io.kubelet.pkg.apis.dra.v1beta1.DRAPlugin/NodeUnprepareResources"
)

Types

type Driver

type Driver struct {
	NameSuffix string
	Name       string

	// Nodes contains entries for each node selected for a test when the test runs.
	// In addition, there is one entry for a fictional node.
	Nodes map[string]KubeletPlugin

	NodeV1alpha4 bool
	NodeV1beta1  bool
	// contains filtered or unexported fields
}

func NewDriver

func NewDriver(f *framework.Framework, nodes *Nodes, configureResources func() Resources, devicesPerNode ...map[string]map[resourceapi.QualifiedName]resourceapi.DeviceAttribute) *Driver

NewDriver sets up controller (as client of the cluster) and kubelet plugin (via proxy) before the test runs. It cleans up after the test.

Call this outside of ginkgo.It, then use the instance inside ginkgo.It.

func NewDriverInstance

func NewDriverInstance(f *framework.Framework) *Driver

NewDriverInstance is a variant of NewDriver where the driver is inactive and must be started explicitly with Run. May be used inside ginkgo.It.

func (*Driver) CallCount

func (d *Driver) CallCount(m MethodInstance) int64

func (*Driver) Fail

func (d *Driver) Fail(m MethodInstance, injectError bool)

func (*Driver) IsGone

func (d *Driver) IsGone(ctx context.Context)

func (*Driver) Nodenames

func (d *Driver) Nodenames() (nodenames []string)

func (*Driver) Run

func (d *Driver) Run(nodes *Nodes, configureResources func() Resources, devicesPerNode ...map[string]map[resourceapi.QualifiedName]resourceapi.DeviceAttribute)

func (*Driver) SetUp

func (d *Driver) SetUp(nodes *Nodes, resources Resources, devicesPerNode ...map[string]map[resourceapi.QualifiedName]resourceapi.DeviceAttribute)

func (*Driver) TearDown

func (d *Driver) TearDown()

type KubeletPlugin

type KubeletPlugin struct {
	*app.ExamplePlugin
	ClientSet kubernetes.Interface
}

type MethodInstance

type MethodInstance struct {
	Nodename   string
	FullMethod string
}

type Nodes

type Nodes struct {
	NodeNames []string
}

func NewNodes

func NewNodes(f *framework.Framework, minNodes, maxNodes int) *Nodes

NewNodes selects nodes to run the test on.

Call this outside of ginkgo.It, then use the instance inside ginkgo.It.

func NewNodesNow

func NewNodesNow(ctx context.Context, f *framework.Framework, minNodes, maxNodes int) *Nodes

NewNodesNow is a variant of NewNodes which can be used inside a ginkgo.It.

type Resources

type Resources struct {
	NodeLocal bool

	// Nodes is a fixed list of node names on which resources are
	// available. Mutually exclusive with NodeLabels.
	Nodes []string

	// Number of devices called "device-000", "device-001", ... on each node or in the cluster.
	MaxAllocations int
}

Source Files

deploy.go dra.go

Directories

PathSynopsis
test/e2e/dra/test-driver
test/e2e/dra/test-driver/appPackage app does all of the work necessary to configure and run a Kubernetes app process.
Version
v1.32.6
Published
Jun 17, 2025
Platform
js/wasm
Imports
57 packages
Last checked
13 minutes ago

Tools for package owners.