Skip to content

Commit 91f2404

Browse files
committed
Merge remote-tracking branch 'origin/master' into wr/linting
2 parents 5a70669 + 57d7165 commit 91f2404

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+4469
-18
lines changed

cmd/main.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ func main() {
9595
var slackWebhookURL string
9696
var logLevel int
9797
var setUptimeOperatorAnnotations bool
98+
var storageClassName string
9899
flag.StringVar(&metricsAddr, "metrics-bind-address", ":8080", "The address the metrics endpoint binds to. "+
99100
"Use :8443 for HTTPS or :8080 for HTTP, or leave as 0 to disable the metrics service.")
100101
flag.StringVar(&probeAddr, "health-probe-bind-address", ":8081", "The address the probe endpoint binds to.")
@@ -118,6 +119,7 @@ func main() {
118119
flag.StringVar(&slackWebhookURL, "slack-webhook-url", "", "The webhook url for sending slack messages. Disabled if left empty")
119120
flag.IntVar(&logLevel, "log-level", 0, "The zapcore loglevel. 0 = info, 1 = warn, 2 = error")
120121
flag.BoolVar(&setUptimeOperatorAnnotations, "set-uptime-operator-annotations", true, "When enabled IngressRoutes get annotations that are used by the pdok/uptime-operator.")
122+
flag.StringVar(&storageClassName, "storage-class-name", "", "The name of the storage class to use when using an ephemeral volume.")
121123

122124
opts := zap.Options{
123125
Development: true,
@@ -139,9 +141,11 @@ func main() {
139141
setupLog.Error(errors.New("baseURL is required"), "A value for baseURL must be specified.")
140142
os.Exit(1)
141143
}
144+
142145
pdoknlv3.SetHost(host)
143146
mapfilegenerator.SetDebugLevel(mapserverDebugLevel)
144147
controller.SetUptimeOperatorAnnotations(setUptimeOperatorAnnotations)
148+
controller.SetStorageClassName(storageClassName)
145149

146150
// if the enable-http2 flag is false (the default), http/2 should be disabled
147151
// due to its vulnerabilities. More specifically, disabling http/2 will

config/manager/manager.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ spec:
6464
- --leader-elect
6565
- --health-probe-bind-address=:8081
6666
- --baseurl=http://localhost:32788
67+
- --storage-class-name=test-storage
6768
image: controller:latest
6869
name: manager
6970
ports: []

internal/controller/deployment.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package controller
22

33
import (
4-
"os"
54
"strconv"
65

76
pdoknlv3 "github.com/pdok/mapserver-operator/api/v3"
@@ -32,6 +31,12 @@ const (
3231
postgisSecretPrefix = "postgres-"
3332
)
3433

34+
var storageClassName string
35+
36+
func SetStorageClassName(name string) {
37+
storageClassName = name
38+
}
39+
3540
func getBareDeployment[O pdoknlv3.WMSWFS](obj O) *appsv1.Deployment {
3641
return &appsv1.Deployment{
3742
ObjectMeta: metav1.ObjectMeta{
@@ -253,8 +258,8 @@ func getVolumes[O pdoknlv3.WMSWFS](obj O, configMapNames types.HashedConfigMapNa
253258
},
254259
},
255260
}
256-
if value, set := os.LookupEnv("STORAGE_CLASS_NAME"); set {
257-
baseVolume.Ephemeral.VolumeClaimTemplate.Spec.StorageClassName = &value
261+
if storageClassName != "" {
262+
baseVolume.Ephemeral.VolumeClaimTemplate.Spec.StorageClassName = &storageClassName
258263
}
259264
} else {
260265
baseVolume.EmptyDir = &corev1.EmptyDirVolumeSource{}

internal/controller/mapserver/deployment.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package mapserver
22

33
import (
44
"errors"
5-
"os"
65
"strings"
76

87
"github.com/pdok/mapserver-operator/internal/controller/constants"
@@ -101,6 +100,12 @@ func getVolumeMounts(customMapfile bool) []corev1.VolumeMount {
101100
return volumeMounts
102101
}
103102

103+
var storageClassName string
104+
105+
func SetStorageClassName(name string) {
106+
storageClassName = name
107+
}
108+
104109
// TODO fix linting (funlen)
105110
//
106111
//nolint:funlen
@@ -120,8 +125,8 @@ func GetVolumesForDeployment[O pdoknlv3.WMSWFS](obj O, configMapNames types.Hash
120125
},
121126
}
122127

123-
if value, set := os.LookupEnv("STORAGE_CLASS_NAME"); set {
124-
baseVolume.Ephemeral.VolumeClaimTemplate.Spec.StorageClassName = &value
128+
if storageClassName != "" {
129+
baseVolume.Ephemeral.VolumeClaimTemplate.Spec.StorageClassName = &storageClassName
125130
}
126131
} else {
127132
baseVolume.VolumeSource = corev1.VolumeSource{

internal/controller/shared_controller_test.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -269,11 +269,13 @@ func testMutates[R Reconciler, O pdoknlv3.WMSWFS](reconcilerFn func() R, resourc
269269
})
270270

271271
It("Should generate a correct MapfileGenerator Configmap", func() {
272-
cm := getBareConfigMap(resource, constants.MapfileGeneratorName)
273-
testMutateConfigMap(cm, outputPath+"configmap-mapfile-generator.yaml", func(cm *corev1.ConfigMap) error {
274-
return mutateConfigMapMapfileGenerator(reconcilerFn(), resource, cm, &owner)
275-
}, true)
276-
configMapNames.MapfileGenerator = cm.Name
272+
if path, include := shouldIncludeFile("configmap-mapfile-generator.yaml"); include {
273+
cm := getBareConfigMap(resource, constants.MapfileGeneratorName)
274+
testMutateConfigMap(cm, path, func(cm *corev1.ConfigMap) error {
275+
return mutateConfigMapMapfileGenerator(reconcilerFn(), resource, cm, &owner)
276+
}, true)
277+
configMapNames.MapfileGenerator = cm.Name
278+
}
277279
})
278280

279281
It("Should generate a correct CapabilitiesGenerator Configmap", func() {

internal/controller/suite_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@ var _ = BeforeSuite(func() {
175175
Expect(err).NotTo(HaveOccurred())
176176

177177
pdoknlv3.SetHost("http://localhost:32788")
178+
SetStorageClassName("test-storage")
178179
})
179180

180181
var _ = AfterSuite(func() {

internal/controller/test_data/wfs/complete/expected/deployment.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,7 @@ spec:
243243
- ephemeral:
244244
volumeClaimTemplate:
245245
spec:
246+
storageClassName: test-storage
246247
accessModes:
247248
- ReadWriteOnce
248249
resources:
Lines changed: 244 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,244 @@
1+
apiVersion: v1
2+
data:
3+
input.yaml: |-
4+
global:
5+
additionalschemalocations: http://inspire.ec.europa.eu/schemas/inspire_dls/1.0 http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd
6+
http://inspire.ec.europa.eu/schemas/common/1.0 http://inspire.ec.europa.eu/schemas/common/1.0/common.xsd
7+
namespace: http://dataset.geonovum.nl
8+
onlineresourceurl: http://localhost
9+
path: /datasetOwner/dataset/2016
10+
prefix: dataset
11+
version: v1_0
12+
services:
13+
wms130:
14+
definition:
15+
capability:
16+
wmscapabilities:
17+
extendedcapabilities:
18+
metadataurl:
19+
mediatype: application/vnd.ogc.csw.GetRecordByIdResponse_xml
20+
url: https://www.nationaalgeoregister.nl/geonetwork/srv/dut/csw?service=CSW&version=2.0.2&request=GetRecordById&outputschema=http://www.isotc211.org/2005/gmd&elementsetname=full&id=metameta-meta-meta-meta-metametameta
21+
responselanguage:
22+
language: dut
23+
supportedlanguages:
24+
defaultlanguage:
25+
language: dut
26+
layer:
27+
- abstract: Top "Layer" Abstract
28+
authorityurl:
29+
name: authority-name
30+
onlineresource:
31+
href: http://authority-url
32+
identifier:
33+
authority: authority-name
34+
value: bronbron-bron-bron-bron-bronbronbron
35+
keywordlist:
36+
keyword:
37+
- top-layer-keyword-1
38+
- top-layer-keyword-2
39+
layer:
40+
- abstract: group layer abstract "1"
41+
authorityurl:
42+
name: authority-name
43+
onlineresource:
44+
href: http://authority-url
45+
identifier:
46+
authority: authority-name
47+
value: bronbron-bron-bron-bron-bronbronbron
48+
keywordlist:
49+
keyword:
50+
- group-layer-keyword-1
51+
- group-layer-keyword-2
52+
layer:
53+
- abstract: gpkg-layer-abstract "2"
54+
authorityurl:
55+
name: authority-name
56+
onlineresource:
57+
href: http://authority-url
58+
identifier:
59+
authority: authority-name
60+
value: bronbron-bron-bron-bron-bronbronbron
61+
keywordlist:
62+
keyword:
63+
- gpkg-layer-keyword-1
64+
- gpkg-layer-keyword-2
65+
maxscaledenominator: 20
66+
metadataurl:
67+
- format: text/plain
68+
onlineresource:
69+
href: https://www.nationaalgeoregister.nl/geonetwork/srv/dut/csw?service=CSW&version=2.0.2&request=GetRecordById&outputschema=http://www.isotc211.org/2005/gmd&elementsetname=full&id=datadata-data-data-data-datadatadata
70+
type: simple
71+
xlink: http://www.w3.org/1999/xlink
72+
type: TC211
73+
minscaledenominator: 30
74+
name: gpkg-layer-name
75+
queryable: 1
76+
style:
77+
- abstract: gpkg-layer-style-1-abstract
78+
legendurl:
79+
format: image/png
80+
height: 20
81+
onlineresource:
82+
href: http://localhost/datasetOwner/dataset/2016/wms/v1_0/legend/gpkg-layer-name/gpkg-layer-style-1-name.png
83+
type: simple
84+
xlink: http://www.w3.org/1999/xlink
85+
width: 78
86+
name: gpkg-layer-style-1-name
87+
title: gpkg-layer-style-1-title
88+
- legendurl:
89+
format: image/png
90+
height: 20
91+
onlineresource:
92+
href: http://localhost/datasetOwner/dataset/2016/wms/v1_0/legend/gpkg-layer-name/gpkg-layer-style-2-name.png
93+
type: simple
94+
xlink: http://www.w3.org/1999/xlink
95+
width: 78
96+
name: gpkg-layer-style-2-name
97+
title: gpkg-layer-style-2-title
98+
title: gpkg-layer-title "2"
99+
- abstract: postgis-layer-abstract
100+
authorityurl:
101+
name: authority-name
102+
onlineresource:
103+
href: http://authority-url
104+
identifier:
105+
authority: authority-name
106+
value: bronbron-bron-bron-bron-bronbronbron
107+
keywordlist:
108+
keyword:
109+
- postgis-layer-keyword-1
110+
- postgis-layer-keyword-2
111+
maxscaledenominator: 20
112+
metadataurl:
113+
- format: text/plain
114+
onlineresource:
115+
href: https://www.nationaalgeoregister.nl/geonetwork/srv/dut/csw?service=CSW&version=2.0.2&request=GetRecordById&outputschema=http://www.isotc211.org/2005/gmd&elementsetname=full&id=datadata-data-data-data-datadatadata
116+
type: simple
117+
xlink: http://www.w3.org/1999/xlink
118+
type: TC211
119+
minscaledenominator: 30
120+
name: postgis-layer-name
121+
queryable: 1
122+
style:
123+
- abstract: postgis-layer-style-1-abstract
124+
legendurl:
125+
format: image/png
126+
height: 20
127+
onlineresource:
128+
href: http://localhost/datasetOwner/dataset/2016/wms/v1_0/legend/postgis-layer-name/postgis-layer-style-1-name.png
129+
type: simple
130+
xlink: http://www.w3.org/1999/xlink
131+
width: 78
132+
name: postgis-layer-style-1-name
133+
title: postgis-layer-style-1-title
134+
- legendurl:
135+
format: image/png
136+
height: 20
137+
onlineresource:
138+
href: http://localhost/datasetOwner/dataset/2016/wms/v1_0/legend/postgis-layer-name/postgis-layer-style-2-name.png
139+
type: simple
140+
xlink: http://www.w3.org/1999/xlink
141+
width: 78
142+
name: postgis-layer-style-2-name
143+
title: postgis-layer-style-2-title
144+
title: postgis-layer-title
145+
maxscaledenominator: 50
146+
metadataurl:
147+
- format: text/plain
148+
onlineresource:
149+
href: https://www.nationaalgeoregister.nl/geonetwork/srv/dut/csw?service=CSW&version=2.0.2&request=GetRecordById&outputschema=http://www.isotc211.org/2005/gmd&elementsetname=full&id=datadata-data-data-data-datadatadata
150+
type: simple
151+
xlink: http://www.w3.org/1999/xlink
152+
type: TC211
153+
name: group-layer-name
154+
queryable: 1
155+
style:
156+
- abstract: group-layer-style-1-abstract
157+
legendurl:
158+
format: image/png
159+
height: 20
160+
onlineresource:
161+
href: http://localhost/datasetOwner/dataset/2016/wms/v1_0/legend/group-layer-name/group-layer-style-1-name.png
162+
type: simple
163+
xlink: http://www.w3.org/1999/xlink
164+
width: 78
165+
name: group-layer-style-1-name
166+
title: group-layer-style-1-title
167+
- legendurl:
168+
format: image/png
169+
height: 20
170+
onlineresource:
171+
href: http://localhost/datasetOwner/dataset/2016/wms/v1_0/legend/group-layer-name/group-layer-style-2-name.png
172+
type: simple
173+
xlink: http://www.w3.org/1999/xlink
174+
width: 78
175+
name: group-layer-style-2-name
176+
title: group-layer-style-2-title
177+
title: group layer title "1"
178+
maxscaledenominator: 50
179+
metadataurl:
180+
- format: text/plain
181+
onlineresource:
182+
href: https://www.nationaalgeoregister.nl/geonetwork/srv/dut/csw?service=CSW&version=2.0.2&request=GetRecordById&outputschema=http://www.isotc211.org/2005/gmd&elementsetname=full&id=datadata-data-data-data-datadatadata
183+
type: simple
184+
xlink: http://www.w3.org/1999/xlink
185+
type: TC211
186+
name: top-layer-name
187+
queryable: 1
188+
style:
189+
- abstract: top-layer-style-1-abstract
190+
legendurl:
191+
format: image/png
192+
height: 20
193+
onlineresource:
194+
href: http://localhost/datasetOwner/dataset/2016/wms/v1_0/legend/top-layer-name/top-layer-style-1-name.png
195+
type: simple
196+
xlink: http://www.w3.org/1999/xlink
197+
width: 78
198+
name: top-layer-style-1-name
199+
title: top-layer-style-1-title
200+
- legendurl:
201+
format: image/png
202+
height: 20
203+
onlineresource:
204+
href: http://localhost/datasetOwner/dataset/2016/wms/v1_0/legend/top-layer-name/top-layer-style-2-name.png
205+
type: simple
206+
xlink: http://www.w3.org/1999/xlink
207+
width: 78
208+
name: top-layer-style-2-name
209+
title: top-layer-style-2-title
210+
title: Top "Layer" Title
211+
service:
212+
abstract: some "service" abstract
213+
accessconstraints: http://creativecommons.org/publicdomain/zero/1.0/deed.nl
214+
keywordlist:
215+
keyword:
216+
- service-keyword-1
217+
- service-keyword-2
218+
- infoMapAccessService
219+
optionalconstraints:
220+
maxheight: 4000
221+
maxwidth: 4000
222+
title: some service title
223+
filename: /var/www/config/capabilities_wms_130.xml
224+
225+
immutable: true
226+
kind: ConfigMap
227+
metadata:
228+
labels:
229+
app: mapserver
230+
dataset: dataset
231+
dataset-owner: datasetOwner
232+
inspire: "true"
233+
service-type: wms
234+
service-version: v1_0
235+
theme: '2016'
236+
name: complete-wms-capabilities-generator-2fh6mb98c8
237+
namespace: default
238+
ownerReferences:
239+
- apiVersion: pdok.nl/v3
240+
kind: WMS
241+
name: complete
242+
uid: ""
243+
blockOwnerDeletion: true
244+
controller: true

0 commit comments

Comments
 (0)