Skip to content

🚨 Critical: Tekton array parameter syntax error in all pipeline files with additional-tags #1382

@coderabbitai

Description

@coderabbitai

Problem Description

Critical syntax error affecting all Tekton pipeline files with additional-tags parameter

All 32 pipeline files in the .tekton/ directory that use the additional-tags parameter are incorrectly declaring array parameters with the singular value: key instead of the required plural values: key. This causes the Tekton controller to reject these PipelineRun objects due to YAML parsing failures.

Root Cause Analysis

Tekton treats array parameters differently from scalar parameters. According to the Tekton specification, array parameters must use values: (plural) rather than value: (singular).

Current Problematic Code Pattern

- name: additional-tags
  value:                    # ❌ INCORRECT - should be 'values:'
  - '$$OUTPUT_IMAGE_TAG$$'

Correct Syntax

- name: additional-tags
  values:                   # ✅ CORRECT - plural form for arrays
  - '$$OUTPUT_IMAGE_TAG$$'

Impact Assessment

Severity: CRITICAL 🚨

  • All 32 affected pipeline files will fail to parse
  • Build pipeline execution completely broken
  • Both Python 3.11 and Python 3.12 pipelines affected
  • Affects all image types: workbench, runtime, CPU, CUDA, ROCm variants

Affected Files (32 total)

Python 3.11 pipeline files (16):

  • odh-pipeline-runtime-datascience-cpu-py311-ubi9-push.yaml
  • odh-pipeline-runtime-minimal-cpu-py311-ubi9-push.yaml
  • odh-pipeline-runtime-pytorch-cuda-py311-ubi9-push.yaml
  • odh-pipeline-runtime-pytorch-rocm-py311-ubi9-push.yaml
  • odh-pipeline-runtime-tensorflow-cuda-py311-ubi9-push.yaml
  • odh-pipeline-runtime-tensorflow-rocm-py311-ubi9-push.yaml
  • odh-workbench-codeserver-datascience-cpu-py311-ubi9-push.yaml
  • odh-workbench-jupyter-datascience-cpu-py311-ubi9-push.yaml
  • odh-workbench-jupyter-minimal-cpu-py311-ubi9-push.yaml
  • odh-workbench-jupyter-minimal-cuda-py311-ubi9-push.yaml
  • odh-workbench-jupyter-minimal-rocm-py311-ubi9-push.yaml
  • odh-workbench-jupyter-pytorch-cuda-py311-ubi9-push.yaml
  • odh-workbench-jupyter-pytorch-rocm-py311-ubi9-push.yaml
  • odh-workbench-jupyter-tensorflow-cuda-py311-ubi9-push.yaml
  • odh-workbench-jupyter-tensorflow-rocm-py311-ubi9-push.yaml
  • odh-workbench-jupyter-trustyai-cpu-py311-ubi9-push.yaml

Python 3.12 pipeline files (16):

  • odh-pipeline-runtime-datascience-cpu-py312-ubi9-push.yaml
  • odh-pipeline-runtime-minimal-cpu-py312-ubi9-push.yaml
  • odh-pipeline-runtime-pytorch-cuda-py312-ubi9-push.yaml
  • odh-pipeline-runtime-pytorch-rocm-py312-ubi9-push.yaml
  • odh-pipeline-runtime-tensorflow-cuda-py312-ubi9-push.yaml
  • odh-pipeline-runtime-tensorflow-rocm-py312-ubi9-push.yaml
  • odh-workbench-codeserver-datascience-cpu-py312-ubi9-push.yaml
  • odh-workbench-jupyter-datascience-cpu-py312-ubi9-push.yaml
  • odh-workbench-jupyter-minimal-cpu-py312-ubi9-push.yaml
  • odh-workbench-jupyter-minimal-cuda-py312-ubi9-push.yaml
  • odh-workbench-jupyter-minimal-rocm-py312-ubi9-push.yaml
  • odh-workbench-jupyter-pytorch-cuda-py312-ubi9-push.yaml
  • odh-workbench-jupyter-pytorch-rocm-py312-ubi9-push.yaml
  • odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-push.yaml
  • odh-workbench-jupyter-tensorflow-rocm-py312-ubi9-push.yaml
  • odh-workbench-jupyter-trustyai-cpu-py312-ubi9-push.yaml

Solution

Required Changes

Replace all instances of value: with values: for the additional-tags parameter across all affected files.

Implementation Command

# Fix all pipeline files with incorrect array parameter syntax
sed -i 's/^  - name: additional-tags$/&\'$'\n''    values:/' .tekton/*py31*.yaml
sed -i '/^  - name: additional-tags$/,/^    value:$/{s/^    value:$/    values:/}' .tekton/*py31*.yaml

Or manually edit each file to change:

- name: additional-tags
-   value:
+   values:
  - '$$OUTPUT_IMAGE_TAG$$'

Acceptance Criteria

  • All 32 affected pipeline files use values: instead of value: for additional-tags parameter
  • Python 3.11 pipeline files (16) are corrected
  • Python 3.12 pipeline files (16) are corrected
  • Both workbench and runtime pipeline types are fixed
  • All image variants (CPU, CUDA, ROCm) are addressed
  • PipelineRun objects parse successfully in Tekton controller
  • Build pipelines execute without parsing errors
  • No other array parameters have similar syntax issues

Implementation Notes

  1. Systematic Issue: This appears to be a copy-paste error propagated across all pipeline files
  2. Validation: Test PipelineRun parsing with kubectl apply --dry-run=client after fixes
  3. Prevention: Consider adding linting checks to prevent similar syntax errors
  4. Documentation: Update any pipeline generation scripts or templates to use correct syntax

Priority

IMMEDIATE ACTION REQUIRED - This blocks all pipeline execution


Context:

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Status

📋 Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions