Skip to content

Commit b35ac87

Browse files
feat: wire cert-manager and validating webhook into kustomize config
Enable the kubebuilder-scaffolded webhook and cert-manager sections in config/default/kustomization.yaml (ValidatingWebhookConfiguration, webhook Service, cert-manager Certificate/Issuer, CA injection via replacements block, and manager_webhook_patch for port 9443 + cert volume mount). Remove the MutatingWebhookConfiguration from webhookcainjection_patch.yaml since only a validating webhook exists. Keep webhook_in_openstackcreds.yaml (conversion webhook) commented in config/crd/kustomization.yaml as no conversion handler is implemented. Regenerate deploy/ manifests to include webhook resources. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 7429a5d commit b35ac87

8 files changed

Lines changed: 342 additions & 117 deletions

deploy/00crds.yaml

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ apiVersion: apiextensions.k8s.io/v1
1111
kind: CustomResourceDefinition
1212
metadata:
1313
annotations:
14+
cert-manager.io/inject-ca-from: migration-system/migration-serving-cert
1415
controller-gen.kubebuilder.io/version: v0.17.1
1516
name: arraycreds.vjailbreak.k8s.pf9.io
1617
spec:
@@ -256,6 +257,7 @@ apiVersion: apiextensions.k8s.io/v1
256257
kind: CustomResourceDefinition
257258
metadata:
258259
annotations:
260+
cert-manager.io/inject-ca-from: migration-system/migration-serving-cert
259261
controller-gen.kubebuilder.io/version: v0.17.1
260262
name: arraycredsmappings.vjailbreak.k8s.pf9.io
261263
spec:
@@ -348,6 +350,7 @@ apiVersion: apiextensions.k8s.io/v1
348350
kind: CustomResourceDefinition
349351
metadata:
350352
annotations:
353+
cert-manager.io/inject-ca-from: migration-system/migration-serving-cert
351354
controller-gen.kubebuilder.io/version: v0.17.1
352355
name: bmconfigs.vjailbreak.k8s.pf9.io
353356
spec:
@@ -461,6 +464,7 @@ apiVersion: apiextensions.k8s.io/v1
461464
kind: CustomResourceDefinition
462465
metadata:
463466
annotations:
467+
cert-manager.io/inject-ca-from: migration-system/migration-serving-cert
464468
controller-gen.kubebuilder.io/version: v0.17.1
465469
name: clustermigrations.vjailbreak.k8s.pf9.io
466470
spec:
@@ -607,6 +611,7 @@ apiVersion: apiextensions.k8s.io/v1
607611
kind: CustomResourceDefinition
608612
metadata:
609613
annotations:
614+
cert-manager.io/inject-ca-from: migration-system/migration-serving-cert
610615
controller-gen.kubebuilder.io/version: v0.17.1
611616
name: esximigrations.vjailbreak.k8s.pf9.io
612617
spec:
@@ -730,6 +735,7 @@ apiVersion: apiextensions.k8s.io/v1
730735
kind: CustomResourceDefinition
731736
metadata:
732737
annotations:
738+
cert-manager.io/inject-ca-from: migration-system/migration-serving-cert
733739
controller-gen.kubebuilder.io/version: v0.17.1
734740
name: esxisshcreds.vjailbreak.k8s.pf9.io
735741
spec:
@@ -880,6 +886,7 @@ apiVersion: apiextensions.k8s.io/v1
880886
kind: CustomResourceDefinition
881887
metadata:
882888
annotations:
889+
cert-manager.io/inject-ca-from: migration-system/migration-serving-cert
883890
controller-gen.kubebuilder.io/version: v0.17.1
884891
name: migrationblueprints.vjailbreak.k8s.pf9.io
885892
spec:
@@ -1230,6 +1237,7 @@ apiVersion: apiextensions.k8s.io/v1
12301237
kind: CustomResourceDefinition
12311238
metadata:
12321239
annotations:
1240+
cert-manager.io/inject-ca-from: migration-system/migration-serving-cert
12331241
controller-gen.kubebuilder.io/version: v0.17.1
12341242
name: migrationplans.vjailbreak.k8s.pf9.io
12351243
spec:
@@ -1486,6 +1494,7 @@ apiVersion: apiextensions.k8s.io/v1
14861494
kind: CustomResourceDefinition
14871495
metadata:
14881496
annotations:
1497+
cert-manager.io/inject-ca-from: migration-system/migration-serving-cert
14891498
controller-gen.kubebuilder.io/version: v0.17.1
14901499
name: migrations.vjailbreak.k8s.pf9.io
14911500
spec:
@@ -1727,6 +1736,7 @@ apiVersion: apiextensions.k8s.io/v1
17271736
kind: CustomResourceDefinition
17281737
metadata:
17291738
annotations:
1739+
cert-manager.io/inject-ca-from: migration-system/migration-serving-cert
17301740
controller-gen.kubebuilder.io/version: v0.17.1
17311741
name: migrationtemplates.vjailbreak.k8s.pf9.io
17321742
spec:
@@ -1864,6 +1874,7 @@ apiVersion: apiextensions.k8s.io/v1
18641874
kind: CustomResourceDefinition
18651875
metadata:
18661876
annotations:
1877+
cert-manager.io/inject-ca-from: migration-system/migration-serving-cert
18671878
controller-gen.kubebuilder.io/version: v0.17.1
18681879
name: networkmappings.vjailbreak.k8s.pf9.io
18691880
spec:
@@ -1956,6 +1967,7 @@ apiVersion: apiextensions.k8s.io/v1
19561967
kind: CustomResourceDefinition
19571968
metadata:
19581969
annotations:
1970+
cert-manager.io/inject-ca-from: migration-system/migration-serving-cert
19591971
controller-gen.kubebuilder.io/version: v0.17.1
19601972
name: openstackcreds.vjailbreak.k8s.pf9.io
19611973
spec:
@@ -2254,6 +2266,7 @@ apiVersion: apiextensions.k8s.io/v1
22542266
kind: CustomResourceDefinition
22552267
metadata:
22562268
annotations:
2269+
cert-manager.io/inject-ca-from: migration-system/migration-serving-cert
22572270
controller-gen.kubebuilder.io/version: v0.17.1
22582271
name: pcdclusters.vjailbreak.k8s.pf9.io
22592272
spec:
@@ -2346,6 +2359,7 @@ apiVersion: apiextensions.k8s.io/v1
23462359
kind: CustomResourceDefinition
23472360
metadata:
23482361
annotations:
2362+
cert-manager.io/inject-ca-from: migration-system/migration-serving-cert
23492363
controller-gen.kubebuilder.io/version: v0.17.1
23502364
name: pcdhosts.vjailbreak.k8s.pf9.io
23512365
spec:
@@ -2443,6 +2457,7 @@ apiVersion: apiextensions.k8s.io/v1
24432457
kind: CustomResourceDefinition
24442458
metadata:
24452459
annotations:
2460+
cert-manager.io/inject-ca-from: migration-system/migration-serving-cert
24462461
controller-gen.kubebuilder.io/version: v0.17.1
24472462
name: proxyvms.vjailbreak.k8s.pf9.io
24482463
spec:
@@ -2571,6 +2586,7 @@ apiVersion: apiextensions.k8s.io/v1
25712586
kind: CustomResourceDefinition
25722587
metadata:
25732588
annotations:
2589+
cert-manager.io/inject-ca-from: migration-system/migration-serving-cert
25742590
controller-gen.kubebuilder.io/version: v0.17.1
25752591
name: rdmdisks.vjailbreak.k8s.pf9.io
25762592
spec:
@@ -2724,6 +2740,7 @@ apiVersion: apiextensions.k8s.io/v1
27242740
kind: CustomResourceDefinition
27252741
metadata:
27262742
annotations:
2743+
cert-manager.io/inject-ca-from: migration-system/migration-serving-cert
27272744
controller-gen.kubebuilder.io/version: v0.17.1
27282745
name: rollingmigrationplans.vjailbreak.k8s.pf9.io
27292746
spec:
@@ -3071,6 +3088,7 @@ apiVersion: apiextensions.k8s.io/v1
30713088
kind: CustomResourceDefinition
30723089
metadata:
30733090
annotations:
3091+
cert-manager.io/inject-ca-from: migration-system/migration-serving-cert
30743092
controller-gen.kubebuilder.io/version: v0.17.1
30753093
name: storagemappings.vjailbreak.k8s.pf9.io
30763094
spec:
@@ -3165,6 +3183,7 @@ apiVersion: apiextensions.k8s.io/v1
31653183
kind: CustomResourceDefinition
31663184
metadata:
31673185
annotations:
3186+
cert-manager.io/inject-ca-from: migration-system/migration-serving-cert
31683187
controller-gen.kubebuilder.io/version: v0.17.1
31693188
name: vjailbreaknodes.vjailbreak.k8s.pf9.io
31703189
spec:
@@ -3332,6 +3351,7 @@ apiVersion: apiextensions.k8s.io/v1
33323351
kind: CustomResourceDefinition
33333352
metadata:
33343353
annotations:
3354+
cert-manager.io/inject-ca-from: migration-system/migration-serving-cert
33353355
controller-gen.kubebuilder.io/version: v0.17.1
33363356
name: vmwareclusters.vjailbreak.k8s.pf9.io
33373357
spec:
@@ -3398,6 +3418,7 @@ apiVersion: apiextensions.k8s.io/v1
33983418
kind: CustomResourceDefinition
33993419
metadata:
34003420
annotations:
3421+
cert-manager.io/inject-ca-from: migration-system/migration-serving-cert
34013422
controller-gen.kubebuilder.io/version: v0.17.1
34023423
name: vmwarecreds.vjailbreak.k8s.pf9.io
34033424
spec:
@@ -3520,6 +3541,7 @@ apiVersion: apiextensions.k8s.io/v1
35203541
kind: CustomResourceDefinition
35213542
metadata:
35223543
annotations:
3544+
cert-manager.io/inject-ca-from: migration-system/migration-serving-cert
35233545
controller-gen.kubebuilder.io/version: v0.17.1
35243546
name: vmwarehosts.vjailbreak.k8s.pf9.io
35253547
spec:
@@ -3611,6 +3633,7 @@ apiVersion: apiextensions.k8s.io/v1
36113633
kind: CustomResourceDefinition
36123634
metadata:
36133635
annotations:
3636+
cert-manager.io/inject-ca-from: migration-system/migration-serving-cert
36143637
controller-gen.kubebuilder.io/version: v0.17.1
36153638
name: vmwaremachines.vjailbreak.k8s.pf9.io
36163639
spec:
@@ -3833,6 +3856,7 @@ apiVersion: apiextensions.k8s.io/v1
38333856
kind: CustomResourceDefinition
38343857
metadata:
38353858
annotations:
3859+
cert-manager.io/inject-ca-from: migration-system/migration-serving-cert
38363860
controller-gen.kubebuilder.io/version: v0.17.1
38373861
name: volumeimageprofiles.vjailbreak.k8s.pf9.io
38383862
spec:
@@ -5177,6 +5201,54 @@ spec:
51775201
app: vpwned-sdk
51785202
type: ClusterIP
51795203
---
5204+
apiVersion: v1
5205+
kind: Service
5206+
metadata:
5207+
labels:
5208+
app.kubernetes.io/managed-by: kustomize
5209+
app.kubernetes.io/name: migration
5210+
name: migration-webhook-service
5211+
namespace: migration-system
5212+
spec:
5213+
ports:
5214+
- port: 443
5215+
protocol: TCP
5216+
targetPort: 9443
5217+
selector:
5218+
control-plane: controller-manager
5219+
---
5220+
apiVersion: cert-manager.io/v1
5221+
kind: Certificate
5222+
metadata:
5223+
labels:
5224+
app.kubernetes.io/component: certificate
5225+
app.kubernetes.io/created-by: migration
5226+
app.kubernetes.io/instance: serving-cert
5227+
app.kubernetes.io/managed-by: kustomize
5228+
app.kubernetes.io/name: certificate
5229+
app.kubernetes.io/part-of: migration
5230+
name: migration-serving-cert
5231+
namespace: migration-system
5232+
spec:
5233+
dnsNames:
5234+
- migration-webhook-service.migration-system.svc
5235+
- migration-webhook-service.migration-system.svc.cluster.local
5236+
issuerRef:
5237+
kind: Issuer
5238+
name: migration-selfsigned-issuer
5239+
secretName: webhook-server-cert
5240+
---
5241+
apiVersion: cert-manager.io/v1
5242+
kind: Issuer
5243+
metadata:
5244+
labels:
5245+
app.kubernetes.io/managed-by: kustomize
5246+
app.kubernetes.io/name: migration
5247+
name: migration-selfsigned-issuer
5248+
namespace: migration-system
5249+
spec:
5250+
selfSigned: {}
5251+
---
51805252
apiVersion: networking.k8s.io/v1
51815253
kind: Ingress
51825254
metadata:
@@ -5204,6 +5276,41 @@ spec:
52045276
number: 80
52055277
path: /dev-api/sdk/(.*)
52065278
pathType: ImplementationSpecific
5279+
---
5280+
apiVersion: admissionregistration.k8s.io/v1
5281+
kind: ValidatingWebhookConfiguration
5282+
metadata:
5283+
annotations:
5284+
cert-manager.io/inject-ca-from: migration-system/migration-serving-cert
5285+
labels:
5286+
app.kubernetes.io/component: webhook
5287+
app.kubernetes.io/created-by: migration
5288+
app.kubernetes.io/instance: validating-webhook-configuration
5289+
app.kubernetes.io/managed-by: kustomize
5290+
app.kubernetes.io/name: validatingwebhookconfiguration
5291+
app.kubernetes.io/part-of: migration
5292+
name: migration-validating-webhook-configuration
5293+
webhooks:
5294+
- admissionReviewVersions:
5295+
- v1
5296+
clientConfig:
5297+
service:
5298+
name: migration-webhook-service
5299+
namespace: migration-system
5300+
path: /validate-vjailbreak-k8s-pf9-io-v1alpha1-openstackcreds
5301+
failurePolicy: Fail
5302+
name: vopenstackcreds.kb.io
5303+
rules:
5304+
- apiGroups:
5305+
- vjailbreak.k8s.pf9.io
5306+
apiVersions:
5307+
- v1alpha1
5308+
operations:
5309+
- CREATE
5310+
- UPDATE
5311+
resources:
5312+
- openstackcreds
5313+
sideEffects: None
52075314

52085315
---
52095316
apiVersion: v1

deploy/05controller-deployment.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@ spec:
5858
initialDelaySeconds: 15
5959
periodSeconds: 20
6060
name: manager
61+
ports:
62+
- containerPort: 9443
63+
name: webhook-server
64+
protocol: TCP
6165
readinessProbe:
6266
httpGet:
6367
path: /readyz
@@ -69,6 +73,9 @@ spec:
6973
cpu: 200m
7074
memory: 256Mi
7175
volumeMounts:
76+
- mountPath: /tmp/k8s-webhook-server/serving-certs
77+
name: cert
78+
readOnly: true
7279
- mountPath: /etc/pf9/k3s
7380
name: master-token
7481
- mountPath: /home/ubuntu
@@ -91,6 +98,10 @@ spec:
9198
serviceAccountName: migration-controller-manager
9299
terminationGracePeriodSeconds: 30
93100
volumes:
101+
- name: cert
102+
secret:
103+
defaultMode: 420
104+
secretName: webhook-server-cert
94105
- hostPath:
95106
path: /var/lib/rancher/k3s/server
96107
type: Directory

deploy/06vpwned-deployment.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ spec:
3838
- configMapRef:
3939
name: pf9-env
4040
optional: true
41-
image: quay.io/platform9/vjailbreak-vpwned:0.1.13
41+
image: quay.io/platform9/vjailbreak-vpwned:main
4242
imagePullPolicy: IfNotPresent
4343
name: vpwned
4444
ports:

deploy/07ui-deployment.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ spec:
2424
serviceAccountName: ui-manager-sa
2525
containers:
2626
- name: vjailbreak-ui-container
27-
image: quay.io/platform9/vjailbreak-ui:0.1.13
27+
image: quay.io/platform9/vjailbreak-ui:main
2828
imagePullPolicy: IfNotPresent
2929
ports:
3030
- containerPort: 80

deploy/08vjailbreak-ai-deployment.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ spec:
3636
serviceAccountName: vjailbreak-ai-sa
3737
containers:
3838
- name: vjailbreak-ai
39-
image: quay.io/platform9/vjailbreak-ai:0.1.13
39+
image: quay.io/platform9/vjailbreak-ai:main
4040
imagePullPolicy: IfNotPresent
4141
ports:
4242
- containerPort: 8080

0 commit comments

Comments
 (0)