...
1
2
3
4
5
6
7
8
9
10
11
12
13
14 package task
15
16 import (
17 corev1 "k8s.io/api/core/v1"
18
19 "github.com/chaos-mesh/chaos-mesh/api/v1alpha1"
20 )
21
22 const (
23 PodMetadataVolumeName = "podmetadata"
24 PodMetadataAnnotationsVolumePath = ""
25 PodMetadataMountPath = "/var/run/chaos-mesh/"
26 )
27
28 func SpawnPodForTask(task v1alpha1.Task) (corev1.PodSpec, error) {
29 deepCopiedContainer := task.Container.DeepCopy()
30 if len(deepCopiedContainer.Resources.Limits) == 0 {
31 deepCopiedContainer.Resources.Limits.Cpu().SetMilli(1000)
32 deepCopiedContainer.Resources.Limits.Memory().Set(1000)
33 }
34 result := corev1.PodSpec{
35 RestartPolicy: corev1.RestartPolicyNever,
36 Volumes: attachVolumes(task),
37 Containers: []corev1.Container{
38 *deepCopiedContainer,
39 },
40 }
41 return result, nil
42 }
43
44 func attachVolumes(task v1alpha1.Task) []corev1.Volume {
45 var result []corev1.Volume
46
47
48
49 result = append(result, task.Volumes...)
50 return result
51 }
52