linkerd2/controller/k8s/test_helper.go

38 lines
690 B
Go

package k8s
import (
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/client-go/kubernetes/fake"
"k8s.io/client-go/kubernetes/scheme"
)
func toRuntimeObject(config string) (runtime.Object, error) {
decode := scheme.Codecs.UniversalDeserializer().Decode
obj, _, err := decode([]byte(config), nil, nil)
return obj, err
}
func NewFakeAPI(configs ...string) (*API, error) {
objs := []runtime.Object{}
for _, config := range configs {
obj, err := toRuntimeObject(config)
if err != nil {
return nil, err
}
objs = append(objs, obj)
}
clientSet := fake.NewSimpleClientset(objs...)
return NewAPI(
clientSet,
CM,
Deploy,
Endpoint,
NS,
Pod,
RC,
RS,
Svc,
), nil
}