Added example for fake client.
This commit is contained in:
		
							parent
							
								
									1e10549e43
								
							
						
					
					
						commit
						085d0da6a9
					
				| 
						 | 
					@ -0,0 +1,58 @@
 | 
				
			||||||
 | 
					package cluster
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"context"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						appsv1 "k8s.io/api/apps/v1"
 | 
				
			||||||
 | 
						metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"k8s.io/apimachinery/pkg/labels"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"k8s.io/client-go/kubernetes/fake"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"github.com/zalando/postgres-operator/pkg/util/k8sutil"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func NewFakeKubernetesClient() k8sutil.KubernetesClient {
 | 
				
			||||||
 | 
						clientSet := fake.NewSimpleClientset()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return k8sutil.KubernetesClient{
 | 
				
			||||||
 | 
							SecretsGetter:     clientSet.CoreV1(),
 | 
				
			||||||
 | 
							ConfigMapsGetter:  clientSet.CoreV1(),
 | 
				
			||||||
 | 
							DeploymentsGetter: clientSet.AppsV1(),
 | 
				
			||||||
 | 
							ServicesGetter:    clientSet.CoreV1(),
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestFakeClient(t *testing.T) {
 | 
				
			||||||
 | 
						clientSet := fake.NewSimpleClientset()
 | 
				
			||||||
 | 
						namespace := "default"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						l := labels.Set(map[string]string{
 | 
				
			||||||
 | 
							"application": "spilo",
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						deployment := &appsv1.Deployment{
 | 
				
			||||||
 | 
							ObjectMeta: metav1.ObjectMeta{
 | 
				
			||||||
 | 
								Name:      "my-deployment1",
 | 
				
			||||||
 | 
								Namespace: namespace,
 | 
				
			||||||
 | 
								Labels:    l,
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						clientSet.AppsV1().Deployments(namespace).Create(context.TODO(), deployment, metav1.CreateOptions{})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						deployment2, _ := clientSet.AppsV1().Deployments(namespace).Get(context.TODO(), "my-deployment1", metav1.GetOptions{})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if deployment.ObjectMeta.Name != deployment2.ObjectMeta.Name {
 | 
				
			||||||
 | 
							t.Errorf("Deployments are not equal")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						deployments, _ := clientSet.AppsV1().Deployments(namespace).List(context.TODO(), metav1.ListOptions{LabelSelector: "application=spilo"})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if len(deployments.Items) != 1 {
 | 
				
			||||||
 | 
							t.Errorf("Label search does not work")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue