Logger allows t.Testing and b.Testing to be passed to StartTestServer and StartTestServerOrDie
type Logger interface { Helper() Errorf(format string, args ...interface{}) Fatalf(format string, args ...interface{}) Logf(format string, args ...interface{}) Cleanup(func()) }
ProxyCA contains the certificate authority certificate and key which is used to verify client connections to kube-apiservers. The clients can be : 1. aggregated apiservers 2. peer kube-apiservers
type ProxyCA struct { ProxySigningCert *x509.Certificate ProxySigningKey *rsa.PrivateKey }
TearDownFunc is to be called to tear down a test server.
type TearDownFunc func()
TestServer return values supplied by kube-test-ApiServer
type TestServer struct { ClientConfig *restclient.Config // Rest client config ServerOpts *options.ServerRunOptions // ServerOpts TearDownFn TearDownFunc // TearDown function TmpDir string // Temp Dir used, by the apiserver EtcdClient *clientv3.Client // used by tests that need to check data migrated from APIs that are no longer served EtcdStoragePrefix string // storage prefix in etcd }
func StartTestServer(t Logger, instanceOptions *TestServerInstanceOptions, customFlags []string, storageConfig *storagebackend.Config) (result TestServer, err error)
StartTestServer starts a etcd server and kube-apiserver. A rest client config and a tear-down func, and location of the tmpdir are returned.
Note: we return a tear-down func instead of a stop channel because the later will leak temporary files that because Golang testing's call to os.Exit will not give a stop channel go routine enough time to remove temporary files.
func StartTestServerOrDie(t Logger, instanceOptions *TestServerInstanceOptions, flags []string, storageConfig *storagebackend.Config) *TestServer
StartTestServerOrDie calls StartTestServer t.Fatal if it does not succeed.
TestServerInstanceOptions Instance options the TestServer
type TestServerInstanceOptions struct { // SkipHealthzCheck returns without waiting for the server to become healthy. // Useful for testing server configurations expected to prevent /healthz from completing. SkipHealthzCheck bool // Enable cert-auth for the kube-apiserver EnableCertAuth bool // Wrap the storage version interface of the created server's generic server. StorageVersionWrapFunc func(storageversion.Manager) storageversion.Manager // We specify this as on option to pass a common proxyCA to multiple apiservers to simulate // an apiserver version skew scenario where all apiservers use the same proxyCA to verify client connections. ProxyCA *ProxyCA }
func NewDefaultTestServerOptions() *TestServerInstanceOptions
NewDefaultTestServerOptions Default options for TestServer instances