@@ -59,8 +59,11 @@ const (
5959)
6060
6161var (
62- AppLabelKey = "app"
63- MapserverName = "mapserver"
62+ AppLabelKey = "app"
63+ MapserverName = "mapserver"
64+ LegendGeneratorName = "legend-generator"
65+ FeatureInfoGeneratorName = "featureinfo-generator"
66+ OgcWebserviceProxyName = "ogc-webservice-proxy"
6467
6568 // Service ports
6669 mapserverPortName = "mapserver"
@@ -126,7 +129,7 @@ func getSharedBareObjects[O pdoknlv3.WMSWFS](obj O) []client.Object {
126129 getBareIngressRoute (obj ),
127130 getBareHorizontalPodAutoScaler (obj ),
128131 getBareConfigMapBlobDownload (obj ),
129- getBareConfigMap (obj ),
132+ getBareConfigMap (obj , MapserverName ),
130133 getBareService (obj ),
131134 getBareCorsHeadersMiddleware (obj ),
132135 getBarePodDisruptionBudget (obj ),
@@ -790,7 +793,7 @@ func mutateService[R Reconciler, O pdoknlv3.WMSWFS](r R, obj O, service *corev1.
790793 if obj .Type () == pdoknlv3 .ServiceTypeWMS {
791794 if obj .Options ().UseWebserviceProxy () {
792795 ports = append (ports , corev1.ServicePort {
793- Name : "ogc-webservice-proxy" ,
796+ Name : OgcWebserviceProxyName ,
794797 Port : 9111 ,
795798 })
796799 }
@@ -888,10 +891,10 @@ func mutatePodDisruptionBudget[R Reconciler, O pdoknlv3.WMSWFS](r R, obj O, podD
888891 return ctrl .SetControllerReference (obj , podDisruptionBudget , getReconcilerScheme (r ))
889892}
890893
891- func getBareConfigMap [O pdoknlv3.WMSWFS ](obj O ) * corev1.ConfigMap {
894+ func getBareConfigMap [O pdoknlv3.WMSWFS ](obj O , name string ) * corev1.ConfigMap {
892895 return & corev1.ConfigMap {
893896 ObjectMeta : metav1.ObjectMeta {
894- Name : getSuffixedName (obj , MapserverName ),
897+ Name : getSuffixedName (obj , name ),
895898 Namespace : obj .GetNamespace (),
896899 },
897900 }
@@ -1032,7 +1035,7 @@ func createOrUpdateAllForWMSWFS[R Reconciler, O pdoknlv3.WMSWFS](ctx context.Con
10321035
10331036 // region ConfigMap
10341037 {
1035- configMap := getBareConfigMap (obj )
1038+ configMap := getBareConfigMap (obj , MapserverName )
10361039 if err = mutateConfigMap (r , obj , configMap ); err != nil {
10371040 return operationResults , err
10381041 }
@@ -1094,60 +1097,33 @@ func createOrUpdateAllForWMSWFS[R Reconciler, O pdoknlv3.WMSWFS](ctx context.Con
10941097 }
10951098 // end region ConfigMap-BlobDownload
10961099
1097- // TODO fix linting (nestif)
1098- //nolint:nestif
10991100 if obj .Type () == pdoknlv3 .ServiceTypeWMS {
11001101 wms , _ := any (obj ).(* pdoknlv3.WMS )
11011102 wmsReconciler := (* WMSReconciler )(r )
11021103
1103- // region ConfigMap-LegendGenerator
1104- {
1105- configMapLg := getBareConfigMapLegendGenerator (wms )
1106- if err = mutateConfigMapLegendGenerator (wmsReconciler , wms , configMapLg ); err != nil {
1107- return operationResults , err
1108- }
1109- operationResults [smoothoperatorutils .GetObjectFullName (reconcilerClient , configMapLg )], err = controllerutil .CreateOrUpdate (ctx , reconcilerClient , configMapLg , func () error {
1110- return mutateConfigMapLegendGenerator (wmsReconciler , wms , configMapLg )
1104+ configMaps := make (map [string ]func (* WMSReconciler , * pdoknlv3.WMS , * corev1.ConfigMap ) error )
1105+ configMaps [LegendGeneratorName ] = mutateConfigMapLegendGenerator
1106+ configMaps [FeatureInfoGeneratorName ] = mutateConfigMapFeatureinfoGenerator
1107+ configMaps [OgcWebserviceProxyName ] = mutateConfigMapOgcWebserviceProxy
1108+ for cmName , mutate := range configMaps {
1109+ cm , or , err := getConfigMap (ctx , wms , wmsReconciler , cmName , func (r * WMSReconciler , w * pdoknlv3.WMS , cm * corev1.ConfigMap ) error {
1110+ return mutate (r , w , cm )
11111111 })
1112- if err != nil {
1113- return operationResults , fmt .Errorf ("unable to create/update resource %s: %w" , smoothoperatorutils .GetObjectFullName (reconcilerClient , configMapLg ), err )
1114- }
1115- hashedConfigMapNames .LegendGenerator = configMapLg .Name
1116- }
1117- // end region ConfigMap-LegendGenerator
1118-
1119- // region ConfigMap-FeatureinfoGenerator
1120- {
1121- configMapFig := getBareConfigMapFeatureinfoGenerator (wms )
1122- if err = mutateConfigMapFeatureinfoGenerator (wmsReconciler , wms , configMapFig ); err != nil {
1123- return operationResults , err
1112+ if or != nil {
1113+ operationResults [smoothoperatorutils .GetObjectFullName (reconcilerClient , cm )] = * or
11241114 }
1125- operationResults [smoothoperatorutils .GetObjectFullName (reconcilerClient , configMapFig )], err = controllerutil .CreateOrUpdate (ctx , reconcilerClient , configMapFig , func () error {
1126- return mutateConfigMapFeatureinfoGenerator (wmsReconciler , wms , configMapFig )
1127- })
11281115 if err != nil {
1129- return operationResults , fmt .Errorf ("unable to create/update resource %s: %w" , smoothoperatorutils .GetObjectFullName (reconcilerClient , configMapFig ), err )
1130- }
1131- hashedConfigMapNames .FeatureInfoGenerator = configMapFig .Name
1132- }
1133-
1134- // end region ConfigMap-FeatureinfoGenerator
1135-
1136- // region ConfigMap-OgcWebserviceProxy
1137- {
1138- configMapOwp := getBareConfigMapOgcWebserviceProxy (wms )
1139- if err = mutateConfigMapOgcWebserviceProxy (wmsReconciler , wms , configMapOwp ); err != nil {
11401116 return operationResults , err
11411117 }
1142- operationResults [smoothoperatorutils .GetObjectFullName (reconcilerClient , configMapOwp )], err = controllerutil .CreateOrUpdate (ctx , reconcilerClient , configMapOwp , func () error {
1143- return mutateConfigMapOgcWebserviceProxy (wmsReconciler , wms , configMapOwp )
1144- })
1145- if err != nil {
1146- return operationResults , fmt .Errorf ("unable to create/update resource %s: %w" , smoothoperatorutils .GetObjectFullName (reconcilerClient , configMapOwp ), err )
1118+ switch cmName {
1119+ case LegendGeneratorName :
1120+ hashedConfigMapNames .LegendGenerator = cm .Name
1121+ case FeatureInfoGeneratorName :
1122+ hashedConfigMapNames .FeatureInfoGenerator = cm .Name
1123+ case OgcWebserviceProxyName :
1124+ hashedConfigMapNames .OgcWebserviceProxy = cm .Name
11471125 }
1148- hashedConfigMapNames .OgcWebserviceProxy = configMapOwp .Name
11491126 }
1150- // end region ConfigMap-OgcWebserviceProxy
11511127 }
11521128
11531129 // region Deployment
@@ -1231,6 +1207,22 @@ func createOrUpdateAllForWMSWFS[R Reconciler, O pdoknlv3.WMSWFS](ctx context.Con
12311207 return operationResults , nil
12321208}
12331209
1210+ func getConfigMap [O pdoknlv3.WMSWFS , R Reconciler ](ctx context.Context , obj O , reconciler R , name string , mutate func (R , O , * corev1.ConfigMap ) error ) (cm * corev1.ConfigMap , operationResult * controllerutil.OperationResult , err error ) {
1211+ reconcilerClient := getReconcilerClient (reconciler )
1212+ cm = getBareConfigMap (obj , name )
1213+ if err = mutate (reconciler , obj , cm ); err != nil {
1214+ return cm , nil , err
1215+ }
1216+ or , err := controllerutil .CreateOrUpdate (ctx , reconcilerClient , cm , func () error {
1217+ return mutate (reconciler , obj , cm )
1218+ })
1219+ operationResult = & or
1220+ if err != nil {
1221+ return cm , operationResult , fmt .Errorf ("unable to create/update resource %s: %w" , smoothoperatorutils .GetObjectFullName (reconcilerClient , cm ), err )
1222+ }
1223+ return
1224+ }
1225+
12341226// TODO fix linting (funlen)
12351227//
12361228//nolint:funlen
@@ -1246,7 +1238,7 @@ func deleteAllForWMSWFS[R Reconciler, O pdoknlv3.WMSWFS](ctx context.Context, r
12461238 }
12471239
12481240 // ConfigMap
1249- cm := getBareConfigMap (obj )
1241+ cm := getBareConfigMap (obj , MapserverName )
12501242 err = mutateConfigMap (r , obj , cm )
12511243 if err != nil {
12521244 return err
@@ -1282,23 +1274,23 @@ func deleteAllForWMSWFS[R Reconciler, O pdoknlv3.WMSWFS](ctx context.Context, r
12821274 wmsReconciler := (* WMSReconciler )(r )
12831275
12841276 // ConfigMap-LegendGenerator
1285- cmLg := getBareConfigMapLegendGenerator (wms )
1277+ cmLg := getBareConfigMap (wms , LegendGeneratorName )
12861278 err = mutateConfigMapLegendGenerator (wmsReconciler , wms , cmLg )
12871279 if err != nil {
12881280 return err
12891281 }
12901282 objects = append (objects , cmLg )
12911283
12921284 // ConfigMap-FeatureInfo
1293- cmFi := getBareConfigMapFeatureinfoGenerator (wms )
1285+ cmFi := getBareConfigMap (wms , FeatureInfoGeneratorName )
12941286 err = mutateConfigMapFeatureinfoGenerator (wmsReconciler , wms , cmFi )
12951287 if err != nil {
12961288 return err
12971289 }
12981290 objects = append (objects , cmFi )
12991291
13001292 // ConfigMap-OgcWebserviceProxy
1301- cmOwp := getBareConfigMapOgcWebserviceProxy (wms )
1293+ cmOwp := getBareConfigMap (wms , OgcWebserviceProxyName )
13021294 err = mutateConfigMapOgcWebserviceProxy (wmsReconciler , wms , cmOwp )
13031295 if err != nil {
13041296 return err
0 commit comments