From e070790d8acd4a97e78c14cc22f11ea1103f447e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9on=20van=20der=20Kaap?= Date: Fri, 17 Jul 2026 09:56:00 +0200 Subject: [PATCH] Changed the "volumeOperatorSpec" type to a pointer This change prevents empty structs being generated when the structs are serialized. This makes sure an unused field isn't added to every OGCAPI that does not use the Volume Operator. --- api/v1alpha1/ogcapi_types.go | 2 +- api/v1alpha1/zz_generated.deepcopy.go | 6 +++++- internal/controller/deployment.go | 2 +- internal/controller/ogcapi_controller_test.go | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/api/v1alpha1/ogcapi_types.go b/api/v1alpha1/ogcapi_types.go index 814b6c1..95b6900 100644 --- a/api/v1alpha1/ogcapi_types.go +++ b/api/v1alpha1/ogcapi_types.go @@ -106,7 +106,7 @@ type OGCAPI struct { Status smoothoperatormodel.OperatorStatus `json:"status,omitempty"` // +optional - VolumeOperatorSpec VolumeOperatorSpec `json:"volumeOperatorSpec,omitempty"` + VolumeOperatorSpec *VolumeOperatorSpec `json:"volumeOperatorSpec,omitempty"` } func (ogcapi *OGCAPI) OperatorStatus() *smoothoperatormodel.OperatorStatus { diff --git a/api/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go index 1c66e63..ae95235 100644 --- a/api/v1alpha1/zz_generated.deepcopy.go +++ b/api/v1alpha1/zz_generated.deepcopy.go @@ -261,7 +261,11 @@ func (in *OGCAPI) DeepCopyInto(out *OGCAPI) { in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) in.Spec.DeepCopyInto(&out.Spec) in.Status.DeepCopyInto(&out.Status) - out.VolumeOperatorSpec = in.VolumeOperatorSpec + if in.VolumeOperatorSpec != nil { + in, out := &in.VolumeOperatorSpec, &out.VolumeOperatorSpec + *out = new(VolumeOperatorSpec) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OGCAPI. diff --git a/internal/controller/deployment.go b/internal/controller/deployment.go index e48ad97..68cfacf 100644 --- a/internal/controller/deployment.go +++ b/internal/controller/deployment.go @@ -126,7 +126,7 @@ func (r *OGCAPIReconciler) mutateDeployment(ogcAPI *pdoknlv1alpha1.OGCAPI, deplo deployment.Spec.Template = podTemplateSpec // set annotations for optional volume-operator, volume operator requires blob-prefix to be set - if ogcAPI.VolumeOperatorSpec.BlobPrefix != "" { + if ogcAPI.VolumeOperatorSpec != nil && ogcAPI.VolumeOperatorSpec.BlobPrefix != "" { deployment = addVolumePopulatorToDeployment(deployment, ogcAPI) } diff --git a/internal/controller/ogcapi_controller_test.go b/internal/controller/ogcapi_controller_test.go index ff26e9f..d5979f2 100644 --- a/internal/controller/ogcapi_controller_test.go +++ b/internal/controller/ogcapi_controller_test.go @@ -172,7 +172,7 @@ var _ = Describe("OGCAPI Controller", func() { Spec: pdoknlv1alpha1.OGCAPISpec{ Service: *minimalOGCAPI.Spec.Service.DeepCopy(), }, - VolumeOperatorSpec: pdoknlv1alpha1.VolumeOperatorSpec{ + VolumeOperatorSpec: &pdoknlv1alpha1.VolumeOperatorSpec{ BlobPrefix: "test/prefix", }, }