Documentation
¶
Index ¶
- Constants
- Variables
- func AllRouteTrafficAtRevision(names ResourceNames) func(r *v1alpha1.Route) (bool, error)
- func AppendRandomString(prefix string, logger *logging.BaseLogger) string
- func BlueGreenRoute(namespace string, names, blue, green ResourceNames) *v1alpha1.Route
- func CheckConfigurationState(client *ServingClients, name string, ...) error
- func CheckRevisionState(client *ServingClients, name string, ...) error
- func CheckRouteState(client *ServingClients, name string, ...) error
- func CheckServiceState(client *ServingClients, name string, ...) error
- func CleanupOnInterrupt(cleanup func(), logger *logging.BaseLogger)
- func Configuration(namespace string, names ResourceNames, imagePath string, options *Options) *v1alpha1.Configuration
- func ConfigurationHasCreatedRevision(c *v1alpha1.Configuration) (bool, error)
- func ConfigurationSpec(imagePath string, options *Options) *v1alpha1.ConfigurationSpec
- func ConfigurationWithBuild(namespace string, names ResourceNames, build *v1alpha1.RawExtension, ...) *v1alpha1.Configuration
- func CreateBlueGreenRoute(logger *logging.BaseLogger, clients *Clients, names, blue, green ResourceNames) error
- func CreateConfiguration(logger *logging.BaseLogger, clients *Clients, names ResourceNames, ...) (*v1alpha1.Configuration, error)
- func CreateLatestService(logger *logging.BaseLogger, clients *Clients, names ResourceNames, ...) (*v1alpha1.Service, error)
- func CreateLatestServiceWithResources(logger *logging.BaseLogger, clients *Clients, names ResourceNames, ...) (*v1alpha1.Service, error)
- func CreateRoute(logger *logging.BaseLogger, clients *Clients, names ResourceNames) (*v1alpha1.Route, error)
- func GetConfigMap(client *pkgTest.KubeClient) k8styped.ConfigMapInterface
- func GetRouteProberError(errorChan <-chan error, logger *logging.BaseLogger) error
- func ImagePath(name string) string
- func IsConfigRevisionCreationFailed(c *v1alpha1.Configuration) (bool, error)
- func IsRevisionAtExpectedGeneration(expectedGeneration string) func(r *v1alpha1.Revision) (bool, error)
- func IsRevisionBuildFailed(r *v1alpha1.Revision) (bool, error)
- func IsRevisionReady(r *v1alpha1.Revision) (bool, error)
- func IsRouteReady(r *v1alpha1.Route) (bool, error)
- func IsServiceReady(s *v1alpha1.Service) (bool, error)
- func LatestService(namespace string, names ResourceNames, imagePath string, options *Options) *v1alpha1.Service
- func LatestServiceWithResources(namespace string, names ResourceNames, imagePath string) *v1alpha1.Service
- func ListenAndServeGracefully(addr string, handler func(w http.ResponseWriter, r *http.Request))
- func ListenAndServeGracefullyWithPattern(addr string, handlers map[string]func(w http.ResponseWriter, r *http.Request))
- func LogResourceObject(logger *logging.BaseLogger, value ResourceObjects)
- func ManualService(svc *v1alpha1.Service) *v1alpha1.Service
- func PatchConfigImage(logger *logging.BaseLogger, clients *Clients, cfg *v1alpha1.Configuration, ...) (*v1alpha1.Configuration, error)
- func PatchManualService(logger *logging.BaseLogger, clients *Clients, svc *v1alpha1.Service) (*v1alpha1.Service, error)
- func PatchReleaseService(logger *logging.BaseLogger, clients *Clients, svc *v1alpha1.Service, ...) (*v1alpha1.Service, error)
- func PatchService(logger *logging.BaseLogger, clients *Clients, curSvc *v1alpha1.Service, ...) (*v1alpha1.Service, error)
- func PatchServiceImage(logger *logging.BaseLogger, clients *Clients, svc *v1alpha1.Service, ...) (*v1alpha1.Service, error)
- func PatchServiceRevisionTemplateMetadata(logger *logging.BaseLogger, clients *Clients, svc *v1alpha1.Service, ...) (*v1alpha1.Service, error)
- func ReleaseService(svc *v1alpha1.Service, revisions []string, rolloutPercent int) *v1alpha1.Service
- func Route(namespace string, names ResourceNames) *v1alpha1.Route
- func RunRouteProber(logger *logging.BaseLogger, clients *Clients, domain string) <-chan error
- func TODO_RouteTrafficToRevisionWithInClusterDNS(r *v1alpha1.Route) (bool, error)
- func TODO_ServiceTrafficToRevisionWithInClusterDNS(s *v1alpha1.Service) (bool, error)
- func UpdateBlueGreenRoute(logger *logging.BaseLogger, clients *Clients, names, blue, green ResourceNames) (*v1alpha1.Route, error)
- func WaitForConfigLatestRevision(clients *Clients, names ResourceNames) (string, error)
- func WaitForConfigurationState(client *ServingClients, name string, ...) error
- func WaitForRevisionState(client *ServingClients, name string, ...) error
- func WaitForRouteState(client *ServingClients, name string, ...) error
- func WaitForServiceLatestRevision(clients *Clients, names ResourceNames) (string, error)
- func WaitForServiceState(client *ServingClients, name string, ...) error
- type BuildClient
- type Clients
- type Options
- type ResourceNames
- type ResourceObjects
- type ServingClients
- type ServingEnvironmentFlags
Constants ¶
const EnvImageEnvVarsPath = "/envvars"
EnvImageEnvVarsPath path exposed by environment test-image to fetch environment variables.
const EnvImageFilePathInfoPath = "/filepath"
EnvImageFilePathInfoPath path exposed by environment test-image to fetch information for filepaths
const EnvImageFilePathQueryParam = "path"
EnvImageFilePathQueryParam query param to be used with EnvImageFilePathInfoPath to specify filepath
const EnvImageServerPort = 8080
EnvImageServerPort is the port on which the environment test-image server starts. TODO: Modify this port number after https://github.com/knative/serving/issues/2258 is fixed for a stricter verification.
const (
// ServingNamespace is the default namespace for serving e2e tests
ServingNamespace = "serving-tests"
)
Variables ¶
var ServingFlags = initializeServingFlags()
ServingFlags holds the flags or defaults for knative/serving settings in the user's environment.
Functions ¶
func AllRouteTrafficAtRevision ¶
func AllRouteTrafficAtRevision(names ResourceNames) func(r *v1alpha1.Route) (bool, error)
AllRouteTrafficAtRevision will check the revision that route r is routing traffic to and return true if 100% of the traffic is routing to revisionName.
func AppendRandomString ¶
func AppendRandomString(prefix string, logger *logging.BaseLogger) string
AppendRandomString will generate a random string that begins with prefix. This is useful if you want to make sure that your tests can run at the same time against the same environment without conflicting. This method will seed rand with the current time when called for the first time.
func BlueGreenRoute ¶
func BlueGreenRoute(namespace string, names, blue, green ResourceNames) *v1alpha1.Route
BlueGreenRoute returns a Route object in namespace using the route and configuration names in names. Traffic is split evenly between blue and green.
func CheckConfigurationState ¶
func CheckConfigurationState(client *ServingClients, name string, inState func(r *v1alpha1.Configuration) (bool, error)) error
CheckConfigurationState verifies the status of the Configuration called name from client is in a particular state by calling `inState` and expecting `true`. This is the non-polling variety of WaitForConfigurationState
func CheckRevisionState ¶
func CheckRevisionState(client *ServingClients, name string, inState func(r *v1alpha1.Revision) (bool, error)) error
CheckRevisionState verifies the status of the Revision called name from client is in a particular state by calling `inState` and expecting `true`. This is the non-polling variety of WaitForRevisionState
func CheckRouteState ¶
func CheckRouteState(client *ServingClients, name string, inState func(r *v1alpha1.Route) (bool, error)) error
CheckRouteState verifies the status of the Route called name from client is in a particular state by calling `inState` and expecting `true`. This is the non-polling variety of WaitForRouteState
func CheckServiceState ¶
func CheckServiceState(client *ServingClients, name string, inState func(s *v1alpha1.Service) (bool, error)) error
CheckServiceState verifies the status of the Service called name from client is in a particular state by calling `inState` and expecting `true`. This is the non-polling variety of WaitForServiceState
func CleanupOnInterrupt ¶
func CleanupOnInterrupt(cleanup func(), logger *logging.BaseLogger)
CleanupOnInterrupt will execute the function cleanup if an interrupt signal is caught
func Configuration ¶
func Configuration(namespace string, names ResourceNames, imagePath string, options *Options) *v1alpha1.Configuration
Configuration returns a Configuration object in namespace with the name names.Config that uses the image specified by imagePath.
func ConfigurationHasCreatedRevision ¶
func ConfigurationHasCreatedRevision(c *v1alpha1.Configuration) (bool, error)
ConfigurationHasCreatedRevision returns whether the Configuration has created a Revision.
func ConfigurationSpec ¶
func ConfigurationSpec(imagePath string, options *Options) *v1alpha1.ConfigurationSpec
ConfigurationSpec returns the spec of a configuration to be used throughout different CRD helpers.
func ConfigurationWithBuild ¶
func ConfigurationWithBuild(namespace string, names ResourceNames, build *v1alpha1.RawExtension, imagePath string) *v1alpha1.Configuration
ConfigurationWithBuild returns a Configurtion object in the `namespace` with the name `names.Config` that uses the provided Build spec `build` and image specified by `imagePath`.
func CreateBlueGreenRoute ¶
func CreateBlueGreenRoute(logger *logging.BaseLogger, clients *Clients, names, blue, green ResourceNames) error
CreateBlueGreenRoute creates a route in the given namespace using the route name in names. Traffic is evenly split between the two routes specified by blue and green.
func CreateConfiguration ¶
func CreateConfiguration(logger *logging.BaseLogger, clients *Clients, names ResourceNames, imagePath string, options *Options) (*v1alpha1.Configuration, error)
CreateConfiguration create a configuration resource in namespace with the name names.Config that uses the image specified by imagePath. TODO(dangerd): Update to use names.Image instead of imagePath to match Service. Requires some refactoring test/e2e.
func CreateLatestService ¶
func CreateLatestService(logger *logging.BaseLogger, clients *Clients, names ResourceNames, options *Options) (*v1alpha1.Service, error)
CreateLatestService creates a service in namespace with the name names.Service and names.Image
func CreateLatestServiceWithResources ¶
func CreateLatestServiceWithResources(logger *logging.BaseLogger, clients *Clients, names ResourceNames, imagePath string) (*v1alpha1.Service, error)
CreateLatestServiceWithResources creates a service in namespace with the name names.Service that uses the image specified by imagePath
func CreateRoute ¶
func CreateRoute(logger *logging.BaseLogger, clients *Clients, names ResourceNames) (*v1alpha1.Route, error)
CreateRoute creates a route in the given namespace using the route name in names
func GetConfigMap ¶
func GetConfigMap(client *pkgTest.KubeClient) k8styped.ConfigMapInterface
GetConfigMap gets the knative serving config map.
func GetRouteProberError ¶
func GetRouteProberError(errorChan <-chan error, logger *logging.BaseLogger) error
GetRouteProberError gets the error of route prober.
func IsConfigRevisionCreationFailed ¶
func IsConfigRevisionCreationFailed(c *v1alpha1.Configuration) (bool, error)
IsConfigRevisionCreationFailed will check the status conditions of the configuration and return true if the configuration's revision failed to create.
func IsRevisionAtExpectedGeneration ¶
func IsRevisionAtExpectedGeneration(expectedGeneration string) func(r *v1alpha1.Revision) (bool, error)
IsRevisionAtExpectedGeneration returns a function that will check if the annotations on the revision include an annotation for the generation and that the annotation is set to the expected value. TODO(dprotaso) Delete this assertion for the 0.4 release
func IsRevisionBuildFailed ¶
IsRevisionBuildFailed will check the status conditions of the revision and return true if the revision's build failed.
func IsRevisionReady ¶
IsRevisionReady will check the status conditions of the revision and return true if the revision is ready to serve traffic. It will return false if the status indicates a state other than deploying or being ready. It will also return false if the type of the condition is unexpected.
func IsRouteReady ¶
IsRouteReady will check the status conditions of the route and return true if the route is ready.
func IsServiceReady ¶
IsServiceReady will check the status conditions of the service and return true if the service is ready. This means that its configurations and routes have all reported ready.
func LatestService ¶
func LatestService(namespace string, names ResourceNames, imagePath string, options *Options) *v1alpha1.Service
LatestService returns a RunLatest Service object in namespace with the name names.Service that uses the image specified by imagePath.
func LatestServiceWithResources ¶
func LatestServiceWithResources(namespace string, names ResourceNames, imagePath string) *v1alpha1.Service
LatestServiceWithResources returns a RunLatest Service object in namespace with the name names.Service that uses the image specified by imagePath, and small constant resources.
func ListenAndServeGracefully ¶
func ListenAndServeGracefully(addr string, handler func(w http.ResponseWriter, r *http.Request))
ListenAndServeGracefully calls into ListenAndServeGracefullyWithPattern by passing handler to handle requests for "/"
func ListenAndServeGracefullyWithPattern ¶
func ListenAndServeGracefullyWithPattern(addr string, handlers map[string]func(w http.ResponseWriter, r *http.Request))
ListenAndServeGracefullyWithPattern creates an HTTP server, listens on the defined address and handles incoming requests specified on pattern(path) with the given handlers. It blocks until SIGTERM is received and the underlying server has shutdown gracefully.
func LogResourceObject ¶
func LogResourceObject(logger *logging.BaseLogger, value ResourceObjects)
LogResourceObject logs the resource object with the resource name and value
func ManualService ¶
ManualService returns a Manual Service object in namespace with the name names.Service
func PatchConfigImage ¶
func PatchConfigImage(logger *logging.BaseLogger, clients *Clients, cfg *v1alpha1.Configuration, imagePath string) (*v1alpha1.Configuration, error)
PatchConfigImage patches the existing config passed in with a new imagePath. Returns the latest Configuration object
func PatchManualService ¶
func PatchManualService(logger *logging.BaseLogger, clients *Clients, svc *v1alpha1.Service) (*v1alpha1.Service, error)
PatchManualService patches an existing service in namespace with the name names.Service
func PatchReleaseService ¶
func PatchReleaseService(logger *logging.BaseLogger, clients *Clients, svc *v1alpha1.Service, revisions []string, rolloutPercent int) (*v1alpha1.Service, error)
PatchReleaseService patches an existing service in namespace with the name names.Service
func PatchService ¶
func PatchService(logger *logging.BaseLogger, clients *Clients, curSvc *v1alpha1.Service, desiredSvc *v1alpha1.Service) (*v1alpha1.Service, error)
PatchService creates and applies a patch from the diff between curSvc and desiredSvc. Returns the latest service object.
func PatchServiceImage ¶
func PatchServiceImage(logger *logging.BaseLogger, clients *Clients, svc *v1alpha1.Service, imagePath string) (*v1alpha1.Service, error)
PatchServiceImage patches the existing service passed in with a new imagePath. Returns the latest service object
func PatchServiceRevisionTemplateMetadata ¶
func PatchServiceRevisionTemplateMetadata(logger *logging.BaseLogger, clients *Clients, svc *v1alpha1.Service, metadata metav1.ObjectMeta) (*v1alpha1.Service, error)
PatchServiceRevisionTemplateMetadata patches an existing service by adding metadata to the service's RevisionTemplateSpec.
func ReleaseService ¶
func ReleaseService(svc *v1alpha1.Service, revisions []string, rolloutPercent int) *v1alpha1.Service
ReleaseService returns a Release Service object in namespace with the name names.Service that uses the image specifeid by imagePath. It also takes a list of 1-2 revisons and a rolloutPercent to be used to configure routing
func Route ¶
func Route(namespace string, names ResourceNames) *v1alpha1.Route
Route returns a Route object in namespace using the route and configuration names in names.
func RunRouteProber ¶
func RunRouteProber(logger *logging.BaseLogger, clients *Clients, domain string) <-chan error
RunRouteProber creates and runs a prober as background goroutine to keep polling Route. It stops when getting an error response from Route.
func TODO_RouteTrafficToRevisionWithInClusterDNS ¶
RouteTrafficToRevisionWithInClusterDNS will check the revision that route r is routing traffic using in cluster DNS and return true if the revision received the request.
func TODO_ServiceTrafficToRevisionWithInClusterDNS ¶
ServiceTrafficToRevisionWithInClusterDNS will check the revision that route r is routing traffic using in cluster DNS and return true if the revision received the request.
func UpdateBlueGreenRoute ¶
func UpdateBlueGreenRoute(logger *logging.BaseLogger, clients *Clients, names, blue, green ResourceNames) (*v1alpha1.Route, error)
UpdateRoute updates a route in the given namespace using the route name in names
func WaitForConfigLatestRevision ¶
func WaitForConfigLatestRevision(clients *Clients, names ResourceNames) (string, error)
WaitForConfigLatestRevision takes a revision in through names and compares it to the current state of LatestCreatedRevisionName in Configuration. Once an update is detected in the LatestCreatedRevisionName, the function waits for the created revision to be set in LatestReadyRevisionName before returning the name of the revision.
func WaitForConfigurationState ¶
func WaitForConfigurationState(client *ServingClients, name string, inState func(c *v1alpha1.Configuration) (bool, error), desc string) error
WaitForConfigurationState polls the status of the Configuration 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 WaitForRevisionState ¶
func WaitForRevisionState(client *ServingClients, name string, inState func(r *v1alpha1.Revision) (bool, error), desc string) error
WaitForRevisionState polls the status of the Revision 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 WaitForRouteState ¶
func WaitForRouteState(client *ServingClients, name string, inState func(r *v1alpha1.Route) (bool, error), desc string) error
WaitForRouteState polls the status of the Route 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 WaitForServiceLatestRevision ¶
func WaitForServiceLatestRevision(clients *Clients, names ResourceNames) (string, error)
WaitForServiceLatestRevision takes a revision in through names and compares it to the current state of LatestCreatedRevisionName in Service. Once an update is detected in the LatestCreatedRevisionName, the function waits for the created revision to be set in LatestReadyRevisionName before returning the name of the revision.
func WaitForServiceState ¶
func WaitForServiceState(client *ServingClients, name string, inState func(s *v1alpha1.Service) (bool, error), desc string) error
WaitForServiceState polls the status of the Service 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.
Types ¶
type BuildClient ¶
type BuildClient struct {
TestBuilds testbuildtyped.BuildInterface
}
BuildClient holds instances of interfaces for making requests to build client.
type Clients ¶
type Clients struct {
KubeClient *test.KubeClient
ServingClient *ServingClients
BuildClient *BuildClient
Dynamic dynamic.Interface
}
Clients holds instances of interfaces for making requests to Knative Serving.
func NewClients ¶
NewClients instantiates and returns several clientsets required for making request to the Knative Serving cluster specified by the combination of clusterName and configPath. Clients can make requests within namespace.
type Options ¶
type Options struct {
EnvVars []corev1.EnvVar
ContainerPorts []corev1.ContainerPort
ContainerConcurrency int
RevisionTimeoutSeconds int64
ContainerResources corev1.ResourceRequirements
ReadinessProbe *corev1.Probe
}
Options are test setup parameters.
type ResourceNames ¶
type ResourceNames struct {
Config string
Route string
Revision string
Service string
TrafficTarget string
Domain string
Image string
}
ResourceNames holds names of various resources.
type ResourceObjects ¶
type ResourceObjects struct {
Route *v1alpha1.Route
Config *v1alpha1.Configuration
Service *v1alpha1.Service
Revision *v1alpha1.Revision
}
ResourceObjects holds types of the resource objects.
func CreateRunLatestServiceReady ¶
func CreateRunLatestServiceReady(logger *logging.BaseLogger, clients *Clients, names *ResourceNames, options *Options) (*ResourceObjects, error)
CreateRunLatestServiceReady creates a new RunLatest Service in state 'Ready'. This function expects Service and Image name passed in through 'names'. Names is updated with the Route and Configuration created by the Service and ResourceObjects is returned with the Service, Route, and Configuration objects. Returns error if the service does not come up correctly.
type ServingClients ¶
type ServingClients struct {
Routes servingtyped.RouteInterface
Configs servingtyped.ConfigurationInterface
Revisions servingtyped.RevisionInterface
Services servingtyped.ServiceInterface
}
ServingClients holds instances of interfaces for making requests to knative serving clients
type ServingEnvironmentFlags ¶
type ServingEnvironmentFlags struct {
ResolvableDomain bool // Resolve Route controller's `domainSuffix`
DockerRepo string // Docker repo (defaults to $DOCKER_REPO_OVERRIDE)
Tag string // Test images version tag
}
ServingEnvironmentFlags holds the e2e flags needed only by the serving repo.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
+k8s:deepcopy-gen=package
|
+k8s:deepcopy-gen=package |
|
testing/v1alpha1
+k8s:deepcopy-gen=package +groupName=testing.internal.knative.dev
|
+k8s:deepcopy-gen=package +groupName=testing.internal.knative.dev |
|
client
|
|
|
reconciler
|
|
|
test_images
|
|
|
autoscale
command
|
|
|
bloatingcow
command
|
|
|
environment
command
|
|
|
failing
command
|
|
|
helloworld
command
|
|
|
httpproxy
command
|
|
|
observed-concurrency
command
|
|
|
pizzaplanetv1
command
|
|
|
pizzaplanetv2
command
|
|
|
printport
command
|
|
|
singlethreaded
command
The singlethreaded program
|
The singlethreaded program |
|
timeout
command
|
|