utils

package
v1.16.3 Latest Latest
Warning

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

Go to latest
Published: Oct 23, 2019 License: Apache-2.0 Imports: 70 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var LocalhostCert = []byte(`-----BEGIN CERTIFICATE-----
MIIBjzCCATmgAwIBAgIRAKpi2WmTcFrVjxrl5n5YDUEwDQYJKoZIhvcNAQELBQAw
EjEQMA4GA1UEChMHQWNtZSBDbzAgFw03MDAxMDEwMDAwMDBaGA8yMDg0MDEyOTE2
MDAwMFowEjEQMA4GA1UEChMHQWNtZSBDbzBcMA0GCSqGSIb3DQEBAQUAA0sAMEgC
QQC9fEbRszP3t14Gr4oahV7zFObBI4TfA5i7YnlMXeLinb7MnvT4bkfOJzE6zktn
59zP7UiHs3l4YOuqrjiwM413AgMBAAGjaDBmMA4GA1UdDwEB/wQEAwICpDATBgNV
HSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MC4GA1UdEQQnMCWCC2V4
YW1wbGUuY29thwR/AAABhxAAAAAAAAAAAAAAAAAAAAABMA0GCSqGSIb3DQEBCwUA
A0EAUsVE6KMnza/ZbodLlyeMzdo7EM/5nb5ywyOxgIOCf0OOLHsPS9ueGLQX9HEG
//yjTXuhNcUugExIjM/AIwAZPQ==
-----END CERTIFICATE-----`)

LocalhostCert was generated from crypto/tls/generate_cert.go with the following command:

go run generate_cert.go  --rsa-bits 512 --host 127.0.0.1,::1,example.com --ca --start-date "Jan 1 00:00:00 1970" --duration=1000000h
View Source
var LocalhostKey = []byte(`-----BEGIN RSA PRIVATE KEY-----
MIIBOwIBAAJBAL18RtGzM/e3XgavihqFXvMU5sEjhN8DmLtieUxd4uKdvsye9Phu
R84nMTrOS2fn3M/tSIezeXhg66quOLAzjXcCAwEAAQJBAKcRxH9wuglYLBdI/0OT
BLzfWPZCEw1vZmMR2FF1Fm8nkNOVDPleeVGTWoOEcYYlQbpTmkGSxJ6ya+hqRi6x
goECIQDx3+X49fwpL6B5qpJIJMyZBSCuMhH4B7JevhGGFENi3wIhAMiNJN5Q3UkL
IuSvv03kaPR5XVQ99/UeEetUgGvBcABpAiBJSBzVITIVCGkGc7d+RCf49KTCIklv
bGWObufAR8Ni4QIgWpILjW8dkGg8GOUZ0zaNA6Nvt6TIv2UWGJ4v5PoV98kCIQDx
rIiZs5QbKdycsv9gQJzwQAogC8o04X3Zz3dsoX+h4A==
-----END RSA PRIVATE KEY-----`)

LocalhostKey is the private key for LocalhostCert.

Functions

func AddLabelsToNode

func AddLabelsToNode(c clientset.Interface, nodeName string, labels map[string]string) error

func AdmissionWebhookHandler

func AdmissionWebhookHandler(t *testing.T, admit func(*v1beta1.AdmissionReview) error) http.HandlerFunc

AdmissionWebhookHandler creates a HandlerFunc that decodes/encodes AdmissionReview and performs given admit function

func CheckDeploymentRevisionAndImage

func CheckDeploymentRevisionAndImage(c clientset.Interface, ns, deploymentName, revision, image string) error

CheckDeploymentRevisionAndImage checks if the input deployment's and its new replica set's revision and image are as expected.

func CheckForDuplicates

func CheckForDuplicates(el auditinternal.EventList) (auditinternal.EventList, error)

CheckForDuplicates checks a list for duplicate events

func CreateConfigMapWithRetries

func CreateConfigMapWithRetries(c clientset.Interface, namespace string, obj *v1.ConfigMap) error

func CreateDaemonSetWithRetries

func CreateDaemonSetWithRetries(c clientset.Interface, namespace string, obj *apps.DaemonSet) error

func CreateDeploymentWithRetries

func CreateDeploymentWithRetries(c clientset.Interface, namespace string, obj *apps.Deployment) error

func CreateJobWithRetries

func CreateJobWithRetries(c clientset.Interface, namespace string, obj *batch.Job) error

func CreatePersistentVolumeClaimWithRetries

func CreatePersistentVolumeClaimWithRetries(c clientset.Interface, namespace string, obj *v1.PersistentVolumeClaim) error

func CreatePersistentVolumeWithRetries

func CreatePersistentVolumeWithRetries(c clientset.Interface, obj *v1.PersistentVolume) error

func CreatePod

func CreatePod(client clientset.Interface, namespace string, podCount int, podTemplate *v1.Pod) error

func CreatePodWithPersistentVolume

func CreatePodWithPersistentVolume(client clientset.Interface, namespace string, claimTemplate *v1.PersistentVolumeClaim, factory volumeFactory, podTemplate *v1.Pod, count int) error

func CreatePodWithRetries

func CreatePodWithRetries(c clientset.Interface, namespace string, obj *v1.Pod) error

func CreateRCWithRetries

func CreateRCWithRetries(c clientset.Interface, namespace string, obj *v1.ReplicationController) error

func CreateReplicaSetWithRetries

func CreateReplicaSetWithRetries(c clientset.Interface, namespace string, obj *apps.ReplicaSet) error

func CreateResourceQuotaWithRetries

func CreateResourceQuotaWithRetries(c clientset.Interface, namespace string, obj *v1.ResourceQuota) error

func CreateSecretWithRetries

func CreateSecretWithRetries(c clientset.Interface, namespace string, obj *v1.Secret) error

func CreateServiceWithRetries

func CreateServiceWithRetries(c clientset.Interface, namespace string, obj *v1.Service) error

func DeleteResourceWithRetries

func DeleteResourceWithRetries(c clientset.Interface, kind schema.GroupKind, namespace, name string, options *metav1.DeleteOptions) error

func DoCleanupNode

func DoCleanupNode(client clientset.Interface, nodeName string, strategy PrepareNodeStrategy) error

func DoPrepareNode

func DoPrepareNode(client clientset.Interface, node *v1.Node, strategy PrepareNodeStrategy) error

func EncodeCertPEM

func EncodeCertPEM(cert *x509.Certificate) []byte

EncodeCertPEM returns PEM-endcoded certificate data

func FailedContainers

func FailedContainers(pod *v1.Pod) map[string]ContainerFailures

FailedContainers inspects all containers in a pod and returns failure information for containers that have failed or been restarted. A map is returned where the key is the containerID and the value is a struct containing the restart and failure information

func GetCAdvisorRootDir

func GetCAdvisorRootDir() (string, error)

GetCAdvisorRootDir returns the root directory for cAdvisor, if present in the gopath.

func GetK8sBuildOutputDir

func GetK8sBuildOutputDir() (string, error)

GetK8sBuildOutputDir returns the build output directory for k8s

func GetK8sRootDir

func GetK8sRootDir() (string, error)

GetK8sRootDir returns the root directory for kubernetes, if present in the gopath.

func GetNodeCondition

func GetNodeCondition(status *v1.NodeStatus, conditionType v1.NodeConditionType) (int, *v1.NodeCondition)

GetNodeCondition extracts the provided condition from the given status and returns that. Returns nil and -1 if the condition is not present, and the index of the located condition.

func IsRetryableAPIError

func IsRetryableAPIError(err error) bool

func LogPodsOfDeployment

func LogPodsOfDeployment(c clientset.Interface, deployment *apps.Deployment, rsList []*apps.ReplicaSet, logf LogfFn)

func LogReplicaSetsOfDeployment

func LogReplicaSetsOfDeployment(deployment *apps.Deployment, allOldRSs []*apps.ReplicaSet, newRS *apps.ReplicaSet, logf LogfFn)

func MakePodSpec

func MakePodSpec() v1.PodSpec

func MakeTempDirOrDie

func MakeTempDirOrDie(prefix string, baseDir string) string

func NewAdmissionWebhookServer

func NewAdmissionWebhookServer(handler http.Handler) (string, func(), error)

NewAdmissionWebhookServer sets up a webhook server with TLS enabled, returns URL and Close function for the server

func NewPrivateKey

func NewPrivateKey() (*rsa.PrivateKey, error)

NewPrivateKey creates an RSA private key

func NewSignedCert

func NewSignedCert(cfg *certutil.Config, key crypto.Signer, caCert *x509.Certificate, caKey crypto.Signer) (*x509.Certificate, error)

NewSignedCert creates a signed certificate using the given CA certificate and key

func PodNotReady

func PodNotReady(p *v1.Pod) (bool, error)

PodNotReady checks whether pod p's has a ready condition of status false.

func PodRunningReady

func PodRunningReady(p *v1.Pod) (bool, error)

PodRunningReady checks whether pod p's phase is running and it has a ready condition of status true.

func PodRunningReadyOrSucceeded

func PodRunningReadyOrSucceeded(p *v1.Pod) (bool, error)

func RemoveLabelOffNode

func RemoveLabelOffNode(c clientset.Interface, nodeName string, labelKeys []string) error

RemoveLabelOffNode is for cleaning up labels temporarily added to node, won't fail if target label doesn't exist or has been removed.

func RetryErrorCondition

func RetryErrorCondition(condition wait.ConditionFunc) wait.ConditionFunc

func RetryWithExponentialBackOff

func RetryWithExponentialBackOff(fn wait.ConditionFunc) error

Utility for retrying the given function with exponential backoff.

func RootDir

func RootDir() (string, error)

RootDir gets the on-disk kubernetes source directory, returning an error is none is found

func RunDeployment

func RunDeployment(config DeploymentConfig) error

RunDeployment Launches (and verifies correctness) of a Deployment and will wait for all pods it spawns to become "Running". It's the caller's responsibility to clean up externally (i.e. use the namespace lifecycle for handling Cleanup).

func RunJob

func RunJob(config JobConfig) error

RunJob baunches (and verifies correctness) of a Job and will wait for all pods it spawns to become "Running". It's the caller's responsibility to clean up externally (i.e. use the namespace lifecycle for handling Cleanup).

func RunPodAndGetNodeName

func RunPodAndGetNodeName(c clientset.Interface, pod *v1.Pod, timeout time.Duration) (string, error)

func RunRC

func RunRC(config RCConfig) error

RunRC Launches (and verifies correctness) of a Replication Controller and will wait for all pods it spawns to become "Running". It's the caller's responsibility to clean up externally (i.e. use the namespace lifecycle for handling Cleanup).

func RunReplicaSet

func RunReplicaSet(config ReplicaSetConfig) error

RunReplicaSet launches (and verifies correctness) of a ReplicaSet and waits until all the pods it launches to reach the "Running" state. It's the caller's responsibility to clean up externally (i.e. use the namespace lifecycle for handling Cleanup).

func ScaleResourceWithRetries

func ScaleResourceWithRetries(scalesGetter scaleclient.ScalesGetter, namespace, name string, size uint, gvr schema.GroupVersionResource) error

func StartPods

func StartPods(c clientset.Interface, replicas int, namespace string, podNamePrefix string,
	pod v1.Pod, waitForRunning bool, logFunc func(fmt string, args ...interface{})) error

Simplified version of RunRC, that does not create RC, but creates plain Pods. Optionally waits for pods to start running (if waitForRunning == true). The number of replicas must be non-zero.

func TerminatedContainers

func TerminatedContainers(pod *v1.Pod) map[string]string

TerminatedContainers inspects all containers in a pod and returns a map of "container name: termination reason", for all currently terminated containers.

func UpdateDeploymentWithRetries

func UpdateDeploymentWithRetries(c clientset.Interface, namespace, name string, applyUpdate UpdateDeploymentFunc, logf LogfFn, pollInterval, pollTimeout time.Duration) (*apps.Deployment, error)

func UpdateReplicaSetStatusWithRetries

func UpdateReplicaSetStatusWithRetries(c clientset.Interface, namespace, name string, applyUpdate UpdateReplicaSetFunc, logf LogfFn, pollInterval, pollTimeout time.Duration) (*apps.ReplicaSet, error)

func UpdateReplicaSetWithRetries

func UpdateReplicaSetWithRetries(c clientset.Interface, namespace, name string, applyUpdate UpdateReplicaSetFunc, logf LogfFn, pollInterval, pollTimeout time.Duration) (*apps.ReplicaSet, error)

func VerifyLabelsRemoved

func VerifyLabelsRemoved(c clientset.Interface, nodeName string, labelKeys []string) error

VerifyLabelsRemoved checks if Node for given nodeName does not have any of labels from labelKeys. Return non-nil error if it does.

func WaitForDeploymentComplete

func WaitForDeploymentComplete(c clientset.Interface, d *apps.Deployment, logf LogfFn, pollInterval, pollTimeout time.Duration) error

Waits for the deployment to complete, and don't check if rolling update strategy is broken. Rolling update strategy is used only during a rolling update, and can be violated in other situations, such as shortly after a scaling event or the deployment is just created.

func WaitForDeploymentCompleteAndCheckRolling

func WaitForDeploymentCompleteAndCheckRolling(c clientset.Interface, d *apps.Deployment, logf LogfFn, pollInterval, pollTimeout time.Duration) error

Waits for the deployment to complete, and check rolling update strategy isn't broken at any times. Rolling update strategy should not be broken during a rolling update.

func WaitForDeploymentRevisionAndImage

func WaitForDeploymentRevisionAndImage(c clientset.Interface, ns, deploymentName string, revision, image string, logf LogfFn, pollInterval, pollTimeout time.Duration) error

WaitForDeploymentRevisionAndImage waits for the deployment's and its new RS's revision and container image to match the given revision and image. Note that deployment revision and its new RS revision should be updated shortly, so we only wait for 1 minute here to fail early.

func WaitForDeploymentRollbackCleared

func WaitForDeploymentRollbackCleared(c clientset.Interface, ns, deploymentName string, pollInterval, pollTimeout time.Duration) error

WaitForDeploymentRollbackCleared waits for given deployment either started rolling back or doesn't need to rollback.

func WaitForDeploymentUpdatedReplicasGTE

func WaitForDeploymentUpdatedReplicasGTE(c clientset.Interface, ns, deploymentName string, minUpdatedReplicas int32, desiredGeneration int64, pollInterval, pollTimeout time.Duration) error

WaitForDeploymentUpdatedReplicasGTE waits for given deployment to be observed by the controller and has at least a number of updatedReplicas

func WaitForDeploymentWithCondition

func WaitForDeploymentWithCondition(c clientset.Interface, ns, deploymentName, reason string, condType apps.DeploymentConditionType, logf LogfFn, pollInterval, pollTimeout time.Duration) error

func WaitForEnoughPodsWithLabelRunning

func WaitForEnoughPodsWithLabelRunning(c clientset.Interface, ns string, label labels.Selector, replicas int) error

Wait up to 10 minutes for at least 'replicas' many pods to be Running and at least one matching pod exists. If 'replicas' is < 0, wait for all matching pods running.

func WaitForObservedDeployment

func WaitForObservedDeployment(c clientset.Interface, ns, deploymentName string, desiredGeneration int64) error

func WaitForPodsWithLabelRunning

func WaitForPodsWithLabelRunning(c clientset.Interface, ns string, label labels.Selector) error

Wait up to 10 minutes for all matching pods to become Running and at least one matching pod exists.

func WaitRSStable

func WaitRSStable(t *testing.T, clientSet clientset.Interface, rs *apps.ReplicaSet, pollInterval, pollTimeout time.Duration) error

Verify .Status.Replicas is equal to .Spec.Replicas

func WaitUntilPodIsScheduled

func WaitUntilPodIsScheduled(c clientset.Interface, name, namespace string, timeout time.Duration) (*v1.Pod, error)

Types

type AuditEvent

type AuditEvent struct {
	ID                 types.UID
	Level              auditinternal.Level
	Stage              auditinternal.Stage
	RequestURI         string
	Verb               string
	Code               int32
	User               string
	ImpersonatedUser   string
	ImpersonatedGroups string
	Resource           string
	Namespace          string
	RequestObject      bool
	ResponseObject     bool
	AuthorizeDecision  string

	// The Check functions in this package takes ownerships of these maps. You should
	// not reference these maps after calling the Check functions.
	AdmissionWebhookMutationAnnotations map[string]string
	AdmissionWebhookPatchAnnotations    map[string]string
}

AuditEvent is a simplified representation of an audit event for testing purposes

func CheckAuditList

func CheckAuditList(el auditinternal.EventList, expected []AuditEvent) (missing []AuditEvent, err error)

CheckAuditList searches an audit event list for the expected audit events.

type AuditTestServer

type AuditTestServer struct {
	Name            string
	LockedEventList *LockedEventList
	Server          *httptest.Server
	// contains filtered or unexported fields
}

AuditTestServer is a helper server for dynamic audit testing

func NewAuditTestServer

func NewAuditTestServer(t *testing.T, name string) *AuditTestServer

NewAuditTestServer returns a new audit test server

func (*AuditTestServer) AppendEvents

func (a *AuditTestServer) AppendEvents(events []auditinternal.Event)

AppendEvents will add the given events to the internal event list

func (*AuditTestServer) BuildSinkConfiguration

func (a *AuditTestServer) BuildSinkConfiguration() *auditregv1alpha1.AuditSink

BuildSinkConfiguration creates a generic audit sink configuration for this server

func (*AuditTestServer) Close

func (a *AuditTestServer) Close()

Close the server

func (*AuditTestServer) GetEventList

func (a *AuditTestServer) GetEventList() auditinternal.EventList

GetEventList safely returns the internal event list

func (*AuditTestServer) Health

func (a *AuditTestServer) Health() error

Health polls the server healthcheck until successful or the 30s timeout has been reached

func (*AuditTestServer) ResetEventList

func (a *AuditTestServer) ResetEventList()

ResetEventList resets the internal event list

func (*AuditTestServer) WaitForEvents

func (a *AuditTestServer) WaitForEvents(expected []AuditEvent) ([]AuditEvent, error)

WaitForEvents waits for the given events to arrive in the server or the 30s timeout is reached

func (*AuditTestServer) WaitForNumEvents

func (a *AuditTestServer) WaitForNumEvents(numEvents int) error

WaitForNumEvents checks that at least the given number of events has arrived or the 30s timeout is reached

type ConfigMapConfig

type ConfigMapConfig struct {
	Content   map[string]string
	Client    clientset.Interface
	Name      string
	Namespace string
	// If set this function will be used to print log lines instead of klog.
	LogFunc func(fmt string, args ...interface{})
}

func (*ConfigMapConfig) Run

func (config *ConfigMapConfig) Run() error

func (*ConfigMapConfig) Stop

func (config *ConfigMapConfig) Stop() error

type ContainerFailures

type ContainerFailures struct {
	Restarts int
	// contains filtered or unexported fields
}

type CountToPodStrategy

type CountToPodStrategy struct {
	Count    int
	Strategy TestPodCreateStrategy
}

type CountToStrategy

type CountToStrategy struct {
	Count    int
	Strategy PrepareNodeStrategy
}

type DaemonConfig

type DaemonConfig struct {
	Client    clientset.Interface
	Name      string
	Namespace string
	Image     string
	// If set this function will be used to print log lines instead of klog.
	LogFunc func(fmt string, args ...interface{})
	// How long we wait for DaemonSet to become running.
	Timeout time.Duration
}

func (*DaemonConfig) Run

func (config *DaemonConfig) Run() error

type DeploymentConfig

type DeploymentConfig struct {
	RCConfig
}

func (*DeploymentConfig) GetGroupResource

func (config *DeploymentConfig) GetGroupResource() schema.GroupResource

func (*DeploymentConfig) GetGroupVersionResource

func (config *DeploymentConfig) GetGroupVersionResource() schema.GroupVersionResource

func (*DeploymentConfig) GetKind

func (config *DeploymentConfig) GetKind() schema.GroupKind

func (*DeploymentConfig) Run

func (config *DeploymentConfig) Run() error

type JobConfig

type JobConfig struct {
	RCConfig
}

func (*JobConfig) GetGroupResource

func (config *JobConfig) GetGroupResource() schema.GroupResource

func (*JobConfig) GetGroupVersionResource

func (config *JobConfig) GetGroupVersionResource() schema.GroupVersionResource

func (*JobConfig) GetKind

func (config *JobConfig) GetKind() schema.GroupKind

func (*JobConfig) Run

func (config *JobConfig) Run() error

type LabelNodePrepareStrategy

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

func NewLabelNodePrepareStrategy

func NewLabelNodePrepareStrategy(labelKey string, labelValue string) *LabelNodePrepareStrategy

func (*LabelNodePrepareStrategy) CleanupDependentObjects

func (*LabelNodePrepareStrategy) CleanupDependentObjects(nodeName string, client clientset.Interface) error

func (*LabelNodePrepareStrategy) CleanupNode

func (s *LabelNodePrepareStrategy) CleanupNode(node *v1.Node) *v1.Node

func (*LabelNodePrepareStrategy) PrepareDependentObjects

func (*LabelNodePrepareStrategy) PrepareDependentObjects(node *v1.Node, client clientset.Interface) error

func (*LabelNodePrepareStrategy) PreparePatch

func (s *LabelNodePrepareStrategy) PreparePatch(*v1.Node) []byte

type LockedEventList

type LockedEventList struct {
	*sync.RWMutex
	EventList auditinternal.EventList
}

LockedEventList is an event list with a lock for concurrent access

func NewLockedEventList

func NewLockedEventList() *LockedEventList

NewLockedEventList returns a new LockedEventList

type LogfFn

type LogfFn func(format string, args ...interface{})

type MissingEventsReport

type MissingEventsReport struct {
	FirstEventChecked *auditinternal.Event
	LastEventChecked  *auditinternal.Event
	NumEventsChecked  int
	MissingEvents     []AuditEvent
}

MissingEventsReport provides an analysis if any events are missing

func CheckAuditLines

func CheckAuditLines(stream io.Reader, expected []AuditEvent, version schema.GroupVersion) (missingReport *MissingEventsReport, err error)

CheckAuditLines searches the audit log for the expected audit lines.

func (*MissingEventsReport) String

func (m *MissingEventsReport) String() string

String returns a human readable string representation of the report

type NodeAllocatableStrategy

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

NodeAllocatableStrategy fills node.status.allocatable and csiNode.spec.drivers[*].allocatable. csiNode is created if it does not exist. On cleanup, any csiNode.spec.drivers[*].allocatable is set to nil.

func NewNodeAllocatableStrategy

func NewNodeAllocatableStrategy(nodeAllocatable map[v1.ResourceName]string, csiNodeAllocatable map[string]*storagev1beta1.VolumeNodeResources, migratedPlugins []string) *NodeAllocatableStrategy

func (*NodeAllocatableStrategy) CleanupDependentObjects

func (s *NodeAllocatableStrategy) CleanupDependentObjects(nodeName string, client clientset.Interface) error

func (*NodeAllocatableStrategy) CleanupNode

func (s *NodeAllocatableStrategy) CleanupNode(node *v1.Node) *v1.Node

func (*NodeAllocatableStrategy) PrepareDependentObjects

func (s *NodeAllocatableStrategy) PrepareDependentObjects(node *v1.Node, client clientset.Interface) error

func (*NodeAllocatableStrategy) PreparePatch

func (s *NodeAllocatableStrategy) PreparePatch(node *v1.Node) []byte

type PodDiff

type PodDiff map[string]*podInfo

PodDiff is a map of pod name to podInfos

func Diff

func Diff(oldPods []*v1.Pod, curPods []*v1.Pod) PodDiff

Diff computes a PodDiff given 2 lists of pods.

func (PodDiff) DeletedPods

func (p PodDiff) DeletedPods() []string

DeletedPods returns a slice of pods that were present at the beginning and then disappeared.

func (PodDiff) String

func (p PodDiff) String(ignorePhases sets.String) string

Print formats and prints the give PodDiff.

type PodStore

type PodStore struct {
	cache.Store

	Reflector *cache.Reflector
	// contains filtered or unexported fields
}

Convenient wrapper around cache.Store that returns list of v1.Pod instead of interface{}.

func NewPodStore

func NewPodStore(c clientset.Interface, namespace string, label labels.Selector, field fields.Selector) (*PodStore, error)

func (*PodStore) List

func (s *PodStore) List() []*v1.Pod

func (*PodStore) Stop

func (s *PodStore) Stop()

type PrepareNodeStrategy

type PrepareNodeStrategy interface {
	// Modify pre-created Node objects before the test starts.
	PreparePatch(node *v1.Node) []byte
	// Create or modify any objects that depend on the node before the test starts.
	// Caller will re-try when http.StatusConflict error is returned.
	PrepareDependentObjects(node *v1.Node, client clientset.Interface) error
	// Clean up any node modifications after the test finishes.
	CleanupNode(node *v1.Node) *v1.Node
	// Clean up any objects that depend on the node after the test finishes.
	// Caller will re-try when http.StatusConflict error is returned.
	CleanupDependentObjects(nodeName string, client clientset.Interface) error
}

type RCConfig

type RCConfig struct {
	Affinity                      *v1.Affinity
	Client                        clientset.Interface
	ScalesGetter                  scaleclient.ScalesGetter
	Image                         string
	Command                       []string
	Name                          string
	Namespace                     string
	PollInterval                  time.Duration
	Timeout                       time.Duration
	PodStatusFile                 *os.File
	Replicas                      int
	CpuRequest                    int64 // millicores
	CpuLimit                      int64 // millicores
	MemRequest                    int64 // bytes
	MemLimit                      int64 // bytes
	GpuLimit                      int64 // count
	ReadinessProbe                *v1.Probe
	DNSPolicy                     *v1.DNSPolicy
	PriorityClassName             string
	TerminationGracePeriodSeconds *int64
	Lifecycle                     *v1.Lifecycle

	// Env vars, set the same for every pod.
	Env map[string]string

	// Extra labels and annotations added to every pod.
	Labels      map[string]string
	Annotations map[string]string

	// Node selector for pods in the RC.
	NodeSelector map[string]string

	// Tolerations for pods in the RC.
	Tolerations []v1.Toleration

	// Ports to declare in the container (map of name to containerPort).
	Ports map[string]int
	// Ports to declare in the container as host and container ports.
	HostPorts map[string]int

	Volumes      []v1.Volume
	VolumeMounts []v1.VolumeMount

	// Pointer to a list of pods; if non-nil, will be set to a list of pods
	// created by this RC by RunRC.
	CreatedPods *[]*v1.Pod

	// Maximum allowable container failures. If exceeded, RunRC returns an error.
	// Defaults to replicas*0.1 if unspecified.
	MaxContainerFailures *int
	// Maximum allowed pod deletions count. If exceeded, RunRC returns an error.
	// Defaults to 0.
	MaxAllowedPodDeletions int

	// If set to false starting RC will print progress, otherwise only errors will be printed.
	Silent bool

	// If set this function will be used to print log lines instead of klog.
	LogFunc func(fmt string, args ...interface{})
	// If set those functions will be used to gather data from Nodes - in integration tests where no
	// kubelets are running those variables should be nil.
	NodeDumpFunc      func(c clientset.Interface, nodeNames []string, logFunc func(fmt string, args ...interface{}))
	ContainerDumpFunc func(c clientset.Interface, ns string, logFunc func(ftm string, args ...interface{}))

	// Names of the secrets and configmaps to mount.
	SecretNames    []string
	ConfigMapNames []string

	ServiceAccountTokenProjections int
}

func (*RCConfig) GetClient

func (config *RCConfig) GetClient() clientset.Interface

func (*RCConfig) GetGroupResource

func (config *RCConfig) GetGroupResource() schema.GroupResource

func (*RCConfig) GetGroupVersionResource

func (config *RCConfig) GetGroupVersionResource() schema.GroupVersionResource

func (*RCConfig) GetKind

func (config *RCConfig) GetKind() schema.GroupKind

func (*RCConfig) GetLabelValue

func (config *RCConfig) GetLabelValue(key string) (string, bool)

func (*RCConfig) GetName

func (config *RCConfig) GetName() string

func (*RCConfig) GetNamespace

func (config *RCConfig) GetNamespace() string

func (*RCConfig) GetReplicas

func (config *RCConfig) GetReplicas() int

func (*RCConfig) GetScalesGetter

func (config *RCConfig) GetScalesGetter() scaleclient.ScalesGetter

func (*RCConfig) RCConfigLog

func (rc *RCConfig) RCConfigLog(fmt string, args ...interface{})

func (*RCConfig) Run

func (config *RCConfig) Run() error

func (*RCConfig) SetClient

func (config *RCConfig) SetClient(c clientset.Interface)

func (*RCConfig) SetScalesClient

func (config *RCConfig) SetScalesClient(getter scaleclient.ScalesGetter)

type RCStartupStatus

type RCStartupStatus struct {
	Expected              int
	Terminating           int
	Running               int
	RunningButNotReady    int
	Waiting               int
	Pending               int
	Scheduled             int
	Unknown               int
	Inactive              int
	FailedContainers      int
	Created               []*v1.Pod
	ContainerRestartNodes sets.String
}

func ComputeRCStartupStatus

func ComputeRCStartupStatus(pods []*v1.Pod, expected int) RCStartupStatus

func (*RCStartupStatus) String

func (s *RCStartupStatus) String(name string) string

type ReplicaSetConfig

type ReplicaSetConfig struct {
	RCConfig
}

func (*ReplicaSetConfig) GetGroupResource

func (config *ReplicaSetConfig) GetGroupResource() schema.GroupResource

func (*ReplicaSetConfig) GetGroupVersionResource

func (config *ReplicaSetConfig) GetGroupVersionResource() schema.GroupVersionResource

func (*ReplicaSetConfig) GetKind

func (config *ReplicaSetConfig) GetKind() schema.GroupKind

func (*ReplicaSetConfig) Run

func (config *ReplicaSetConfig) Run() error

type RunObjectConfig

type RunObjectConfig interface {
	Run() error
	GetName() string
	GetNamespace() string
	GetKind() schema.GroupKind
	GetClient() clientset.Interface
	GetScalesGetter() scaleclient.ScalesGetter
	SetClient(clientset.Interface)
	SetScalesClient(scaleclient.ScalesGetter)
	GetReplicas() int
	GetLabelValue(string) (string, bool)
	GetGroupResource() schema.GroupResource
	GetGroupVersionResource() schema.GroupVersionResource
}

type SecretConfig

type SecretConfig struct {
	Content   map[string]string
	Client    clientset.Interface
	Name      string
	Namespace string
	// If set this function will be used to print log lines instead of klog.
	LogFunc func(fmt string, args ...interface{})
}

func (*SecretConfig) Run

func (config *SecretConfig) Run() error

func (*SecretConfig) Stop

func (config *SecretConfig) Stop() error

type TestNodePreparer

type TestNodePreparer interface {
	PrepareNodes() error
	CleanupNodes() error
}

type TestPodCreateStrategy

type TestPodCreateStrategy func(client clientset.Interface, namespace string, podCount int) error

func NewCreatePodWithPersistentVolumeStrategy

func NewCreatePodWithPersistentVolumeStrategy(claimTemplate *v1.PersistentVolumeClaim, factory volumeFactory, podTemplate *v1.Pod) TestPodCreateStrategy

func NewCustomCreatePodStrategy

func NewCustomCreatePodStrategy(podTemplate *v1.Pod) TestPodCreateStrategy

func NewSimpleCreatePodStrategy

func NewSimpleCreatePodStrategy() TestPodCreateStrategy

func NewSimpleWithControllerCreatePodStrategy

func NewSimpleWithControllerCreatePodStrategy(controllerName string) TestPodCreateStrategy

type TestPodCreator

type TestPodCreator struct {
	Client clientset.Interface
	// namespace -> count -> strategy
	Config *TestPodCreatorConfig
}

func NewTestPodCreator

func NewTestPodCreator(client clientset.Interface, config *TestPodCreatorConfig) *TestPodCreator

func (*TestPodCreator) CreatePods

func (c *TestPodCreator) CreatePods() error

type TestPodCreatorConfig

type TestPodCreatorConfig map[string][]CountToPodStrategy

func NewTestPodCreatorConfig

func NewTestPodCreatorConfig() *TestPodCreatorConfig

func (*TestPodCreatorConfig) AddStrategy

func (c *TestPodCreatorConfig) AddStrategy(
	namespace string, podCount int, strategy TestPodCreateStrategy)

type TrivialNodePrepareStrategy

type TrivialNodePrepareStrategy struct{}

func (*TrivialNodePrepareStrategy) CleanupDependentObjects

func (*TrivialNodePrepareStrategy) CleanupDependentObjects(nodeName string, client clientset.Interface) error

func (*TrivialNodePrepareStrategy) CleanupNode

func (*TrivialNodePrepareStrategy) CleanupNode(node *v1.Node) *v1.Node

func (*TrivialNodePrepareStrategy) PrepareDependentObjects

func (*TrivialNodePrepareStrategy) PrepareDependentObjects(node *v1.Node, client clientset.Interface) error

func (*TrivialNodePrepareStrategy) PreparePatch

func (*TrivialNodePrepareStrategy) PreparePatch(*v1.Node) []byte

type UpdateDeploymentFunc

type UpdateDeploymentFunc func(d *apps.Deployment)

type UpdateReplicaSetFunc

type UpdateReplicaSetFunc func(d *apps.ReplicaSet)

Directories

Path Synopsis
Package junit provides data structures to allow easy XML encoding and decoding of JUnit test results.
Package junit provides data structures to allow easy XML encoding and decoding of JUnit test results.

Jump to

Keyboard shortcuts

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