Pod templates

A Pod template defines a portion of a PodSpec configuration that Tekton can use as “boilerplate” for a Pod that runs your Tasks and Pipelines.

You can specify a Pod template for TaskRuns and PipelineRuns. In the template, you can specify custom values for fields governing the execution of individual Tasks or for all Tasks executed by a given PipelineRun.

You also have the option to define a global Pod template in your Tekton config. However, this global template is going to be merged with any templates you specify in your TaskRuns and PipelineRuns. Any field that is present in both the global template and the TaskRun’s or PipelineRun’s template will be taken from the TaskRun or PipelineRun.

See the following for examples of specifying a Pod template: - Specifying a Pod template for a TaskRun - Specifying a Pod template for a PipelineRun

Supported fields

Pod templates support fields listed in the table below.

Field Description
nodeSelector Must be true for the Pod to fit on a node.
tolerations Allows (but does not require) the Pods to schedule onto nodes with matching taints.
affinity Allows constraining the set of nodes for which the Pod can be scheduled based on the labels present on the node.
securityContext Specifies Pod-level security attributes and common container settings such as runAsUser and selinux.
volumes Specifies a list of volumes that containers within the Pod can mount. This allows you to specify a volume type for each volumeMount in a Task.
runtimeClassName Specifies the runtime class for the Pod.
automountServiceAccountToken Default: true. Determines whether Tekton automatically provides the token for the service account used by the Pod inside containers at a predefined path.
dnsPolicy Default: ClusterFirst. Specifies the DNS policy for the Pod. Legal values are ClusterFirst, Default, and None. Does not support ClusterFirstWithHostNet because Tekton Pods cannot run with host networking.
dnsConfig Specifies additional DNS configuration for the Pod, such as name servers and search domains.
enableServiceLinks Default: true. Determines whether services in the Pod's namespace are exposed as environment variables to the Pod, similarly to Docker service links.
priorityClassName Specifies the priority class for the Pod. Allows you to selectively enable preemption on lower-priority workloads.
schedulerName Specifies the scheduler to use when dispatching the Pod. You can specify different schedulers for different types of workloads, such as volcano.sh for machine learning workloads.
imagePullSecrets Specifies the secret to use when pulling a container image.
hostNetwork Default: false. Determines whether to use the host network namespace.

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License.


Last modified January 1, 0001