Skip to content

Commit 34a0540

Browse files
author
Léon van der Kaap
committed
Started on fix for resources
1 parent c8802cd commit 34a0540

File tree

3 files changed

+37
-11
lines changed

3 files changed

+37
-11
lines changed

internal/controller/mapperutils/utils.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,13 @@ func ephemeralStorage[O pdoknlv3.WMSWFS](obj O, limit bool) *resource.Quantity {
3333
for _, container := range obj.PodSpecPatch().Containers {
3434
if container.Name == "mapserver" {
3535
if limit {
36-
return container.Resources.Limits.StorageEphemeral()
36+
limitVal := container.Resources.Limits.StorageEphemeral()
37+
if !limitVal.IsZero() {
38+
return limitVal
39+
}
40+
} else if !container.Resources.Requests.StorageEphemeral().IsZero() {
41+
return container.Resources.Requests.StorageEphemeral()
3742
}
38-
39-
return container.Resources.Requests.StorageEphemeral()
4043
}
4144
}
4245

internal/controller/mapserver/deployment.go

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ func GetEnvVarsForDeployment[O pdoknlv3.WMSWFS](obj O, blobsSecretName string) [
217217
}
218218
}
219219

220+
// Resources for mapserver container
220221
func GetResourcesForDeployment[O pdoknlv3.WMSWFS](obj O) v1.ResourceRequirements {
221222
minimumEphemeralStorageLimit := resource.MustParse("200M")
222223
resources := v1.ResourceRequirements{
@@ -230,8 +231,20 @@ func GetResourcesForDeployment[O pdoknlv3.WMSWFS](obj O) v1.ResourceRequirements
230231
}
231232

232233
objResources := &v1.ResourceRequirements{}
233-
if obj.PodSpecPatch() != nil && obj.PodSpecPatch().Resources != nil {
234-
objResources = obj.PodSpecPatch().Resources
234+
if obj.PodSpecPatch() != nil {
235+
found := false
236+
for _, container := range obj.PodSpecPatch().Containers {
237+
if container.Name == "mapserver" {
238+
objResources = &container.Resources
239+
found = true
240+
break
241+
}
242+
}
243+
244+
if !found && obj.PodSpecPatch().Resources != nil {
245+
objResources = obj.PodSpecPatch().Resources
246+
}
247+
235248
}
236249

237250
if obj.Type() == pdoknlv3.ServiceTypeWMS && obj.Options().UseWebserviceProxy() {
@@ -242,14 +255,14 @@ func GetResourcesForDeployment[O pdoknlv3.WMSWFS](obj O) v1.ResourceRequirements
242255
resources.Limits[v1.ResourceCPU] = *objResources.Limits.Cpu()
243256
}
244257

245-
if objResources.Requests.Memory() != nil {
258+
if objResources.Requests.Memory() != nil && !objResources.Requests.Memory().IsZero() {
246259
resources.Requests[v1.ResourceMemory] = *objResources.Requests.Memory()
247260
}
248261

249262
if use, _ := mapperutils.UseEphemeralVolume(obj); !use {
250263
value := mapperutils.EphemeralStorageLimit(obj)
251264

252-
if value.Value() > minimumEphemeralStorageLimit.Value() {
265+
if objResources.Limits.StorageEphemeral() != nil && objResources.Limits.StorageEphemeral().Value() > minimumEphemeralStorageLimit.Value() {
253266
resources.Limits[v1.ResourceEphemeralStorage] = *value
254267
}
255268
}

internal/controller/mapserver/deployment_test.go

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@ import (
1111
)
1212

1313
const (
14-
v2WfsString = "apiVersion: pdok.nl/v2beta1\nkind: WFS\nmetadata:\n name: rvo-nwbwegen-v1-0\n labels:\n dataset-owner: rvo\n dataset: nwbwegen\n service-version: v1_0\n service-type: wfs\n annotations:\n lifecycle-phase: prod\n service-bundle-id: 053b9c7e-85dc-535a-8a8c-f0d44c31511d\nspec:\n general:\n datasetOwner: rvo\n dataset: nwbwegen\n serviceVersion: v1_0\n kubernetes:\n healthCheck:\n mimetype: text/xml\n querystring: SERVICE=WFS&VERSION=2.0.0&REQUEST=GetCapabilities\n resources:\n limits:\n ephemeralStorage: 25Mi\n requests:\n ephemeralStorage: 25Mi\n service:\n metadataIdentifier: 7c77bdc8-5011-4139-8957-d244fb9d3489\n title: NWB - Vaarwegen WFS\n abstract: Deze webfeatureservice bevat alleen de vaarwegvakken en kilometermarkeringen\n van het NWB - Vaarwegen (Nationaal Wegen Bestand).\n authority:\n name: rws\n url: https://www.rijkswaterstaat.nl\n dataEPSG: EPSG:28992\n extent: -59188.44333693248 304984.64144318487 308126.88473339565 858328.516489961\n inspire: true\n keywords:\n - Vervoersnetwerken\n - Vaarwegen\n - Schepen\n - Scheepvaart\n - Vaarwegvakken\n - Kilometermarkering\n - HVD\n - Mobiliteit\n featureTypes:\n - abstract: Deze webfeatureservice bevat alleen de kilometermarkeringen van het\n NWB - Vaarwegen (Nationaal Wegen Bestand).\n data:\n gpkg:\n blobKey: geopackages/rvo/nwbwegen/fe2b0b0e-3c88-4f74-b31c-f5915cefe530/1/nwb_vaarwegen.gpkg\n columns:\n - fid\n - objectid\n - vwk_id\n - vwk_begdtm\n - pos_tov_as\n - gtlwaarde\n - ltrwaarde\n - afstand\n - mst_code\n geometryType: MultiPoint\n table: kmmarkeringen\n datasetMetadataIdentifier: 00d8c7c8-98ff-4b06-8f53-b44216e6e75c\n keywords:\n - Vervoersnetwerken\n - Vaarwegen\n - Schepen\n - Scheepvaart\n - Kilometermarkering\n name: kmmarkeringen\n sourceMetadataIdentifier: a757e146-09fe-4585-a236-aae0dcd6f266\n title: Kmmarkeringen\n - abstract: Deze webfeatureservice bevat vaarwegvakken van het NWB - Vaarwegen\n (Nationaal Wegen Bestand).\n data:\n gpkg:\n blobKey: geopackages/rvo/nwbwegen/fe2b0b0e-3c88-4f74-b31c-f5915cefe530/1/nwb_vaarwegen.gpkg\n columns:\n - fid\n - objectid\n - vwk_id\n - vwk_begdtm\n - vwj_id_beg\n - vwj_id_end\n - vaktype\n - vrt_code\n - vrt_naam\n - vwg_nr\n - vwg_naam\n - begkm\n - endkm\n - st_lengthshape\n geometryType: MultiLineString\n table: vaarwegvakken\n datasetMetadataIdentifier: 00d8c7c8-98ff-4b06-8f53-b44216e6e75c\n keywords:\n - Vervoersnetwerken\n - Vaarwegen\n - Schepen\n - Scheepvaart\n - Vaarwegvakken\n name: vaarwegvakken\n sourceMetadataIdentifier: a757e146-09fe-4585-a236-aae0dcd6f266\n title: Vaarwegvakken\n"
14+
v2WfsString = "apiVersion: pdok.nl/v2beta1\nkind: WFS\nmetadata:\n name: rws-nwbwegen-v1-0\n labels:\n dataset-owner: rws\n dataset: nwbwegen\n service-version: v1_0\n service-type: wfs\n annotations:\n lifecycle-phase: prod\n service-bundle-id: b39c152b-393b-52f5-a50c-e1ffe904b6fb\nspec:\n general:\n datasetOwner: rws\n dataset: nwbwegen\n serviceVersion: v1_0\n kubernetes:\n healthCheck:\n mimetype: text/xml\n querystring: SERVICE=WFS&VERSION=2.0.0&REQUEST=GetCapabilities\n resources:\n limits:\n ephemeralStorage: 1505Mi\n requests:\n ephemeralStorage: 1505Mi\n service:\n title: NWB - Wegen WFS\n abstract:\n Dit is de web feature service van het Nationaal Wegen Bestand (NWB)\n - wegen. Deze dataset bevat alleen de wegvakken en hectometerpunten. Het Nationaal\n Wegen Bestand - Wegen is een digitaal geografisch bestand van alle wegen in\n Nederland. Opgenomen zijn alle wegen die worden beheerd door wegbeheerders als\n het Rijk, provincies, gemeenten en waterschappen, echter alleen voor zover deze\n zijn voorzien van een straatnaam of nummer.\n inspire: true\n metadataIdentifier: a9fa7fff-6365-4885-950c-e9d9848359ee\n authority:\n name: rws\n url: https://www.rijkswaterstaat.nl\n dataEPSG: EPSG:28992\n extent: -59188.44333693248 304984.64144318487 308126.88473339565 858328.516489961\n keywords:\n - Vervoersnetwerken\n - Menselijke gezondheid en veiligheid\n - Geluidsbelasting hoofdwegen (Richtlijn Omgevingslawaai)\n - Nationaal\n - Voertuigen\n - Verkeer\n - Wegvakken\n - Hectometerpunten\n - HVD\n - Mobiliteit\n featureTypes:\n - name: wegvakken\n title: Wegvakken\n abstract:\n Dit featuretype bevat de wegvakken uit het Nationaal Wegen bestand\n (NWB) en bevat gedetailleerde informatie per wegvak zoals straatnaam, wegnummer,\n routenummer, wegbeheerder, huisnummers, enz.\n sourceMetadataIdentifier: 8f0497f0-dbd7-4bee-b85a-5fdec484a7ff\n datasetMetadataIdentifier: a9b7026e-0a81-4813-93bd-ba49e6f28502\n keywords:\n - Vervoersnetwerken\n - Menselijke gezondheid en veiligheid\n - Geluidsbelasting hoofdwegen (Richtlijn Omgevingslawaai)\n - Nationaal\n - Voertuigen\n - Verkeer\n - Wegvakken\n data:\n gpkg:\n table: wegvakken\n geometryType: MultiLineString\n blobKey: geopackages/rws/nwbwegen/1c56dc48-2cf4-4631-8b09-ed385d5368d1/1/nwb_wegen.gpkg\n columns:\n - fid\n - objectid\n - wvk_id\n - wvk_begdat\n - jte_id_beg\n - jte_id_end\n - wegbehsrt\n - wegnummer\n - wegdeelltr\n - hecto_lttr\n - bst_code\n - rpe_code\n - admrichtng\n - rijrichtng\n - stt_naam\n - stt_bron\n - wpsnaam\n - gme_id\n - gme_naam\n - hnrstrlnks\n - hnrstrrhts\n - e_hnr_lnks\n - e_hnr_rhts\n - l_hnr_lnks\n - l_hnr_rhts\n - begafstand\n - endafstand\n - beginkm\n - eindkm\n - pos_tv_wol\n - wegbehcode\n - wegbehnaam\n - distrcode\n - distrnaam\n - dienstcode\n - dienstnaam\n - wegtype\n - wgtype_oms\n - routeltr\n - routenr\n - routeltr2\n - routenr2\n - routeltr3\n - routenr3\n - routeltr4\n - routenr4\n - wegnr_aw\n - wegnr_hmp\n - geobron_id\n - geobron_nm\n - bronjaar\n - openlr\n - bag_orl\n - frc\n - fow\n - alt_naam\n - alt_nr\n - rel_hoogte\n - st_lengthshape\n - name: hectopunten\n title: Hectopunten\n abstract:\n Dit featuretype bevat de hectopunten uit het Nationaal Wegen Bestand\n (NWB) en bevat gedetailleerde informatie per hectopunt zoals hectometrering,\n afstand, zijde en hectoletter.\n sourceMetadataIdentifier: 8f0497f0-dbd7-4bee-b85a-5fdec484a7ff\n datasetMetadataIdentifier: a9b7026e-0a81-4813-93bd-ba49e6f28502\n keywords:\n - Vervoersnetwerken\n - Menselijke gezondheid en veiligheid\n - Geluidsbelasting hoofdwegen (Richtlijn Omgevingslawaai)\n - Nationaal\n - Voertuigen\n - Verkeer\n - Hectometerpunten\n data:\n gpkg:\n blobKey: geopackages/rws/nwbwegen/1c56dc48-2cf4-4631-8b09-ed385d5368d1/1/nwb_wegen.gpkg\n columns:\n - fid\n - objectid\n - hectomtrng\n - afstand\n - wvk_id\n - wvk_begdat\n - zijde\n - hecto_lttr\n geometryType: MultiPoint\n table: hectopunten\n"
1515
expectedVolumeMountsString = "[{\"name\":\"base\",\"mountPath\":\"/srv/data\"},{\"name\":\"data\",\"mountPath\":\"/var/www\"},{\"name\":\"mapserver\",\"mountPath\":\"/srv/mapserver/config/default_mapserver.conf\",\"subPath\":\"default_mapserver.conf\"},{\"name\":\"mapserver\",\"mountPath\":\"/srv/mapserver/config/include.conf\",\"subPath\":\"include.conf\"},{\"name\":\"mapserver\",\"mountPath\":\"/srv/mapserver/config/ogc.lua\",\"subPath\":\"ogc.lua\"},{\"name\":\"mapserver\",\"mountPath\":\"/srv/mapserver/config/scraping-error.xml\",\"subPath\":\"scraping-error.xml\"}]"
16+
expectedEnvVarsString = "[{\"name\":\"SERVICE_TYPE\",\"value\":\"WFS\"},{\"name\":\"MAPSERVER_CONFIG_FILE\",\"value\":\"/srv/mapserver/config/default_mapserver.conf\"},{\"name\":\"AZURE_STORAGE_CONNECTION_STRING\",\"valueFrom\":{\"secretKeyRef\":{\"name\":\"blobs-secret\",\"key\":\"AZURE_STORAGE_CONNECTION_STRING\"}}},{\"name\":\"MS_MAPFILE\",\"value\":\"/srv/data/config/mapfile/service.map\"}]\n"
1617
)
1718

1819
func TestGetVolumeMountsForDeployment(t *testing.T) {
@@ -30,9 +31,18 @@ func TestGetEnvVarsForDeployment(t *testing.T) {
3031
var wfs = getV3()
3132
pdoknlv3.SetHost("https://service.pdok.nl")
3233
result := GetEnvVarsForDeployment(wfs, "blobs-secret")
33-
a := 0
34-
_ = result
35-
_ = a
34+
var expectedEnvVars []v1.EnvVar
35+
err := json.Unmarshal([]byte(expectedEnvVarsString), &expectedEnvVars)
36+
assert.NoError(t, err)
37+
assert.Equal(t, expectedEnvVars, result)
38+
}
39+
40+
func TestGetResourcesForDeployment(t *testing.T) {
41+
var wfs = getV3()
42+
pdoknlv3.SetHost("https://service.pdok.nl")
43+
result := GetResourcesForDeployment(wfs)
44+
marshalled, _ := json.Marshal(result)
45+
println(string(marshalled))
3646
}
3747

3848
func getV3() *pdoknlv3.WFS {

0 commit comments

Comments
 (0)