@@ -238,7 +238,7 @@ func (t *TraceJobClient) CreateJob(nj TraceJob) (*batchv1.Job, error) {
238
238
},
239
239
},
240
240
apiv1.Volume {
241
- Name : "modules" ,
241
+ Name : "modules-host " ,
242
242
VolumeSource : apiv1.VolumeSource {
243
243
HostPath : & apiv1.HostPathVolumeSource {
244
244
Path : "/lib/modules" ,
@@ -277,11 +277,6 @@ func (t *TraceJobClient) CreateJob(nj TraceJob) (*batchv1.Job, error) {
277
277
MountPath : "/programs" ,
278
278
ReadOnly : true ,
279
279
},
280
- apiv1.VolumeMount {
281
- Name : "modules" ,
282
- MountPath : "/lib/modules" ,
283
- ReadOnly : true ,
284
- },
285
280
apiv1.VolumeMount {
286
281
Name : "sys" ,
287
282
MountPath : "/sys" ,
@@ -316,6 +311,110 @@ func (t *TraceJobClient) CreateJob(nj TraceJob) (*batchv1.Job, error) {
316
311
},
317
312
}
318
313
314
+ if nj .FetchHeaders {
315
+ // If we aren't downloading headers, add the initContainer and set up mounts
316
+ job .Spec .Template .Spec .InitContainers = []apiv1.Container {
317
+ apiv1.Container {
318
+ Name : "kubectl-trace-init" ,
319
+ Image : nj .InitImageNameTag ,
320
+ Resources : apiv1.ResourceRequirements {
321
+ Requests : apiv1.ResourceList {
322
+ apiv1 .ResourceCPU : resource .MustParse ("100m" ),
323
+ apiv1 .ResourceMemory : resource .MustParse ("100Mi" ),
324
+ },
325
+ Limits : apiv1.ResourceList {
326
+ apiv1 .ResourceCPU : resource .MustParse ("1" ),
327
+ apiv1 .ResourceMemory : resource .MustParse ("1G" ),
328
+ },
329
+ },
330
+ VolumeMounts : []apiv1.VolumeMount {
331
+ apiv1.VolumeMount {
332
+ Name : "lsb-release" ,
333
+ MountPath : "/etc/lsb-release.host" ,
334
+ ReadOnly : true ,
335
+ },
336
+ apiv1.VolumeMount {
337
+ Name : "os-release" ,
338
+ MountPath : "/etc/os-release.host" ,
339
+ ReadOnly : true ,
340
+ },
341
+ apiv1.VolumeMount {
342
+ Name : "modules-dir" ,
343
+ MountPath : "/lib/modules" ,
344
+ },
345
+ apiv1.VolumeMount {
346
+ Name : "modules-host" ,
347
+ MountPath : "/lib/modules.host" ,
348
+ ReadOnly : true ,
349
+ },
350
+ apiv1.VolumeMount {
351
+ Name : "linux-headers-generated" ,
352
+ MountPath : "/usr/src/" ,
353
+ },
354
+ },
355
+ },
356
+ }
357
+
358
+ job .Spec .Template .Spec .Volumes = append (job .Spec .Template .Spec .Volumes ,
359
+ apiv1.Volume {
360
+ Name : "lsb-release" ,
361
+ VolumeSource : apiv1.VolumeSource {
362
+ HostPath : & apiv1.HostPathVolumeSource {
363
+ Path : "/etc/lsb-release" ,
364
+ },
365
+ },
366
+ },
367
+ apiv1.Volume {
368
+ Name : "os-release" ,
369
+ VolumeSource : apiv1.VolumeSource {
370
+ HostPath : & apiv1.HostPathVolumeSource {
371
+ Path : "/etc/os-release" ,
372
+ },
373
+ },
374
+ },
375
+ apiv1.Volume {
376
+ Name : "modules-dir" ,
377
+ VolumeSource : apiv1.VolumeSource {
378
+ HostPath : & apiv1.HostPathVolumeSource {
379
+ Path : "/var/cache/linux-headers/modules_dir" ,
380
+ },
381
+ },
382
+ },
383
+ apiv1.Volume {
384
+ Name : "linux-headers-generated" ,
385
+ VolumeSource : apiv1.VolumeSource {
386
+ HostPath : & apiv1.HostPathVolumeSource {
387
+ Path : "/var/cache/linux-headers/generated" ,
388
+ },
389
+ },
390
+ })
391
+
392
+ job .Spec .Template .Spec .Containers [0 ].VolumeMounts = append (job .Spec .Template .Spec .Containers [0 ].VolumeMounts ,
393
+ apiv1.VolumeMount {
394
+ Name : "modules-dir" ,
395
+ MountPath : "/lib/modules" ,
396
+ ReadOnly : true ,
397
+ },
398
+ apiv1.VolumeMount {
399
+ Name : "modules-host" ,
400
+ MountPath : "/lib/modules.host" ,
401
+ ReadOnly : true ,
402
+ },
403
+ apiv1.VolumeMount {
404
+ Name : "linux-headers-generated" ,
405
+ MountPath : "/usr/src/" ,
406
+ ReadOnly : true ,
407
+ })
408
+
409
+ } else {
410
+ // If we aren't downloading headers, unconditionally used the ones linked in /lib/modules
411
+ job .Spec .Template .Spec .Containers [0 ].VolumeMounts = append (job .Spec .Template .Spec .Containers [0 ].VolumeMounts ,
412
+ apiv1.VolumeMount {
413
+ Name : "modules-host" ,
414
+ MountPath : "/lib/modules" ,
415
+ ReadOnly : true ,
416
+ })
417
+ }
319
418
if _ , err := t .ConfigClient .Create (cm ); err != nil {
320
419
return nil , err
321
420
}
@@ -393,4 +492,4 @@ func jobStatus(j batchv1.Job) TraceJobStatus {
393
492
return TraceJobFailed
394
493
}
395
494
return TraceJobUnknown
396
- }
495
+ }
0 commit comments