When running a PipelineRun
or TaskRun
in Tekton with multiple PersistentVolumeClaim
(PVC)-based workspaces
, the execution fails with an error similar to "more than one PersistentVolumeClaim is bound".
This occurs even if all PVCs are valid and correctly declared.
TaskRun execution fails with a status of False
, and the reason is TaskRunValidationFailed
:
The TaskRun event displays an error message:
By default, Tekton enables the Affinity Assistant feature to help co-locate TaskRun pods with their PVCs on the same node. This is especially useful for volumes with ReadWriteOnce
access mode.
However, when the Affinity Assistant is enabled:
TaskRun
is limited to a single PVC-based workspace.This restriction is enforced to avoid complex scheduling issues and node affinity conflicts.
To allow a TaskRun
or PipelineRun
to use multiple PVC-based workspaces, you must disable the Affinity Assistant by updating the Tekton feature flags.
It is recommended to troubleshoot as follows:
spec.pipeline.disable-affinity-assistant
as shown below:tips: the disable-affinity-assistant
feature flag will be removed soon and the Affinity Assistant Modes will be only controlled by the coschedule
feature flag.
feature-flags
ConfigMap will be updated automatically.