* mock: implement GetStatsSummary Signed-off-by: Paulo Pires <pjpires@gmail.com> * make: use skaffold to deploy vk Signed-off-by: Paulo Pires <pjpires@gmail.com> * test: add an e2e test suite Signed-off-by: Paulo Pires <pjpires@gmail.com> * test: add vendored code Signed-off-by: Paulo Pires <pjpires@gmail.com> * docs: update README.md Signed-off-by: Paulo Pires <pjpires@gmail.com> * ci: run e2e on circleci Signed-off-by: Paulo Pires <pjpires@gmail.com> * make: improve the skaffold target Signed-off-by: Paulo Pires <pjpires@gmail.com> * e2e: fix defer pod deletion Signed-off-by: Paulo Pires <pjpires@gmail.com> * e2e: improve instructions Signed-off-by: Paulo Pires <pjpires@gmail.com> * makefile: default shell is bash Signed-off-by: Paulo Pires <pjpires@gmail.com>
48 lines
1.2 KiB
Go
48 lines
1.2 KiB
Go
package framework
|
|
|
|
import (
|
|
"k8s.io/client-go/kubernetes"
|
|
"k8s.io/client-go/rest"
|
|
"k8s.io/client-go/tools/clientcmd"
|
|
)
|
|
|
|
// Framework encapsulates the configuration for the current run, and provides helper methods to be used during testing.
|
|
type Framework struct {
|
|
KubeClient kubernetes.Interface
|
|
Namespace string
|
|
NodeName string
|
|
TaintKey string
|
|
TaintValue string
|
|
TaintEffect string
|
|
}
|
|
|
|
// NewTestingFramework returns a new instance of the testing framework.
|
|
func NewTestingFramework(kubeconfig, namespace, nodeName, taintKey, taintValue, taintEffect string) *Framework {
|
|
return &Framework{
|
|
KubeClient: createKubeClient(kubeconfig),
|
|
Namespace: namespace,
|
|
NodeName: nodeName,
|
|
TaintKey: taintKey,
|
|
TaintValue: taintValue,
|
|
TaintEffect: taintEffect,
|
|
}
|
|
}
|
|
|
|
// createKubeClient creates a new Kubernetes client based on the specified kubeconfig file.
|
|
// If no value for kubeconfig is specified, in-cluster configuration is assumed.
|
|
func createKubeClient(kubeconfig string) *kubernetes.Clientset {
|
|
var (
|
|
cfg *rest.Config
|
|
err error
|
|
)
|
|
if kubeconfig == "" {
|
|
cfg, err = rest.InClusterConfig()
|
|
} else {
|
|
cfg, err = clientcmd.BuildConfigFromFlags("", kubeconfig)
|
|
}
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
return kubernetes.NewForConfigOrDie(cfg)
|
|
}
|