Skip to content

Commit 3f7dd8d

Browse files
committed
More missing webhooks
1 parent 99c44c3 commit 3f7dd8d

10 files changed

Lines changed: 327 additions & 36 deletions

File tree

.ci-operator.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
build_root_image:
22
name: tools
33
namespace: openstack-k8s-operators
4-
tag: ci-build-root-golang-1.24-sdk-1.31
4+
tag: ci-build-root-golang-1.24-sdk-1.41.1

Makefile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,12 @@ docker-buildx: ## Build and push docker image for the manager for cross-platfor
270270
- docker buildx rm project-v3-builder
271271
rm Dockerfile.cross
272272

273+
.PHONY: build-installer
274+
build-installer: manifests generate kustomize ## Generate a consolidated YAML with CRDs and deployment.
275+
mkdir -p dist
276+
cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG}
277+
$(KUSTOMIZE) build config/default > dist/install.yaml
278+
273279
##@ Deployment
274280

275281
ifndef ignore-not-found

bindata/operator/operator.yaml

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,13 +184,68 @@ metadata:
184184
spec:
185185
selfSigned: {}
186186
---
187+
apiVersion: monitoring.coreos.com/v1
188+
kind: ServiceMonitor
189+
metadata:
190+
labels:
191+
app.kubernetes.io/managed-by: kustomize
192+
app.kubernetes.io/name: openstack-operator
193+
control-plane: controller-manager
194+
name: openstack-operator-controller-manager-metrics-monitor
195+
namespace: '{{ .OperatorNamespace }}'
196+
spec:
197+
endpoints:
198+
- bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
199+
path: /metrics
200+
port: https
201+
scheme: https
202+
tlsConfig:
203+
ca:
204+
secret:
205+
key: ca.crt
206+
name: metrics-server-cert
207+
cert:
208+
secret:
209+
key: tls.crt
210+
name: metrics-server-cert
211+
insecureSkipVerify: false
212+
keySecret:
213+
key: tls.key
214+
name: metrics-server-cert
215+
serverName: openstack-operator-controller-manager-metrics-service.{{ .OperatorNamespace
216+
}}.svc
217+
selector:
218+
matchLabels:
219+
app.kubernetes.io/name: openstack-operator
220+
control-plane: controller-manager
221+
---
187222
apiVersion: admissionregistration.k8s.io/v1
188223
kind: MutatingWebhookConfiguration
189224
metadata:
190225
annotations:
191226
cert-manager.io/inject-ca-from: '{{ .OperatorNamespace }}/openstack-operator-serving-cert'
192227
name: openstack-operator-mutating-webhook-configuration
193228
webhooks:
229+
- admissionReviewVersions:
230+
- v1
231+
clientConfig:
232+
service:
233+
name: openstack-operator-webhook-service
234+
namespace: '{{ .OperatorNamespace }}'
235+
path: /mutate-client-openstack-org-v1beta1-openstackclient
236+
failurePolicy: Fail
237+
name: mopenstackclient-v1beta1.kb.io
238+
rules:
239+
- apiGroups:
240+
- client.openstack.org
241+
apiVersions:
242+
- v1beta1
243+
operations:
244+
- CREATE
245+
- UPDATE
246+
resources:
247+
- openstackclients
248+
sideEffects: None
194249
- admissionReviewVersions:
195250
- v1
196251
clientConfig:
@@ -231,6 +286,26 @@ webhooks:
231286
resources:
232287
- openstackversions
233288
sideEffects: None
289+
- admissionReviewVersions:
290+
- v1
291+
clientConfig:
292+
service:
293+
name: openstack-operator-webhook-service
294+
namespace: '{{ .OperatorNamespace }}'
295+
path: /mutate-dataplane-openstack-org-v1beta1-openstackdataplanedeployment
296+
failurePolicy: Fail
297+
name: mopenstackdataplanedeployment-v1beta1.kb.io
298+
rules:
299+
- apiGroups:
300+
- dataplane.openstack.org
301+
apiVersions:
302+
- v1beta1
303+
operations:
304+
- CREATE
305+
- UPDATE
306+
resources:
307+
- openstackdataplanedeployments
308+
sideEffects: None
234309
- admissionReviewVersions:
235310
- v1
236311
clientConfig:
@@ -251,6 +326,26 @@ webhooks:
251326
resources:
252327
- openstackdataplanenodesets
253328
sideEffects: None
329+
- admissionReviewVersions:
330+
- v1
331+
clientConfig:
332+
service:
333+
name: openstack-operator-webhook-service
334+
namespace: '{{ .OperatorNamespace }}'
335+
path: /mutate-dataplane-openstack-org-v1beta1-openstackdataplaneservice
336+
failurePolicy: Fail
337+
name: mopenstackdataplaneservice-v1beta1.kb.io
338+
rules:
339+
- apiGroups:
340+
- dataplane.openstack.org
341+
apiVersions:
342+
- v1beta1
343+
operations:
344+
- CREATE
345+
- UPDATE
346+
resources:
347+
- openstackdataplaneservices
348+
sideEffects: None
254349
- admissionReviewVersions:
255350
- v1
256351
clientConfig:
@@ -319,6 +414,26 @@ metadata:
319414
cert-manager.io/inject-ca-from: '{{ .OperatorNamespace }}/openstack-operator-serving-cert'
320415
name: openstack-operator-validating-webhook-configuration
321416
webhooks:
417+
- admissionReviewVersions:
418+
- v1
419+
clientConfig:
420+
service:
421+
name: openstack-operator-webhook-service
422+
namespace: '{{ .OperatorNamespace }}'
423+
path: /validate-client-openstack-org-v1beta1-openstackclient
424+
failurePolicy: Fail
425+
name: vopenstackclient-v1beta1.kb.io
426+
rules:
427+
- apiGroups:
428+
- client.openstack.org
429+
apiVersions:
430+
- v1beta1
431+
operations:
432+
- CREATE
433+
- UPDATE
434+
resources:
435+
- openstackclients
436+
sideEffects: None
322437
- admissionReviewVersions:
323438
- v1
324439
clientConfig:
@@ -359,6 +474,26 @@ webhooks:
359474
resources:
360475
- openstackversions
361476
sideEffects: None
477+
- admissionReviewVersions:
478+
- v1
479+
clientConfig:
480+
service:
481+
name: openstack-operator-webhook-service
482+
namespace: '{{ .OperatorNamespace }}'
483+
path: /validate-dataplane-openstack-org-v1beta1-openstackdataplanedeployment
484+
failurePolicy: Fail
485+
name: vopenstackdataplanedeployment-v1beta1.kb.io
486+
rules:
487+
- apiGroups:
488+
- dataplane.openstack.org
489+
apiVersions:
490+
- v1beta1
491+
operations:
492+
- CREATE
493+
- UPDATE
494+
resources:
495+
- openstackdataplanedeployments
496+
sideEffects: None
362497
- admissionReviewVersions:
363498
- v1
364499
clientConfig:
@@ -379,6 +514,26 @@ webhooks:
379514
resources:
380515
- openstackdataplanenodesets
381516
sideEffects: None
517+
- admissionReviewVersions:
518+
- v1
519+
clientConfig:
520+
service:
521+
name: openstack-operator-webhook-service
522+
namespace: '{{ .OperatorNamespace }}'
523+
path: /validate-dataplane-openstack-org-v1beta1-openstackdataplaneservice
524+
failurePolicy: Fail
525+
name: vopenstackdataplaneservice-v1beta1.kb.io
526+
rules:
527+
- apiGroups:
528+
- dataplane.openstack.org
529+
apiVersions:
530+
- v1beta1
531+
operations:
532+
- CREATE
533+
- UPDATE
534+
resources:
535+
- openstackdataplaneservices
536+
sideEffects: None
382537
- admissionReviewVersions:
383538
- v1
384539
clientConfig:

cmd/main.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ import (
4141
clientcontroller "github.com/openstack-k8s-operators/openstack-operator/internal/controller/client"
4242
corecontroller "github.com/openstack-k8s-operators/openstack-operator/internal/controller/core"
4343
dataplanecontroller "github.com/openstack-k8s-operators/openstack-operator/internal/controller/dataplane"
44+
webhookclientv1beta1 "github.com/openstack-k8s-operators/openstack-operator/internal/webhook/client/v1beta1"
4445
webhookcorev1beta1 "github.com/openstack-k8s-operators/openstack-operator/internal/webhook/core/v1beta1"
4546
webhookdataplanev1beta1 "github.com/openstack-k8s-operators/openstack-operator/internal/webhook/dataplane/v1beta1"
4647

@@ -382,10 +383,25 @@ func main() {
382383
os.Exit(1)
383384
}
384385
// nolint:goconst
386+
if err := webhookclientv1beta1.SetupOpenStackClientWebhookWithManager(mgr); err != nil {
387+
setupLog.Error(err, "unable to create webhook", "webhook", "OpenStackClient")
388+
os.Exit(1)
389+
}
390+
// nolint:goconst
385391
if err := webhookdataplanev1beta1.SetupOpenStackDataPlaneNodeSetWebhookWithManager(mgr); err != nil {
386392
setupLog.Error(err, "unable to create webhook", "webhook", "OpenStackDataPlaneNodeSet")
387393
os.Exit(1)
388394
}
395+
// nolint:goconst
396+
if err := webhookdataplanev1beta1.SetupOpenStackDataPlaneDeploymentWebhookWithManager(mgr); err != nil {
397+
setupLog.Error(err, "unable to create webhook", "webhook", "OpenStackDataPlaneDeployment")
398+
os.Exit(1)
399+
}
400+
// nolint:goconst
401+
if err := webhookdataplanev1beta1.SetupOpenStackDataPlaneServiceWebhookWithManager(mgr); err != nil {
402+
setupLog.Error(err, "unable to create webhook", "webhook", "OpenStackDataPlaneService")
403+
os.Exit(1)
404+
}
389405
}
390406
// +kubebuilder:scaffold:builder
391407

config/default/kustomization.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ resources:
2424
# [CERTMANAGER] To enable cert-manager, uncomment all sections with 'CERTMANAGER'. 'WEBHOOK' components are required.
2525
- ../certmanager
2626
# [PROMETHEUS] To enable prometheus monitor, uncomment all sections with 'PROMETHEUS'.
27-
#- ../prometheus
27+
- ../prometheus
2828
# [METRICS] Expose the controller manager metrics service.
2929
- metrics_service.yaml
3030
# [NETWORK POLICY] Protect the /metrics endpoint and Webhook Server with NetworkPolicy.

config/prometheus/kustomization.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ resources:
55
# to securely reference certificates created and managed by cert-manager.
66
# Additionally, ensure that you uncomment the [METRICS WITH CERTMANAGER] patch under config/default/kustomization.yaml
77
# to mount the "metrics-server-cert" secret in the Manager Deployment.
8-
#patches:
9-
# - path: monitor_tls_patch.yaml
10-
# target:
11-
# kind: ServiceMonitor
8+
patches:
9+
- path: monitor_tls_patch.yaml
10+
target:
11+
kind: ServiceMonitor

0 commit comments

Comments
 (0)