diff --git a/api/gateway-operator/v1beta1/controlplane_conversion.go b/api/gateway-operator/v1beta1/controlplane_conversion.go index 20d3e68e..4da0456c 100644 --- a/api/gateway-operator/v1beta1/controlplane_conversion.go +++ b/api/gateway-operator/v1beta1/controlplane_conversion.go @@ -67,7 +67,10 @@ func (c *ControlPlane) ConvertTo(dstRaw conversion.Hub) error { dst.ObjectMeta = c.ObjectMeta - if err := c.Spec.convertTo(&dst.Spec.ControlPlaneOptions, c.Spec.IngressClass); err != nil { + // Setting IngressClass wasn't required in v1beta1, but for v2beta1 it is, + // thus fill with a default value to make it work without hassle. + class := lo.FromPtrOr(c.Spec.IngressClass, "kong") + if err := c.Spec.convertTo(&dst.Spec.ControlPlaneOptions, &class); err != nil { return err } dst.Spec.Extensions = c.Spec.Extensions diff --git a/test/conversion/gateway-operator.konghq.com/v1beta1/controlplane_test.go b/test/conversion/gateway-operator.konghq.com/v1beta1/controlplane_test.go index 03e59abc..722fd932 100644 --- a/test/conversion/gateway-operator.konghq.com/v1beta1/controlplane_test.go +++ b/test/conversion/gateway-operator.konghq.com/v1beta1/controlplane_test.go @@ -27,6 +27,7 @@ func TestControlPlane_ConvertTo(t *testing.T) { name string spec operatorv1beta1.ControlPlaneSpec expectsDataPlane bool + expectedIngressClass *string expectedFeatureGates []operatorv2beta1.ControlPlaneFeatureGate expectedControllers []operatorv2beta1.ControlPlaneController expectedError error @@ -76,9 +77,9 @@ func TestControlPlane_ConvertTo(t *testing.T) { }, }, }, - IngressClass: lo.ToPtr("kong"), }, - expectsDataPlane: true, + expectedIngressClass: lo.ToPtr("kong"), + expectsDataPlane: true, expectedFeatureGates: []operatorv2beta1.ControlPlaneFeatureGate{ {Name: "GatewayAlpha", State: operatorv2beta1.FeatureGateStateEnabled}, {Name: "ExperimentalFeature", State: operatorv2beta1.FeatureGateStateDisabled}, @@ -190,9 +191,10 @@ func TestControlPlane_ConvertTo(t *testing.T) { List: []string{"namespace1", "namespace2"}, }, }, - IngressClass: lo.ToPtr("kong"), + IngressClass: lo.ToPtr("test"), }, - expectsDataPlane: false, + expectedIngressClass: lo.ToPtr("test"), + expectsDataPlane: false, }, { name: "With own namespace watching", @@ -203,7 +205,8 @@ func TestControlPlane_ConvertTo(t *testing.T) { }, }, }, - expectsDataPlane: false, + expectedIngressClass: lo.ToPtr("kong"), + expectsDataPlane: false, }, } @@ -246,7 +249,7 @@ func TestControlPlane_ConvertTo(t *testing.T) { require.Nil(t, dst.Spec.DataPlane.Ref) } - require.Equal(t, tc.spec.IngressClass, dst.Spec.IngressClass) + require.Equal(t, tc.expectedIngressClass, dst.Spec.IngressClass) if tc.spec.WatchNamespaces != nil { require.NotNil(t, dst.Spec.WatchNamespaces)