logo
Alauda DevOps Pipelines Docs
logo
Alauda DevOps Pipelines Docs
Navigation

Overview

Introduction
Architecture
Feature Overview
Quick Start
Lifecycle Policy
Release Notes

Concepts

TektonConfig
TektonPipeline
Install

Upgrade

Upgrade Path
Upgrade Alauda DevOps Pipelines Operator

Configure

Adjusting Optional Configuration Items of Subcomponents
Configuring Resource Quotas for Pipeline Components
Pod Template Configuration Guide
Regular Cleanup of TaskRun and PipelineRun Resources

How To

Deploying tekton-pipelines in a global cluster through TektonConfig

Pipelines

Introduction
Architecture

Concepts

Tasks
TaskRuns
Pipelines
PipelineRuns
StepActions
Resolvers
Workspaces
Pod Templates
Quick Start

How To

Adjust Dockerfile for Building Task-Compatible Custom Images
Specifying remote pipelines using hub resolvers
Specifying remote tasks using hub resolvers
Use java-image-build-scan-deploy Pipeline

Trouble Shooting

Failed to create pod due to config error when using custom images in Tekton
Permission Issues When Using Custom Images in run-script Task
Unable to Use Multiple PVC Workspaces in Tekton
permissions

Triggers

Introduction
Architecture

Core Concepts

Core Concepts
EventListener
Trigger
Interceptor
TriggerBinding
TriggerTemplate
Quick Start

How To

Setup EventListener
Use GitLab Event Triggers
Create TriggerTemplate

Troubleshooting

The Pipeline is not automatically triggered
Permission Description

Hub

Introduction
Architecture

Core Concepts

Concepts
Understanding Tekton Hub
Permission Description

Results

Introduction
Architecture

Concepts

Core Concepts
Tekton Results
Quick Start
permissions

Configure

Database Configuration

Supply Chain Security

Introduction
Architecture

Concepts

Core Concepts
Understanding Tekton Chains

Quick Start

Getting Started
Signed Provenance

How To

Image Signature Verification
Build System Provenance Verification
Source Code Repository Verification
Vulnerability Scanning and Verification
Base Image and SBOM Verification
License Compliance Verification
Keyless Signing Verification

Configure

Chains Configuration
Chains Configuration
Authentication for Chains
Signing Key Configuration

API Reference

Introduction

Kubernetes APIs

Pipelines

Pipeline [tekton.dev/v1]
Task [tekton.dev/v1]
PipelineRun [tekton.dev/v1]
TaskRun [tekton.dev/v1]
ClusterTask [tekton.dev/v1]
Run [tekton.dev/v1]
CustomRun [tekton.dev/v1]
StepAction [tekton.dev/v1]
VerificationPolicy [tekton.dev/v1alpha1]
ResolutionRequest [resolution.tekton.dev/v1beta1]

Triggers

Trigger [triggers.tekton.dev/v1beta1]
TriggerTemplate [triggers.tekton.dev/v1beta1]
EventListener [triggers.tekton.dev/v1beta1]
TriggerBinding [triggers.tekton.dev/v1beta1]
Interceptor [triggers.tekton.dev/v1alpha1]
ClusterTriggerBinding [triggers.tekton.dev/v1beta1]
ClusterInterceptor [triggers.tekton.dev/v1alpha1]

Operator

TektonConfig [operator.tekton.dev/v1alpha1]
TektonInstallerSet [operator.tekton.dev/v1alpha1]
TektonPipeline [operator.tekton.dev/v1alpha1]
TektonTrigger [operator.tekton.dev/v1alpha1]
TektonChain [operator.tekton.dev/v1alpha1]
TektonHub [operator.tekton.dev/v1alpha1]
TektonResult [operator.tekton.dev/v1alpha1]
TektonInstallerSet [operator.tekton.dev/v1alpha1]
OpenShift Pipelines as Code [operator.tekton.dev/v1alpha1]

Advanced APIs

Results

Introduction to API Usage
Results List
Results Details
Result records List
Result logs List
📝 Edit this page on GitHub
Previous PagePermission Issues When Using Custom Images in run-script Task
Next Pagepermissions

#Unable to Use Multiple PVC Workspaces in Tekton

#TOC

#Problem Description

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.

#Error Manifestation

  1. TaskRun execution fails with a status of False, and the reason is TaskRunValidationFailed:

    $ kubectl get taskruns -n ${namespace} ${taskrun_name}
    NAME                     SUCCEEDED   REASON                       STARTTIME   COMPLETIONTIME
    demo-hbfhd-foo           False       TaskRunValidationFailed      59s         59s
  2. The TaskRun event displays an error message:

    [User error] more than one PersistentVolumeClaim is bound

#Root Cause Analysis

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:

  • Each TaskRun is limited to a single PVC-based workspace.
  • Binding more than one PVC triggers a validation error, preventing the TaskRun from running.

This restriction is enforced to avoid complex scheduling issues and node affinity conflicts.

#Troubleshooting

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:

  1. Edit the TektonConfig resource by setting spec.pipeline.disable-affinity-assistant as shown below:

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    spec:
      pipeline:
        disable-affinity-assistant: true

    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.

  2. The feature-flags ConfigMap will be updated automatically.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: feature-flags
      namespace: tekton-pipelines
    data:
      disable-affinity-assistant: "true"
  3. No manual component restarts are required, changes will take effect automatically.

#Related Content

  • Tekton Affinity Assistant
  • Tekton Workspaces