Skip to content

Commit 759820f

Browse files
committed
upkeep: update arbiter deployment image logic
updated deployment test for arbiter to use the shell image instead of busybox, this will avoid pulling from docker.io updated polling logic to use wait package Signed-off-by: ehila <[email protected]>
1 parent 5be1d97 commit 759820f

File tree

1 file changed

+28
-50
lines changed

1 file changed

+28
-50
lines changed

test/extended/two_node/arbiter_topology.go

Lines changed: 28 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111

1212
v1 "github.com/openshift/api/config/v1"
1313
exutil "github.com/openshift/origin/test/extended/util"
14+
"github.com/openshift/origin/test/extended/util/image"
1415
appv1 "k8s.io/api/apps/v1"
1516
corev1 "k8s.io/api/core/v1"
1617
kapierror "k8s.io/apimachinery/pkg/api/errors"
@@ -121,30 +122,33 @@ var _ = g.Describe("[sig-apps][apigroup:apps.openshift.io][OCPFeatureGate:Highly
121122
g.It("should be created on arbiter nodes when arbiter node is selected", func() {
122123
g.By("Waiting for Arbiter node to become Ready")
123124
var arbiterNodeName string
124-
timeout := time.Now().Add(2 * time.Minute) // Maximum wait time of 2 minutes
125-
126-
for time.Now().Before(timeout) {
125+
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Minute)
126+
defer cancel()
127+
err := wait.PollUntilContextTimeout(ctx, 5*time.Second, 300*time.Second, true, func(ctx context.Context) (done bool, err error) {
127128
arbiterNodes, err := oc.AdminKubeClient().CoreV1().Nodes().List(context.Background(), metav1.ListOptions{
128129
LabelSelector: labelNodeRoleArbiter,
129130
})
130-
o.Expect(err).To(o.BeNil(), "Expected to retrieve Arbiter nodes without error")
131-
132-
if len(arbiterNodes.Items) != 1 {
133-
time.Sleep(5 * time.Second)
134-
continue
131+
if kapierror.IsTimeout(err) {
132+
return false, nil
133+
} else if err != nil {
134+
return false, err
135+
}
136+
if len(arbiterNodes.Items) == 0 {
137+
return false, nil
135138
}
136-
if isNodeReady(arbiterNodes.Items[0]) {
137-
arbiterNodeName = arbiterNodes.Items[0].Name
139+
// We only need the name of one arbiter node
140+
for _, node := range arbiterNodes.Items {
141+
arbiterNodeName = node.Name
138142
break
139143
}
144+
return true, err
145+
})
140146

141-
time.Sleep(5 * time.Second)
142-
}
143-
144-
o.Expect(arbiterNodeName).NotTo(o.BeEmpty(), "Timed out waiting for the Arbiter node to become Ready")
147+
o.Expect(err).To(o.BeNil(), "Error getting arbiter node list")
148+
o.Expect(arbiterNodeName).NotTo(o.BeEmpty(), "Arbiter node name should not be empty")
145149

146150
g.By("Creating an Arbiter deployment (on Arbiter node)")
147-
_, err := createArbiterDeployment(oc, arbiterNodeName)
151+
_, err = createArbiterDeployment(oc, arbiterNodeName)
148152
o.Expect(err).To(o.BeNil(), "Expected Arbiter busybox deployment creation to succeed")
149153

150154
g.By("Validating Arbiter deployment")
@@ -294,18 +298,7 @@ var _ = g.Describe("[sig-etcd][apigroup:config.openshift.io][OCPFeatureGate:High
294298
func createNormalDeployment(oc *exutil.CLI) (*appv1.Deployment, error) {
295299
var replicas int32 = 1
296300

297-
container := corev1.Container{
298-
Name: "busybox",
299-
Image: "busybox",
300-
Command: []string{"sleep", "3600"},
301-
Resources: corev1.ResourceRequirements{
302-
Requests: corev1.ResourceList{
303-
corev1.ResourceCPU: resource.MustParse("20m"),
304-
corev1.ResourceMemory: resource.MustParse("50Mi"),
305-
},
306-
},
307-
}
308-
301+
container := containerSpec()
309302
deployment := &appv1.Deployment{
310303
TypeMeta: metav1.TypeMeta{
311304
APIVersion: "apps/v1",
@@ -339,17 +332,7 @@ func createNormalDeployment(oc *exutil.CLI) (*appv1.Deployment, error) {
339332
func createArbiterDeployment(oc *exutil.CLI, arbiterNodeName string) (*appv1.Deployment, error) {
340333
var replicas int32 = 1
341334

342-
container := corev1.Container{
343-
Name: "busybox",
344-
Image: "busybox",
345-
Command: []string{"sleep", "3600"},
346-
Resources: corev1.ResourceRequirements{
347-
Requests: corev1.ResourceList{
348-
corev1.ResourceCPU: resource.MustParse("20m"),
349-
corev1.ResourceMemory: resource.MustParse("50Mi"),
350-
},
351-
},
352-
}
335+
container := containerSpec()
353336

354337
deployment := &appv1.Deployment{
355338
TypeMeta: metav1.TypeMeta{
@@ -382,10 +365,10 @@ func createArbiterDeployment(oc *exutil.CLI, arbiterNodeName string) (*appv1.Dep
382365
Create(context.Background(), deployment, metav1.CreateOptions{})
383366
}
384367

385-
func createDaemonSetDeployment(oc *exutil.CLI) (*appv1.DaemonSet, error) {
386-
container := corev1.Container{
368+
func containerSpec() corev1.Container {
369+
return corev1.Container{
387370
Name: "busybox",
388-
Image: "busybox",
371+
Image: image.ShellImage(),
389372
Command: []string{"sleep", "3600"},
390373
Resources: corev1.ResourceRequirements{
391374
Requests: corev1.ResourceList{
@@ -394,6 +377,10 @@ func createDaemonSetDeployment(oc *exutil.CLI) (*appv1.DaemonSet, error) {
394377
},
395378
},
396379
}
380+
}
381+
382+
func createDaemonSetDeployment(oc *exutil.CLI) (*appv1.DaemonSet, error) {
383+
container := containerSpec()
397384

398385
daemonSet := &appv1.DaemonSet{
399386
TypeMeta: metav1.TypeMeta{
@@ -424,15 +411,6 @@ func createDaemonSetDeployment(oc *exutil.CLI) (*appv1.DaemonSet, error) {
424411
Create(context.Background(), daemonSet, metav1.CreateOptions{})
425412
}
426413

427-
func isNodeReady(node corev1.Node) bool {
428-
for _, condition := range node.Status.Conditions {
429-
if condition.Type == corev1.NodeReady && condition.Status == corev1.ConditionTrue {
430-
return true
431-
}
432-
}
433-
return false
434-
}
435-
436414
func isPodRunning(pod corev1.Pod) bool {
437415
return pod.Status.Phase == corev1.PodRunning
438416
}

0 commit comments

Comments
 (0)