github.com/kubeshop/testkube@v1.17.23/config/job-template.yml (about) 1 apiVersion: batch/v1 2 kind: Job 3 metadata: 4 name: "{{ .Name }}" 5 namespace: {{ .Namespace }} 6 spec: 7 {{- if gt .ActiveDeadlineSeconds 0 }} 8 activeDeadlineSeconds: {{ .ActiveDeadlineSeconds }} 9 {{- end }} 10 template: 11 spec: 12 initContainers: 13 - name: {{ .Name }}-init 14 {{- if .Registry }} 15 image: {{ .Registry }}/{{ .InitImage }} 16 {{- else }} 17 image: {{ .InitImage }} 18 {{- end }} 19 imagePullPolicy: IfNotPresent 20 command: 21 - "/bin/runner" 22 - '{{ .Jsn }}' 23 {{- if .RunnerCustomCASecret }} 24 env: 25 - name: SSL_CERT_DIR 26 value: /etc/testkube/certs 27 {{- end }} 28 volumeMounts: 29 - name: data-volume 30 mountPath: /data 31 {{- if .CertificateSecret }} 32 - name: {{ .CertificateSecret }} 33 mountPath: /etc/certs 34 {{- end }} 35 {{- if .RunnerCustomCASecret }} 36 - name: {{ .RunnerCustomCASecret }} 37 mountPath: /etc/testkube/certs/testkube-custom-ca.pem 38 readOnly: true 39 subPath: ca.crt 40 {{- end }} 41 {{- if .AgentAPITLSSecret }} 42 - mountPath: /tmp/agent-cert 43 readOnly: true 44 name: {{ .AgentAPITLSSecret }} 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: "{{ .Name }}-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: DEBUG 79 value: {{ if .Debug }}"true"{{ else }}"false"{{ end }} 80 - name: NAMESPACE 81 value: {{ .Namespace }} 82 - name: NATS_URI 83 value: {{ .NatsUri }} 84 - name: ID 85 value: {{ .Name }} 86 - name: GROUP 87 value: test 88 - name: SOURCE 89 value: "job-pod:{{ .Name }}" 90 - name: "{{ .Name }}" 91 {{- if .Registry }} 92 image: {{ .Registry }}/{{ .Image }} 93 {{- else }} 94 image: {{ .Image }} 95 {{- end }} 96 imagePullPolicy: IfNotPresent 97 command: 98 - "/bin/runner" 99 - '{{ .Jsn }}' 100 {{- if .RunnerCustomCASecret }} 101 env: 102 - name: SSL_CERT_DIR 103 value: /etc/testkube/certs 104 {{- end }} 105 volumeMounts: 106 - name: data-volume 107 mountPath: /data 108 {{- if .CertificateSecret }} 109 - name: {{ .CertificateSecret }} 110 mountPath: /etc/certs 111 {{- end }} 112 {{- if .RunnerCustomCASecret }} 113 - name: {{ .RunnerCustomCASecret }} 114 mountPath: /etc/testkube/certs/testkube-custom-ca.pem 115 readOnly: true 116 subPath: ca.crt 117 {{- end }} 118 {{- if .AgentAPITLSSecret }} 119 - mountPath: /tmp/agent-cert 120 readOnly: true 121 name: {{ .AgentAPITLSSecret }} 122 {{- end }} 123 {{- if .ArtifactRequest }} 124 {{- if and .ArtifactRequest.VolumeMountPath (or .ArtifactRequest.StorageClassName .ArtifactRequest.UseDefaultStorageClassName) }} 125 - name: artifact-volume 126 mountPath: {{ .ArtifactRequest.VolumeMountPath }} 127 {{- end }} 128 {{- end }} 129 {{- range $configmap := .EnvConfigMaps }} 130 {{- if and $configmap.Mount $configmap.Reference }} 131 - name: {{ $configmap.Reference.Name }} 132 mountPath: {{ $configmap.MountPath }} 133 {{- end }} 134 {{- end }} 135 {{- range $secret := .EnvSecrets }} 136 {{- if and $secret.Mount $secret.Reference }} 137 - name: {{ $secret.Reference.Name }} 138 mountPath: {{ $secret.MountPath }} 139 {{- end }} 140 {{- end }} 141 volumes: 142 - name: data-volume 143 emptyDir: {} 144 {{- if .CertificateSecret }} 145 - name: {{ .CertificateSecret }} 146 secret: 147 secretName: {{ .CertificateSecret }} 148 {{- end }} 149 {{- if .RunnerCustomCASecret }} 150 - name: {{ .RunnerCustomCASecret }} 151 secret: 152 secretName: {{ .RunnerCustomCASecret }} 153 defaultMode: 420 154 {{- end }} 155 {{- if .AgentAPITLSSecret }} 156 - name: {{ .AgentAPITLSSecret }} 157 secret: 158 secretName: {{ .AgentAPITLSSecret }} 159 {{- end }} 160 {{- if .ArtifactRequest }} 161 {{- if and .ArtifactRequest.VolumeMountPath (or .ArtifactRequest.StorageClassName .ArtifactRequest.UseDefaultStorageClassName) }} 162 - name: artifact-volume 163 persistentVolumeClaim: 164 claimName: {{ .Name }}-pvc 165 {{- end }} 166 {{- end }} 167 {{- range $configmap := .EnvConfigMaps }} 168 {{- if and $configmap.Mount $configmap.Reference }} 169 - name: {{ $configmap.Reference.Name }} 170 configmap: 171 name: {{ $configmap.Reference.Name }} 172 {{- end }} 173 {{- end }} 174 {{- range $secret := .EnvSecrets }} 175 {{- if and $secret.Mount $secret.Reference }} 176 - name: {{ $secret.Reference.Name }} 177 secret: 178 secretName: {{ $secret.Reference.Name }} 179 {{- end }} 180 {{- end }} 181 restartPolicy: Never 182 {{ if .ServiceAccountName }} 183 serviceAccountName: {{ .ServiceAccountName }} 184 {{ end }} 185 {{- if gt (len .ImagePullSecrets) 0 }} 186 imagePullSecrets: 187 {{- range $secret := .ImagePullSecrets }} 188 - name: {{ $secret -}} 189 {{- end }} 190 {{- end }} 191 backoffLimit: 0 192 ttlSecondsAfterFinished: 180