Skip to content

Commit

Permalink
update integration test
Browse files Browse the repository at this point in the history
  • Loading branch information
yuchen-db committed Jul 3, 2024
1 parent 16b9498 commit 1feeef3
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 9 deletions.
17 changes: 14 additions & 3 deletions integration/e2e_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ package integration

import (
"context"
"fmt"
"testing"
"time"

"github.com/stretchr/testify/require"
corev1 "k8s.io/api/core/v1"
Expand All @@ -25,13 +27,22 @@ func TestRolloutHappyCase(t *testing.T) {
requireEventuallyPod(t, api, ctx, rolloutOperatorPod, expectPodPhase(corev1.PodRunning), expectReady())

// Create mock service, and check that it is in the desired state.
createMockServiceZone(t, ctx, api, corev1.NamespaceDefault, "mock-zone-a")
createMockServiceZone(t, ctx, api, corev1.NamespaceDefault, "mock-zone-b")
createMockServiceZone(t, ctx, api, corev1.NamespaceDefault, "mock-zone-c")
sts_a := createMockServiceZone(t, ctx, api, corev1.NamespaceDefault, "mock-zone-a")
sts_b := createMockServiceZone(t, ctx, api, corev1.NamespaceDefault, "mock-zone-b")
sts_c := createMockServiceZone(t, ctx, api, corev1.NamespaceDefault, "mock-zone-c")
requireEventuallyPod(t, api, ctx, "mock-zone-a-0", expectPodPhase(corev1.PodRunning), expectReady(), expectVersion("1"))
requireEventuallyPod(t, api, ctx, "mock-zone-b-0", expectPodPhase(corev1.PodRunning), expectReady(), expectVersion("1"))
requireEventuallyPod(t, api, ctx, "mock-zone-c-0", expectPodPhase(corev1.PodRunning), expectReady(), expectVersion("1"))

time.Sleep(10)

Check failure on line 37 in integration/e2e_test.go

View workflow job for this annotation

GitHub Actions / lint

SA1004: sleeping for 10 nanoseconds is probably a bug; be explicit if it isn't (staticcheck)
fmt.Println(*sts_a.Spec.Replicas, sts_a.Status.Replicas)
require.Equal(t, 1, sts_a.Status.ReadyReplicas, "Ready replicas should be 1")
require.Equal(t, 1, sts_b.Status.ReadyReplicas, "Ready replicas should be 1")
require.Equal(t, 1, sts_c.Status.ReadyReplicas, "Ready replicas should be 1")

require.Equal(t, 1, sts_a.Status.AvailableReplicas, "Available replicas should be 1")
require.Equal(t, 1, sts_b.Status.AvailableReplicas, "Available replicas should be 1")
require.Equal(t, 1, sts_c.Status.AvailableReplicas, "Available replicas should be 1")
// Update all mock service statefulsets.
_, err := api.AppsV1().StatefulSets(corev1.NamespaceDefault).Update(ctx, mockServiceStatefulSet("mock-zone-a", "2", false), metav1.UpdateOptions{})
require.NoError(t, err, "Can't update StatefulSet")
Expand Down
9 changes: 4 additions & 5 deletions integration/manifests_mock_service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,10 @@ import (
"k8s.io/client-go/kubernetes"
)

func createMockServiceZone(t *testing.T, ctx context.Context, api *kubernetes.Clientset, namespace, name string) {
func createMockServiceZone(t *testing.T, ctx context.Context, api *kubernetes.Clientset, namespace, name string) *appsv1.StatefulSet {
t.Helper()
{
_, err := api.AppsV1().StatefulSets(namespace).Create(ctx, mockServiceStatefulSet(name, "1", true), metav1.CreateOptions{})
require.NoError(t, err, "Can't create StatefulSet")
}
sts, err := api.AppsV1().StatefulSets(namespace).Create(ctx, mockServiceStatefulSet(name, "1", true), metav1.CreateOptions{})
require.NoError(t, err, "Can't create StatefulSet")

{
_, err := api.CoreV1().Services(namespace).Create(ctx, mockServiceService(name), metav1.CreateOptions{})
Expand All @@ -31,6 +29,7 @@ func createMockServiceZone(t *testing.T, ctx context.Context, api *kubernetes.Cl
_, err := api.NetworkingV1().Ingresses(namespace).Create(ctx, mockServiceIngress(name), metav1.CreateOptions{})
require.NoError(t, err, "Can't create Ingress")
}
return sts
}

func mockServiceService(name string) *corev1.Service {
Expand Down
3 changes: 2 additions & 1 deletion pkg/controller/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -498,7 +498,8 @@ func (c *RolloutController) updateStatefulSetPods(ctx context.Context, sts *v1.S

if len(podsToUpdate) > 0 {
maxUnavailable := getMaxUnavailableForStatefulSet(sts, c.logger)
numNotAvailable := int(sts.Status.Replicas - sts.Status.AvailableReplicas)
//numNotAvailable := int(sts.Status.Replicas - sts.Status.AvailableReplicas)
numNotAvailable := int(sts.Status.Replicas - sts.Status.ReadyReplicas)

// Compute the number of pods we should update, honoring the configured maxUnavailable.
numPods := max(0, min(
Expand Down

0 comments on commit 1feeef3

Please sign in to comment.