controller

package
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Sep 28, 2018 License: Apache-2.0 Imports: 32 Imported by: 17

Documentation

Index

Constants

View Source
const (
	//AnnCloneRequest sets our expected annotation for a CloneRequest
	AnnCloneRequest = "k8s.io/CloneRequest"
	//AnnCloneOf is used to indicate that cloning was complete
	AnnCloneOf = "k8s.io/CloneOf"
	//CloneUniqueID is used as a special label to be used when we search for the pod
	CloneUniqueID = "cdi.kubevirt.io/storage.clone.cloneUniqeId"
	//AnnTargetPodNamespace is being used as a pod label to find the related target PVC
	AnnTargetPodNamespace = "cdi.kubevirt.io/storage.clone.targetPod.namespace"
)
View Source
const (
	//AnnCreatedBy is a pod annotation indicating if the pod was created by the PVC
	AnnCreatedBy = "cdi.kubevirt.io/storage.createdByController"
	//AnnPodPhase is a PVC annotation indicating the related pod progress (phase)
	AnnPodPhase = "cdi.kubevirt.io/storage.pod.phase"
)
View Source
const (
	// SuccessSynced provides a const to represent a Synced status
	SuccessSynced = "Synced"
	// ErrResourceExists provides a const to indicate a resource exists error
	ErrResourceExists = "ErrResourceExists"
	// MessageResourceExists provides a const to form a resource exists error message
	MessageResourceExists = "Resource %q already exists and is not managed by DataVolume"
	// MessageResourceSynced provides a const to standardize a Resource Synced message
	MessageResourceSynced = "DataVolume synced successfully"
)
View Source
const (
	// AnnEndpoint provides a const for our PVC endpoint annotation
	AnnEndpoint = "cdi.kubevirt.io/storage.import.endpoint"
	// AnnSecret provides a const for our PVC secretName annotation
	AnnSecret = "cdi.kubevirt.io/storage.import.secretName"
	// AnnImportPod provides a const for our PVC importPodName annotation
	AnnImportPod = "cdi.kubevirt.io/storage.import.importPodName"
	//LabelImportPvc is a pod label used to find the import pod that was created by the relevant PVC
	LabelImportPvc = "cdi.kubevirt.io/storage.import.importPvcName"
)
View Source
const (
	// AnnUploadRequest marks that a PVC should be made available for upload
	AnnUploadRequest = "cdi.kubevirt.io/storage.upload.target"
)
View Source
const DataVolName = "cdi-data-vol"

DataVolName provides a const to use for creating volumes in pod specs

View Source
const ImagePathName = "image-path"

ImagePathName provides a const to use for creating volumes in pod specs

Variables

This section is empty.

Functions

func CreateCloneSourcePod

func CreateCloneSourcePod(client kubernetes.Interface, image string, pullPolicy string, cr string, pvc *v1.PersistentVolumeClaim) (*v1.Pod, error)

CreateCloneSourcePod creates our cloning src pod which will be used for out of band cloning to read the contents of the src PVC

func CreateCloneTargetPod

func CreateCloneTargetPod(client kubernetes.Interface, image string, pullPolicy string,
	pvc *v1.PersistentVolumeClaim, podAffinityNamespace string) (*v1.Pod, error)

CreateCloneTargetPod creates our cloning tgt pod which will be used for out of band cloning to write the contents of the tgt PVC

func CreateImporterPod

func CreateImporterPod(client kubernetes.Interface, image, verbose, pullPolicy, ep, secretName string, pvc *v1.PersistentVolumeClaim) (*v1.Pod, error)

CreateImporterPod creates and returns a pointer to a pod which is created based on the passed-in endpoint, secret name, and pvc. A nil secret means the endpoint credentials are not passed to the importer pod.

func CreateUploadPod

func CreateUploadPod(client kubernetes.Interface,
	caKeyPair *triple.KeyPair,
	clientCACert *x509.Certificate,
	image string,
	verbose string,
	pullPolicy string,
	name string,
	pvc *v1.PersistentVolumeClaim) (*v1.Pod, error)

CreateUploadPod creates upload service pod manifest and sends to server

func CreateUploadService

func CreateUploadService(client kubernetes.Interface, name string, pvc *v1.PersistentVolumeClaim) (*v1.Service, error)

CreateUploadService creates upload service service manifest and sends to server

func GetUploadResourceName

func GetUploadResourceName(pvcName string) string

GetUploadResourceName returns the name given to upload services/pods

func MakeCloneSourcePodSpec

func MakeCloneSourcePodSpec(image, pullPolicy, sourcePvcName string, pvc *v1.PersistentVolumeClaim) *v1.Pod

MakeCloneSourcePodSpec creates and returns the clone source pod spec based on the target pvc.

func MakeCloneTargetPodSpec

func MakeCloneTargetPodSpec(image, pullPolicy, podAffinityNamespace string, pvc *v1.PersistentVolumeClaim) *v1.Pod

MakeCloneTargetPodSpec creates and returns the clone target pod spec based on the target pvc.

func MakeImporterPodSpec

func MakeImporterPodSpec(image, verbose, pullPolicy, ep, secret string, pvc *v1.PersistentVolumeClaim) *v1.Pod

MakeImporterPodSpec creates and return the importer pod spec based on the passed-in endpoint, secret and pvc.

func MakeOwnerReference

func MakeOwnerReference(pvc *v1.PersistentVolumeClaim) metav1.OwnerReference

MakeOwnerReference makes owner reference from a PVC

func MakeUploadPodSpec

func MakeUploadPodSpec(image, verbose, pullPolicy, name string, pvc *v1.PersistentVolumeClaim, secretName string) *v1.Pod

MakeUploadPodSpec creates upload service pod manifest

func MakeUploadServiceSpec

func MakeUploadServiceSpec(name string, pvc *v1.PersistentVolumeClaim) *v1.Service

MakeUploadServiceSpec creates upload service service manifest

func ParseSourcePvcAnnotation

func ParseSourcePvcAnnotation(sourcePvcAnno, del string) (namespace, name string)

ParseSourcePvcAnnotation parses out the annotations for a CDI PVC

func UploadPossibleForPVC

func UploadPossibleForPVC(pvc *v1.PersistentVolumeClaim) error

UploadPossibleForPVC is called by the api server to see whether to return an upload token

Types

type CloneController

type CloneController struct {
	Controller
}

CloneController represents the CDI Clone Controller

func NewCloneController

func NewCloneController(client kubernetes.Interface,
	pvcInformer coreinformers.PersistentVolumeClaimInformer,
	podInformer coreinformers.PodInformer,
	image string,
	pullPolicy string,
	verbose string) *CloneController

NewCloneController sets up a Clone Controller, and returns a pointer to to the newly created Controller

func (*CloneController) ProcessNextPvcItem

func (cc *CloneController) ProcessNextPvcItem() bool

ProcessNextPvcItem ...

func (*CloneController) Run

func (cc *CloneController) Run(threadiness int, stopCh <-chan struct{}) error

Run is being called from cdi-controller (cmd)

type Controller

type Controller struct {
	// contains filtered or unexported fields
}

Controller is a struct that contains common information and functionality used by all CDI controllers.

func NewController

func NewController(client kubernetes.Interface,
	pvcInformer coreinformers.PersistentVolumeClaimInformer,
	podInformer coreinformers.PodInformer,
	image string,
	pullPolicy string,
	verbose string) *Controller

NewController is called when we instantiate any CDI controller.

type DataVolumeController

type DataVolumeController struct {
	// contains filtered or unexported fields
}

DataVolumeController represents the CDI Data Volume Controller

func NewDataVolumeController

func NewDataVolumeController(
	kubeclientset kubernetes.Interface,
	cdiClientSet clientset.Interface,
	pvcInformer coreinformers.PersistentVolumeClaimInformer,
	dataVolumeInformer informers.DataVolumeInformer) *DataVolumeController

NewDataVolumeController sets up a Data Volume Controller, and return a pointer to the newly created Controller

func (*DataVolumeController) Run

func (c *DataVolumeController) Run(threadiness int, stopCh <-chan struct{}) error

Run will set up the event handlers for types we are interested in, as well as syncing informer caches and starting workers. It will block until stopCh is closed, at which point it will shutdown the workqueue and wait for workers to finish processing their current work items.

type ImportController

type ImportController struct {
	Controller
}

ImportController represents a CDI Import Controller

func NewImportController

func NewImportController(client kubernetes.Interface,
	pvcInformer coreinformers.PersistentVolumeClaimInformer,
	podInformer coreinformers.PodInformer,
	image string,
	pullPolicy string,
	verbose string) *ImportController

NewImportController sets up an Import Controller, and returns a pointer to the newly created Import Controller

func (*ImportController) ProcessNextPvcItem

func (ic *ImportController) ProcessNextPvcItem() bool

ProcessNextPvcItem ...

func (*ImportController) Run

func (ic *ImportController) Run(threadiness int, stopCh <-chan struct{}) error

Run is being called from cdi-controller (cmd)

type UploadController

type UploadController struct {
	// contains filtered or unexported fields
}

UploadController members

func NewUploadController

func NewUploadController(client kubernetes.Interface,
	pvcInformer coreinformers.PersistentVolumeClaimInformer,
	podInformer coreinformers.PodInformer,
	serviceInformer coreinformers.ServiceInformer,
	uploadServiceImage string,
	uploadProxyServiceName string,
	pullPolicy string,
	verbose string) *UploadController

NewUploadController returns a new UploadController

func (*UploadController) Run

func (c *UploadController) Run(threadiness int, stopCh <-chan struct{}) error

Run sets up UploadController state and executes main event loop

Jump to

Keyboard shortcuts

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