controllers

package
v0.29.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 20, 2023 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Overview

Package controllers contains code common for the device plugin controllers.

Index

Constants

This section is empty.

Variables

View Source
var (
	ImageMinVersion = versionutil.MustParseSemantic("0.29.0")
)

Functions

func SetupWithManager

func SetupWithManager(mgr ctrl.Manager, controller DevicePluginController, apiGVString, pluginKind, ownerKey string) error

SetupWithManager sets up a reconciler for a given device plugin controller.

func SuffixedName added in v0.29.0

func SuffixedName(base, suffix string) string

Combine base and suffix with a dash.

func UpgradeImages added in v0.24.0

func UpgradeImages(ctx context.Context, image *string, initimage *string) (upgrade bool)

Types

type DefaultServiceAccountFactory added in v0.22.0

type DefaultServiceAccountFactory struct{}

DefaultServiceAccountFactory is an empty ServiceAccountFactory. "default" will be used for the service account then.

func (*DefaultServiceAccountFactory) NewSharedClusterRoleBinding added in v0.29.0

func (d *DefaultServiceAccountFactory) NewSharedClusterRoleBinding() *rbacv1.ClusterRoleBinding

func (*DefaultServiceAccountFactory) NewSharedServiceAccount added in v0.29.0

func (d *DefaultServiceAccountFactory) NewSharedServiceAccount() *v1.ServiceAccount

func (*DefaultServiceAccountFactory) PluginMayRequireSharedObjects added in v0.29.0

func (d *DefaultServiceAccountFactory) PluginMayRequireSharedObjects() bool

func (*DefaultServiceAccountFactory) PluginRequiresSharedObjects added in v0.29.0

func (d *DefaultServiceAccountFactory) PluginRequiresSharedObjects(ctx context.Context, client client.Client) bool

type DevicePluginController

type DevicePluginController interface {
	SharedObjectsFactory
	CreateEmptyObject() (devicePlugin client.Object)
	NewDaemonSet(devicePlugin client.Object) *apps.DaemonSet
	UpdateDaemonSet(client.Object, *apps.DaemonSet) (updated bool)
	UpdateStatus(client.Object, *apps.DaemonSet, []string) (updated bool, err error)
	Upgrade(ctx context.Context, obj client.Object) (upgrade bool)
}

DevicePluginController provides functionality for manipulating actual device plugin CRD objects.

type SharedObjectsFactory added in v0.29.0

type SharedObjectsFactory interface {
	// Indicates if plugin will ever require shared objects. Not all plugins do.
	PluginMayRequireSharedObjects() bool
	// Indicates if plugin currently require shared objects.
	PluginRequiresSharedObjects(ctx context.Context, client client.Client) bool
	NewSharedServiceAccount() *v1.ServiceAccount
	NewSharedClusterRoleBinding() *rbacv1.ClusterRoleBinding
}

SharedObjectsFactory provides functions for creating service account and cluster rule binding objects. Note that the rbac Role can be generated from kubebuilder:rbac comment (some examples above), which is the reason why this interface does not yet have a NewRole function.

Directories

Path Synopsis
Package dlb contains DLB specific reconciliation logic.
Package dlb contains DLB specific reconciliation logic.
Package dsa contains DSA specific reconciliation logic.
Package dsa contains DSA specific reconciliation logic.
Package fpga contains FPGA specific reconciliation logic.
Package fpga contains FPGA specific reconciliation logic.
Package gpu contains GPU specific reconciliation logic.
Package gpu contains GPU specific reconciliation logic.
Package iaa contains IAA specific reconciliation logic.
Package iaa contains IAA specific reconciliation logic.
Package qat contains QAT specific reconciliation logic.
Package qat contains QAT specific reconciliation logic.
Package sgx contains SGX specific reconciliation logic.
Package sgx contains SGX specific reconciliation logic.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL