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 }}