Documentation ¶
Index ¶
- Variables
- func BuildClientConfig(kubeConfigPath string, clusterName string) (*rest.Config, error)
- func CleanupOnInterrupt(cleanup func(), logf logging.FormatLogger)
- func ClusterRoleBinding(name string, namespace string, serviceAccount string, role string) *rbacv1.ClusterRoleBinding
- func CoreV1ObjectReference(kind, apiversion, name string) *corev1.ObjectReference
- func DeploymentScaledToZeroFunc() func(d *appsv1.Deployment) (bool, error)
- func EventuallyMatchesBody(expected string) spoof.ResponseChecker
- func GetConfigMap(client *KubeClient, namespace string) k8styped.ConfigMapInterface
- func ImagePath(name string) string
- func IsOneOfStatusCodes(codes ...int) spoof.ResponseChecker
- func IsStatusOK(resp *spoof.Response) (bool, error)
- func MatchesAllOf(checkers ...spoof.ResponseChecker) spoof.ResponseChecker
- func MatchesBody(expected string) spoof.ResponseChecker
- func NewSpoofingClient(client *KubeClient, logf logging.FormatLogger, domain string, resolvable bool, ...) (*spoof.SpoofingClient, error)
- func NginxPod(namespace string) *corev1.Pod
- func PodRunning(pod *corev1.Pod) bool
- func PodsRunning(podList *corev1.PodList) (bool, error)
- func Retrying(rc spoof.ResponseChecker, codes ...int) spoof.ResponseChecker
- func ServiceAccount(name string, namespace string) *corev1.ServiceAccount
- func SetupLoggingFlags()
- func WaitForAllPodsRunning(client *KubeClient, namespace string) error
- func WaitForDeploymentState(client *KubeClient, name string, ...) error
- func WaitForEndpointState(kubeClient *KubeClient, logf logging.FormatLogger, url *url.URL, ...) (*spoof.Response, error)
- func WaitForEndpointStateWithTimeout(kubeClient *KubeClient, logf logging.FormatLogger, url *url.URL, ...) (*spoof.Response, error)
- func WaitForLogContent(client *KubeClient, podName, containerName, namespace, content string) error
- func WaitForPodListState(client *KubeClient, inState func(p *corev1.PodList) (bool, error), desc string, ...) error
- func WaitForPodRunning(client *KubeClient, name string, namespace string) error
- func WaitForPodState(client *KubeClient, inState func(p *corev1.Pod) (bool, error), name string, ...) error
- func WaitForServiceEndpoints(client *KubeClient, svcName string, svcNamespace string, numOfEndpoints int) error
- type EnvironmentFlags
- type KubeClient
- func (client *KubeClient) CreatePod(pod *corev1.Pod) (*corev1.Pod, error)
- func (client *KubeClient) GetConfigMap(name string) k8styped.ConfigMapInterface
- func (client *KubeClient) PodLogs(podName, containerName, namespace string) ([]byte, error)
- func (client *KubeClient) UpdateConfigMap(name string, configName string, values map[string]string) error
- type RequestOption
- type T
- type TLegacy
Constants ¶
This section is empty.
Variables ¶
var ( // Flags holds the command line flags or defaults for settings in the user's environment. // See EnvironmentFlags for a list of supported fields. Flags = initializeFlags() )
Functions ¶
func BuildClientConfig ¶
BuildClientConfig builds the client config specified by the config path and the cluster name
func CleanupOnInterrupt ¶
func CleanupOnInterrupt(cleanup func(), logf logging.FormatLogger)
CleanupOnInterrupt will execute the function cleanup if an interrupt signal is caught
func ClusterRoleBinding ¶
func ClusterRoleBinding(name string, namespace string, serviceAccount string, role string) *rbacv1.ClusterRoleBinding
ClusterRoleBinding returns ClusterRoleBinding for given subject and role
func CoreV1ObjectReference ¶
func CoreV1ObjectReference(kind, apiversion, name string) *corev1.ObjectReference
CoreV1ObjectReference returns a corev1.ObjectReference for the given name, kind and apiversion
func DeploymentScaledToZeroFunc ¶
func DeploymentScaledToZeroFunc() func(d *appsv1.Deployment) (bool, error)
DeploymentScaledToZeroFunc returns a func that evaluates if a deployment has scaled to 0 pods
func EventuallyMatchesBody ¶
func EventuallyMatchesBody(expected string) spoof.ResponseChecker
EventuallyMatchesBody checks that the response body *eventually* matches the expected body. TODO(#1178): Delete me. We don't want to need this; we should be waiting for an appropriate Status instead.
func GetConfigMap ¶
func GetConfigMap(client *KubeClient, namespace string) k8styped.ConfigMapInterface
GetConfigMap gets the configmaps for a given namespace
func ImagePath ¶
ImagePath is a helper function to transform an image name into an image reference that can be pulled.
func IsOneOfStatusCodes ¶
func IsOneOfStatusCodes(codes ...int) spoof.ResponseChecker
IsOneOfStatusCodes checks that the response code is equal to the given one.
func IsStatusOK ¶
IsStatusOK checks that the response code is a 200.
func MatchesAllOf ¶
func MatchesAllOf(checkers ...spoof.ResponseChecker) spoof.ResponseChecker
MatchesAllOf combines multiple ResponseCheckers to one ResponseChecker with a logical AND. The checkers are executed in order. The first function to trigger an error or a retry will short-circuit the other functions (they will not be executed).
This is useful for combining a body with a status check like: MatchesAllOf(IsStatusOK, MatchesBody("test"))
The MatchesBody check will only be executed after the IsStatusOK has passed.
func MatchesBody ¶
func MatchesBody(expected string) spoof.ResponseChecker
MatchesBody checks that the *first* response body matches the "expected" body, otherwise failing.
func NewSpoofingClient ¶
func NewSpoofingClient(client *KubeClient, logf logging.FormatLogger, domain string, resolvable bool, opts ...spoof.TransportOption) (*spoof.SpoofingClient, error)
NewSpoofingClient returns a spoofing client to make requests
func PodRunning ¶
PodRunning will check the status conditions of the pod and return true if it's Running
func PodsRunning ¶
PodsRunning will check the status conditions of the pod list and return true all pods are Running
func Retrying ¶
func Retrying(rc spoof.ResponseChecker, codes ...int) spoof.ResponseChecker
Retrying modifies a ResponseChecker to retry certain response codes.
func ServiceAccount ¶
func ServiceAccount(name string, namespace string) *corev1.ServiceAccount
ServiceAccount returns ServiceAccount object in given namespace
func SetupLoggingFlags ¶
func SetupLoggingFlags()
TODO(coryrc): Remove once other repos are moved to call logging.InitializeLogger() directly
func WaitForAllPodsRunning ¶
func WaitForAllPodsRunning(client *KubeClient, namespace string) error
WaitForAllPodsRunning waits for all the pods to be in running state
func WaitForDeploymentState ¶
func WaitForDeploymentState(client *KubeClient, name string, inState func(d *appsv1.Deployment) (bool, error), desc string, namespace string, timeout time.Duration) error
WaitForDeploymentState polls the status of the Deployment called name from client every interval until inState returns `true` indicating it is done, returns an error or timeout. desc will be used to name the metric that is emitted to track how long it took for name to get into the state checked by inState.
func WaitForEndpointState ¶
func WaitForEndpointState( kubeClient *KubeClient, logf logging.FormatLogger, url *url.URL, inState spoof.ResponseChecker, desc string, resolvable bool, opts ...interface{}) (*spoof.Response, error)
WaitForEndpointState will poll an endpoint until inState indicates the state is achieved, or default timeout is reached. If resolvableDomain is false, it will use kubeClientset to look up the ingress and spoof the domain in the request headers, otherwise it will make the request directly to domain. desc will be used to name the metric that is emitted to track how long it took for the domain to get into the state checked by inState. Commas in `desc` must be escaped.
func WaitForEndpointStateWithTimeout ¶
func WaitForEndpointStateWithTimeout( kubeClient *KubeClient, logf logging.FormatLogger, url *url.URL, inState spoof.ResponseChecker, desc string, resolvable bool, timeout time.Duration, opts ...interface{}) (*spoof.Response, error)
WaitForEndpointStateWithTimeout will poll an endpoint until inState indicates the state is achieved or the provided timeout is achieved. If resolvableDomain is false, it will use kubeClientset to look up the ingress and spoof the domain in the request headers, otherwise it will make the request directly to domain. desc will be used to name the metric that is emitted to track how long it took for the domain to get into the state checked by inState. Commas in `desc` must be escaped.
func WaitForLogContent ¶
func WaitForLogContent(client *KubeClient, podName, containerName, namespace, content string) error
WaitForLogContent waits until logs for given Pod/Container include the given content. If the content is not present within timeout it returns error.
func WaitForPodListState ¶
func WaitForPodListState(client *KubeClient, inState func(p *corev1.PodList) (bool, error), desc string, namespace string) error
WaitForPodListState polls the status of the PodList from client every interval until inState returns `true` indicating it is done, returns an error or timeout. desc will be used to name the metric that is emitted to track how long it took to get into the state checked by inState.
func WaitForPodRunning ¶
func WaitForPodRunning(client *KubeClient, name string, namespace string) error
WaitForPodRunning waits for the given pod to be in running state
func WaitForPodState ¶
func WaitForPodState(client *KubeClient, inState func(p *corev1.Pod) (bool, error), name string, namespace string) error
WaitForPodState polls the status of the specified Pod from client every interval until inState returns `true` indicating it is done, returns an error or timeout. desc will be used to name the metric that is emitted to track how long it took to get into the state checked by inState.
func WaitForServiceEndpoints ¶
func WaitForServiceEndpoints(client *KubeClient, svcName string, svcNamespace string, numOfEndpoints int) error
WaitForServiceHasAtLeastOneEndpoint polls the status of the specified Service from client every interval until number of service endpoints = numOfEndpoints
Types ¶
type EnvironmentFlags ¶
type EnvironmentFlags struct { Cluster string // K8s cluster (defaults to cluster in kubeconfig) Kubeconfig string // Path to kubeconfig (defaults to ./kube/config) Namespace string // K8s namespace (blank by default, to be overwritten by test suite) IngressEndpoint string // Host to use for ingress endpoint ImageTemplate string // Template to build the image reference (defaults to {{.Repository}}/{{.Name}}:{{.Tag}}) DockerRepo string // Docker repo (defaults to $KO_DOCKER_REPO) Tag string // Tag for test images SpoofRequestInterval time.Duration // SpoofRequestInterval is the interval between requests in SpoofingClient SpoofRequestTimeout time.Duration // SpoofRequestTimeout is the timeout for polling requests in SpoofingClient }
EnvironmentFlags define the flags that are needed to run the e2e tests.
type KubeClient ¶
type KubeClient struct {
Kube *kubernetes.Clientset
}
KubeClient holds instances of interfaces for making requests to kubernetes client.
func NewKubeClient ¶
func NewKubeClient(configPath string, clusterName string) (*KubeClient, error)
NewKubeClient instantiates and returns several clientsets required for making request to the kube client specified by the combination of clusterName and configPath. Clients can make requests within namespace.
func (*KubeClient) GetConfigMap ¶
func (client *KubeClient) GetConfigMap(name string) k8styped.ConfigMapInterface
GetConfigMap gets the knative serving config map.
func (*KubeClient) PodLogs ¶
func (client *KubeClient) PodLogs(podName, containerName, namespace string) ([]byte, error)
PodLogs returns Pod logs for given Pod and Container in the namespace
func (*KubeClient) UpdateConfigMap ¶
func (client *KubeClient) UpdateConfigMap(name string, configName string, values map[string]string) error
UpdateConfigMap updates the config map for specified @name with values
type RequestOption ¶
RequestOption enables configuration of requests when polling for endpoint states.
func WithHeader ¶
func WithHeader(header http.Header) RequestOption
WithHeader will add the provided headers to the request.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package logging assists setting up test logging and using leveled logging in tests.
|
Package logging assists setting up test logging and using leveled logging in tests. |
Package logstream lets end-to-end tests incorporate controller logs into the error output of tests.
|
Package logstream lets end-to-end tests incorporate controller logs into the error output of tests. |
Package monitoring provides common methods for all the monitoring components used in the tests This package exposes following methods: CheckPortAvailability(port int) error Checks if the given port is available GetPods(kubeClientset *kubernetes.Clientset, app string) (*v1.PodList, error) Gets the list of pods that satisfy the lable selector app=<app> Cleanup(pid int) error Kill the current port forwarding process running in the background PortForward(logf logging.FormatLogger, podList *v1.PodList, localPort, remotePort int) (int, error) Create a background process that will port forward the first pod from the local to remote port It returns the process id for the background process created.
|
Package monitoring provides common methods for all the monitoring components used in the tests This package exposes following methods: CheckPortAvailability(port int) error Checks if the given port is available GetPods(kubeClientset *kubernetes.Clientset, app string) (*v1.PodList, error) Gets the list of pods that satisfy the lable selector app=<app> Cleanup(pid int) error Kill the current port forwarding process running in the background PortForward(logf logging.FormatLogger, podList *v1.PodList, localPort, remotePort int) (int, error) Create a background process that will port forward the first pod from the local to remote port It returns the process id for the background process created. |
vegeta
|
|
webhook-apicoverage
|
|
Package zipkin adds Zipkin tracing support that can be used in conjunction with SpoofingClient to log zipkin traces for requests that have encountered server errors i.e HTTP request that have HTTP status between 500 to 600.
|
Package zipkin adds Zipkin tracing support that can be used in conjunction with SpoofingClient to log zipkin traces for requests that have encountered server errors i.e HTTP request that have HTTP status between 500 to 600. |