porkadot 0.23.0 → 0.25.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) 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/metallb.config.yaml.erb +1 -12
  31. data/lib/porkadot/assets/kubernetes/manifests/addons/metallb/metallb.yaml.erb +507 -252
  32. data/lib/porkadot/assets/kubernetes/manifests/kube-apiserver.yaml.erb +4 -1
  33. data/lib/porkadot/assets/kubernetes/manifests/kube-controller-manager.yaml.erb +3 -0
  34. data/lib/porkadot/assets/kubernetes/manifests/kube-scheduler.yaml.erb +3 -1
  35. data/lib/porkadot/assets/kubernetes.rb +22 -1
  36. data/lib/porkadot/config.rb +1 -1
  37. data/lib/porkadot/configs/addons.rb +4 -0
  38. data/lib/porkadot/configs/etcd.rb +9 -0
  39. data/lib/porkadot/configs/kubelet.rb +25 -7
  40. data/lib/porkadot/default.yaml +17 -15
  41. data/lib/porkadot/install/bootstrap.rb +1 -1
  42. data/lib/porkadot/install/kubelet.rb +24 -40
  43. data/lib/porkadot/version.rb +1 -1
  44. data/lib/porkadot.rb +1 -0
  45. metadata +17 -7
  46. data/lib/porkadot/assets/kubelet/install.sh.erb +0 -35
  47. data/lib/porkadot/assets/kubelet/setup-containerd.sh.erb +0 -17
  48. data/lib/porkadot/assets/kubernetes/manifests/addons/metallb/metallb.yaml +0 -480
@@ -1,97 +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
- spec:
8
- allowPrivilegeEscalation: false
9
- allowedCapabilities: []
10
- allowedHostPaths: []
11
- defaultAddCapabilities: []
12
- defaultAllowPrivilegeEscalation: false
13
- fsGroup:
14
- ranges:
15
- - max: 65535
16
- min: 1
17
- rule: MustRunAs
18
- hostIPC: false
19
- hostNetwork: false
20
- hostPID: false
21
- privileged: false
22
- readOnlyRootFilesystem: true
23
- requiredDropCapabilities:
24
- - ALL
25
- runAsUser:
26
- ranges:
27
- - max: 65535
28
- min: 1
29
- rule: MustRunAs
30
- seLinux:
31
- rule: RunAsAny
32
- supplementalGroups:
33
- ranges:
34
- - max: 65535
35
- min: 1
36
- rule: MustRunAs
37
- volumes:
38
- - configMap
39
- - secret
40
- - emptyDir
7
+ namespace: metallb-system
41
8
  ---
42
- apiVersion: policy/v1beta1
43
- kind: PodSecurityPolicy
9
+ apiVersion: v1
10
+ kind: ServiceAccount
44
11
  metadata:
45
12
  labels:
46
13
  app: metallb
47
14
  name: speaker
48
- spec:
49
- allowPrivilegeEscalation: false
50
- allowedCapabilities:
51
- - NET_RAW
52
- allowedHostPaths: []
53
- defaultAddCapabilities: []
54
- defaultAllowPrivilegeEscalation: false
55
- fsGroup:
56
- rule: RunAsAny
57
- hostIPC: false
58
- hostNetwork: true
59
- hostPID: false
60
- hostPorts:
61
- - max: 7472
62
- min: 7472
63
- - max: 7946
64
- min: 7946
65
- privileged: true
66
- readOnlyRootFilesystem: true
67
- requiredDropCapabilities:
68
- - ALL
69
- runAsUser:
70
- rule: RunAsAny
71
- seLinux:
72
- rule: RunAsAny
73
- supplementalGroups:
74
- rule: RunAsAny
75
- volumes:
76
- - configMap
77
- - secret
78
- - emptyDir
15
+ namespace: metallb-system
79
16
  ---
80
- apiVersion: v1
81
- kind: ServiceAccount
17
+ apiVersion: rbac.authorization.k8s.io/v1
18
+ kind: Role
82
19
  metadata:
83
20
  labels:
84
21
  app: metallb
85
22
  name: controller
86
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
87
108
  ---
88
- apiVersion: v1
89
- kind: ServiceAccount
109
+ apiVersion: rbac.authorization.k8s.io/v1
110
+ kind: Role
90
111
  metadata:
91
112
  labels:
92
113
  app: metallb
93
- name: speaker
114
+ name: pod-lister
94
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
95
187
  ---
96
188
  apiVersion: rbac.authorization.k8s.io/v1
97
189
  kind: ClusterRole
@@ -101,21 +193,22 @@ metadata:
101
193
  name: metallb-system:controller
102
194
  rules:
103
195
  - apiGroups:
104
- - ''
196
+ - ""
105
197
  resources:
106
198
  - services
199
+ - namespaces
107
200
  verbs:
108
201
  - get
109
202
  - list
110
203
  - watch
111
204
  - apiGroups:
112
- - ''
205
+ - ""
113
206
  resources:
114
207
  - services/status
115
208
  verbs:
116
209
  - update
117
210
  - apiGroups:
118
- - ''
211
+ - ""
119
212
  resources:
120
213
  - events
121
214
  verbs:
@@ -129,6 +222,56 @@ rules:
129
222
  - podsecuritypolicies
130
223
  verbs:
131
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
132
275
  ---
133
276
  apiVersion: rbac.authorization.k8s.io/v1
134
277
  kind: ClusterRole
@@ -138,16 +281,18 @@ metadata:
138
281
  name: metallb-system:speaker
139
282
  rules:
140
283
  - apiGroups:
141
- - ''
284
+ - ""
142
285
  resources:
143
286
  - services
144
287
  - endpoints
145
288
  - nodes
289
+ - namespaces
146
290
  verbs:
147
291
  - get
148
292
  - list
149
293
  - watch
150
- - apiGroups: ["discovery.k8s.io"]
294
+ - apiGroups:
295
+ - discovery.k8s.io
151
296
  resources:
152
297
  - endpointslices
153
298
  verbs:
@@ -155,7 +300,7 @@ rules:
155
300
  - list
156
301
  - watch
157
302
  - apiGroups:
158
- - ''
303
+ - ""
159
304
  resources:
160
305
  - events
161
306
  verbs:
@@ -171,67 +316,36 @@ rules:
171
316
  - use
172
317
  ---
173
318
  apiVersion: rbac.authorization.k8s.io/v1
174
- kind: Role
319
+ kind: RoleBinding
175
320
  metadata:
176
321
  labels:
177
322
  app: metallb
178
- 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
179
332
  namespace: metallb-system
180
- rules:
181
- - apiGroups:
182
- - ''
183
- resources:
184
- - configmaps
185
- verbs:
186
- - get
187
- - list
188
- - watch
189
333
  ---
190
334
  apiVersion: rbac.authorization.k8s.io/v1
191
- kind: Role
335
+ kind: RoleBinding
192
336
  metadata:
193
337
  labels:
194
338
  app: metallb
195
339
  name: pod-lister
196
340
  namespace: metallb-system
197
- rules:
198
- - apiGroups:
199
- - ''
200
- resources:
201
- - pods
202
- verbs:
203
- - list
204
- ---
205
- apiVersion: rbac.authorization.k8s.io/v1
206
- kind: Role
207
- metadata:
208
- labels:
209
- app: metallb
210
- 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
211
348
  namespace: metallb-system
212
- rules:
213
- - apiGroups:
214
- - ''
215
- resources:
216
- - secrets
217
- verbs:
218
- - create
219
- - apiGroups:
220
- - ''
221
- resources:
222
- - secrets
223
- resourceNames:
224
- - memberlist
225
- verbs:
226
- - list
227
- - apiGroups:
228
- - apps
229
- resources:
230
- - deployments
231
- resourceNames:
232
- - controller
233
- verbs:
234
- - get
235
349
  ---
236
350
  apiVersion: rbac.authorization.k8s.io/v1
237
351
  kind: ClusterRoleBinding
@@ -263,218 +377,359 @@ subjects:
263
377
  name: speaker
264
378
  namespace: metallb-system
265
379
  ---
266
- apiVersion: rbac.authorization.k8s.io/v1
267
- 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
268
385
  metadata:
269
- labels:
270
- app: metallb
271
- name: config-watcher
386
+ name: metallb-excludel2
272
387
  namespace: metallb-system
273
- roleRef:
274
- apiGroup: rbac.authorization.k8s.io
275
- kind: Role
276
- name: config-watcher
277
- subjects:
278
- - kind: ServiceAccount
279
- name: controller
280
- - kind: ServiceAccount
281
- name: speaker
282
388
  ---
283
- apiVersion: rbac.authorization.k8s.io/v1
284
- kind: RoleBinding
389
+ apiVersion: v1
390
+ kind: Secret
285
391
  metadata:
286
- labels:
287
- app: metallb
288
- name: pod-lister
392
+ name: webhook-server-cert
289
393
  namespace: metallb-system
290
- roleRef:
291
- apiGroup: rbac.authorization.k8s.io
292
- kind: Role
293
- name: pod-lister
294
- subjects:
295
- - kind: ServiceAccount
296
- name: speaker
297
394
  ---
298
- apiVersion: rbac.authorization.k8s.io/v1
299
- kind: RoleBinding
395
+ apiVersion: v1
396
+ kind: Service
300
397
  metadata:
301
- labels:
302
- app: metallb
303
- name: controller
398
+ name: webhook-service
304
399
  namespace: metallb-system
305
- roleRef:
306
- apiGroup: rbac.authorization.k8s.io
307
- kind: Role
308
- name: controller
309
- subjects:
310
- - kind: ServiceAccount
311
- name: controller
400
+ spec:
401
+ ports:
402
+ - port: 443
403
+ targetPort: 9443
404
+ selector:
405
+ component: controller
312
406
  ---
313
407
  apiVersion: apps/v1
314
- kind: DaemonSet
408
+ kind: Deployment
315
409
  metadata:
316
410
  labels:
317
411
  app: metallb
318
- component: speaker
319
- name: speaker
412
+ component: controller
413
+ name: controller
320
414
  namespace: metallb-system
321
415
  spec:
416
+ revisionHistoryLimit: 3
322
417
  selector:
323
418
  matchLabels:
324
419
  app: metallb
325
- component: speaker
420
+ component: controller
326
421
  template:
327
422
  metadata:
328
423
  annotations:
329
- prometheus.io/port: '7472'
330
- prometheus.io/scrape: 'true'
424
+ prometheus.io/port: "7472"
425
+ prometheus.io/scrape: "true"
331
426
  labels:
332
427
  app: metallb
333
- component: speaker
428
+ component: controller
334
429
  spec:
335
430
  containers:
336
431
  - args:
337
432
  - --port=7472
338
- - --config=config
339
433
  - --log-level=info
340
434
  env:
341
- - name: METALLB_NODE_NAME
342
- valueFrom:
343
- fieldRef:
344
- fieldPath: spec.nodeName
345
- - name: METALLB_HOST
346
- valueFrom:
347
- fieldRef:
348
- fieldPath: status.hostIP
349
- - name: METALLB_ML_BIND_ADDR
350
- valueFrom:
351
- fieldRef:
352
- fieldPath: status.podIP
353
- # needed when another software is also using memberlist / port 7946
354
- # when changing this default you also need to update the container ports definition
355
- # and the PodSecurityPolicy hostPorts definition
356
- #- name: METALLB_ML_BIND_PORT
357
- # value: "7946"
358
- - name: METALLB_ML_LABELS
359
- value: "app=metallb,component=speaker"
360
- - name: METALLB_ML_SECRET_KEY
361
- valueFrom:
362
- secretKeyRef:
363
- name: memberlist
364
- key: secretkey
365
- image: quay.io/metallb/speaker:v0.12.1
366
- name: speaker
367
- ports:
368
- - containerPort: 7472
369
- name: monitoring
370
- - containerPort: 7946
371
- name: memberlist-tcp
372
- - containerPort: 7946
373
- name: memberlist-udp
374
- protocol: UDP
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
375
440
  livenessProbe:
441
+ failureThreshold: 3
376
442
  httpGet:
377
443
  path: /metrics
378
444
  port: monitoring
379
445
  initialDelaySeconds: 10
380
446
  periodSeconds: 10
381
- timeoutSeconds: 1
382
447
  successThreshold: 1
383
- failureThreshold: 3
448
+ timeoutSeconds: 1
449
+ name: controller
450
+ ports:
451
+ - containerPort: 7472
452
+ name: monitoring
453
+ - containerPort: 9443
454
+ name: webhook-server
455
+ protocol: TCP
384
456
  readinessProbe:
457
+ failureThreshold: 3
385
458
  httpGet:
386
459
  path: /metrics
387
460
  port: monitoring
388
461
  initialDelaySeconds: 10
389
462
  periodSeconds: 10
390
- timeoutSeconds: 1
391
463
  successThreshold: 1
392
- failureThreshold: 3
464
+ timeoutSeconds: 1
393
465
  securityContext:
394
466
  allowPrivilegeEscalation: false
395
467
  capabilities:
396
- add:
397
- - NET_RAW
398
468
  drop:
399
- - ALL
469
+ - all
400
470
  readOnlyRootFilesystem: true
401
- hostNetwork: true
471
+ volumeMounts:
472
+ - mountPath: /tmp/k8s-webhook-server/serving-certs
473
+ name: cert
474
+ readOnly: true
402
475
  nodeSelector:
403
476
  kubernetes.io/os: linux
404
- serviceAccountName: speaker
405
- terminationGracePeriodSeconds: 2
406
- tolerations:
407
- - effect: NoSchedule
408
- key: node-role.kubernetes.io/master
409
- operator: Exists
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
410
488
  ---
411
489
  apiVersion: apps/v1
412
- kind: Deployment
490
+ kind: DaemonSet
413
491
  metadata:
414
492
  labels:
415
493
  app: metallb
416
- component: controller
417
- name: controller
494
+ component: speaker
495
+ name: speaker
418
496
  namespace: metallb-system
419
497
  spec:
420
- revisionHistoryLimit: 3
421
498
  selector:
422
499
  matchLabels:
423
500
  app: metallb
424
- component: controller
501
+ component: speaker
425
502
  template:
426
503
  metadata:
427
504
  annotations:
428
- prometheus.io/port: '7472'
429
- prometheus.io/scrape: 'true'
505
+ prometheus.io/port: "7472"
506
+ prometheus.io/scrape: "true"
430
507
  labels:
431
508
  app: metallb
432
- component: controller
509
+ component: speaker
433
510
  spec:
434
511
  containers:
435
512
  - args:
436
513
  - --port=7472
437
- - --config=config
438
514
  - --log-level=info
439
515
  env:
440
- - name: METALLB_ML_SECRET_NAME
441
- value: memberlist
442
- - name: METALLB_DEPLOYMENT
443
- value: controller
444
- image: quay.io/metallb/controller:v0.12.1
445
- name: controller
446
- ports:
447
- - containerPort: 7472
448
- name: monitoring
516
+ - name: METALLB_NODE_NAME
517
+ valueFrom:
518
+ fieldRef:
519
+ fieldPath: spec.nodeName
520
+ - name: METALLB_HOST
521
+ valueFrom:
522
+ fieldRef:
523
+ fieldPath: status.hostIP
524
+ - name: METALLB_ML_BIND_ADDR
525
+ valueFrom:
526
+ fieldRef:
527
+ fieldPath: status.podIP
528
+ - name: METALLB_ML_LABELS
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
449
533
  livenessProbe:
534
+ failureThreshold: 3
450
535
  httpGet:
451
536
  path: /metrics
452
537
  port: monitoring
453
538
  initialDelaySeconds: 10
454
539
  periodSeconds: 10
455
- timeoutSeconds: 1
456
540
  successThreshold: 1
457
- failureThreshold: 3
541
+ timeoutSeconds: 1
542
+ name: speaker
543
+ ports:
544
+ - containerPort: 7472
545
+ name: monitoring
546
+ - containerPort: 7946
547
+ name: memberlist-tcp
548
+ - containerPort: 7946
549
+ name: memberlist-udp
550
+ protocol: UDP
458
551
  readinessProbe:
552
+ failureThreshold: 3
459
553
  httpGet:
460
554
  path: /metrics
461
555
  port: monitoring
462
556
  initialDelaySeconds: 10
463
557
  periodSeconds: 10
464
- timeoutSeconds: 1
465
558
  successThreshold: 1
466
- failureThreshold: 3
559
+ timeoutSeconds: 1
467
560
  securityContext:
468
561
  allowPrivilegeEscalation: false
469
562
  capabilities:
563
+ add:
564
+ - NET_RAW
470
565
  drop:
471
- - all
566
+ - ALL
472
567
  readOnlyRootFilesystem: true
568
+ volumeMounts:
569
+ - mountPath: /etc/ml_secret_key
570
+ name: memberlist
571
+ readOnly: true
572
+ hostNetwork: true
473
573
  nodeSelector:
474
574
  kubernetes.io/os: linux
475
- securityContext:
476
- runAsNonRoot: true
477
- runAsUser: 65534
478
- fsGroup: 65534
479
- serviceAccountName: controller
480
- terminationGracePeriodSeconds: 0
575
+ serviceAccountName: speaker
576
+ terminationGracePeriodSeconds: 2
577
+ tolerations:
578
+ - effect: NoSchedule
579
+ key: node-role.kubernetes.io/master
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
589
+ ---
590
+ apiVersion: admissionregistration.k8s.io/v1
591
+ kind: ValidatingWebhookConfiguration
592
+ metadata:
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