utils

package
v1.34.1 Latest Latest
Warning

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

Go to latest
Published: Jun 2, 2021 License: Apache-2.0 Imports: 42 Imported by: 12

Documentation

Index

Constants

View Source
const (
	//RegistryHostName provides a deploymnet and service name for registry
	RegistryHostName = "cdi-docker-registry-host"
	// FileHostName provides a deployment and service name for tests
	FileHostName = "cdi-file-host"
	// FileHostS3Bucket provides an S3 bucket name for tests (e.g. http://<serviceIP:port>/FileHostS3Bucket/image)
	FileHostS3Bucket = "images"
	// AccessKeyValue provides a username to use for http and S3 (see hack/build/docker/cdi-func-test-file-host-http/htpasswd)
	AccessKeyValue = "admin"
	// SecretKeyValue provides a password to use for http and S3 (see hack/build/docker/cdi-func-test-file-host-http/htpasswd)
	SecretKeyValue = "password"
	// HttpAuthPort provides a cdi-file-host service auth port for tests
	HTTPAuthPort = 81
	// HttpNoAuthPort provides a cdi-file-host service no-auth port for tests, requires AccessKeyValue and SecretKeyValue
	HTTPNoAuthPort = 80
	// HTTPRateLimitPort provides a cdi-file-host service rate limit port for tests, speed is limited to 25k/s to allow for testing slow connection behavior. No auth.
	HTTPRateLimitPort = 82
	// S3Port provides a cdi-file-host service S3 port, requires AccessKey and SecretKeyValue
	S3Port = 9000
	// HTTPSPort is the https port of cdi-file-host
	HTTPSNoAuthPort = 443
	// RegistryCertConfigMap is the ConfigMap where the cert for the docker registry is stored
	RegistryCertConfigMap = "cdi-docker-registry-host-certs"
	// FileHostCertConfigMap is the ConfigMap where the cert fir the file host is stored
	FileHostCertConfigMap = "cdi-file-host-certs"
	// ImageIOCertConfigMap is the ConfigMap where the cert fir the file host is stored
	ImageIOCertConfigMap = "imageio-certs"
)

cdi-file-host pod/service relative values

View Source
const (
	// TinyCoreIsoURL provides a test url for the tineyCore iso image
	TinyCoreIsoURL = "http://cdi-file-host.%s/tinyCore.iso"
	// TinyCoreQcow2URL provides a test url for the tineyCore qcow2 image
	TinyCoreQcow2URL = "http://cdi-file-host.%s/tinyCore.qcow2"
	//TinyCoreIsoRegistryURL provides a test url for the tinycore.qcow2 image wrapped in docker container
	TinyCoreIsoRegistryURL = "docker://cdi-docker-registry-host.%s/tinycoreqcow2"
	//TinyCoreIsoRegistryProxyURL provides a test url for the tinycore.qcow2 image wrapped in docker container available through rate-limiting proxy
	TinyCoreIsoRegistryProxyURL = "docker://cdi-file-host.%s:83/tinycoreqcow2"
	// HTTPSTinyCoreIsoURL provides a test (https) url for the tineyCore iso image
	HTTPSTinyCoreIsoURL = "https://cdi-file-host.%s/tinyCore.iso"
	// HTTPSTinyCoreQcow2URL provides a test (https) url for the tineyCore qcow2 image
	HTTPSTinyCoreQcow2URL = "https://cdi-file-host.%s/tinyCore.qcow2"
	// TinyCoreQcow2URLRateLimit provides a test url for the tineyCore qcow2 image via rate-limiting proxy
	TinyCoreQcow2URLRateLimit = "http://cdi-file-host.%s:82/tinyCore.qcow2"
	// HTTPSTinyCoreVmdkURL provides a test url for the tineyCore qcow2 image
	HTTPSTinyCoreVmdkURL = "https://cdi-file-host.%s/tinyCore.vmdk"
	// HTTPSTinyCoreVdiURL provides a test url for the tineyCore qcow2 image
	HTTPSTinyCoreVdiURL = "https://cdi-file-host.%s/tinyCore.vdi"
	// HTTPSTinyCoreVhdURL provides a test url for the tineyCore qcow2 image
	HTTPSTinyCoreVhdURL = "https://cdi-file-host.%s/tinyCore.vhd"
	// HTTPSTinyCoreVhdxURL provides a test url for the tineyCore qcow2 image
	HTTPSTinyCoreVhdxURL = "https://cdi-file-host.%s/tinyCore.vhdx"
	// InvalidQcowImagesURL provides a test url for invalid qcow images
	InvalidQcowImagesURL = "http://cdi-file-host.%s/invalid_qcow_images/"
	// LargeVirtualDiskQcow provides a test url for a cirros image with a large virtual size, in qcow2 format
	LargeVirtualDiskQcow = "http://cdi-file-host.%s/cirros-large-virtual-size.qcow2"
	// LargeVirtualDiskXz provides a test url for a cirros image with a large virtual size, in RAW format, XZ-compressed
	LargeVirtualDiskXz = "http://cdi-file-host.%s/cirros-large-virtual-size.raw.xz"
	// LargePhysicalDiskQcow provides a test url for a cirros image with a large physical size, in qcow2 format
	LargePhysicalDiskQcow = "http://cdi-file-host.%s/cirros-large-physical-size.qcow2"
	// LargePhysicalDiskXz provides a test url for a cirros image with a large physical size, in RAW format, XZ-compressed
	LargePhysicalDiskXz = "http://cdi-file-host.%s/cirros-large-physical-size.raw.xz"
	// TarArchiveURL provides a test url for a tar achive file
	TarArchiveURL = "http://cdi-file-host.%s/archive.tar"
	// CirrosURL provides the standard cirros image qcow image
	CirrosURL = "http://cdi-file-host.%s/cirros-qcow2.img"
	// ImageioURL provides URL of oVirt engine hosting imageio
	ImageioURL = "https://imageio.%s:12346/ovirt-engine/api"
	// VcenterURL provides URL of vCenter/ESX simulator
	VcenterURL = "https://vcenter.%s:8989/sdk"

	// TinyCoreMD5 is the MD5 hash of first 100k bytes of tinyCore image
	TinyCoreMD5 = "3710416a680523c7d07538cb1026c60c"
	// TinyCoreTarMD5 is the MD5 hash of first 100k bytes of tinyCore tar image
	TinyCoreTarMD5 = "aec1a39d753b4b7cc81ee02bc625a342"
	// TinyCoreBlockMD5 is the MD5 hash of first 100k bytes of tinyCore image on block device
	TinyCoreBlockMD5 = "d41d8cd98f00b204e9800998ecf8427e"
	// ImageioMD5 is the MD5 hash of first 100k bytes of imageio image
	ImageioMD5 = "91150be031835ccfac458744da57d4f6"
	// VcenterMD5 is the MD5 hash of first 100k bytes of Vcenter image
	VcenterMD5 = "91150be031835ccfac458744da57d4f6"
	// BlankMD5 is the MD5 hash of first 100k bytes of blank image
	BlankMD5 = "0019d23bef56a136a1891211d7007f6f"
)
View Source
const (
	// PodWaitForTime is the time to wait for Pod operations to complete
	PodWaitForTime = defaultPollPeriod

	//VerifierPodName is the name of the verifier pod.
	VerifierPodName = "verifier"
)
View Source
const (

	// DefaultPvcMountPath is the default mount path used
	DefaultPvcMountPath = "/pvc"

	// DefaultImagePath is the default destination for images created by CDI
	DefaultImagePath = DefaultPvcMountPath + "/disk.img"
)
View Source
const (
	// UploadFile is the file to upload
	UploadFile = "./images/tinyCore.iso"
	// UploadFileLargeVirtualDiskQcow is the file to upload (QCOW2)
	UploadFileLargeVirtualDiskQcow = "./images/cirros-large-virtual-size.qcow2"
	// UploadFileLargeVirtualDiskXz is the file to upload (XZ-compressed RAW file)
	UploadFileLargeVirtualDiskXz = "./images/cirros-large-virtual-size.raw.xz"
	// UploadFileLargePhysicalDiskQcow is the file to upload (QCOW2)
	UploadFileLargePhysicalDiskQcow = "./images/cirros-large-physical-size.qcow2"
	// UploadFileLargePhysicalDiskXz is the file to upload (XZ-compressed RAW file)
	UploadFileLargePhysicalDiskXz = "./images/cirros-large-physical-size.raw.xz"

	// UploadFileSize is the size of UploadFile
	UploadFileSize = 18874368

	// UploadFileMD5 is the expected MD5 of the uploaded file
	UploadFileMD5 = "2a7a52285c846314d1dbd79e9818270d"

	// UploadFileMD5100kbytes is the size of the image after being extended
	UploadFileMD5100kbytes = "3710416a680523c7d07538cb1026c60c"
)

Variables

View Source
var (
	// DefaultStorageClass the defauld storage class used in tests
	DefaultStorageClass *storagev1.StorageClass
	// NfsService is the service in the cdi namespace that will be created if KUBEVIRT_STORAGE=nfs
	NfsService *corev1.Service

	// DefaultStorageCSI is true if the default storage class is CSI, false other wise.
	DefaultStorageCSI bool
)

Functions

func AddInsecureRegistry added in v1.33.1

func AddInsecureRegistry(c client.Client, registryURL string) error

AddInsecureRegistry adds the registry to CDIConfig InsecureRegistries to mark it as allowed to be insecure

func ArchiveFiles added in v1.4.0

func ArchiveFiles(targetFile, tgtDir string, sourceFilesNames ...string) (string, error)

ArchiveFiles creates a tar file that archives the given source files.

func CacheTestsData added in v1.10.2

func CacheTestsData(client *kubernetes.Clientset, cdiNs string)

CacheTestsData fetch and cache data required for tests

func CopyConfigMap added in v1.5.4

func CopyConfigMap(client kubernetes.Interface, srcNamespace, srcName, destNamespace, destName string) (string, error)

CopyConfigMap copies a ConfigMap

func CopyFileHostCertConfigMap added in v1.7.0

func CopyFileHostCertConfigMap(client kubernetes.Interface, destNamespace, cdiNamespace string) (string, error)

CopyFileHostCertConfigMap copies the test file host configmap, it assumes the File host is in the CDI namespace

func CopyImageIOCertConfigMap added in v1.15.0

func CopyImageIOCertConfigMap(client kubernetes.Interface, destNamespace, cdiNamespace string) (string, error)

CopyImageIOCertConfigMap copies the test imageio configmap, it assumes the imageio server is in the CDI namespace

func CopyRegistryCertConfigMap added in v1.5.4

func CopyRegistryCertConfigMap(client kubernetes.Interface, destNamespace, cdiNamespace string) (string, error)

CopyRegistryCertConfigMap copies the test registry configmap, it assumes the Registry host is in the CDI namespace

func CopyRegistryCertConfigMapDestName added in v1.20.0

func CopyRegistryCertConfigMapDestName(client kubernetes.Interface, destNamespace, cdiNamespace, destName string) (string, error)

CopyRegistryCertConfigMapDestName copies the test registry configmap, it assumes the Registry host is in the CDI namespace

func CreateCertConfigMapWeirdFilename added in v1.34.1

func CreateCertConfigMapWeirdFilename(client kubernetes.Interface, destNamespace, srcNamespace string) (string, error)

CreateCertConfigMapWeirdFilename copies a configmap with a different key value

func CreateCertForTestService added in v1.7.0

func CreateCertForTestService(namespace, serviceName, configMapName, certDir, certFileName, keyFileName string) error

CreateCertForTestService creates a TLS key/cert for a service, writes them to files and creates a config map containing the cert

func CreateDataVolumeFromDefinition

func CreateDataVolumeFromDefinition(clientSet *cdiclientset.Clientset, namespace string, def *cdiv1.DataVolume) (*cdiv1.DataVolume, error)

CreateDataVolumeFromDefinition is used by tests to create a testable Data Volume

func CreatePVCFromDefinition

func CreatePVCFromDefinition(clientSet *kubernetes.Clientset, namespace string, def *k8sv1.PersistentVolumeClaim) (*k8sv1.PersistentVolumeClaim, error)

CreatePVCFromDefinition creates a PVC in the passed in namespace from the passed in PersistentVolumeClaim definition. An example of creating a PVC without annotations looks like this: CreatePVCFromDefinition(client, namespace, NewPVCDefinition(name, size, nil, nil))

func CreatePVFromDefinition added in v1.5.0

func CreatePVFromDefinition(clientSet *kubernetes.Clientset, def *k8sv1.PersistentVolume) (*k8sv1.PersistentVolume, error)

CreatePVFromDefinition creates a PV from the passed in PersistentVolume definition. An example of creating a PVC without annotations looks like this: CreatePVCFromDefinition(client, namespace, NewPVCDefinition(name, size, nil, nil))

func CreatePod

func CreatePod(clientSet *kubernetes.Clientset, namespace string, podDef *k8sv1.Pod) (*k8sv1.Pod, error)

CreatePod calls the Kubernetes API to create a Pod

func CreateSecretFromDefinition

func CreateSecretFromDefinition(c *kubernetes.Clientset, secret *v1.Secret) (*v1.Secret, error)

CreateSecretFromDefinition creates and returns a pointer ot a v1.Secret using a provided v1.Secret

func DeleteDataVolume

func DeleteDataVolume(clientSet *cdiclientset.Clientset, namespace, name string) error

DeleteDataVolume deletes the DataVolume with the given name

func DeletePV added in v1.5.0

func DeletePV(clientSet *kubernetes.Clientset, pv *k8sv1.PersistentVolume) error

DeletePV deletes the passed in PV

func DeletePVC

func DeletePVC(clientSet *kubernetes.Clientset, namespace string, pvc *k8sv1.PersistentVolumeClaim) error

DeletePVC deletes the passed in PVC

func DeletePod

func DeletePod(clientSet *kubernetes.Clientset, pod *k8sv1.Pod, namespace string) error

DeletePod deletes the passed in Pod from the passed in Namespace

func DeletePodByName added in v1.19.0

func DeletePodByName(clientSet *kubernetes.Clientset, podName, namespace string, gracePeriod *int64) error

DeletePodByName deletes the pod based on the passed in name from the passed in Namespace

func DeletePodNoGrace added in v1.26.0

func DeletePodNoGrace(clientSet *kubernetes.Clientset, pod *k8sv1.Pod, namespace string) error

DeletePodNoGrace deletes the passed in Pod from the passed in Namespace

func DeleteSecret added in v1.4.0

func DeleteSecret(clientSet *kubernetes.Clientset, namespace string, secret v1.Secret) error

DeleteSecret ...

func DeleteVerifierPod added in v1.19.0

func DeleteVerifierPod(clientSet *kubernetes.Clientset, namespace string) error

DeleteVerifierPod deletes the verifier pod

func DisableFeatureGate added in v1.21.0

func DisableFeatureGate(c client.Client, featureGate string) (*bool, error)

DisableFeatureGate unsets specified FeatureGate in the CDIConfig

func EnableFeatureGate added in v1.21.0

func EnableFeatureGate(c client.Client, feature string) (*bool, error)

EnableFeatureGate sets specified FeatureGate in the CDIConfig

func FindPVC

func FindPVC(clientSet *kubernetes.Clientset, namespace, pvcName string) (*k8sv1.PersistentVolumeClaim, error)

FindPVC Finds the passed in PVC

func FindPodByPrefix

func FindPodByPrefix(clientSet *kubernetes.Clientset, namespace, prefix, labelSelector string) (*k8sv1.Pod, error)

FindPodByPrefix finds the first pod which has the passed in prefix. Returns error if multiple pods with the same prefix are found.

func FindPodBysuffix added in v1.14.0

func FindPodBysuffix(clientSet *kubernetes.Clientset, namespace, prefix, labelSelector string) (*k8sv1.Pod, error)

FindPodBysuffix finds the first pod which has the passed in postfix. Returns error if multiple pods with the same prefix are found.

func FormatTestData

func FormatTestData(srcFile, tgtDir string, targetFormats ...string) (string, error)

FormatTestData accepts the path of a single file (srcFile) and attempts to generate an output file in the format defined by targetFormats (e.g. ".tar", ".gz" will produce a .tar.gz formatted file). The output file is written to the directory in `tgtDir`. returns:

(string) Path of output file
(error)  Errors that occur during formatting

func GetCloneType added in v1.34.0

func GetCloneType(clientSet *cdiclientset.Clientset, dataVolume *cdiv1.DataVolume) string

GetCloneType returnc the CDI clone type

func GetSchedulableNode added in v1.10.7

func GetSchedulableNode(nodes *v1.NodeList) *string

GetSchedulableNode return a schedulable node from a nodes list

func GetServiceInNamespace

func GetServiceInNamespace(c *kubernetes.Clientset, ns, name string) (*v1.Service, error)

GetServiceInNamespace retries get on service `name` in namespace `ns` until timeout or IsNotFound error. Ignores api errors that may be intermittent. Returns pointer to service (nil on error) or an error (nil on success)

func GetServiceInNamespaceOrDie

func GetServiceInNamespaceOrDie(c *kubernetes.Clientset, ns, name string) *v1.Service

GetServiceInNamespaceOrDie attempts to get the service in namespace `ns` by `name`. Returns pointer to service on success. Panics on error.

func GetServiceNodePortByName

func GetServiceNodePortByName(svc *v1.Service, name string) (int, error)

GetServiceNodePortByName scans a service's nodePorts for a name matching the `name` parameter and returns the associated port integer or an error if not match is found.

func GetServicePortByName

func GetServicePortByName(svc *v1.Service, name string) (int, error)

GetServicePortByName scans a service's ports for names matching `name`. Returns integer port value (0 on error) and error (nil on success).

func GetServicesInNamespaceByLabel

func GetServicesInNamespaceByLabel(c *kubernetes.Clientset, ns, labelSelector string) (*v1.ServiceList, error)

GetServicesInNamespaceByLabel retries get of services in namespace `ns` by `labelSelector` until timeout. Ignores api errors that may be intermittent. Returns pointer to ServiceList (nil on error) and an error (nil on success)

func GetTestNamespaceList added in v1.26.0

func GetTestNamespaceList(client *kubernetes.Clientset, nsPrefix string) (*corev1.NamespaceList, error)

GetTestNamespaceList returns a list of namespaces that have been created by the functional tests.

func HasInsecureRegistry added in v1.33.1

func HasInsecureRegistry(c client.Client, registryURL string) (bool, error)

HasInsecureRegistry checks if registry appears in CDIConfig InsecureRegistries so it is allowed to be insecure

func IsExpectedNode added in v1.5.0

func IsExpectedNode(clientSet *kubernetes.Clientset, nodeName, podName, namespace string, timeout time.Duration) error

IsExpectedNode waits to check if the specified pod is schedule on the specified node

func IsHostpathProvisioner added in v1.10.2

func IsHostpathProvisioner() bool

IsHostpathProvisioner returns true if hostpath-provisioner is the default storage class

func IsNfs added in v1.13.0

func IsNfs() bool

IsNfs returns true if the default storage class is the static nfs storage class with no provisioner

func IsOpenshift added in v1.31.0

func IsOpenshift(client kubernetes.Interface) bool

IsOpenshift checks if we are on OpenShift platform

func ModifyDataVolumeWithVDDKImportToBlockPV added in v1.28.1

func ModifyDataVolumeWithVDDKImportToBlockPV(dataVolume *cdiv1.DataVolume, storageClassName string) *cdiv1.DataVolume

ModifyDataVolumeWithVDDKImportToBlockPV modifies a DataVolume struct (created by NewDataVolumeWithVddkImport) for importing disks from vCenter/ESX to a block PV

func NewBlockPVCDefinition added in v1.8.0

func NewBlockPVCDefinition(pvcName string, size string, annotations, labels map[string]string, storageClassName string) *k8sv1.PersistentVolumeClaim

NewBlockPVCDefinition creates a PVC definition with volumeMode 'Block'

func NewCloningDataVolume added in v1.5.0

func NewCloningDataVolume(dataVolumeName, size string, sourcePvc *k8sv1.PersistentVolumeClaim) *cdiv1.DataVolume

NewCloningDataVolume initializes a DataVolume struct with PVC annotations

func NewDataVolumeCloneToBlockPV added in v1.9.4

func NewDataVolumeCloneToBlockPV(dataVolumeName string, size string, srcNamespace, srcName, storageClassName string) *cdiv1.DataVolume

NewDataVolumeCloneToBlockPV initializes a DataVolume for block cloning

func NewDataVolumeForBlankRawImage added in v1.5.0

func NewDataVolumeForBlankRawImage(dataVolumeName, size string) *cdiv1.DataVolume

NewDataVolumeForBlankRawImage initializes a DataVolume struct for creating blank raw image

func NewDataVolumeForBlankRawImageBlock added in v1.10.5

func NewDataVolumeForBlankRawImageBlock(dataVolumeName, size string, storageClassName string) *cdiv1.DataVolume

NewDataVolumeForBlankRawImageBlock initializes a DataVolume struct for creating blank raw image for a block device

func NewDataVolumeForImageCloning added in v1.5.0

func NewDataVolumeForImageCloning(dataVolumeName, size, namespace, pvcName string, storageClassName *string, volumeMode *k8sv1.PersistentVolumeMode) *cdiv1.DataVolume

NewDataVolumeForImageCloning initializes a DataVolume struct for cloning disk image

func NewDataVolumeForUpload added in v1.5.0

func NewDataVolumeForUpload(dataVolumeName string, size string) *cdiv1.DataVolume

NewDataVolumeForUpload initializes a DataVolume struct with Upload annotations

func NewDataVolumeWithArchiveContent added in v1.10.0

func NewDataVolumeWithArchiveContent(dataVolumeName string, size string, httpURL string) *cdiv1.DataVolume

NewDataVolumeWithArchiveContent initializes a DataVolume struct with 'archive' ContentType

func NewDataVolumeWithHTTPImport added in v1.3.0

func NewDataVolumeWithHTTPImport(dataVolumeName string, size string, httpURL string) *cdiv1.DataVolume

NewDataVolumeWithHTTPImport initializes a DataVolume struct with HTTP annotations

func NewDataVolumeWithHTTPImportAndStorageSpec added in v1.34.0

func NewDataVolumeWithHTTPImportAndStorageSpec(dataVolumeName string, size string, httpURL string) *cdiv1.DataVolume

NewDataVolumeWithHTTPImportAndStorageSpec initializes a DataVolume struct with HTTP annotations

func NewDataVolumeWithHTTPImportToBlockPV added in v1.8.0

func NewDataVolumeWithHTTPImportToBlockPV(dataVolumeName string, size string, httpURL, storageClassName string) *cdiv1.DataVolume

NewDataVolumeWithHTTPImportToBlockPV initializes a DataVolume struct with HTTP annotations to import to block PV

func NewDataVolumeWithImageioImport added in v1.15.0

func NewDataVolumeWithImageioImport(dataVolumeName string, size string, httpURL string, secret string, configMap string, diskID string) *cdiv1.DataVolume

NewDataVolumeWithImageioImport initializes a DataVolume struct with Imageio annotations

func NewDataVolumeWithRegistryImport added in v1.5.0

func NewDataVolumeWithRegistryImport(dataVolumeName string, size string, registryURL string) *cdiv1.DataVolume

NewDataVolumeWithRegistryImport initializes a DataVolume struct with registry annotations

func NewDataVolumeWithVddkImport added in v1.23.0

func NewDataVolumeWithVddkImport(dataVolumeName string, size string, backingFile string, secretRef string, thumbprint string, httpURL string, uuid string) *cdiv1.DataVolume

NewDataVolumeWithVddkImport initializes a DataVolume struct for importing disks from vCenter/ESX

func NewDataVolumeWithVddkWarmImport added in v1.28.0

func NewDataVolumeWithVddkWarmImport(dataVolumeName string, size string, backingFile string, secretRef string, thumbprint string, httpURL string, uuid string, currentCheckpoint string, previousCheckpoint string, finalCheckpoint bool) *cdiv1.DataVolume

NewDataVolumeWithVddkWarmImport initializes a DataVolume struct for a multi-stage import from vCenter/ESX snapshots

func NewPVCDefinition

func NewPVCDefinition(pvcName string, size string, annotations, labels map[string]string) *k8sv1.PersistentVolumeClaim

NewPVCDefinition creates a PVC definition using the passed in name and requested size. You can use the following annotation keys to request an import or clone. The values are defined in the controller package AnnEndpoint AnnSecret AnnCloneRequest You can also pass in any label you want.

func NewPVCDefinitionWithSelector added in v1.5.0

func NewPVCDefinitionWithSelector(pvcName, size, storageClassName string, selector map[string]string, annotations, labels map[string]string) *k8sv1.PersistentVolumeClaim

NewPVCDefinitionWithSelector creates a PVC definition.

func NewPVDefinition added in v1.5.0

func NewPVDefinition(pvName, size, storageClassName, node string, labels map[string]string) *k8sv1.PersistentVolume

NewPVDefinition creates a PV definition.

func NewSecretDefinition

func NewSecretDefinition(labels, stringData map[string]string, data map[string][]byte, ns, prefix string) *v1.Secret

NewSecretDefinition provides a function to initialize a Secret data type with the provided options

func PersistentVolumeClaimFromDataVolume added in v1.10.2

func PersistentVolumeClaimFromDataVolume(datavolume *cdiv1.DataVolume) *corev1.PersistentVolumeClaim

PersistentVolumeClaimFromDataVolume creates a PersistentVolumeClaim definition so we can use PersistentVolumeClaim for various operations.

func PodGetNode

func PodGetNode(clientSet *kubernetes.Clientset, podName, namespace string) (string, error)

PodGetNode returns the node on which a given pod is executing

func RemoveInsecureRegistry added in v1.33.1

func RemoveInsecureRegistry(c client.Client, registryURL string) error

RemoveInsecureRegistry removed the registry from CDIConfig InsecureRegistries so it is not allowed to be insecure

func RequestUploadToken

func RequestUploadToken(clientSet *cdiClientset.Clientset, pvc *k8sv1.PersistentVolumeClaim) (string, error)

RequestUploadToken sends an upload token request to the server

func RunGoCLICommand

func RunGoCLICommand(cliPath string, args ...string) error

RunGoCLICommand egecutes gocli with given args

func UpdateCDIConfig added in v1.26.0

func UpdateCDIConfig(c client.Client, updateFunc func(*cdiv1.CDIConfigSpec)) error

UpdateCDIConfig updates CDIConfig

func UpdateCDIConfigWithOptions added in v1.26.0

func UpdateCDIConfigWithOptions(c client.Client, opts metav1.UpdateOptions, updateFunc func(*cdiv1.CDIConfigSpec)) error

UpdateCDIConfigWithOptions updates CDIConfig with specific UpdateOptions

func UploadBlockPVCDefinition added in v1.9.0

func UploadBlockPVCDefinition(storageClass string) *k8sv1.PersistentVolumeClaim

UploadBlockPVCDefinition creates a PVC with the upload target annotation for block PV

func UploadPVCDefinition

func UploadPVCDefinition() *k8sv1.PersistentVolumeClaim

UploadPVCDefinition creates a PVC with the upload target annotation

func UploadPodName

func UploadPodName(pvc *k8sv1.PersistentVolumeClaim) string

UploadPodName returns the name of the upload server pod associated with a PVC

func WaitForCDICrCloneStrategy added in v1.34.0

func WaitForCDICrCloneStrategy(clientSet *cdiClientset.Clientset, cloneStrategy cdiv1.CDICloneStrategy) error

WaitForCDICrCloneStrategy waits for a CDI CR Clone strategy

func WaitForCDICrCloneStrategyNil added in v1.34.0

func WaitForCDICrCloneStrategyNil(clientSet *cdiClientset.Clientset) error

WaitForCDICrCloneStrategyNil waits for a CDI CR strategy to be nil

func WaitForDataVolumePhase

func WaitForDataVolumePhase(clientSet *cdiclientset.Clientset, namespace string, phase cdiv1.DataVolumePhase, dataVolumeName string) error

WaitForDataVolumePhase waits for DV's phase to be in a particular phase (Pending, Bound, or Lost)

func WaitForDataVolumePhaseWithTimeout added in v1.12.0

func WaitForDataVolumePhaseWithTimeout(clientSet *cdiclientset.Clientset, namespace string, phase cdiv1.DataVolumePhase, dataVolumeName string, timeout time.Duration) error

WaitForDataVolumePhaseWithTimeout waits for DV's phase to be in a particular phase (Pending, Bound, or Lost) with a specified timeout

func WaitForDeploymentReplicasReady

func WaitForDeploymentReplicasReady(c *kubernetes.Clientset, namespace, name string) error

WaitForDeploymentReplicasReady will wait for replicase to become ready and return an error if they do not

func WaitForDeploymentReplicasReadyOrDie

func WaitForDeploymentReplicasReadyOrDie(c *kubernetes.Clientset, namespace, name string)

WaitForDeploymentReplicasReadyOrDie adds the ability to fatal out if the replicas don't become ready

func WaitForPVC added in v1.9.4

func WaitForPVC(clientSet *kubernetes.Clientset, namespace, name string) (*k8sv1.PersistentVolumeClaim, error)

WaitForPVC waits for a PVC

func WaitForPVCAnnotation

func WaitForPVCAnnotation(clientSet *kubernetes.Clientset, namespace string, pvc *k8sv1.PersistentVolumeClaim, annotation string) (string, bool, error)

WaitForPVCAnnotation waits for an anotation to appear on a PVC

func WaitForPVCAnnotationWithValue

func WaitForPVCAnnotationWithValue(clientSet *kubernetes.Clientset, namespace string, pvc *k8sv1.PersistentVolumeClaim, annotation, expected string) (bool, error)

WaitForPVCAnnotationWithValue waits for an annotation with a specific value on a PVC

func WaitForPersistentVolumeClaimPhase

func WaitForPersistentVolumeClaimPhase(clientSet *kubernetes.Clientset, namespace string, phase k8sv1.PersistentVolumeClaimPhase, pvcName string) error

WaitForPersistentVolumeClaimPhase waits for the PVC to be in a particular phase (Pending, Bound, or Lost)

func WaitPVCDeleted added in v1.4.0

func WaitPVCDeleted(clientSet *kubernetes.Clientset, pvcName, namespace string, timeout time.Duration) (bool, error)

WaitPVCDeleted polls the specified PVC until timeout or it's not found, returns true if deleted in the specified timeout period, and any errors

func WaitPVCDeletedByUID added in v1.20.0

func WaitPVCDeletedByUID(clientSet *kubernetes.Clientset, pvcSpec *k8sv1.PersistentVolumeClaim, timeout time.Duration) (bool, error)

WaitPVCDeletedByUID polls the specified PVC until timeout or it's not found, returns true if the PVC with the same UID is deleted in the specified timeout period, and any errors

func WaitPVCPodStatusFailed added in v1.8.0

func WaitPVCPodStatusFailed(clientSet *kubernetes.Clientset, pvc *k8sv1.PersistentVolumeClaim) (bool, error)

WaitPVCPodStatusFailed waits for the pod status annotation to be Failed

func WaitPVCPodStatusReady added in v1.11.0

func WaitPVCPodStatusReady(clientSet *kubernetes.Clientset, pvc *k8sv1.PersistentVolumeClaim) (bool, error)

WaitPVCPodStatusReady waits for the pod ready annotation to be true

func WaitPVCPodStatusRunning added in v1.8.0

func WaitPVCPodStatusRunning(clientSet *kubernetes.Clientset, pvc *k8sv1.PersistentVolumeClaim) (bool, error)

WaitPVCPodStatusRunning waits for the pod status annotation to be Running

func WaitPVCPodStatusSucceeded added in v1.8.0

func WaitPVCPodStatusSucceeded(clientSet *kubernetes.Clientset, pvc *k8sv1.PersistentVolumeClaim) (bool, error)

WaitPVCPodStatusSucceeded waits for the pod status annotation to be Succeeded

func WaitPVCUploadPodStatusRunning

func WaitPVCUploadPodStatusRunning(clientSet *kubernetes.Clientset, pvc *k8sv1.PersistentVolumeClaim) (bool, error)

WaitPVCUploadPodStatusRunning waits for the upload server pod status annotation to be Running

func WaitPodDeleted

func WaitPodDeleted(clientSet *kubernetes.Clientset, podName, namespace string, timeout time.Duration) (bool, error)

WaitPodDeleted waits fo a pod to no longer exist returns whether the pod is deleted along with any error

func WaitTimeoutForPVDeleted added in v1.24.0

func WaitTimeoutForPVDeleted(clientSet *kubernetes.Clientset, pv *k8sv1.PersistentVolume, timeout time.Duration) error

WaitTimeoutForPVDeleted waits until the given pv no longer exists

func WaitTimeoutForPVReady added in v1.5.0

func WaitTimeoutForPVReady(clientSet *kubernetes.Clientset, pvName string, timeout time.Duration) error

WaitTimeoutForPVReady waits for the given pv to be created and ready

func WaitTimeoutForPVStatus added in v1.5.0

func WaitTimeoutForPVStatus(clientSet *kubernetes.Clientset, pvName string, status k8sv1.PersistentVolumePhase, timeout time.Duration) error

WaitTimeoutForPVStatus waits for the given pv to be created and have a expected status

func WaitTimeoutForPodFailed added in v1.6.0

func WaitTimeoutForPodFailed(clientSet *kubernetes.Clientset, podName, namespace string, timeout time.Duration) error

WaitTimeoutForPodFailed waits for pod to fail

func WaitTimeoutForPodReady

func WaitTimeoutForPodReady(clientSet *kubernetes.Clientset, podName, namespace string, timeout time.Duration) error

WaitTimeoutForPodReady waits for the given pod to be created and ready

func WaitTimeoutForPodStatus

func WaitTimeoutForPodStatus(clientSet *kubernetes.Clientset, podName, namespace string, status k8sv1.PodPhase, timeout time.Duration) error

WaitTimeoutForPodStatus waits for the given pod to be created and have a expected status

func WaitTimeoutForPodSucceeded

func WaitTimeoutForPodSucceeded(clientSet *kubernetes.Clientset, podName, namespace string, timeout time.Duration) error

WaitTimeoutForPodSucceeded waits for pod to succeed

Types

This section is empty.

Jump to

Keyboard shortcuts

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