github.com/jenkins-x/jx/v2@v2.1.155/pkg/kube/deployments_test.go (about) 1 // +build unit 2 3 package kube_test 4 5 import ( 6 "testing" 7 "time" 8 9 "github.com/jenkins-x/jx/v2/pkg/kube" 10 "github.com/stretchr/testify/assert" 11 appsv1 "k8s.io/api/apps/v1" 12 v1 "k8s.io/api/core/v1" 13 "k8s.io/apimachinery/pkg/api/resource" 14 meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" 15 kube_mocks "k8s.io/client-go/kubernetes/fake" 16 ) 17 18 func TestWaitForDeploymentToBeReady(t *testing.T) { 19 t.Parallel() 20 21 node := &v1.Node{ 22 ObjectMeta: meta_v1.ObjectMeta{ 23 Name: "test-node-1", 24 }, 25 Status: v1.NodeStatus{ 26 Capacity: v1.ResourceList{ 27 v1.ResourceCPU: resource.MustParse("10"), 28 v1.ResourceMemory: resource.MustParse("10G"), 29 }, 30 }, 31 } 32 33 replicaCount := int32(1) 34 35 labels := make(map[string]string) 36 labels["app"] = "ians-app" 37 38 deployment := &appsv1.Deployment{ 39 ObjectMeta: meta_v1.ObjectMeta{ 40 Name: "test-deployment", 41 Namespace: "jx-testing", 42 SelfLink: "/apis/extensions/v1beta1/namespaces/jx-testing/deployments/test-deployment", 43 }, 44 Spec: appsv1.DeploymentSpec{ 45 Replicas: &replicaCount, 46 Selector: &meta_v1.LabelSelector{ 47 MatchLabels: map[string]string{ 48 "app": "ians-app", 49 }, 50 }, 51 Template: v1.PodTemplateSpec{ 52 ObjectMeta: meta_v1.ObjectMeta{ 53 Labels: map[string]string{ 54 "app": "ians-app", 55 }, 56 }, 57 Spec: v1.PodSpec{ 58 Containers: []v1.Container{ 59 { 60 Name: "web", 61 Image: "nginx:1.12", 62 Ports: []v1.ContainerPort{ 63 { 64 Name: "http", 65 Protocol: v1.ProtocolTCP, 66 ContainerPort: 80, 67 }, 68 }, 69 }, 70 }, 71 }, 72 }, 73 }, 74 Status: appsv1.DeploymentStatus{ 75 Replicas: 1, 76 UpdatedReplicas: 1, 77 AvailableReplicas: 1, 78 UnavailableReplicas: 0, 79 ReadyReplicas: 1, 80 CollisionCount: nil, 81 }, 82 } 83 84 kubernetesInterface := kube_mocks.NewSimpleClientset(node, deployment) 85 86 err := kube.WaitForDeploymentToBeReady(kubernetesInterface, "test-deployment", "jx-testing", time.Second*5) 87 88 assert.NoError(t, err, "Should not error") 89 90 }