linkerd2/controller/k8s/test_helper.go

49 lines
971 B
Go

package k8s
import (
"github.com/linkerd/linkerd2/pkg/k8s"
corev1 "k8s.io/api/core/v1"
)
// NewFakeAPI provides a mock Kubernetes API for testing.
func NewFakeAPI(configs ...string) (*API, error) {
clientSet, _, _, spClientSet, tsClientSet, err := k8s.NewFakeClientSets(configs...)
if err != nil {
return nil, err
}
return NewAPI(
clientSet,
spClientSet,
tsClientSet,
CJ,
CM,
Deploy,
DS,
Endpoint,
Job,
MWC,
NS,
Pod,
RC,
RS,
SP,
SS,
Svc,
TS,
Node,
), nil
}
type byPod []*corev1.Pod
func (bp byPod) Len() int { return len(bp) }
func (bp byPod) Swap(i, j int) { bp[i], bp[j] = bp[j], bp[i] }
func (bp byPod) Less(i, j int) bool { return bp[i].Name <= bp[j].Name }
type byService []*corev1.Service
func (bs byService) Len() int { return len(bs) }
func (bs byService) Swap(i, j int) { bs[i], bs[j] = bs[j], bs[i] }
func (bs byService) Less(i, j int) bool { return bs[i].Name <= bs[j].Name }