uthark / dynakube

Kubernetes Test client with dynamic behavior

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

dynakube

Kubernetes Test client with dynamic behavior

This client simplifies testing controllers with dynamic behaviour.

How to use

// initial state of the store.
d := &appsv1.Deployment{
    ObjectMeta: metav1.ObjectMeta{
        Namespace: "test",
        Name:      "foo",
    },
}
client := dynakube.NewDynamicClient(clientScheme, d)

// register custom reactors if you want to customize the behavior. 
client.PrependReactor("update", "deployments", func(action t.Action) (bool, runtime.Object, error) {
    return true, nil, &errors.StatusError{ErrStatus: metav1.Status{Code: 500}}
})

// run your reconciler.
r := NewReconciler(client)
name := types.NamespacedName{Namespace: "test", Name: "foo"}
_, err := r.Reconcile(context.Background(), controllers.Request{NamespacedName: name})
Expect(err).ToNot(BeNil())

Notes

This project reuses code from k8s.io/client-go package.

About

Kubernetes Test client with dynamic behavior

License:Apache License 2.0


Languages

Language:Go 80.2%Language:Makefile 19.8%