Documentation ¶
Index ¶
- Constants
- func CreateTestingNamespace(baseName string, apiserver *httptest.Server, t *testing.T) *v1.Namespace
- func DeleteTestingNamespace(ns *v1.Namespace, apiserver *httptest.Server, t *testing.T)
- func FindFreeLocalPort() (int, error)
- func GetEtcdURLFromEnv() string
- func NewIntegrationTestMasterConfig() *master.Config
- func NewIntegrationTestNodePreparer(client clientset.Interface, countToStrategy []testutils.CountToStrategy, ...) testutils.TestNodePreparer
- func NewMasterConfig() *master.Config
- func NewSingleContentTypeSerializer(scheme *runtime.Scheme, info runtime.SerializerInfo) runtime.StorageSerializer
- func RCFromManifest(fileName string) *v1.ReplicationController
- func RunAMaster(masterConfig *master.Config) (*master.Master, *httptest.Server)
- func RunAMasterUsingServer(masterConfig *master.Config, s *httptest.Server, masterReceiver MasterReceiver) (*master.Master, *httptest.Server)
- func RunParallel(task Task, numTasks, numWorkers int)
- func ScaleRC(name, ns string, replicas int32, clientset internalclientset.Interface) (*api.ReplicationController, error)
- func StopRC(rc *v1.ReplicationController, clientset internalclientset.Interface) error
- type Config
- type IntegrationTestNodePreparer
- type MasterComponents
- type MasterHolder
- type MasterReceiver
- type Task
Constants ¶
const ( // Timeout used in benchmarks, to eg: scale an rc DefaultTimeout = 30 * time.Minute // Rc manifest used to create pods for benchmarks. // TODO: Convert this to a full path? TestRCManifest = "benchmark-controller.json" )
Variables ¶
This section is empty.
Functions ¶
func CreateTestingNamespace ¶
func DeleteTestingNamespace ¶
func FindFreeLocalPort ¶
FindFreeLocalPort returns the number of an available port number on the loopback interface. Useful for determining the port to launch a server on. Error handling required - there is a non-zero chance that the returned port number will be bound by another process after this function returns.
func NewIntegrationTestMasterConfig ¶
Returns the master config appropriate for most integration tests.
func NewIntegrationTestNodePreparer ¶
func NewIntegrationTestNodePreparer(client clientset.Interface, countToStrategy []testutils.CountToStrategy, nodeNamePrefix string) testutils.TestNodePreparer
func NewSingleContentTypeSerializer ¶
func NewSingleContentTypeSerializer(scheme *runtime.Scheme, info runtime.SerializerInfo) runtime.StorageSerializer
NewSingleContentTypeSerializer wraps a serializer in a NegotiatedSerializer that handles one content type
func RCFromManifest ¶
func RCFromManifest(fileName string) *v1.ReplicationController
RCFromManifest reads a .json file and returns the rc in it.
func RunAMasterUsingServer ¶
func RunParallel ¶
RunParallel spawns a goroutine per task in the given queue
func ScaleRC ¶
func ScaleRC(name, ns string, replicas int32, clientset internalclientset.Interface) (*api.ReplicationController, error)
ScaleRC scales the given rc to the given replicas.
func StopRC ¶
func StopRC(rc *v1.ReplicationController, clientset internalclientset.Interface) error
StopRC stops the rc via kubectl's stop library
Types ¶
type Config ¶
type Config struct { // If nil, a default is used, partially filled configs will not get populated. MasterConfig *master.Config StartReplicationManager bool // Client throttling qps QPS float32 // Client burst qps, also burst replicas allowed in rc manager Burst int }
Config is a struct of configuration directives for NewMasterComponents.
type IntegrationTestNodePreparer ¶
type IntegrationTestNodePreparer struct {
// contains filtered or unexported fields
}
func (*IntegrationTestNodePreparer) CleanupNodes ¶
func (p *IntegrationTestNodePreparer) CleanupNodes() error
func (*IntegrationTestNodePreparer) PrepareNodes ¶
func (p *IntegrationTestNodePreparer) PrepareNodes() error
type MasterComponents ¶
type MasterComponents struct { // Raw http server in front of the master ApiServer *httptest.Server // Kubernetes master, contains an embedded etcd storage KubeMaster *master.Master // Restclient used to talk to the kubernetes master ClientSet clientset.Interface // Replication controller manager ControllerManager *replicationcontroller.ReplicationManager // contains filtered or unexported fields }
MasterComponents is a control struct for all master components started via NewMasterComponents. TODO: Include all master components (scheduler, nodecontroller). TODO: Reconcile with integration.go, currently the master used there doesn't understand how to restart cleanly, which is required for each iteration of a benchmark. The integration tests also don't make it easy to isolate and turn off components at will.
func NewMasterComponents ¶
func NewMasterComponents(c *Config) *MasterComponents
NewMasterComponents creates, initializes and starts master components based on the given config.
func (*MasterComponents) Stop ¶
func (m *MasterComponents) Stop(apiServer, rcManager bool)
type MasterHolder ¶
MasterHolder implements
func (*MasterHolder) SetMaster ¶
func (h *MasterHolder) SetMaster(m *master.Master)
type MasterReceiver ¶
MasterReceiver can be used to provide the master to a custom incoming server function