Documentation
¶
Index ¶
- Constants
- func CreateTestingNamespace(baseName string, apiserver *httptest.Server, t *testing.T) *api.Namespace
- func DeleteTestingNamespace(ns *api.Namespace, apiserver *httptest.Server, t *testing.T)
- func GetEtcdURLFromEnv() string
- func NewEtcdClient() etcd.Client
- func NewIntegrationTestMasterConfig() *master.Config
- func NewMasterConfig() *master.Config
- func NewSingleContentTypeSerializer(scheme *runtime.Scheme, serializer runtime.Serializer, contentType string) runtime.StorageSerializer
- func RCFromManifest(fileName string) *api.ReplicationController
- func RequireEtcd()
- func RunAMaster(masterConfig *master.Config) (*master.Master, *httptest.Server)
- func RunParallel(task Task, numTasks, numWorkers int)
- func ScaleRC(name, ns string, replicas int32, restClient *client.Client) (*api.ReplicationController, error)
- func StartPods(namespace string, numPods int, host string, restClient *client.Client) error
- func StartRC(controller *api.ReplicationController, restClient *client.Client) (*api.ReplicationController, error)
- func StopRC(rc *api.ReplicationController, restClient *client.Client) error
- func WithEtcdKey(f func(string))
- type Config
- type MasterComponents
- 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 ¶ added in v1.4.0
func CreateTestingNamespace(baseName string, apiserver *httptest.Server, t *testing.T) *api.Namespace
func DeleteTestingNamespace ¶ added in v1.4.0
func DeleteTestingNamespace(ns *api.Namespace, apiserver *httptest.Server, t *testing.T)
func GetEtcdURLFromEnv ¶ added in v1.3.1
func GetEtcdURLFromEnv() string
func NewEtcdClient ¶
func NewEtcdClient() etcd.Client
func NewIntegrationTestMasterConfig ¶ added in v1.2.0
func NewIntegrationTestMasterConfig() *master.Config
Returns the master config appropriate for most integration tests.
func NewMasterConfig ¶ added in v1.2.0
func NewMasterConfig() *master.Config
Returns a basic master config.
func NewSingleContentTypeSerializer ¶ added in v1.3.1
func NewSingleContentTypeSerializer(scheme *runtime.Scheme, serializer runtime.Serializer, contentType string) runtime.StorageSerializer
NewSingleContentTypeSerializer wraps a serializer in a NegotiatedSerializer that handles one content type
func RCFromManifest ¶
func RCFromManifest(fileName string) *api.ReplicationController
RCFromManifest reads a .json file and returns the rc in it.
func RequireEtcd ¶
func RequireEtcd()
func RunAMaster ¶
func RunAMaster(masterConfig *master.Config) (*master.Master, *httptest.Server)
func RunParallel ¶
func RunParallel(task Task, numTasks, numWorkers int)
RunParallel spawns a goroutine per task in the given queue
func ScaleRC ¶
func ScaleRC(name, ns string, replicas int32, restClient *client.Client) (*api.ReplicationController, error)
ScaleRC scales the given rc to the given replicas.
func StartPods ¶
func StartPods(namespace string, numPods int, host string, restClient *client.Client) error
StartPods check for numPods in namespace. If they exist, it no-ops, otherwise it starts up a temp rc, scales it to match numPods, then deletes the rc leaving behind the pods.
func StartRC ¶
func StartRC(controller *api.ReplicationController, restClient *client.Client) (*api.ReplicationController, error)
StartRC creates given rc if it doesn't already exist, then updates it via kubectl's scaler.
func StopRC ¶
func StopRC(rc *api.ReplicationController, restClient *client.Client) error
StopRC stops the rc via kubectl's stop library
func WithEtcdKey ¶
func WithEtcdKey(f func(string))
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 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
RestClient *client.Client
// 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.