tests

package
v0.53.2 Latest Latest
Warning

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

Go to latest
Published: Jun 14, 2022 License: Apache-2.0 Imports: 83 Imported by: 1

README

Integration tests

Writing e2e tests

We aim to run e2e tests in parallel by default. As such the following rules should be followed:

  • Use cirros and alpine VMs for testing wherever possible. If you have to use use another OS, discuss on the PR why it is needed.
  • Stay within the boundary of the Testnamespaces which we prove. If you have to create resources outside of the test namespaces, discuss potential solutions on such a PR.
  • If you really have to run tests serial (destructive tests, infra-tests, ...), mark the test with a [Serial] tag.
  • If tests are not using the default cleanup code, additional custom preparations may be necessary.

The following types of tests need to be marked as [Serial] right now:

  • Tests which use PVCs or DataVolumes (parallelizing these is on the way).
  • Tests which use BeforeAll.

Additional suggestions:

  • The [Disruptive] tag is recognized by the test suite but is not yet mandatory. Feel free to set it on destructive tests.
  • Conformance tests need to be marked with a [Conformance] tag.

Test Namespaces

If tests are executed in parallel, every test gets its unique set of namespaces to test in. If you write a test and reference the namespaces test.NamespaceTestDefault, test.NamespaceTestAlternative or tests.NamespaceTestOperator, you get different values, based on the ginkgo execution node.

For as long as test resources are created by referencing these namespaces, there is no test conflict to expect.

Running integration tests

Integration tests require a running Kubevirt cluster. Once you have a running Kubevirt cluster, you can use the -master and the -kubeconfig flags to point the tests to the cluster.

Running networking tests for outside connectivity

When running the tests with no internet connection, some networking tests ,that test outside connectivity, might fail, and you might want to skip them. For that some additional flags are needed to be passed. In addition, if you'd like to test outside connectivity using different addresses than the default (8.8.8.8, 2001:db8:1::1 and google.com), you can achive that with the designated flags as well.

For each method detailed below, there is note about the needed flags to the outside connectivity tests and how to pass them.

Run them on an arbitrary KubeVirt installation

cd tests # from the git repo root folder
go test -kubeconfig=path/to/my/config -config=default-config.json

outside connectivity tests: The tests will run by default. To skip the outside connectivity tests add -ginkgo.skip='\[outside_connectivity\]' To your go command. To change the IPV4, IPV6 or DNS used for outside connectivity tests, add conn-check-ipv4-address, conn-check-ipv6-address or conn-check-dns to your go command, with the desired value. For example:

go test -kubeconfig=$KUBECONFIG -config=default-config.json \
-conn-check-ipv4-address=8.8.4.4 -conn-check-ipv6-address=2620:119:35::35 \
-conn-check-dns=amazon.com \

Run them on one of the core KubeVirt providers

There is a make target to run this with the config taken from hack/config.sh:

# from the git repo root folder
make functest

outside connectivity tests: The tests will run by default. To skip the tests export KUBEVIRT_E2E_SKIP='\[outside_connectivity\]' environment variable before running the tests. To change the IPV4, IPV6 or DNS used for outside connectivity tests, you can export CONN_CHECK_IPV4_ADDRESS, CONN_CHECK_IPV6_ADDRESS and
CONN_CHECK_DNS with the desired values. For example:

export CONN_CHECK_IPV4_ADDRESS=8.8.4.4
export CONN_CHECK_IPV6_ADDRESS=2620:119:35::35
export CONN_CHECK_DNS=amazon.com

Run them anywhere inside of container

# Create directory for data / results / kubectl binary
mkdir -p /tmp/kubevirt-tests-data
# Make sure that eveybody can write there
setfacl -m d:o:rwx /tmp/kubevirt-tests-data
setfacl -m o:rwx /tmp/kubevirt-tests-data

docker run \
    -v /tmp/kubevirt-tests-data:/home/kubevirt-tests/data:rw,z --rm \
    kubevirt/tests:latest \
        --kubeconfig=data/openshift-master.kubeconfig \
        --container-tag=latest \
        --container-prefix=quay.io/kubevirt \
        --test.timeout 180m \
        --junit-output=data/results/junit.xml \
        --deploy-testing-infra \
        --path-to-testing-infra-manifests=data/manifests

Documentation

Overview

* This file is part of the KubeVirt project * * 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. * * Copyright 2021 Red Hat, Inc. *

Index

Constants

View Source
const (
	UsrBinVirtChroot = "/usr/bin/virt-chroot"
	Mount            = "--mount"
	Proc1NsMnt       = "/proc/1/ns/mnt"
)
View Source
const (
	JobRetry   = 3
	JobTTL     = 60
	JobTimeout = 480
)

Default Job arguments to be used with NewJob.

View Source
const (
	KubernetesIoHostName         = "kubernetes.io/hostname"
	BinBash                      = "/bin/bash"
	DefaultPvcMountPath          = "/pvc"
	StartingVMInstance           = "Starting a VirtualMachineInstance"
	WaitingVMInstanceStart       = "Waiting until the VirtualMachineInstance will start"
	CouldNotFindComputeContainer = "could not find compute container for pod"
	EchoLastReturnValue          = "echo $?\n"
	BashHelloScript              = "#!/bin/bash\necho 'hello'\n"
)
View Source
const (
	OSWindows        = "windows"
	OSWindowsSysprep = "windows-sysprep" // This is for sysprep tests, they run on a syspreped image of windows of a different version.
	OSRhel           = "rhel"
	CustomHostPath   = "custom-host-path"
)
View Source
const (
	DiskAlpineHostPath = "disk-alpine-host-path"
	DiskWindows        = "disk-windows"
	DiskWindowsSysprep = "disk-windows-sysprep"
	DiskCustomHostPath = "disk-custom-host-path"
)
View Source
const (
	TCPServer  = server("\"Hello World!\"&\n")
	HTTPServer = server("\"HTTP/1.1 200 OK\\nContent-Length: 12\\n\\nHello World!\"&\n")
)
View Source
const ContainerCompletionWaitTime = 60
View Source
const MigrationWaitTime = 240
View Source
const StorageClassHostPathSeparateDevice = "host-path-sd"
View Source
const SubresourceTestLabel = "subresource-access-test-pod"
View Source
const VMIResource = "virtualmachineinstances"

Variables

This section is empty.

Functions

func AddBootOrderToDisk added in v0.6.0

func AddBootOrderToDisk(vmi *v1.VirtualMachineInstance, diskName string, bootorder *uint) *v1.VirtualMachineInstance

func AddCloudInitConfigDriveData added in v0.19.0

func AddCloudInitConfigDriveData(vmi *v1.VirtualMachineInstance, name, userData, networkData string, b64encode bool)

func AddCloudInitNoCloudData added in v0.19.0

func AddCloudInitNoCloudData(vmi *v1.VirtualMachineInstance, name, userData, networkData string, b64encode bool)

func AddConfigMapDisk added in v0.9.0

func AddConfigMapDisk(vmi *v1.VirtualMachineInstance, configMapName string, volumeName string)

func AddConfigMapDiskWithCustomLabel added in v0.29.0

func AddConfigMapDiskWithCustomLabel(vmi *v1.VirtualMachineInstance, configMapName string, volumeName string, volumeLabel string)

func AddDownwardMetricsVolume added in v0.42.0

func AddDownwardMetricsVolume(vmi *v1.VirtualMachineInstance, volumeName string)

func AddEphemeralCdrom added in v0.12.0

func AddEphemeralCdrom(vmi *v1.VirtualMachineInstance, name string, bus v1.DiskBus, image string) *v1.VirtualMachineInstance

func AddEphemeralDisk added in v0.3.0

func AddEphemeralDisk(vmi *v1.VirtualMachineInstance, name string, bus v1.DiskBus, image string) *v1.VirtualMachineInstance

func AddExplicitPodNetworkInterface added in v0.7.0

func AddExplicitPodNetworkInterface(vmi *v1.VirtualMachineInstance)

func AddHostDisk added in v0.9.4

func AddHostDisk(vmi *v1.VirtualMachineInstance, path string, diskType v1.HostDiskType, name string)

func AddLabelDownwardAPIVolume added in v0.35.0

func AddLabelDownwardAPIVolume(vmi *v1.VirtualMachineInstance, volumeName string)

func AddPVCDisk added in v0.5.0

func AddPVCDisk(vmi *v1.VirtualMachineInstance, name string, bus v1.DiskBus, claimName string) *v1.VirtualMachineInstance

func AddPVCFS added in v0.34.0

func AddPVCFS(vmi *v1.VirtualMachineInstance, name string, claimName string) *v1.VirtualMachineInstance

func AddSecretDisk added in v0.9.0

func AddSecretDisk(vmi *v1.VirtualMachineInstance, secretName string, volumeName string)

func AddSecretDiskWithCustomLabel added in v0.29.0

func AddSecretDiskWithCustomLabel(vmi *v1.VirtualMachineInstance, secretName string, volumeName string, volumeLabel string)

func AddServiceAccountDisk added in v0.9.2

func AddServiceAccountDisk(vmi *v1.VirtualMachineInstance, serviceAccountName string)

func AddUserData added in v0.9.0

func AddUserData(vmi *v1.VirtualMachineInstance, name string, userData string)

func AddVolumeAndVerify added in v0.47.0

func AddVolumeAndVerify(virtClient kubecli.KubevirtClient, storageClass string, vm *v1.VirtualMachine, addVMIOnly bool) string

func AppendEmptyDisk added in v0.16.0

func AppendEmptyDisk(vmi *v1.VirtualMachineInstance, diskName string, busName v1.DiskBus, diskSize string)

func ArchiveToFile added in v0.51.0

func ArchiveToFile(tgtFile *os.File, sourceFilesNames ...string)

func BeforeTestCleanup

func BeforeTestCleanup()

func CallUrlOnPod added in v0.30.5

func CallUrlOnPod(pod *k8sv1.Pod, port string, url string) ([]byte, error)

func ChangeImgFilePermissionsToNonQEMU added in v0.53.0

func ChangeImgFilePermissionsToNonQEMU(pvc *k8sv1.PersistentVolumeClaim)

func CheckCloudInitMetaData added in v0.46.0

func CheckCloudInitMetaData(vmi *v1.VirtualMachineInstance, testFile, testData string)

func ClearDedicatedMigrationNetwork added in v0.49.0

func ClearDedicatedMigrationNetwork() *v1.KubeVirt

func ConfirmVMIPostMigration added in v0.35.0

func ConfirmVMIPostMigration(virtClient kubecli.KubevirtClient, vmi *v1.VirtualMachineInstance, migrationUID string) *v1.VirtualMachineInstance

func ContainsCrt added in v0.29.0

func ContainsCrt(bundle []byte, containedCrt []byte) bool

func CopyAlpineWithNonQEMUPermissions added in v0.48.0

func CopyAlpineWithNonQEMUPermissions() (dstPath, nodeName string)

func CopyFromPod added in v0.46.0

func CopyFromPod(virtCli kubecli.KubevirtClient, pod *k8sv1.Pod, containerName, sourceFile, targetFile string) (stderr string, err error)

func CreateAllSeparateDeviceHostPathPvs added in v0.44.2

func CreateAllSeparateDeviceHostPathPvs(osName string)

func CreateArchive added in v0.51.0

func CreateArchive(targetFile, tgtDir string, sourceFilesNames ...string) string

func CreateBlockPVC added in v0.49.1

func CreateBlockPVC(virtClient kubecli.KubevirtClient, name string, size resource.Quantity) *k8sv1.PersistentVolumeClaim

func CreateConfigMap added in v0.9.0

func CreateConfigMap(name string, data map[string]string)

func CreateErrorDisk added in v0.44.1

func CreateErrorDisk(nodeName string) (address string, device string)

func CreateFaultyDisk added in v0.41.1

func CreateFaultyDisk(nodeName, deviceName string)

func CreateHostDiskImage added in v0.9.0

func CreateHostDiskImage(diskPath string) *k8sv1.Pod

func CreateHostPathPVC added in v0.11.0

func CreateHostPathPVC(os, size string)

func CreateHostPathPv added in v0.6.1

func CreateHostPathPv(osName, hostPath string) string

func CreateHostPathPvWithSizeAndStorageClass added in v0.49.1

func CreateHostPathPvWithSizeAndStorageClass(osName, hostPath, size, sc string) string

func CreateNFSPvAndPvc added in v0.19.0

func CreateNFSPvAndPvc(name string, namespace string, size string, nfsTargetIP string, os string)

func CreatePVC added in v0.5.0

func CreatePVC(os, size, storageClass string, recycledPV bool) *k8sv1.PersistentVolumeClaim

func CreatePVandPVCwithFaultyDisk added in v0.41.1

func CreatePVandPVCwithFaultyDisk(nodeName, devicePath, namespace string) (*corev1.PersistentVolume, *corev1.PersistentVolumeClaim, error)

func CreatePVandPVCwithSCSIDisk added in v0.48.0

func CreatePVandPVCwithSCSIDisk(nodeName, devicePath, namespace, storageClass, pvName, pvcName string) (*corev1.PersistentVolume, *corev1.PersistentVolumeClaim, error)

func CreatePodAndWaitUntil added in v0.34.0

func CreatePodAndWaitUntil(pod *corev1.Pod, phaseToWait corev1.PodPhase) *corev1.Pod

func CreateRuntimeClass added in v0.44.1

func CreateRuntimeClass(name, handler string) (*nodev1.RuntimeClass, error)

func CreateSCSIDisk added in v0.48.0

func CreateSCSIDisk(nodeName string, opts []string) (address string, device string)

CreateSCSIDisk creates a SCSI disk using the scsi_debug module. This function should be used only to check SCSI disk functionalities and not for creating a filesystem or any data. The disk is stored in ram and it isn't suitable for storing large amount of data.

func CreateSecret added in v0.9.0

func CreateSecret(name string, data map[string]string)

func CreateVmiOnNode added in v0.47.0

func CreateVmiOnNode(vmi *v1.VirtualMachineInstance, nodeName string) *v1.VirtualMachineInstance

CreateVmiOnNode creates a VMI on the specified node

func CreateVmiOnNodeLabeled added in v0.49.1

func CreateVmiOnNodeLabeled(vmi *v1.VirtualMachineInstance, nodeLabel, labelValue string) *v1.VirtualMachineInstance

CreateVmiOnNodeLabeled creates a VMI a node that has a give label set to a given value

func DeleteAllSeparateDeviceHostPathPvs added in v0.44.2

func DeleteAllSeparateDeviceHostPathPvs()

func DeleteAlpineWithNonQEMUPermissions added in v0.48.0

func DeleteAlpineWithNonQEMUPermissions()

func DeleteConfigMap added in v0.9.0

func DeleteConfigMap(name string)

func DeletePV added in v0.5.0

func DeletePV(os string)

func DeletePVC added in v0.5.0

func DeletePVC(os string)

func DeletePvAndPvc added in v0.9.2

func DeletePvAndPvc(name string)

func DeleteRuntimeClass added in v0.44.1

func DeleteRuntimeClass(name string) error

func DeleteSecret added in v0.9.0

func DeleteSecret(name string)

func DeprecatedBeforeAll deprecated added in v0.52.0

func DeprecatedBeforeAll(fn func())

Deprecated: DeprecatedBeforeAll must not be used. Tests need to be self-contained to allow sane cleanup, accurate reporting and parallel execution.

func DetectLatestUpstreamOfficialTag added in v0.31.0

func DetectLatestUpstreamOfficialTag() (string, error)

func DisableFeatureGate added in v0.20.0

func DisableFeatureGate(feature string)

func DryRunCreate added in v0.47.0

func DryRunCreate(client *rest.RESTClient, resource, namespace string, obj interface{}, result runtime.Object) error

func DryRunPatch added in v0.47.0

func DryRunPatch(client *rest.RESTClient, resource, name, namespace string, pt types.PatchType, data []byte, result runtime.Object) error

func DryRunUpdate added in v0.47.0

func DryRunUpdate(client *rest.RESTClient, resource, name, namespace string, obj interface{}, result runtime.Object) error

func EnableFeatureGate added in v0.20.0

func EnableFeatureGate(feature string) *v1.KubeVirt

func EncodePrivateKeyToPEM added in v0.19.0

func EncodePrivateKeyToPEM(privateKey *rsa.PrivateKey) []byte

EncodePrivateKeyToPEM encodes Private Key from RSA to PEM format

func EnsureNoMigrationMetadataInPersistentXML added in v0.41.4

func EnsureNoMigrationMetadataInPersistentXML(vmi *v1.VirtualMachineInstance)

func EnsurePodsCertIsSynced added in v0.29.0

func EnsurePodsCertIsSynced(labelSelector string, namespace string, port string) []byte

EnsurePodsCertIsSynced waits until new certificates are rolled out to all pods which are matching the specified labelselector. Once all certificates are in sync, the final secret is returned

func ExecuteCommandInVirtHandlerPod added in v0.41.1

func ExecuteCommandInVirtHandlerPod(nodeName string, args []string) (stdout string, err error)

func ExecuteCommandOnNodeThroughVirtHandler added in v0.53.0

func ExecuteCommandOnNodeThroughVirtHandler(virtCli kubecli.KubevirtClient, nodeName string, command []string) (stdout string, stderr string, err error)

func ExecuteCommandOnPod added in v0.4.1

func ExecuteCommandOnPod(virtCli kubecli.KubevirtClient, pod *k8sv1.Pod, containerName string, command []string) (string, error)

func ExecuteCommandOnPodV2 added in v0.9.0

func ExecuteCommandOnPodV2(virtCli kubecli.KubevirtClient, pod *k8sv1.Pod, containerName string, command []string) (stdout, stderr string, err error)

func ExpectMigrationSuccess added in v0.36.3

func ExpectMigrationSuccess(virtClient kubecli.KubevirtClient, migration *v1.VirtualMachineInstanceMigration, timeout int) string

func ExpectResourceVersionToBeLessEqualThanConfigVersion added in v0.52.0

func ExpectResourceVersionToBeLessEqualThanConfigVersion(resourceVersion, configVersion string) bool

func FixErrorDevice added in v0.44.1

func FixErrorDevice(nodeName string)

func FormatIPForURL added in v0.29.0

func FormatIPForURL(ip string) string

func ForwardPorts added in v0.17.0

func ForwardPorts(pod *k8sv1.Pod, ports []string, stop chan struct{}, readyTimeout time.Duration) error

func GenerateHelloWorldServer added in v0.19.0

func GenerateHelloWorldServer(vmi *v1.VirtualMachineInstance, testPort int, protocol string, loginTo console.LoginToFunction, sudoNeeded bool)

func GenerateMigrationCNINetworkAttachmentDefinition added in v0.49.0

func GenerateMigrationCNINetworkAttachmentDefinition() *k8snetworkplumbingwgv1.NetworkAttachmentDefinition

func GeneratePrivateKey added in v0.19.0

func GeneratePrivateKey(bitSize int) (*rsa.PrivateKey, error)

GeneratePrivateKey creates a RSA Private Key of specified byte size

func GeneratePublicKey added in v0.19.0

func GeneratePublicKey(privatekey *rsa.PublicKey) ([]byte, error)

GeneratePublicKey will return in the format "ssh-rsa ..."

func GenerateRandomMac added in v0.26.0

func GenerateRandomMac() (net.HardwareAddr, error)

func GenerateTemplateJson added in v0.7.0

func GenerateTemplateJson(template *vmsgen.Template, generateDirectory string) (string, error)

func GenerateVMIJson added in v0.6.1

func GenerateVMIJson(vmi *v1.VirtualMachineInstance, generateDirectory string) (string, error)

func GenerateVMJson added in v0.17.0

func GenerateVMJson(vm *v1.VirtualMachine, generateDirectory string) (string, error)

func GetBundleFromConfigMap added in v0.29.0

func GetBundleFromConfigMap(configMapName string) ([]byte, []*x509.Certificate)

func GetCertFromSecret added in v0.29.0

func GetCertFromSecret(secretName string) []byte

func GetCertsForPods added in v0.29.0

func GetCertsForPods(labelSelector string, namespace string, port string) ([][]byte, error)

GetCertsForPods returns the used certificates for all pods matching the label selector

func GetComputeContainerOfPod added in v0.19.0

func GetComputeContainerOfPod(pod *k8sv1.Pod) *k8sv1.Container

func GetContainerDiskContainerOfPod added in v0.19.0

func GetContainerDiskContainerOfPod(pod *k8sv1.Pod, volumeName string) *k8sv1.Container

func GetContainerOfPod added in v0.19.0

func GetContainerOfPod(pod *k8sv1.Pod, containerName string) *k8sv1.Container

func GetFedoraToolsGuestAgentBlacklistUserData added in v0.36.3

func GetFedoraToolsGuestAgentBlacklistUserData(commands string) string

func GetIdOfLauncher added in v0.52.0

func GetIdOfLauncher(vmi *v1.VirtualMachineInstance) string

func GetKubernetesApiServiceIp added in v0.42.0

func GetKubernetesApiServiceIp(virtClient kubecli.KubevirtClient) (string, error)

func GetKubevirtVMMetricsFunc added in v0.53.0

func GetKubevirtVMMetricsFunc(virtClient *kubecli.KubevirtClient, pod *k8sv1.Pod) func(string) string

func GetPodByVirtualMachineInstance added in v0.17.0

func GetPodByVirtualMachineInstance(vmi *v1.VirtualMachineInstance) *k8sv1.Pod

func GetPodCPUSet added in v0.50.0

func GetPodCPUSet(pod *k8sv1.Pod) (output string, err error)

func GetPodsCertIfSynced added in v0.29.0

func GetPodsCertIfSynced(labelSelector string, namespace string, port string) (cert []byte, synced bool, err error)

GetPodsCertIfSynced returns the certificate for all matching pods once all of them use the same certificate

func GetPodsCgroupVersion added in v0.50.0

func GetPodsCgroupVersion(pod *k8sv1.Pod, virtClient kubecli.KubevirtClient) cgroup.CgroupVersion

func GetPolicyMatchedToVmi added in v0.49.0

func GetPolicyMatchedToVmi(name string, vmi *v1.VirtualMachineInstance, namespace *k8sv1.Namespace, matchingVmiLabels, matchingNSLabels int) *migrationsv1.MigrationPolicy

func GetRunningPodByLabel added in v0.3.0

func GetRunningPodByLabel(label string, labelType string, namespace string, node string) (*k8sv1.Pod, error)

func GetRunningPodByVirtualMachineInstance added in v0.8.0

func GetRunningPodByVirtualMachineInstance(vmi *v1.VirtualMachineInstance, namespace string) *k8sv1.Pod

func GetRunningVMIDomainSpec added in v0.28.0

func GetRunningVMIDomainSpec(vmi *v1.VirtualMachineInstance) (*launcherApi.DomainSpec, error)

func GetRunningVirtualMachineInstanceDomainXML added in v0.9.2

func GetRunningVirtualMachineInstanceDomainXML(virtClient kubecli.KubevirtClient, vmi *v1.VirtualMachineInstance) (string, error)

func GetSupportedCPUFeatures added in v0.40.0

func GetSupportedCPUFeatures(nodes k8sv1.NodeList) []string

func GetSupportedCPUModels added in v0.40.0

func GetSupportedCPUModels(nodes k8sv1.NodeList) []string

func GetUpstreamReleaseAssetURL added in v0.48.0

func GetUpstreamReleaseAssetURL(tag string, assetName string) string

func GetVMIsCgroupVersion added in v0.50.0

func GetVMIsCgroupVersion(vmi *v1.VirtualMachineInstance, virtClient kubecli.KubevirtClient) cgroup.CgroupVersion

func GetVmPodName added in v0.15.0

func GetVmPodName(virtCli kubecli.KubevirtClient, vmi *v1.VirtualMachineInstance) string

func HasExperimentalIgnitionSupport added in v0.17.3

func HasExperimentalIgnitionSupport() bool

func IsLauncherCapabilityDropped added in v0.36.0

func IsLauncherCapabilityDropped(capability k8sv1.Capability) bool

func IsLauncherCapabilityValid added in v0.30.4

func IsLauncherCapabilityValid(capability k8sv1.Capability) bool

func IsRunningOnKindInfra added in v0.29.0

func IsRunningOnKindInfra() bool

func IsStorageClassBindingModeWaitForFirstConsumer added in v0.49.1

func IsStorageClassBindingModeWaitForFirstConsumer(sc string) bool

func IsUsingBuiltinNodeDrainKey added in v0.29.0

func IsUsingBuiltinNodeDrainKey() bool

func LibvirtDomainIsPaused added in v0.41.0

func LibvirtDomainIsPaused(virtClient kubecli.KubevirtClient, vmi *v1.VirtualMachineInstance) (bool, error)

func LibvirtDomainIsPersistent added in v0.36.3

func LibvirtDomainIsPersistent(virtClient kubecli.KubevirtClient, vmi *v1.VirtualMachineInstance) (bool, error)

func LoginToVM added in v0.40.0

func MountCloudInitFunc added in v0.46.0

func MountCloudInitFunc(devName string) func(*v1.VirtualMachineInstance)

func NewBool added in v0.3.0

func NewBool(x bool) *bool

func NewHTTPServerPod added in v0.34.0

func NewHTTPServerPod(port int) *corev1.Pod

func NewHelloWorldJobHTTP added in v0.33.0

func NewHelloWorldJobHTTP(host string, port string) *batchv1.Job

NewHelloWorldJobHTTP gets an IP address and a port, which it uses to create a pod. This pod tries to contact the host on the provided port, over HTTP. On success - it expects to receive "Hello World!".

func NewHelloWorldJobTCP added in v0.51.0

func NewHelloWorldJobTCP(host string, port string) *batchv1.Job

NewHelloWorldJob takes a DNS entry or an IP and a port which it will use to create a job which tries to contact the host on the provided port. It expects to receive "Hello World!" to succeed.

func NewHelloWorldJobUDP added in v0.6.0

func NewHelloWorldJobUDP(host, port string) *batchv1.Job

NewHelloWorldJobUDP takes a DNS entry or an IP and a port which it will use create a pod which tries to contact the host on the provided port. It expects to receive "Hello UDP World!" to succeed. Note that in case of UDP, the server will not see the connection unless something is sent over it However, netcat does not work well with UDP and closes before the answer arrives, we make netcat wait until the defined timeout is expired to prevent this from happening.

func NewInt32 added in v0.0.3

func NewInt32(x int32) *int32

func NewJob added in v0.33.0

func NewJob(name string, cmd, args []string, retry, ttlAfterFinished int32, timeout int64) *batchv1.Job

NewJob creates a job configuration that runs a single Pod. A name is used for the job & pod while the command and its arguments are passed to the pod for execution. In addition, the following arguments control the job behavior: retry: The number of times the job should try and run the pod. ttlAfterFinished: The period of time between the job finishing and its auto-deletion.

Make sure to leave enough time for the reporter to collect the logs.

timeout: The overall time at which the job is terminated, regardless of it finishing or not.

func NewRandomFedoraVMI added in v0.39.0

func NewRandomFedoraVMI() *v1.VirtualMachineInstance

func NewRandomFedoraVMIWithBlacklistGuestAgent added in v0.36.3

func NewRandomFedoraVMIWithBlacklistGuestAgent(commands string) *v1.VirtualMachineInstance

func NewRandomFedoraVMIWithDmidecode added in v0.22.0

func NewRandomFedoraVMIWithDmidecode() *v1.VirtualMachineInstance

func NewRandomFedoraVMIWithGuestAgent added in v0.39.0

func NewRandomFedoraVMIWithGuestAgent() *v1.VirtualMachineInstance

func NewRandomFedoraVMIWithVirtWhatCpuidHelper added in v0.34.0

func NewRandomFedoraVMIWithVirtWhatCpuidHelper() *v1.VirtualMachineInstance

func NewRandomMigration added in v0.9.2

func NewRandomMigration(vmiName string, namespace string) *v1.VirtualMachineInstanceMigration

func NewRandomReplicaSetFromVMI added in v0.6.1

func NewRandomReplicaSetFromVMI(vmi *v1.VirtualMachineInstance, replicas int32) *v1.VirtualMachineInstanceReplicaSet

func NewRandomVMI added in v0.6.1

func NewRandomVMI() *v1.VirtualMachineInstance

func NewRandomVMIWithCDRom added in v0.6.1

func NewRandomVMIWithCDRom(claimName string) *v1.VirtualMachineInstance

func NewRandomVMIWithConfigMap added in v0.9.0

func NewRandomVMIWithConfigMap(configMapName string) *v1.VirtualMachineInstance

func NewRandomVMIWithDataVolume added in v0.8.0

func NewRandomVMIWithDataVolume(dataVolumeName string) *v1.VirtualMachineInstance

func NewRandomVMIWithEFIBootloader added in v0.14.0

func NewRandomVMIWithEFIBootloader() *v1.VirtualMachineInstance

func NewRandomVMIWithEphemeralDisk added in v0.6.1

func NewRandomVMIWithEphemeralDisk(containerImage string) *v1.VirtualMachineInstance

func NewRandomVMIWithEphemeralDiskAndConfigDriveUserdata added in v0.19.0

func NewRandomVMIWithEphemeralDiskAndConfigDriveUserdata(containerImage string, userData string) *v1.VirtualMachineInstance

func NewRandomVMIWithEphemeralDiskAndConfigDriveUserdataHighMemory added in v0.19.0

func NewRandomVMIWithEphemeralDiskAndConfigDriveUserdataHighMemory(containerImage string, userData string) *v1.VirtualMachineInstance

func NewRandomVMIWithEphemeralDiskAndConfigDriveUserdataNetworkData added in v0.19.0

func NewRandomVMIWithEphemeralDiskAndConfigDriveUserdataNetworkData(containerImage, userData, networkData string, b64encode bool) *v1.VirtualMachineInstance

func NewRandomVMIWithEphemeralDiskAndUserdata added in v0.6.1

func NewRandomVMIWithEphemeralDiskAndUserdata(containerImage string, userData string) *v1.VirtualMachineInstance

func NewRandomVMIWithEphemeralDiskAndUserdataHighMemory added in v0.6.1

func NewRandomVMIWithEphemeralDiskAndUserdataHighMemory(containerImage string, userData string) *v1.VirtualMachineInstance

func NewRandomVMIWithEphemeralDiskAndUserdataNetworkData added in v0.14.0

func NewRandomVMIWithEphemeralDiskAndUserdataNetworkData(containerImage, userData, networkData string, b64encode bool) *v1.VirtualMachineInstance

func NewRandomVMIWithEphemeralDiskHighMemory added in v0.6.1

func NewRandomVMIWithEphemeralDiskHighMemory(containerImage string) *v1.VirtualMachineInstance

func NewRandomVMIWithEphemeralPVC added in v0.6.1

func NewRandomVMIWithEphemeralPVC(claimName string) *v1.VirtualMachineInstance

func NewRandomVMIWithFSFromDataVolume added in v0.34.0

func NewRandomVMIWithFSFromDataVolume(dataVolumeName string) *v1.VirtualMachineInstance

func NewRandomVMIWithHostDisk added in v0.9.0

func NewRandomVMIWithHostDisk(diskPath string, diskType v1.HostDiskType, nodeName string) *v1.VirtualMachineInstance

func NewRandomVMIWithNS added in v0.6.1

func NewRandomVMIWithNS(namespace string) *v1.VirtualMachineInstance

func NewRandomVMIWithPVC added in v0.6.1

func NewRandomVMIWithPVC(claimName string) *v1.VirtualMachineInstance

func NewRandomVMIWithPVCAndUserData added in v0.34.0

func NewRandomVMIWithPVCAndUserData(claimName, userData string) *v1.VirtualMachineInstance

func NewRandomVMIWithPVCFS added in v0.34.0

func NewRandomVMIWithPVCFS(claimName string) *v1.VirtualMachineInstance

func NewRandomVMIWithSecret added in v0.9.0

func NewRandomVMIWithSecret(secretName string) *v1.VirtualMachineInstance

func NewRandomVMIWithSecureBoot added in v0.30.4

func NewRandomVMIWithSecureBoot() *v1.VirtualMachineInstance

func NewRandomVMIWithServiceAccount added in v0.9.2

func NewRandomVMIWithServiceAccount(serviceAccountName string) *v1.VirtualMachineInstance

func NewRandomVMIWithWatchdog added in v0.6.1

func NewRandomVMIWithWatchdog() *v1.VirtualMachineInstance

func NewRandomVMWithCloneDataVolume added in v0.20.0

func NewRandomVMWithCloneDataVolume(sourceNamespace, sourceName, targetNamespace string) *v1.VirtualMachine

func NewRandomVMWithDataVolume added in v0.8.0

func NewRandomVMWithDataVolume(imageUrl string, namespace string) *v1.VirtualMachine

func NewRandomVMWithDataVolumeAndUserData added in v0.44.1

func NewRandomVMWithDataVolumeAndUserData(dataVolume *cdiv1.DataVolume, userData string) *v1.VirtualMachine

func NewRandomVMWithDataVolumeAndUserDataInStorageClass added in v0.34.0

func NewRandomVMWithDataVolumeAndUserDataInStorageClass(imageUrl, namespace, userData, storageClass string) *v1.VirtualMachine

func NewRandomVMWithDataVolumeWithRegistryImport added in v0.44.2

func NewRandomVMWithDataVolumeWithRegistryImport(imageUrl, namespace, storageClass string, accessMode k8sv1.PersistentVolumeAccessMode) *v1.VirtualMachine

func NewRandomVMWithEphemeralDisk

func NewRandomVMWithEphemeralDisk(containerImage string) *v1.VirtualMachine

func NewRandomVirtualMachine added in v0.8.0

func NewRandomVirtualMachine(vmi *v1.VirtualMachineInstance, running bool) *v1.VirtualMachine

func NewRandomVirtualMachineInstanceWithBlockDisk added in v0.49.1

func NewRandomVirtualMachineInstanceWithBlockDisk(imageUrl, namespace string, accessMode k8sv1.PersistentVolumeAccessMode) (*v1.VirtualMachineInstance, *cdiv1.DataVolume)

func NewRandomVirtualMachineInstanceWithDisk added in v0.49.1

func NewRandomVirtualMachineInstanceWithDisk(imageUrl, namespace, sc string, accessMode k8sv1.PersistentVolumeAccessMode, volMode k8sv1.PersistentVolumeMode) (*v1.VirtualMachineInstance, *cdiv1.DataVolume)

func NewRandomVirtualMachineInstanceWithFileDisk added in v0.49.1

func NewRandomVirtualMachineInstanceWithFileDisk(imageUrl, namespace string, accessMode k8sv1.PersistentVolumeAccessMode) (*v1.VirtualMachineInstance, *cdiv1.DataVolume)

func NewTCPServerPod added in v0.34.0

func NewTCPServerPod(port int) *corev1.Pod

func NodeNameWithHandler added in v0.41.1

func NodeNameWithHandler() string

func NotDeleted added in v0.5.0

func NotDeleted(vmis *v1.VirtualMachineInstanceList) (notDeleted []v1.VirtualMachineInstance)

func NotDeletedVMs added in v0.49.0

func NotDeletedVMs(vms *v1.VirtualMachineList) (notDeleted []v1.VirtualMachine)

func PodReady added in v0.20.0

func PodReady(pod *k8sv1.Pod) k8sv1.ConditionStatus

func PrepareMetricsURL added in v0.53.0

func PrepareMetricsURL(ip string, port int) string

func PrometheusRuleEnabled added in v0.26.0

func PrometheusRuleEnabled() bool

PrometheusRuleEnabled returns true if the PrometheusRule CRD is enabled and false otherwise.

func RandTmpDir added in v0.29.0

func RandTmpDir() string

func RemoveFaultyDisk added in v0.41.1

func RemoveFaultyDisk(nodeName, deviceName string)

func RemoveHostDiskImage added in v0.9.0

func RemoveHostDiskImage(diskPath string, nodeName string)

func RemoveSCSIDisk added in v0.48.0

func RemoveSCSIDisk(nodeName, address string)

func RenderHostPathPod added in v0.33.0

func RenderHostPathPod(podName string, dir string, hostPathType k8sv1.HostPathType, mountPropagation k8sv1.MountPropagationMode, cmd []string, args []string) *k8sv1.Pod

func RenderPod added in v0.33.0

func RenderPod(name string, cmd []string, args []string) *k8sv1.Pod

func RenderPodWithPVC added in v0.53.0

func RenderPodWithPVC(name string, cmd []string, args []string, pvc *k8sv1.PersistentVolumeClaim) *k8sv1.Pod

func RenderPrivilegedPod added in v0.39.0

func RenderPrivilegedPod(name string, cmd []string, args []string) *k8sv1.Pod

func RetryIfModified added in v0.22.0

func RetryIfModified(do func() error) (err error)

func RetryWithMetadataIfModified added in v0.23.0

func RetryWithMetadataIfModified(objectMeta metav1.ObjectMeta, do func(objectMeta metav1.ObjectMeta) error) (err error)

func RunCommandOnVmiPod added in v0.6.3

func RunCommandOnVmiPod(vmi *v1.VirtualMachineInstance, command []string) string

RunCommandOnVmiPod runs specified command on the virt-launcher pod

func RunCommandOnVmiTargetPod added in v0.36.4

func RunCommandOnVmiTargetPod(vmi *v1.VirtualMachineInstance, command []string) (string, error)

RunCommandOnVmiTargetPod runs specified command on the target virt-launcher pod of a migration

func RunMigration added in v0.49.0

func RunMigrationAndExpectCompletion added in v0.35.0

func RunMigrationAndExpectCompletion(virtClient kubecli.KubevirtClient, migration *v1.VirtualMachineInstanceMigration, timeout int) string

func RunPod added in v0.48.0

func RunPod(pod *k8sv1.Pod) *k8sv1.Pod

func RunPodAndExpectCompletion added in v0.48.0

func RunPodAndExpectCompletion(pod *k8sv1.Pod) *k8sv1.Pod

func RunVMI added in v0.9.0

func RunVMI(vmi *v1.VirtualMachineInstance, timeout int) *v1.VirtualMachineInstance

func RunVMIAndExpectLaunch added in v0.9.0

func RunVMIAndExpectLaunch(vmi *v1.VirtualMachineInstance, timeout int) *v1.VirtualMachineInstance

func RunVMIAndExpectLaunchIgnoreWarnings added in v0.29.0

func RunVMIAndExpectLaunchIgnoreWarnings(vmi *v1.VirtualMachineInstance, timeout int) *v1.VirtualMachineInstance

func RunVMIAndExpectLaunchWithDataVolume added in v0.40.0

func RunVMIAndExpectLaunchWithDataVolume(vmi *v1.VirtualMachineInstance, dv *cdiv1.DataVolume, timeout int) *v1.VirtualMachineInstance

func RunVMIAndExpectScheduling added in v0.17.0

func RunVMIAndExpectScheduling(vmi *v1.VirtualMachineInstance, timeout int) *v1.VirtualMachineInstance

func Running added in v0.35.0

func Running(vmis *v1.VirtualMachineInstanceList) (running []v1.VirtualMachineInstance)

func ServiceMonitorEnabled added in v0.20.6

func ServiceMonitorEnabled() bool

func SetDataVolumeForceBindAnnotation added in v0.49.1

func SetDataVolumeForceBindAnnotation(dv *cdiv1.DataVolume)

func SetDedicatedMigrationNetwork added in v0.49.0

func SetDedicatedMigrationNetwork(nad string) *v1.KubeVirt

func StartHTTPServer added in v0.11.0

func StartHTTPServer(vmi *v1.VirtualMachineInstance, port int, loginTo console.LoginToFunction)

func StartHTTPServerPod added in v0.34.0

func StartHTTPServerPod(port int) *corev1.Pod

func StartHTTPServerWithSourceIp added in v0.52.0

func StartHTTPServerWithSourceIp(vmi *v1.VirtualMachineInstance, port int, sourceIP string, loginTo console.LoginToFunction)

func StartPythonHttpServer added in v0.37.0

func StartPythonHttpServer(vmi *v1.VirtualMachineInstance, port int)

func StartTCPServer added in v0.11.0

func StartTCPServer(vmi *v1.VirtualMachineInstance, port int, loginTo console.LoginToFunction)

func StartTCPServerPod added in v0.34.0

func StartTCPServerPod(port int) *corev1.Pod

func StartVMAndExpectRunning added in v0.53.0

func StartVMAndExpectRunning(virtClient kubecli.KubevirtClient, vm *v1.VirtualMachine) *v1.VirtualMachine

func StartVirtualMachine added in v0.8.0

func StartVirtualMachine(vm *v1.VirtualMachine) *v1.VirtualMachine

func StopVirtualMachine added in v0.8.0

func StopVirtualMachine(vm *v1.VirtualMachine) *v1.VirtualMachine

func StopVirtualMachineWithTimeout added in v0.41.0

func StopVirtualMachineWithTimeout(vm *v1.VirtualMachine, timeout time.Duration) *v1.VirtualMachine

func UnfinishedVMIPodSelector added in v0.6.1

func UnfinishedVMIPodSelector(vmi *v1.VirtualMachineInstance) metav1.ListOptions

func UpdateKubeVirtConfigValueAndWait added in v0.35.0

func UpdateKubeVirtConfigValueAndWait(kvConfig v1.KubeVirtConfiguration) *v1.KubeVirt

UpdateKubeVirtConfigValueAndWait updates the given configuration in the kubevirt custom resource and then waits to allow the configuration events to be propagated to the consumers.

func VMILauncherIgnoreWarnings added in v0.43.0

func VMILauncherIgnoreWarnings(virtClient kubecli.KubevirtClient) func(vmi *v1.VirtualMachineInstance) *v1.VirtualMachineInstance

VMILauncherIgnoreWarnings waiting for the VMI to be up but ignoring warnings like a disconnected guest-agent

func VerifyVolumeAndDiskVMAdded added in v0.47.0

func VerifyVolumeAndDiskVMAdded(virtClient kubecli.KubevirtClient, vm *v1.VirtualMachine, volumeNames ...string)

func VerifyVolumeAndDiskVMIAdded added in v0.47.0

func VerifyVolumeAndDiskVMIAdded(virtClient kubecli.KubevirtClient, vmi *v1.VirtualMachineInstance, volumeNames ...string)

func VolumeExpansionAllowed added in v0.49.1

func VolumeExpansionAllowed(sc string) bool

func WaitAgentConnected added in v0.19.0

func WaitAgentConnected(virtClient kubecli.KubevirtClient, vmi *v1.VirtualMachineInstance)

func WaitAgentDisconnected added in v0.48.0

func WaitAgentDisconnected(virtClient kubecli.KubevirtClient, vmi *v1.VirtualMachineInstance)

func WaitForConfigToBePropagatedToComponent added in v0.35.0

func WaitForConfigToBePropagatedToComponent(podLabel string, resourceVersion string, compareResourceVersions compare, duration time.Duration)

func WaitForJobToFail added in v0.33.0

func WaitForJobToFail(job *batchv1.Job, timeout time.Duration) error

WaitForJobToFail blocks until the given job finishes. On failure, it returns with a nil error, on success or timeout it returns with an error.

func WaitForJobToSucceed added in v0.33.0

func WaitForJobToSucceed(job *batchv1.Job, timeout time.Duration) error

WaitForJobToSucceed blocks until the given job finishes. On success, it returns with a nil error, on failure or timeout it returns with an error.

func WaitForMigrationToDisappearWithTimeout added in v0.16.0

func WaitForMigrationToDisappearWithTimeout(migration *v1.VirtualMachineInstanceMigration, seconds int)

func WaitForPodToDisappearWithTimeout added in v0.27.0

func WaitForPodToDisappearWithTimeout(podName string, seconds int)

func WaitForSuccessfulVMIStart added in v0.6.1

func WaitForSuccessfulVMIStart(vmi runtime.Object) *v1.VirtualMachineInstance

func WaitForSuccessfulVMIStartIgnoreWarnings added in v0.6.1

func WaitForSuccessfulVMIStartIgnoreWarnings(vmi runtime.Object) *v1.VirtualMachineInstance

func WaitForSuccessfulVMIStartWithContext added in v0.35.0

func WaitForSuccessfulVMIStartWithContext(ctx context.Context, vmi runtime.Object) *v1.VirtualMachineInstance

func WaitForSuccessfulVMIStartWithContextIgnoreSelectedWarnings added in v0.40.0

func WaitForSuccessfulVMIStartWithContextIgnoreSelectedWarnings(ctx context.Context, vmi runtime.Object, warningsIgnoreList []string) *v1.VirtualMachineInstance

func WaitForSuccessfulVMIStartWithTimeout added in v0.6.1

func WaitForSuccessfulVMIStartWithTimeout(vmi runtime.Object, seconds int) *v1.VirtualMachineInstance

func WaitForSuccessfulVMIStartWithTimeoutIgnoreWarnings added in v0.19.0

func WaitForSuccessfulVMIStartWithTimeoutIgnoreWarnings(vmi runtime.Object, seconds int) *v1.VirtualMachineInstance

func WaitForVMCondition added in v0.24.0

func WaitForVMCondition(virtClient kubecli.KubevirtClient, vm *v1.VirtualMachine, conditionType v1.VirtualMachineConditionType, timeoutSec int)

func WaitForVMConditionRemovedOrFalse added in v0.24.0

func WaitForVMConditionRemovedOrFalse(virtClient kubecli.KubevirtClient, vm *v1.VirtualMachine, conditionType v1.VirtualMachineConditionType, timeoutSec int)

func WaitForVMICondition added in v0.24.0

func WaitForVMICondition(virtClient kubecli.KubevirtClient, vmi *v1.VirtualMachineInstance, conditionType v1.VirtualMachineInstanceConditionType, timeoutSec int)

func WaitForVMIConditionRemovedOrFalse added in v0.24.0

func WaitForVMIConditionRemovedOrFalse(virtClient kubecli.KubevirtClient, vmi *v1.VirtualMachineInstance, conditionType v1.VirtualMachineInstanceConditionType, timeoutSec int)

func WaitForVMIStartOrFailed added in v0.36.0

func WaitForVMIStartOrFailed(obj runtime.Object, seconds int, wp WarningsPolicy) *v1.VirtualMachineInstance

WaitForVMIStartOrFailed blocks until the specified VirtualMachineInstance reached either Failed or Running states

func WaitForVirtualMachineToDisappearWithTimeout added in v0.5.0

func WaitForVirtualMachineToDisappearWithTimeout(vmi *v1.VirtualMachineInstance, seconds int)

func WaitUntilVMIReady added in v0.8.0

func WaitUntilVMIReadyIgnoreSelectedWarnings added in v0.40.0

func WaitUntilVMIReadyIgnoreSelectedWarnings(vmi *v1.VirtualMachineInstance, loginTo console.LoginToFunction, warningsIgnoreList []string) *v1.VirtualMachineInstance

func WaitUntilVMIReadyWithContext added in v0.35.0

func WaitUntilVMIReadyWithContext(ctx context.Context, vmi *v1.VirtualMachineInstance, loginTo console.LoginToFunction) *v1.VirtualMachineInstance

func WaitUntilVMIReadyWithContextIgnoreSelectedWarnings added in v0.40.0

func WaitUntilVMIReadyWithContextIgnoreSelectedWarnings(ctx context.Context, vmi *v1.VirtualMachineInstance, loginTo console.LoginToFunction, warningsIgnoreList []string) *v1.VirtualMachineInstance

Types

type EventType

type EventType string
const (
	NormalEvent  EventType = "Normal"
	WarningEvent EventType = "Warning"
)

type ObjectEventWatcher

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

func NewObjectEventWatcher

func NewObjectEventWatcher(object runtime.Object) *ObjectEventWatcher

func (*ObjectEventWatcher) SetWarningsPolicy added in v0.40.0

func (w *ObjectEventWatcher) SetWarningsPolicy(wp WarningsPolicy) *ObjectEventWatcher

func (*ObjectEventWatcher) SinceNow

func (w *ObjectEventWatcher) SinceNow() *ObjectEventWatcher

SinceNow sets a watch starting point for events, from the moment on the connection to the apiserver was established.

func (*ObjectEventWatcher) SinceObjectResourceVersion

func (w *ObjectEventWatcher) SinceObjectResourceVersion(object runtime.Object) *ObjectEventWatcher

SinceObjectResourceVersion takes the resource version of the passed in runtime object and takes it as the starting point for all events to watch for.

func (*ObjectEventWatcher) SinceResourceVersion

func (w *ObjectEventWatcher) SinceResourceVersion(rv string) *ObjectEventWatcher

SinceResourceVersion sets the passed in resourceVersion as the starting point for all events to watch for.

func (*ObjectEventWatcher) SinceWatchedObjectResourceVersion

func (w *ObjectEventWatcher) SinceWatchedObjectResourceVersion() *ObjectEventWatcher

SinceWatchedObjectResourceVersion takes the resource version of the runtime object which is watched, and takes it as the starting point for all events to watch for.

func (*ObjectEventWatcher) Timeout

func (w *ObjectEventWatcher) Timeout(duration time.Duration) *ObjectEventWatcher

func (*ObjectEventWatcher) WaitFor

func (w *ObjectEventWatcher) WaitFor(ctx context.Context, eventType EventType, reason interface{}) (e *k8sv1.Event)

func (*ObjectEventWatcher) WaitNotFor added in v0.11.0

func (w *ObjectEventWatcher) WaitNotFor(ctx context.Context, eventType EventType, reason interface{}) (e *k8sv1.Event)

func (*ObjectEventWatcher) Watch

func (w *ObjectEventWatcher) Watch(ctx context.Context, processFunc ProcessFunc, watchedDescription string)

type ProcessFunc

type ProcessFunc func(event *k8sv1.Event) (done bool)

type WarningsPolicy added in v0.40.0

type WarningsPolicy struct {
	FailOnWarnings     bool
	WarningsIgnoreList []string
}

Jump to

Keyboard shortcuts

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