github.com/kubeshop/testkube@v1.17.23/config/slave-pod-template.yml (about) 1 apiVersion: v1 2 kind: Pod 3 metadata: 4 name: "{{ .Name }}" 5 namespace: {{ .Namespace }} 6 {{- if .JobUID }} 7 ownerReferences: 8 - apiVersion: batch/v1 9 kind: job 10 name: {{ .JobName }} 11 uid: {{ .JobUID }} 12 {{- end }} 13 spec: 14 {{- if gt .ActiveDeadlineSeconds 0 }} 15 activeDeadlineSeconds: {{ .ActiveDeadlineSeconds }} 16 {{- end }} 17 initContainers: 18 - name: init 19 {{- if .Registry }} 20 image: {{ .Registry }}/{{ .InitImage }} 21 {{- else }} 22 image: {{ .InitImage }} 23 {{- end }} 24 imagePullPolicy: IfNotPresent 25 command: 26 - "/bin/runner" 27 - '{{ .Jsn }}' 28 {{- if .RunnerCustomCASecret }} 29 env: 30 - name: SSL_CERT_DIR 31 value: /etc/testkube/certs 32 {{- end }} 33 volumeMounts: 34 - name: data-volume 35 mountPath: /data 36 {{- if .CertificateSecret }} 37 - name: {{ .CertificateSecret }} 38 mountPath: /etc/certs 39 {{- end }} 40 {{- if .RunnerCustomCASecret }} 41 - name: {{ .RunnerCustomCASecret }} 42 mountPath: /etc/testkube/certs/testkube-custom-ca.pem 43 readOnly: true 44 subPath: ca.crt 45 {{- end }} 46 {{- if .ArtifactRequest }} 47 {{- if and .ArtifactRequest.VolumeMountPath (or .ArtifactRequest.StorageClassName .ArtifactRequest.UseDefaultStorageClassName) }} 48 - name: artifact-volume 49 mountPath: {{ .ArtifactRequest.VolumeMountPath }} 50 {{- end }} 51 {{- end }} 52 {{- range $configmap := .EnvConfigMaps }} 53 {{- if and $configmap.Mount $configmap.Reference }} 54 - name: {{ $configmap.Reference.Name }} 55 mountPath: {{ $configmap.MountPath }} 56 {{- end }} 57 {{- end }} 58 {{- range $secret := .EnvSecrets }} 59 {{- if and $secret.Mount $secret.Reference }} 60 - name: {{ $secret.Reference.Name }} 61 mountPath: {{ $secret.MountPath }} 62 {{- end }} 63 {{- end }} 64 containers: 65 {{ if .Features.LogsV2 -}} 66 - name: "main-logs" 67 {{- if .Registry }} 68 image: {{ .Registry }}/{{ .LogSidecarImage }} 69 {{- else }} 70 image: {{ .LogSidecarImage }} 71 {{- end }} 72 imagePullPolicy: IfNotPresent 73 env: 74 - name: POD_NAME 75 valueFrom: 76 fieldRef: 77 fieldPath: metadata.name 78 - name: NAMESPACE 79 value: {{ .Namespace }} 80 - name: NATS_URI 81 value: {{ .NatsUri }} 82 - name: ID 83 value: {{ .JobName }} 84 - name: GROUP 85 value: test-slave 86 - name: SOURCE 87 value: "job-slave-pod:{{ .Name }}" 88 {{- end }} 89 - name: main 90 {{- if .Registry }} 91 image: {{ .Registry }}/{{ .Image }} 92 {{- else }} 93 image: {{ .Image }} 94 {{- end }} 95 imagePullPolicy: IfNotPresent 96 ports: 97 {{- range $port := .Ports }} 98 - name: {{ $port.Name }} 99 containerPort: {{ $port.ContainerPort }} 100 {{- end}} 101 {{- range $port := .Ports }} 102 {{- if eq $port.Name "server-port" }} 103 livenessProbe: 104 tcpSocket: 105 port: {{ $port.ContainerPort }} 106 failureThreshold: 3 107 periodSeconds: 5 108 successThreshold: 1 109 timeoutSeconds: 1 110 readinessProbe: 111 tcpSocket: 112 port: {{ $port.ContainerPort }} 113 failureThreshold: 3 114 initialDelaySeconds: 10 115 periodSeconds: 5 116 timeoutSeconds: 1 117 {{- end }} 118 {{- end }} 119 {{- if .Resources }} 120 resources: 121 {{- if .Resources.Limits }} 122 limits: 123 {{- if .Resources.Limits.Cpu }} 124 cpu: {{ .Resources.Limits.Cpu }} 125 {{- end }} 126 {{- if .Resources.Limits.Memory }} 127 memory: {{ .Resources.Limits.Memory }} 128 {{- end }} 129 {{- end }} 130 {{- if .Resources.Requests }} 131 requests: 132 {{- if .Resources.Requests.Cpu }} 133 cpu: {{ .Resources.Requests.Cpu }} 134 {{- end }} 135 {{- if .Resources.Requests.Memory }} 136 memory: {{ .Resources.Requests.Memory }} 137 {{- end }} 138 {{- end }} 139 {{- end }} 140 volumeMounts: 141 - name: data-volume 142 mountPath: /data 143 {{- if .CertificateSecret }} 144 - name: {{ .CertificateSecret }} 145 mountPath: /etc/certs 146 {{- end }} 147 {{- if .ArtifactRequest }} 148 {{- if and .ArtifactRequest.VolumeMountPath (or .ArtifactRequest.StorageClassName .ArtifactRequest.UseDefaultStorageClassName) }} 149 - name: artifact-volume 150 mountPath: {{ .ArtifactRequest.VolumeMountPath }} 151 {{- end }} 152 {{- end }} 153 {{- range $configmap := .EnvConfigMaps }} 154 {{- if and $configmap.Mount $configmap.Reference }} 155 - name: {{ $configmap.Reference.Name }} 156 mountPath: {{ $configmap.MountPath }} 157 {{- end }} 158 {{- end }} 159 {{- range $secret := .EnvSecrets }} 160 {{- if and $secret.Mount $secret.Reference }} 161 - name: {{ $secret.Reference.Name }} 162 mountPath: {{ $secret.MountPath }} 163 {{- end }} 164 {{- end }} 165 volumes: 166 - name: data-volume 167 emptyDir: {} 168 {{- if .CertificateSecret }} 169 - name: {{ .CertificateSecret }} 170 secret: 171 secretName: {{ .CertificateSecret }} 172 {{- end }} 173 {{- if .RunnerCustomCASecret }} 174 - name: {{ .RunnerCustomCASecret }} 175 secret: 176 secretName: {{ .RunnerCustomCASecret }} 177 defaultMode: 420 178 {{- end }} 179 {{- if .ArtifactRequest }} 180 {{- if and .ArtifactRequest.VolumeMountPath (or .ArtifactRequest.StorageClassName .ArtifactRequest.UseDefaultStorageClassName) }} 181 - name: artifact-volume 182 persistentVolumeClaim: 183 claimName: {{ .JobName }}-pvc 184 {{- end }} 185 {{- end }} 186 {{- range $configmap := .EnvConfigMaps }} 187 {{- if and $configmap.Mount $configmap.Reference }} 188 - name: {{ $configmap.Reference.Name }} 189 configmap: 190 name: {{ $configmap.Reference.Name }} 191 {{- end }} 192 {{- end }} 193 {{- range $secret := .EnvSecrets }} 194 {{- if and $secret.Mount $secret.Reference }} 195 - name: {{ $secret.Reference.Name }} 196 secret: 197 secretName: {{ $secret.Reference.Name }} 198 {{- end }} 199 {{- end }} 200 restartPolicy: Always 201 {{- if .ServiceAccountName }} 202 serviceAccountName: {{ .ServiceAccountName }} 203 {{- end }} 204 {{- if gt (len .ImagePullSecrets) 0 }} 205 imagePullSecrets: 206 {{- range $secret := .ImagePullSecrets }} 207 - name: {{ $secret -}} 208 {{- end }} 209 {{- end }}