Skip to content

Commit 09a11ae

Browse files
k8s-ci-robotshaneutt
authored andcommitted
Merge pull request #1760 from michaelbeaumont/fix/conformance_observed_gen
conformance: use Patch to make ObservedGeneration tests robust against conflicts
1 parent 71d7400 commit 09a11ae

3 files changed

+9
-6
lines changed

conformance/tests/gateway-observed-generation-bump.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323

2424
"github.com/stretchr/testify/require"
2525
"k8s.io/apimachinery/pkg/types"
26+
"sigs.k8s.io/controller-runtime/pkg/client"
2627

2728
"sigs.k8s.io/gateway-api/apis/v1beta1"
2829
"sigs.k8s.io/gateway-api/conformance/utils/kubernetes"
@@ -69,8 +70,8 @@ var GatewayObservedGenerationBump = suite.ConformanceTest{
6970
},
7071
})
7172

72-
err = s.Client.Update(ctx, mutate)
73-
require.NoErrorf(t, err, "error updating the Gateway: %v", err)
73+
err = s.Client.Patch(ctx, mutate, client.MergeFrom(original))
74+
require.NoErrorf(t, err, "error patching the Gateway: %v", err)
7475

7576
// Ensure the generation and observedGeneration sync up
7677
kubernetes.NamespacesMustBeAccepted(t, s.Client, s.TimeoutConfig, namespaces)

conformance/tests/gatewayclass-observed-generation-bump.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323

2424
"github.com/stretchr/testify/require"
2525
"k8s.io/apimachinery/pkg/types"
26+
"sigs.k8s.io/controller-runtime/pkg/client"
2627

2728
"sigs.k8s.io/gateway-api/apis/v1beta1"
2829
"sigs.k8s.io/gateway-api/conformance/utils/kubernetes"
@@ -58,8 +59,8 @@ var GatewayClassObservedGenerationBump = suite.ConformanceTest{
5859
desc := "new"
5960
mutate.Spec.Description = &desc
6061

61-
err = s.Client.Update(ctx, mutate)
62-
require.NoErrorf(t, err, "error updating the GatewayClass: %v", err)
62+
err = s.Client.Patch(ctx, mutate, client.MergeFrom(original))
63+
require.NoErrorf(t, err, "error patching the GatewayClass: %v", err)
6364

6465
// Ensure the generation and observedGeneration sync up
6566
kubernetes.GWCMustHaveAcceptedConditionAny(t, s.Client, s.TimeoutConfig, gwc.Name)

conformance/tests/httproute-observed-generation-bump.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"github.com/stretchr/testify/require"
2525
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2626
"k8s.io/apimachinery/pkg/types"
27+
"sigs.k8s.io/controller-runtime/pkg/client"
2728

2829
"sigs.k8s.io/gateway-api/apis/v1beta1"
2930
"sigs.k8s.io/gateway-api/conformance/utils/kubernetes"
@@ -65,8 +66,8 @@ var HTTPRouteObservedGenerationBump = suite.ConformanceTest{
6566

6667
mutate := original.DeepCopy()
6768
mutate.Spec.Rules[0].BackendRefs[0].Name = "infra-backend-v2"
68-
err = s.Client.Update(ctx, mutate)
69-
require.NoErrorf(t, err, "error updating the HTTPRoute: %v", err)
69+
err = s.Client.Patch(ctx, mutate, client.MergeFrom(original))
70+
require.NoErrorf(t, err, "error patching the HTTPRoute: %v", err)
7071

7172
kubernetes.HTTPRouteMustHaveCondition(t, s.Client, s.TimeoutConfig, routeNN, gwNN, acceptedCondition)
7273

0 commit comments

Comments
 (0)