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