porkadot 0.22.2 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/hack/metallb/crds/kustomization.yaml +5 -0
  3. data/hack/metallb/exclude-l2-config.yaml +8 -0
  4. data/hack/metallb/kustomization.yaml +10 -0
  5. data/hack/update-kubelet-cert-approver.sh +6 -0
  6. data/hack/update-metallb.sh +7 -0
  7. data/lib/porkadot/assets/bootstrap/manifests/kube-apiserver.bootstrap.yaml.erb +1 -1
  8. data/lib/porkadot/assets/etcd/etcd-server.yaml.erb +17 -9
  9. data/lib/porkadot/assets/etcd/etcd.env.erb +4 -0
  10. data/lib/porkadot/assets/etcd/install.sh.erb +1 -0
  11. data/lib/porkadot/assets/etcd.rb +1 -0
  12. data/lib/porkadot/assets/kubelet/config.yaml.erb +1 -39
  13. data/lib/porkadot/assets/kubelet/initiatorname.iscsi.erb +1 -0
  14. data/lib/porkadot/assets/kubelet/kubelet.service.erb +2 -6
  15. data/lib/porkadot/assets/kubelet/metadata.json.erb +5 -0
  16. data/lib/porkadot/assets/{kubelet → kubelet-default}/install-deps.sh.erb +3 -1
  17. data/lib/porkadot/assets/{kubelet → kubelet-default}/install-pkgs.sh.erb +1 -3
  18. data/lib/porkadot/assets/kubelet-default/install.sh.erb +22 -7
  19. data/lib/porkadot/assets/kubelet-default/setup-containerd.sh.erb +22 -0
  20. data/lib/porkadot/assets/kubelet-default/setup-node.sh.erb +16 -0
  21. data/lib/porkadot/assets/kubelet.rb +14 -12
  22. data/lib/porkadot/assets/kubernetes/install.sh.erb +3 -1
  23. data/lib/porkadot/assets/kubernetes/manifests/addons/coredns/coredns.yaml.erb +1 -1
  24. data/lib/porkadot/assets/kubernetes/manifests/addons/coredns/dns-horizontal-autoscaler.yaml.erb +1 -1
  25. data/lib/porkadot/assets/kubernetes/manifests/addons/flannel/flannel.yaml.erb +12 -51
  26. data/lib/porkadot/assets/kubernetes/manifests/addons/kubelet-serving-cert-approver/kustomization.yaml.erb +3 -0
  27. data/lib/porkadot/assets/kubernetes/manifests/addons/kubelet-serving-cert-approver/src.yaml.erb +210 -0
  28. data/lib/porkadot/assets/kubernetes/manifests/addons/metallb/000-metallb.yaml.erb +3 -1
  29. data/lib/porkadot/assets/kubernetes/manifests/addons/metallb/crds.yaml +1272 -0
  30. data/lib/porkadot/assets/kubernetes/manifests/addons/metallb/kustomization.yaml.erb +2 -0
  31. data/lib/porkadot/assets/kubernetes/manifests/addons/metallb/metallb.config.yaml.erb +1 -12
  32. data/lib/porkadot/assets/kubernetes/manifests/addons/metallb/metallb.yaml.erb +520 -228
  33. data/lib/porkadot/assets/kubernetes/manifests/kube-apiserver.yaml.erb +4 -1
  34. data/lib/porkadot/assets/kubernetes/manifests/kube-controller-manager.yaml.erb +3 -0
  35. data/lib/porkadot/assets/kubernetes/manifests/kube-scheduler.yaml.erb +3 -1
  36. data/lib/porkadot/assets/kubernetes.rb +22 -3
  37. data/lib/porkadot/cmd/cli.rb +11 -0
  38. data/lib/porkadot/cmd/etcd.rb +68 -0
  39. data/lib/porkadot/config.rb +1 -1
  40. data/lib/porkadot/configs/addons.rb +4 -0
  41. data/lib/porkadot/configs/certs.rb +3 -0
  42. data/lib/porkadot/configs/etcd.rb +44 -2
  43. data/lib/porkadot/configs/kubelet.rb +25 -7
  44. data/lib/porkadot/const.rb +3 -0
  45. data/lib/porkadot/default.yaml +17 -15
  46. data/lib/porkadot/install/bootstrap.rb +1 -1
  47. data/lib/porkadot/install/kubelet.rb +123 -27
  48. data/lib/porkadot/version.rb +1 -1
  49. data/lib/porkadot.rb +2 -0
  50. data/porkadot.gemspec +1 -0
  51. metadata +33 -8
  52. data/lib/porkadot/assets/kubelet/install.sh.erb +0 -35
  53. data/lib/porkadot/assets/kubelet/setup-containerd.sh.erb +0 -17
  54. data/lib/porkadot/assets/kubernetes/manifests/addons/metallb/metallb.secrets.yaml.erb +0 -13
@@ -1,99 +1,189 @@
1
- apiVersion: policy/v1beta1
2
- kind: PodSecurityPolicy
1
+ apiVersion: v1
2
+ kind: ServiceAccount
3
3
  metadata:
4
4
  labels:
5
5
  app: metallb
6
6
  name: controller
7
7
  namespace: metallb-system
8
- spec:
9
- allowPrivilegeEscalation: false
10
- allowedCapabilities: []
11
- allowedHostPaths: []
12
- defaultAddCapabilities: []
13
- defaultAllowPrivilegeEscalation: false
14
- fsGroup:
15
- ranges:
16
- - max: 65535
17
- min: 1
18
- rule: MustRunAs
19
- hostIPC: false
20
- hostNetwork: false
21
- hostPID: false
22
- privileged: false
23
- readOnlyRootFilesystem: true
24
- requiredDropCapabilities:
25
- - ALL
26
- runAsUser:
27
- ranges:
28
- - max: 65535
29
- min: 1
30
- rule: MustRunAs
31
- seLinux:
32
- rule: RunAsAny
33
- supplementalGroups:
34
- ranges:
35
- - max: 65535
36
- min: 1
37
- rule: MustRunAs
38
- volumes:
39
- - configMap
40
- - secret
41
- - emptyDir
42
8
  ---
43
- apiVersion: policy/v1beta1
44
- kind: PodSecurityPolicy
9
+ apiVersion: v1
10
+ kind: ServiceAccount
45
11
  metadata:
46
12
  labels:
47
13
  app: metallb
48
14
  name: speaker
49
15
  namespace: metallb-system
50
- spec:
51
- allowPrivilegeEscalation: false
52
- allowedCapabilities:
53
- - NET_RAW
54
- allowedHostPaths: []
55
- defaultAddCapabilities: []
56
- defaultAllowPrivilegeEscalation: false
57
- fsGroup:
58
- rule: RunAsAny
59
- hostIPC: false
60
- hostNetwork: true
61
- hostPID: false
62
- hostPorts:
63
- - max: 7472
64
- min: 7472
65
- - max: 7946
66
- min: 7946
67
- privileged: true
68
- readOnlyRootFilesystem: true
69
- requiredDropCapabilities:
70
- - ALL
71
- runAsUser:
72
- rule: RunAsAny
73
- seLinux:
74
- rule: RunAsAny
75
- supplementalGroups:
76
- rule: RunAsAny
77
- volumes:
78
- - configMap
79
- - secret
80
- - emptyDir
81
16
  ---
82
- apiVersion: v1
83
- kind: ServiceAccount
17
+ apiVersion: rbac.authorization.k8s.io/v1
18
+ kind: Role
84
19
  metadata:
85
20
  labels:
86
21
  app: metallb
87
22
  name: controller
88
23
  namespace: metallb-system
24
+ rules:
25
+ - apiGroups:
26
+ - ""
27
+ resources:
28
+ - secrets
29
+ verbs:
30
+ - create
31
+ - delete
32
+ - get
33
+ - list
34
+ - patch
35
+ - update
36
+ - watch
37
+ - apiGroups:
38
+ - ""
39
+ resourceNames:
40
+ - memberlist
41
+ resources:
42
+ - secrets
43
+ verbs:
44
+ - list
45
+ - apiGroups:
46
+ - apps
47
+ resourceNames:
48
+ - controller
49
+ resources:
50
+ - deployments
51
+ verbs:
52
+ - get
53
+ - apiGroups:
54
+ - metallb.io
55
+ resources:
56
+ - bgppeers
57
+ verbs:
58
+ - get
59
+ - list
60
+ - apiGroups:
61
+ - metallb.io
62
+ resources:
63
+ - addresspools
64
+ verbs:
65
+ - get
66
+ - list
67
+ - watch
68
+ - apiGroups:
69
+ - metallb.io
70
+ resources:
71
+ - bfdprofiles
72
+ verbs:
73
+ - get
74
+ - list
75
+ - watch
76
+ - apiGroups:
77
+ - metallb.io
78
+ resources:
79
+ - ipaddresspools
80
+ verbs:
81
+ - get
82
+ - list
83
+ - watch
84
+ - apiGroups:
85
+ - metallb.io
86
+ resources:
87
+ - bgpadvertisements
88
+ verbs:
89
+ - get
90
+ - list
91
+ - watch
92
+ - apiGroups:
93
+ - metallb.io
94
+ resources:
95
+ - l2advertisements
96
+ verbs:
97
+ - get
98
+ - list
99
+ - watch
100
+ - apiGroups:
101
+ - metallb.io
102
+ resources:
103
+ - communities
104
+ verbs:
105
+ - get
106
+ - list
107
+ - watch
89
108
  ---
90
- apiVersion: v1
91
- kind: ServiceAccount
109
+ apiVersion: rbac.authorization.k8s.io/v1
110
+ kind: Role
92
111
  metadata:
93
112
  labels:
94
113
  app: metallb
95
- name: speaker
114
+ name: pod-lister
96
115
  namespace: metallb-system
116
+ rules:
117
+ - apiGroups:
118
+ - ""
119
+ resources:
120
+ - pods
121
+ verbs:
122
+ - list
123
+ - apiGroups:
124
+ - ""
125
+ resources:
126
+ - secrets
127
+ verbs:
128
+ - get
129
+ - list
130
+ - watch
131
+ - apiGroups:
132
+ - metallb.io
133
+ resources:
134
+ - addresspools
135
+ verbs:
136
+ - get
137
+ - list
138
+ - watch
139
+ - apiGroups:
140
+ - metallb.io
141
+ resources:
142
+ - bfdprofiles
143
+ verbs:
144
+ - get
145
+ - list
146
+ - watch
147
+ - apiGroups:
148
+ - metallb.io
149
+ resources:
150
+ - bgppeers
151
+ verbs:
152
+ - get
153
+ - list
154
+ - watch
155
+ - apiGroups:
156
+ - metallb.io
157
+ resources:
158
+ - l2advertisements
159
+ verbs:
160
+ - get
161
+ - list
162
+ - watch
163
+ - apiGroups:
164
+ - metallb.io
165
+ resources:
166
+ - bgpadvertisements
167
+ verbs:
168
+ - get
169
+ - list
170
+ - watch
171
+ - apiGroups:
172
+ - metallb.io
173
+ resources:
174
+ - ipaddresspools
175
+ verbs:
176
+ - get
177
+ - list
178
+ - watch
179
+ - apiGroups:
180
+ - metallb.io
181
+ resources:
182
+ - communities
183
+ verbs:
184
+ - get
185
+ - list
186
+ - watch
97
187
  ---
98
188
  apiVersion: rbac.authorization.k8s.io/v1
99
189
  kind: ClusterRole
@@ -103,21 +193,22 @@ metadata:
103
193
  name: metallb-system:controller
104
194
  rules:
105
195
  - apiGroups:
106
- - ''
196
+ - ""
107
197
  resources:
108
198
  - services
199
+ - namespaces
109
200
  verbs:
110
201
  - get
111
202
  - list
112
203
  - watch
113
204
  - apiGroups:
114
- - ''
205
+ - ""
115
206
  resources:
116
207
  - services/status
117
208
  verbs:
118
209
  - update
119
210
  - apiGroups:
120
- - ''
211
+ - ""
121
212
  resources:
122
213
  - events
123
214
  verbs:
@@ -131,6 +222,56 @@ rules:
131
222
  - podsecuritypolicies
132
223
  verbs:
133
224
  - use
225
+ - apiGroups:
226
+ - admissionregistration.k8s.io
227
+ resourceNames:
228
+ - metallb-webhook-configuration
229
+ resources:
230
+ - validatingwebhookconfigurations
231
+ - mutatingwebhookconfigurations
232
+ verbs:
233
+ - create
234
+ - delete
235
+ - get
236
+ - list
237
+ - patch
238
+ - update
239
+ - watch
240
+ - apiGroups:
241
+ - admissionregistration.k8s.io
242
+ resources:
243
+ - validatingwebhookconfigurations
244
+ - mutatingwebhookconfigurations
245
+ verbs:
246
+ - list
247
+ - watch
248
+ - apiGroups:
249
+ - apiextensions.k8s.io
250
+ resourceNames:
251
+ - addresspools.metallb.io
252
+ - bfdprofiles.metallb.io
253
+ - bgpadvertisements.metallb.io
254
+ - bgppeers.metallb.io
255
+ - ipaddresspools.metallb.io
256
+ - l2advertisements.metallb.io
257
+ - communities.metallb.io
258
+ resources:
259
+ - customresourcedefinitions
260
+ verbs:
261
+ - create
262
+ - delete
263
+ - get
264
+ - list
265
+ - patch
266
+ - update
267
+ - watch
268
+ - apiGroups:
269
+ - apiextensions.k8s.io
270
+ resources:
271
+ - customresourcedefinitions
272
+ verbs:
273
+ - list
274
+ - watch
134
275
  ---
135
276
  apiVersion: rbac.authorization.k8s.io/v1
136
277
  kind: ClusterRole
@@ -140,16 +281,18 @@ metadata:
140
281
  name: metallb-system:speaker
141
282
  rules:
142
283
  - apiGroups:
143
- - ''
284
+ - ""
144
285
  resources:
145
286
  - services
146
287
  - endpoints
147
288
  - nodes
289
+ - namespaces
148
290
  verbs:
149
291
  - get
150
292
  - list
151
293
  - watch
152
- - apiGroups: ["discovery.k8s.io"]
294
+ - apiGroups:
295
+ - discovery.k8s.io
153
296
  resources:
154
297
  - endpointslices
155
298
  verbs:
@@ -157,7 +300,7 @@ rules:
157
300
  - list
158
301
  - watch
159
302
  - apiGroups:
160
- - ''
303
+ - ""
161
304
  resources:
162
305
  - events
163
306
  verbs:
@@ -173,67 +316,36 @@ rules:
173
316
  - use
174
317
  ---
175
318
  apiVersion: rbac.authorization.k8s.io/v1
176
- kind: Role
319
+ kind: RoleBinding
177
320
  metadata:
178
321
  labels:
179
322
  app: metallb
180
- name: config-watcher
323
+ name: controller
324
+ namespace: metallb-system
325
+ roleRef:
326
+ apiGroup: rbac.authorization.k8s.io
327
+ kind: Role
328
+ name: controller
329
+ subjects:
330
+ - kind: ServiceAccount
331
+ name: controller
181
332
  namespace: metallb-system
182
- rules:
183
- - apiGroups:
184
- - ''
185
- resources:
186
- - configmaps
187
- verbs:
188
- - get
189
- - list
190
- - watch
191
333
  ---
192
334
  apiVersion: rbac.authorization.k8s.io/v1
193
- kind: Role
335
+ kind: RoleBinding
194
336
  metadata:
195
337
  labels:
196
338
  app: metallb
197
339
  name: pod-lister
198
340
  namespace: metallb-system
199
- rules:
200
- - apiGroups:
201
- - ''
202
- resources:
203
- - pods
204
- verbs:
205
- - list
206
- ---
207
- apiVersion: rbac.authorization.k8s.io/v1
208
- kind: Role
209
- metadata:
210
- labels:
211
- app: metallb
212
- name: controller
341
+ roleRef:
342
+ apiGroup: rbac.authorization.k8s.io
343
+ kind: Role
344
+ name: pod-lister
345
+ subjects:
346
+ - kind: ServiceAccount
347
+ name: speaker
213
348
  namespace: metallb-system
214
- rules:
215
- - apiGroups:
216
- - ''
217
- resources:
218
- - secrets
219
- verbs:
220
- - create
221
- - apiGroups:
222
- - ''
223
- resources:
224
- - secrets
225
- resourceNames:
226
- - memberlist
227
- verbs:
228
- - list
229
- - apiGroups:
230
- - apps
231
- resources:
232
- - deployments
233
- resourceNames:
234
- - controller
235
- verbs:
236
- - get
237
349
  ---
238
350
  apiVersion: rbac.authorization.k8s.io/v1
239
351
  kind: ClusterRoleBinding
@@ -265,52 +377,114 @@ subjects:
265
377
  name: speaker
266
378
  namespace: metallb-system
267
379
  ---
268
- apiVersion: rbac.authorization.k8s.io/v1
269
- kind: RoleBinding
380
+ apiVersion: v1
381
+ data:
382
+ excludel2.yaml: |
383
+ announcedInterfacesToExclude: ["docker.*", "cbr.*", "dummy.*", "virbr.*", "lxcbr.*", "veth.*", "lo", "^cali.*", "^tunl.*", "flannel.*", "kube-ipvs.*", "cni.*", "^nodelocaldns.*"]
384
+ kind: ConfigMap
270
385
  metadata:
271
- labels:
272
- app: metallb
273
- name: config-watcher
386
+ name: metallb-excludel2
274
387
  namespace: metallb-system
275
- roleRef:
276
- apiGroup: rbac.authorization.k8s.io
277
- kind: Role
278
- name: config-watcher
279
- subjects:
280
- - kind: ServiceAccount
281
- name: controller
282
- - kind: ServiceAccount
283
- name: speaker
284
388
  ---
285
- apiVersion: rbac.authorization.k8s.io/v1
286
- kind: RoleBinding
389
+ apiVersion: v1
390
+ kind: Secret
287
391
  metadata:
288
- labels:
289
- app: metallb
290
- name: pod-lister
392
+ name: webhook-server-cert
291
393
  namespace: metallb-system
292
- roleRef:
293
- apiGroup: rbac.authorization.k8s.io
294
- kind: Role
295
- name: pod-lister
296
- subjects:
297
- - kind: ServiceAccount
298
- name: speaker
299
394
  ---
300
- apiVersion: rbac.authorization.k8s.io/v1
301
- kind: RoleBinding
395
+ apiVersion: v1
396
+ kind: Service
397
+ metadata:
398
+ name: webhook-service
399
+ namespace: metallb-system
400
+ spec:
401
+ ports:
402
+ - port: 443
403
+ targetPort: 9443
404
+ selector:
405
+ component: controller
406
+ ---
407
+ apiVersion: apps/v1
408
+ kind: Deployment
302
409
  metadata:
303
410
  labels:
304
411
  app: metallb
412
+ component: controller
305
413
  name: controller
306
414
  namespace: metallb-system
307
- roleRef:
308
- apiGroup: rbac.authorization.k8s.io
309
- kind: Role
310
- name: controller
311
- subjects:
312
- - kind: ServiceAccount
313
- name: controller
415
+ spec:
416
+ revisionHistoryLimit: 3
417
+ selector:
418
+ matchLabels:
419
+ app: metallb
420
+ component: controller
421
+ template:
422
+ metadata:
423
+ annotations:
424
+ prometheus.io/port: "7472"
425
+ prometheus.io/scrape: "true"
426
+ labels:
427
+ app: metallb
428
+ component: controller
429
+ spec:
430
+ containers:
431
+ - args:
432
+ - --port=7472
433
+ - --log-level=info
434
+ env:
435
+ - name: METALLB_ML_SECRET_NAME
436
+ value: memberlist
437
+ - name: METALLB_DEPLOYMENT
438
+ value: controller
439
+ image: quay.io/metallb/controller:v0.13.9
440
+ livenessProbe:
441
+ failureThreshold: 3
442
+ httpGet:
443
+ path: /metrics
444
+ port: monitoring
445
+ initialDelaySeconds: 10
446
+ periodSeconds: 10
447
+ successThreshold: 1
448
+ timeoutSeconds: 1
449
+ name: controller
450
+ ports:
451
+ - containerPort: 7472
452
+ name: monitoring
453
+ - containerPort: 9443
454
+ name: webhook-server
455
+ protocol: TCP
456
+ readinessProbe:
457
+ failureThreshold: 3
458
+ httpGet:
459
+ path: /metrics
460
+ port: monitoring
461
+ initialDelaySeconds: 10
462
+ periodSeconds: 10
463
+ successThreshold: 1
464
+ timeoutSeconds: 1
465
+ securityContext:
466
+ allowPrivilegeEscalation: false
467
+ capabilities:
468
+ drop:
469
+ - all
470
+ readOnlyRootFilesystem: true
471
+ volumeMounts:
472
+ - mountPath: /tmp/k8s-webhook-server/serving-certs
473
+ name: cert
474
+ readOnly: true
475
+ nodeSelector:
476
+ kubernetes.io/os: linux
477
+ securityContext:
478
+ fsGroup: 65534
479
+ runAsNonRoot: true
480
+ runAsUser: 65534
481
+ serviceAccountName: controller
482
+ terminationGracePeriodSeconds: 0
483
+ volumes:
484
+ - name: cert
485
+ secret:
486
+ defaultMode: 420
487
+ secretName: webhook-server-cert
314
488
  ---
315
489
  apiVersion: apps/v1
316
490
  kind: DaemonSet
@@ -328,8 +502,8 @@ spec:
328
502
  template:
329
503
  metadata:
330
504
  annotations:
331
- prometheus.io/port: '7472'
332
- prometheus.io/scrape: 'true'
505
+ prometheus.io/port: "7472"
506
+ prometheus.io/scrape: "true"
333
507
  labels:
334
508
  app: metallb
335
509
  component: speaker
@@ -337,7 +511,7 @@ spec:
337
511
  containers:
338
512
  - args:
339
513
  - --port=7472
340
- - --config=config
514
+ - --log-level=info
341
515
  env:
342
516
  - name: METALLB_NODE_NAME
343
517
  valueFrom:
@@ -351,19 +525,20 @@ spec:
351
525
  valueFrom:
352
526
  fieldRef:
353
527
  fieldPath: status.podIP
354
- # needed when another software is also using memberlist / port 7946
355
- # when changing this default you also need to update the container ports definition
356
- # and the PodSecurityPolicy hostPorts definition
357
- #- name: METALLB_ML_BIND_PORT
358
- # value: "7946"
359
528
  - name: METALLB_ML_LABELS
360
- value: "app=metallb,component=speaker"
361
- - name: METALLB_ML_SECRET_KEY
362
- valueFrom:
363
- secretKeyRef:
364
- name: memberlist
365
- key: secretkey
366
- image: quay.io/metallb/speaker:v0.10.2
529
+ value: app=metallb,component=speaker
530
+ - name: METALLB_ML_SECRET_KEY_PATH
531
+ value: /etc/ml_secret_key
532
+ image: quay.io/metallb/speaker:v0.13.9
533
+ livenessProbe:
534
+ failureThreshold: 3
535
+ httpGet:
536
+ path: /metrics
537
+ port: monitoring
538
+ initialDelaySeconds: 10
539
+ periodSeconds: 10
540
+ successThreshold: 1
541
+ timeoutSeconds: 1
367
542
  name: speaker
368
543
  ports:
369
544
  - containerPort: 7472
@@ -373,6 +548,15 @@ spec:
373
548
  - containerPort: 7946
374
549
  name: memberlist-udp
375
550
  protocol: UDP
551
+ readinessProbe:
552
+ failureThreshold: 3
553
+ httpGet:
554
+ path: /metrics
555
+ port: monitoring
556
+ initialDelaySeconds: 10
557
+ periodSeconds: 10
558
+ successThreshold: 1
559
+ timeoutSeconds: 1
376
560
  securityContext:
377
561
  allowPrivilegeEscalation: false
378
562
  capabilities:
@@ -381,6 +565,10 @@ spec:
381
565
  drop:
382
566
  - ALL
383
567
  readOnlyRootFilesystem: true
568
+ volumeMounts:
569
+ - mountPath: /etc/ml_secret_key
570
+ name: memberlist
571
+ readOnly: true
384
572
  hostNetwork: true
385
573
  nodeSelector:
386
574
  kubernetes.io/os: linux
@@ -390,54 +578,158 @@ spec:
390
578
  - effect: NoSchedule
391
579
  key: node-role.kubernetes.io/master
392
580
  operator: Exists
581
+ - effect: NoSchedule
582
+ key: node-role.kubernetes.io/control-plane
583
+ operator: Exists
584
+ volumes:
585
+ - name: memberlist
586
+ secret:
587
+ defaultMode: 420
588
+ secretName: memberlist
393
589
  ---
394
- apiVersion: apps/v1
395
- kind: Deployment
590
+ apiVersion: admissionregistration.k8s.io/v1
591
+ kind: ValidatingWebhookConfiguration
396
592
  metadata:
397
- labels:
398
- app: metallb
399
- component: controller
400
- name: controller
401
- namespace: metallb-system
402
- spec:
403
- revisionHistoryLimit: 3
404
- selector:
405
- matchLabels:
406
- app: metallb
407
- component: controller
408
- template:
409
- metadata:
410
- annotations:
411
- prometheus.io/port: '7472'
412
- prometheus.io/scrape: 'true'
413
- labels:
414
- app: metallb
415
- component: controller
416
- spec:
417
- containers:
418
- - args:
419
- - --port=7472
420
- - --config=config
421
- env:
422
- - name: METALLB_ML_SECRET_NAME
423
- value: memberlist
424
- - name: METALLB_DEPLOYMENT
425
- value: controller
426
- image: quay.io/metallb/controller:v0.10.2
427
- name: controller
428
- ports:
429
- - containerPort: 7472
430
- name: monitoring
431
- securityContext:
432
- allowPrivilegeEscalation: false
433
- capabilities:
434
- drop:
435
- - all
436
- readOnlyRootFilesystem: true
437
- nodeSelector:
438
- kubernetes.io/os: linux
439
- securityContext:
440
- runAsNonRoot: true
441
- runAsUser: 65534
442
- serviceAccountName: controller
443
- terminationGracePeriodSeconds: 0
593
+ creationTimestamp: null
594
+ name: metallb-webhook-configuration
595
+ webhooks:
596
+ - admissionReviewVersions:
597
+ - v1
598
+ clientConfig:
599
+ service:
600
+ name: webhook-service
601
+ namespace: metallb-system
602
+ path: /validate-metallb-io-v1beta2-bgppeer
603
+ failurePolicy: Fail
604
+ name: bgppeersvalidationwebhook.metallb.io
605
+ rules:
606
+ - apiGroups:
607
+ - metallb.io
608
+ apiVersions:
609
+ - v1beta2
610
+ operations:
611
+ - CREATE
612
+ - UPDATE
613
+ resources:
614
+ - bgppeers
615
+ sideEffects: None
616
+ - admissionReviewVersions:
617
+ - v1
618
+ clientConfig:
619
+ service:
620
+ name: webhook-service
621
+ namespace: metallb-system
622
+ path: /validate-metallb-io-v1beta1-addresspool
623
+ failurePolicy: Fail
624
+ name: addresspoolvalidationwebhook.metallb.io
625
+ rules:
626
+ - apiGroups:
627
+ - metallb.io
628
+ apiVersions:
629
+ - v1beta1
630
+ operations:
631
+ - CREATE
632
+ - UPDATE
633
+ resources:
634
+ - addresspools
635
+ sideEffects: None
636
+ - admissionReviewVersions:
637
+ - v1
638
+ clientConfig:
639
+ service:
640
+ name: webhook-service
641
+ namespace: metallb-system
642
+ path: /validate-metallb-io-v1beta1-bfdprofile
643
+ failurePolicy: Fail
644
+ name: bfdprofilevalidationwebhook.metallb.io
645
+ rules:
646
+ - apiGroups:
647
+ - metallb.io
648
+ apiVersions:
649
+ - v1beta1
650
+ operations:
651
+ - CREATE
652
+ - DELETE
653
+ resources:
654
+ - bfdprofiles
655
+ sideEffects: None
656
+ - admissionReviewVersions:
657
+ - v1
658
+ clientConfig:
659
+ service:
660
+ name: webhook-service
661
+ namespace: metallb-system
662
+ path: /validate-metallb-io-v1beta1-bgpadvertisement
663
+ failurePolicy: Fail
664
+ name: bgpadvertisementvalidationwebhook.metallb.io
665
+ rules:
666
+ - apiGroups:
667
+ - metallb.io
668
+ apiVersions:
669
+ - v1beta1
670
+ operations:
671
+ - CREATE
672
+ - UPDATE
673
+ resources:
674
+ - bgpadvertisements
675
+ sideEffects: None
676
+ - admissionReviewVersions:
677
+ - v1
678
+ clientConfig:
679
+ service:
680
+ name: webhook-service
681
+ namespace: metallb-system
682
+ path: /validate-metallb-io-v1beta1-community
683
+ failurePolicy: Fail
684
+ name: communityvalidationwebhook.metallb.io
685
+ rules:
686
+ - apiGroups:
687
+ - metallb.io
688
+ apiVersions:
689
+ - v1beta1
690
+ operations:
691
+ - CREATE
692
+ - UPDATE
693
+ resources:
694
+ - communities
695
+ sideEffects: None
696
+ - admissionReviewVersions:
697
+ - v1
698
+ clientConfig:
699
+ service:
700
+ name: webhook-service
701
+ namespace: metallb-system
702
+ path: /validate-metallb-io-v1beta1-ipaddresspool
703
+ failurePolicy: Fail
704
+ name: ipaddresspoolvalidationwebhook.metallb.io
705
+ rules:
706
+ - apiGroups:
707
+ - metallb.io
708
+ apiVersions:
709
+ - v1beta1
710
+ operations:
711
+ - CREATE
712
+ - UPDATE
713
+ resources:
714
+ - ipaddresspools
715
+ sideEffects: None
716
+ - admissionReviewVersions:
717
+ - v1
718
+ clientConfig:
719
+ service:
720
+ name: webhook-service
721
+ namespace: metallb-system
722
+ path: /validate-metallb-io-v1beta1-l2advertisement
723
+ failurePolicy: Fail
724
+ name: l2advertisementvalidationwebhook.metallb.io
725
+ rules:
726
+ - apiGroups:
727
+ - metallb.io
728
+ apiVersions:
729
+ - v1beta1
730
+ operations:
731
+ - CREATE
732
+ - UPDATE
733
+ resources:
734
+ - l2advertisements
735
+ sideEffects: None