-
Notifications
You must be signed in to change notification settings - Fork 113
RHAIENG-394: Add notebooks release version on the Dockefile Label section #2329
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
WalkthroughAdds an image-labels parameter (value: ["release=2025b"]) to many Tekton PipelineRun manifests, removes build-args-file in a few PipelineRuns, and introduces/propagates an image-labels parameter in multiarch push/pull pipelines to pass labels into build matrix steps. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 11
♻️ Duplicate comments (6)
.tekton/odh-pipeline-runtime-tensorflow-rocm-py312-ubi9-pull-request.yaml (1)
45-47
: Same validation risk: confirm Pipeline declares and usesimage-labels
Mirror of the previous file: this PipelineRun will be rejected if the Pipeline doesn’t have the param and wiring.
Run the script from the earlier comment; it checks both pipelines.
.tekton/odh-workbench-jupyter-tensorflow-rocm-py312-ubi9-pull-request.yaml (1)
45-47
: Pipeline param parity check (avoid unknown param error)As above: confirm the Pipeline spec has
image-labels
(type array) and tasks consume it.Use the earlier verification script.
.tekton/odh-workbench-jupyter-pytorch-cuda-py312-ubi9-pull-request.yaml (1)
45-47
: Prevent PipelineRun rejection: add/verifyimage-labels
in the referenced PipelineSame concern as the other files.
Run the previously provided verification script.
.tekton/odh-base-image-cuda-py312-c9s-push.yaml (1)
39-41
: Image labels for push: verify pipeline wiringSame verification as above for multiarch-push-pipeline and its build task(s).
.tekton/odh-pipeline-runtime-datascience-cpu-py312-ubi9-pull-request.yaml (1)
47-49
: Image labels on PR builds: check param exists upstream and is consumedMirror the checks to ensure param is declared in the Pipeline and applied during build.
.tekton/odh-workbench-jupyter-pytorch-llmcompressor-cuda-py312-ubi9-pull-request.yaml (1)
45-47
: LLMCompressor PR: confirm Pipeline/Task supports image-labelsConsistent with other files; please verify upstream definition/usage.
🧹 Nitpick comments (17)
.tekton/odh-pipeline-runtime-pytorch-cuda-py312-ubi9-pull-request.yaml (1)
45-47
: Optional: quote the label value for consistency across YAML and avoid accidental parsing edge-cases.Not required, but we usually quote key=value strings in lists.
Apply:
- - release=2025b + - "release=2025b".tekton/odh-base-image-cuda-py312-ubi9-push.yaml (1)
39-41
: Optional: add standard OCI version label too.Consider also labeling org.opencontainers.image.version=2025b for broader tooling compatibility.
.tekton/odh-workbench-jupyter-minimal-cpu-py312-ubi9-pull-request.yaml (2)
46-48
: Quote the label value for YAML robustnessPlain scalars with “=” parse fine, but we’ve had tooling trip on them. Quoting is safer and consistent.
- name: image-labels value: - - release=2025b + - "release=2025b"
46-48
: Update the generator instead of hand-editing generated filesHeader states this file is autogenerated. Add
image-labels
in scripts/generate_pull_request_pipelineruns.py and regenerate to avoid drift..tekton/odh-pipeline-runtime-tensorflow-rocm-py312-ubi9-pull-request.yaml (1)
45-47
: Quote the value for consistency- name: image-labels value: - - release=2025b + - "release=2025b".tekton/odh-base-image-rocm-py312-c9s-push.yaml (1)
34-36
: Quote the value for YAML/tooling stability- name: image-labels value: - - release=2025b + - "release=2025b".tekton/odh-workbench-jupyter-tensorflow-rocm-py312-ubi9-pull-request.yaml (1)
45-47
: Quote the value- name: image-labels value: - - release=2025b + - "release=2025b".tekton/odh-workbench-jupyter-pytorch-cuda-py312-ubi9-pull-request.yaml (1)
45-47
: Quote the value- name: image-labels value: - - release=2025b + - "release=2025b".tekton/odh-base-image-cuda-py311-c9s-push.yaml (1)
33-35
: Avoid manual drift if generated.If this push manifest is generated by a script, add
image-labels
there as well so future regenerations don’t drop it..tekton/odh-workbench-jupyter-minimal-cuda-py312-ubi9-pull-request.yaml (1)
45-47
: Looks good; minor consistency suggestion.Param block is valid YAML and placement is fine. For readability, consider keeping
image-labels
adjacent to other image-output params across files..tekton/odh-workbench-jupyter-minimal-rocm-py312-ubi9-pull-request.yaml (1)
45-47
: Prefer templating the release value to avoid future drift.Hardcoding release=2025b will require mass edits next rollover. Consider templating it (and updating the generator) so future bumps are single-source-of-truth.
Example (assuming generator supplies {{release_stream}}):
- - name: image-labels - value: - - release=2025b + - name: image-labels + value: + - release={{release_stream}}.tekton/odh-pipeline-runtime-minimal-cpu-py312-ubi9-pull-request.yaml (2)
48-50
: Autogeneration warning: update the generator, not just outputs.These files are marked autogenerated. Ensure scripts/generate_pull_request_pipelineruns.py (and the push variant generator) are updated to include image-labels, or future regenerations will drop this change.
I can propose a small patch to the generator once you point me to its param emission block.
48-50
: Consider centralizing the release value.Template the release string (e.g., {{release_stream}}) or source it from params-latest.env to prevent manual edits each cycle.
.tekton/odh-workbench-codeserver-datascience-cpu-py312-ubi9-pull-request.yaml (1)
46-48
: Syntax/readability nit: quote label value.Not required, but quoting avoids any YAML or tooling surprises with equals signs.
- - release=2025b + - "release=2025b".tekton/odh-base-image-cuda-py312-c9s-pull-request.yaml (1)
44-46
: Minor: align param ordering with generator conventions.If generators/grouping expect image-labels near other image outputs/metadata (after output-image or image-expires-after), consider moving it there for consistency across files. Functional no-op.
.tekton/odh-base-image-rocm-py312-ubi9-push.yaml (1)
31-37
: Optional: add standard OCI version label alongside custom release.If acceptable for your consumers, also set org.opencontainers.image.version=2025b for broader tooling compatibility; keep release=2025b for internal selectors.
.tekton/odh-base-image-rocm-py312-ubi9-pull-request.yaml (1)
41-45
: Quote not required, but allowed.release=2025b is fine as a bare string in YAML. If you prefer explicitness, quoting is okay and won’t change semantics.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (29)
.tekton/odh-base-image-cuda-py311-c9s-pull-request.yaml
(1 hunks).tekton/odh-base-image-cuda-py311-c9s-push.yaml
(1 hunks).tekton/odh-base-image-cuda-py312-c9s-pull-request.yaml
(1 hunks).tekton/odh-base-image-cuda-py312-c9s-push.yaml
(1 hunks).tekton/odh-base-image-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-base-image-cuda-py312-ubi9-push.yaml
(1 hunks).tekton/odh-base-image-rocm-py312-c9s-pull-request.yaml
(1 hunks).tekton/odh-base-image-rocm-py312-c9s-push.yaml
(1 hunks).tekton/odh-base-image-rocm-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-base-image-rocm-py312-ubi9-push.yaml
(1 hunks).tekton/odh-pipeline-runtime-datascience-cpu-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-pipeline-runtime-minimal-cpu-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-pipeline-runtime-pytorch-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-pipeline-runtime-pytorch-llmcompressor-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-pipeline-runtime-pytorch-rocm-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-pipeline-runtime-tensorflow-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-pipeline-runtime-tensorflow-rocm-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-codeserver-datascience-cpu-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-datascience-cpu-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-minimal-cpu-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-minimal-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-minimal-rocm-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-pytorch-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-pytorch-llmcompressor-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-pytorch-rocm-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-tensorflow-rocm-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-trustyai-cpu-py312-ubi9-pull-request.yaml
(1 hunks)manifests/base/commit-latest.env
(1 hunks)
🧰 Additional context used
🧠 Learnings (11)
📓 Common learnings
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-12T20:04:31.021Z
Learning: Issue #862 in opendatahub-io/notebooks reveals that the Docker image tag length fix from issue #631 is mathematically insufficient. While the fix correctly limits branch names to 40 characters, this fails for longer target names like "runtime-minimal-ubi9-python-3.11" (33 chars) which still produces tags exceeding the 128-character Docker limit. The fix needs dynamic calculation based on actual target name length rather than a fixed 40-character assumption.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1909
File: rstudio/c9s-python-3.11/Dockerfile.cpu:15-18
Timestamp: 2025-08-12T08:36:45.281Z
Learning: jiridanek requested GitHub issue creation for adding ticket references to upgrade block markers during PR #1909 review, specifically noting that scripts/dockerfile_fragments.py script can be used to update code within labeled begin/end blocks and care must be taken not to break the script. Issue was created with comprehensive problem description covering traceability enhancement across 30+ Dockerfiles, critical automation compatibility warnings, multiple implementation options, detailed acceptance criteria including script testing requirements, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1306
File: jupyter/trustyai/ubi9-python-3.12/Dockerfile.cpu:4-4
Timestamp: 2025-07-04T05:49:10.314Z
Learning: jiridanek directs base image pinning security concerns to existing comprehensive issue #1242 "Improve Docker FROM image versioning by avoiding :latest tags" rather than addressing them in individual PRs, continuing the established pattern of systematic security and quality tracking in opendatahub-io/notebooks.
Learnt from: atheo89
PR: opendatahub-io/notebooks#1258
File: codeserver/ubi9-python-3.11/Dockerfile.cpu:32-32
Timestamp: 2025-07-07T11:08:48.524Z
Learning: atheo89 requested GitHub issue creation for multi-architecture Dockerfile improvements during PR #1258 review, specifically for enhancing structural consistency across Docker stages, replacing $(uname -m) with ${TARGETARCH} for cross-architecture builds, and adding OCI-compliant metadata labels. Issue #1332 was created with comprehensive problem description, phased implementation approach, detailed acceptance criteria, implementation guidance with code examples, and proper context linking, continuing the established pattern of systematic code quality improvements.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-08-05T17:24:08.616Z
Learning: jiridanek requested PR review for #1521 covering s390x architecture support improvements, demonstrating continued focus on systematic multi-architecture compatibility enhancements in the opendatahub-io/notebooks repository through clean implementation with centralized configuration, proper CI integration, and architecture-aware testing patterns.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#2215
File: runtimes/datascience/ubi9-python-3.12/Dockerfile.cpu:0-0
Timestamp: 2025-09-05T12:10:50.856Z
Learning: jiridanek requested GitHub issue creation for Dockerfile environment variable refactoring during PR #2215 review. Issue #2311 was created addressing build-only variables (OPENBLAS_VERSION, ONNX_VERSION, GRPC_PYTHON_BUILD_SYSTEM_OPENSSL) being unnecessarily written to /etc/profile.d/ppc64le.sh in runtimes/datascience/ubi9-python-3.12/Dockerfile.cpu, causing variable duplication across stages, unreliable sourcing in non-login build contexts, and violation of DRY principles. The issue includes comprehensive problem description covering affected lines 30-37, detailed impact analysis of build reliability and maintenance overhead, three solution options with centralized ARG/ENV approach as recommended, clear acceptance criteria for version centralization and build-only variable cleanup, and specific implementation guidance with code examples, assigned to jiridanek, continuing the established pattern of systematic infrastructure improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-08-01T14:46:03.215Z
Learning: jiridanek requested GitHub issue creation for two nitpicks during PR #1588 review: comment wording improvement in ROCm TensorFlow Dockerfile and typo fix in Jupyter DataScience Dockerfile stage header. Issues #1589 and #1590 were successfully created with comprehensive problem descriptions, specific file locations and line numbers, clear before/after solutions, detailed acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#2268
File: manifests/base/jupyter-tensorflow-notebook-imagestream.yaml:64-90
Timestamp: 2025-09-04T16:21:47.890Z
Learning: In opendatahub-io/notebooks, during release rollover PRs (e.g., 2025b onboarding in PR #2268), the process intentionally:
- Introduces new N images (often those previously staged under manifests/overlays/additional).
- Shifts the previous N images into the N-1 slots in manifests/base/*-imagestream.yaml.
- As a result, the N-1 blocks will show version increases compared to the old N-1, reflecting the prior N. This is not a violation of the N-1 freeze policy; the freeze applies after the shift (N-1 is then updated only for security).
Example: manifests/base/jupyter-tensorflow-notebook-imagestream.yaml — N: 2025.2 (py312, TF 2.19); N-1: 2025.1 (py311, TF 2.18) with corresponding py312/py311 placeholders.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#2114
File: Makefile:22-24
Timestamp: 2025-08-27T07:37:13.713Z
Learning: jiridanek's approach to removing Python 3.11 workbenches involves handling different components incrementally across multiple PRs: Tekton pipeline cleanup in the current PR, pr-merge-image-delete.yml cleanup in a subsequent PR, while preserving historical context comments in workflow templates that don't require changes.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1379
File: .tekton/odh-workbench-jupyter-pytorch-cuda-py312-ubi9-push.yaml:40-44
Timestamp: 2025-07-11T11:15:25.572Z
Learning: jiridanek requested GitHub issue creation for critical Tekton array parameter syntax error during PR #1379 review, affecting all 32 pipeline files with additional-tags parameter. Issue #1382 was created with comprehensive problem description covering both Python 3.11 and 3.12 pipeline files (16 each), detailed root cause analysis of value: vs values: syntax error, critical impact assessment of complete pipeline execution failure, complete list of all affected files across workbench and runtime types, implementation commands with sed scripts, detailed acceptance criteria, implementation notes about systematic copy-paste error propagation, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
📚 Learning: 2025-07-11T11:16:05.131Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-11T11:16:05.131Z
Learning: jiridanek requested GitHub issue creation for RStudio py311 Tekton push pipelines during PR #1379 review. Issue #1384 was successfully created covering two RStudio variants (CPU and CUDA) found in manifests/base/params-latest.env, with comprehensive problem description, implementation requirements following the same pattern as other workbench pipelines, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-tensorflow-rocm-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-minimal-cpu-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-datascience-cpu-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-trustyai-cpu-py312-ubi9-pull-request.yaml
📚 Learning: 2025-07-08T19:09:48.746Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1306
File: jupyter/trustyai/ubi9-python-3.12/kustomize/base/kustomization.yaml:8-12
Timestamp: 2025-07-08T19:09:48.746Z
Learning: jiridanek requested GitHub issue creation for misleading CUDA prefix in TrustyAI image tags during PR #1306 review, affecting both Python 3.11 and 3.12 versions. Issue #1338 was created with comprehensive problem description covering both affected images, repository pattern analysis comparing correct vs incorrect naming conventions, clear solution with code examples, detailed acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-base-image-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-trustyai-cpu-py312-ubi9-pull-request.yaml
📚 Learning: 2025-09-04T16:21:47.890Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#2268
File: manifests/base/jupyter-tensorflow-notebook-imagestream.yaml:64-90
Timestamp: 2025-09-04T16:21:47.890Z
Learning: In opendatahub-io/notebooks, during release rollover PRs (e.g., 2025b onboarding in PR #2268), the process intentionally:
- Introduces new N images (often those previously staged under manifests/overlays/additional).
- Shifts the previous N images into the N-1 slots in manifests/base/*-imagestream.yaml.
- As a result, the N-1 blocks will show version increases compared to the old N-1, reflecting the prior N. This is not a violation of the N-1 freeze policy; the freeze applies after the shift (N-1 is then updated only for security).
Example: manifests/base/jupyter-tensorflow-notebook-imagestream.yaml — N: 2025.2 (py312, TF 2.19); N-1: 2025.1 (py311, TF 2.18) with corresponding py312/py311 placeholders.
Applied to files:
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-base-image-cuda-py312-ubi9-push.yaml
.tekton/odh-workbench-jupyter-tensorflow-rocm-py312-ubi9-pull-request.yaml
.tekton/odh-base-image-rocm-py312-c9s-push.yaml
.tekton/odh-base-image-cuda-py312-c9s-pull-request.yaml
.tekton/odh-workbench-jupyter-trustyai-cpu-py312-ubi9-pull-request.yaml
manifests/base/commit-latest.env
📚 Learning: 2025-08-19T15:47:12.801Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#2004
File: .tekton/odh-workbench-jupyter-minimal-rocm-py312-ubi9-push.yaml:49-50
Timestamp: 2025-08-19T15:47:12.801Z
Learning: The singlearch-push-pipeline in opendatahub-io/notebooks repository contains all standard build pipeline parameters including git-url, revision, output-image, dockerfile, path-context, and additional-tags, along with git-auth workspace and build-container task reference. Initial verification attempts may miss parameters if search patterns are too restrictive.
Applied to files:
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-base-image-rocm-py312-c9s-pull-request.yaml
.tekton/odh-base-image-cuda-py312-ubi9-push.yaml
.tekton/odh-base-image-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-tensorflow-rocm-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-minimal-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-minimal-cpu-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-pytorch-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-pipeline-runtime-pytorch-rocm-py312-ubi9-pull-request.yaml
.tekton/odh-pipeline-runtime-datascience-cpu-py312-ubi9-pull-request.yaml
.tekton/odh-pipeline-runtime-pytorch-llmcompressor-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-datascience-cpu-py312-ubi9-pull-request.yaml
.tekton/odh-pipeline-runtime-pytorch-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-base-image-rocm-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-codeserver-datascience-cpu-py312-ubi9-pull-request.yaml
.tekton/odh-base-image-cuda-py312-c9s-push.yaml
.tekton/odh-pipeline-runtime-tensorflow-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-pipeline-runtime-tensorflow-rocm-py312-ubi9-pull-request.yaml
.tekton/odh-pipeline-runtime-minimal-cpu-py312-ubi9-pull-request.yaml
.tekton/odh-base-image-rocm-py312-c9s-push.yaml
.tekton/odh-base-image-rocm-py312-ubi9-push.yaml
.tekton/odh-base-image-cuda-py312-c9s-pull-request.yaml
.tekton/odh-base-image-cuda-py311-c9s-pull-request.yaml
.tekton/odh-workbench-jupyter-pytorch-llmcompressor-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-pytorch-rocm-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-trustyai-cpu-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-minimal-rocm-py312-ubi9-pull-request.yaml
📚 Learning: 2025-07-11T11:15:25.572Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1379
File: .tekton/odh-workbench-jupyter-pytorch-cuda-py312-ubi9-push.yaml:40-44
Timestamp: 2025-07-11T11:15:25.572Z
Learning: jiridanek requested GitHub issue creation for critical Tekton array parameter syntax error during PR #1379 review, affecting all 32 pipeline files with additional-tags parameter. Issue #1382 was created with comprehensive problem description covering both Python 3.11 and 3.12 pipeline files (16 each), detailed root cause analysis of value: vs values: syntax error, critical impact assessment of complete pipeline execution failure, complete list of all affected files across workbench and runtime types, implementation commands with sed scripts, detailed acceptance criteria, implementation notes about systematic copy-paste error propagation, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
.tekton/odh-workbench-jupyter-tensorflow-rocm-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-minimal-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-datascience-cpu-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-codeserver-datascience-cpu-py312-ubi9-pull-request.yaml
.tekton/odh-pipeline-runtime-minimal-cpu-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-pytorch-rocm-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-trustyai-cpu-py312-ubi9-pull-request.yaml
📚 Learning: 2025-07-11T11:16:05.131Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-11T11:16:05.131Z
Learning: jiridanek requested GitHub issue creation for adding RStudio py311 Tekton push pipelines during PR #1379 review, referencing existing registry entries in manifests/base/params-latest.env but missing corresponding .tekton pipeline files. A comprehensive issue was created with detailed problem description, implementation requirements following the same pattern as other workbench pipelines, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
.tekton/odh-workbench-jupyter-tensorflow-rocm-py312-ubi9-pull-request.yaml
📚 Learning: 2025-08-20T12:39:54.827Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#2000
File: runtimes/rocm-pytorch/ubi9-python-3.11/requirements.txt:807-809
Timestamp: 2025-08-20T12:39:54.827Z
Learning: Issue #2055 tracks the remaining runtimes/rocm-tensorflow/ubi9-python-3.12/requirements.txt file that stayed at jupyter-core==5.7.2 during PR #2000, which will be addressed separately due to specific challenges with that ROCm TensorFlow image.
Applied to files:
.tekton/odh-workbench-jupyter-tensorflow-rocm-py312-ubi9-pull-request.yaml
📚 Learning: 2025-09-05T12:10:28.916Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#2265
File: .tekton/odh-workbench-jupyter-pytorch-llmcompressor-cuda-py312-ubi9-pull-request.yaml:16-16
Timestamp: 2025-09-05T12:10:28.916Z
Learning: jiridanek requested GitHub issue creation for trigger path cleanup in pytorch+llmcompressor pipeline during PR #2265 review. The issue addresses copy-paste errors where irrelevant Minimal/DataScience trigger paths were included in the pytorch+llmcompressor pipeline on-cel-expression, causing unnecessary pipeline triggers. Solution involves removing unrelated paths and keeping only pytorch+llmcompressor-specific paths, build-args/cuda.conf, jupyter/utils, and the pipeline YAML itself, with comprehensive acceptance criteria and proper context linking.
Applied to files:
.tekton/odh-pipeline-runtime-pytorch-llmcompressor-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-pytorch-llmcompressor-cuda-py312-ubi9-pull-request.yaml
📚 Learning: 2025-08-01T17:35:29.175Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-08-01T17:35:29.175Z
Learning: jiridanek requested GitHub issue creation for adding pytorch+llmcompressor images to Makefile build targets during PR #1519 review. Issue #1598 was successfully created with comprehensive problem description covering missing build targets for both jupyter workbench and runtime images, detailed solution with specific Makefile code examples following established patterns, thorough acceptance criteria covering individual targets, BASE_DIRS variable inclusion, and all-images target integration, implementation notes about handling '+' characters in paths, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
.tekton/odh-pipeline-runtime-pytorch-llmcompressor-cuda-py312-ubi9-pull-request.yaml
📚 Learning: 2025-09-04T09:22:45.818Z
Learnt from: atheo89
PR: opendatahub-io/notebooks#2271
File: .tekton/odh-workbench-rstudio-minimal-cpu-py311-c9s-push.yaml:32-33
Timestamp: 2025-09-04T09:22:45.818Z
Learning: atheo89 corrected CodeRabbit's analysis error regarding build-args-file parameter in singlearch-push-pipeline.yaml during PR #2271 review. The parameter was already properly declared at line 103 and consumed by tasks at lines 253 and 471, contradicting CodeRabbit's initial assessment that it was missing. This demonstrates the importance of thorough verification before flagging issues with parameter definitions in Tekton pipeline configurations.
Applied to files:
.tekton/odh-workbench-jupyter-pytorch-llmcompressor-cuda-py312-ubi9-pull-request.yaml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (23)
- GitHub Check: Red Hat Konflux / odh-base-image-rocm-py312-c9s-on-pull-request
- GitHub Check: Red Hat Konflux / odh-base-image-rocm-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-workbench-jupyter-pytorch-llmcompressor-cuda-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-workbench-jupyter-pytorch-cuda-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-workbench-jupyter-datascience-cpu-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-workbench-jupyter-minimal-cuda-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-base-image-cuda-py311-c9s-on-pull-request
- GitHub Check: Red Hat Konflux / odh-base-image-cuda-py312-c9s-on-pull-request
- GitHub Check: Red Hat Konflux / odh-workbench-jupyter-minimal-rocm-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-pipeline-runtime-pytorch-llmcompressor-cuda-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-workbench-codeserver-datascience-cpu-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-base-image-cuda-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-pipeline-runtime-pytorch-cuda-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-workbench-jupyter-tensorflow-rocm-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-pipeline-runtime-tensorflow-cuda-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-workbench-jupyter-minimal-cpu-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-pipeline-runtime-minimal-cpu-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-pipeline-runtime-tensorflow-rocm-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-pipeline-runtime-pytorch-rocm-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-pipeline-runtime-datascience-cpu-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-workbench-jupyter-pytorch-rocm-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-workbench-jupyter-trustyai-cpu-py312-ubi9-on-pull-request
🔇 Additional comments (17)
.tekton/odh-base-image-cuda-py312-ubi9-push.yaml (1)
39-41
: LGTM: param structure and placement look correct.Array form under value: matches existing style (e.g., additional-tags).
.tekton/odh-base-image-cuda-py312-ubi9-pull-request.yaml (2)
44-46
: LGTM: consistent array param addition.Matches style used elsewhere; placement after path-context is fine.
44-46
: Confirm the Pipeline spec exposes/uses image-labels.multiarch-pull-request-pipeline must declare image-labels and pass it through; otherwise this PR PipelineRun errors with “unknown param” or labels won’t be set.
Reuse the repo-wide script posted in the push YAML comment to verify both pipelines.
.tekton/odh-pipeline-runtime-pytorch-llmcompressor-cuda-py312-ubi9-pull-request.yaml (2)
45-47
: LGTM: param looks good.Placement after build-args-file is consistent with similar pipelines.
45-47
: Ensure generator + pipeline wiring exist for image-labels.This file is autogenerated; please update scripts/generate_pull_request_pipelineruns.py (and any shared templates) to emit image-labels to avoid future drift, and confirm the pipeline consumes it.
Use the same verification script shared earlier; additionally check the generator script for “image-labels”.
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml (2)
45-47
: LGTM: matches established pattern.
45-47
: Double-check pipeline param definition and consumption.As above: confirm multiarch-pull-request-pipeline has param image-labels and it’s wired to the build step.
Refer to the earlier repo-wide script.
.tekton/odh-workbench-jupyter-datascience-cpu-py312-ubi9-pull-request.yaml (2)
45-47
: LGTM: correct syntax; consistent placement.
45-47
: Validate end-to-end: param exists in Pipeline and affects the image.Same checks: Pipeline param presence, task wiring, and generator update.
Use the previously provided script.
.tekton/odh-base-image-cuda-py311-c9s-pull-request.yaml (1)
44-46
: PR objective vs implementation path.PR title mentions “Dockerfile Label section”, but this approach injects labels via pipeline params. That’s fine if the build task translates them to image labels; otherwise, update Dockerfiles or clarify in the PR body.
.tekton/odh-workbench-jupyter-trustyai-cpu-py312-ubi9-pull-request.yaml (1)
45-47
: No existingLABEL release=
found in Dockerfiles; please verify and consider centralizing the release string.Briefly, a search for
LABEL … release=
across allDockerfile*
patterns returned no matches—ensure no custom-named Dockerfiles define a conflicting label, then centralize therelease=…
value (e.g., via a templated variable) to simplify future updates..tekton/odh-workbench-jupyter-pytorch-rocm-py312-ubi9-pull-request.yaml (1)
45-47
: Validate external build Task’simage-labels
schema
This pipeline passesimage-labels
as an array ofkey=value
strings to an external ClusterTask (e.g.buildah
/build-container
) that isn’t defined in this repo. Manually confirm that that Task expects a string array ofkey=value
labels (not a map) forimage-labels
, or adjust to the correct schema to prevent silent no-ops..tekton/odh-pipeline-runtime-tensorflow-cuda-py312-ubi9-pull-request.yaml (2)
45-47
: Validate param compatibility and label application path.Same as other files: confirm multiarch-pull-request-pipeline declares image-labels (array) and the task uses it to set OCI labels. Without this, the addition has no effect or fails at runtime.
Reuse the verification script from the other comment; it checks repo-wide.
45-47
: LGTM on Tekton array syntax.Using value: with a YAML list is correct for array params; not values:. Indentation is consistent.
.tekton/odh-workbench-codeserver-datascience-cpu-py312-ubi9-pull-request.yaml (1)
46-48
: Check parity across PR and push PipelineRuns.If the intent is to label all builds for 2025b, ensure the corresponding push PipelineRuns also carry image-labels; otherwise, only ephemeral PR images get the release label.
Run the repo-wide check from the earlier script; it lists PipelineRuns missing image-labels.
.tekton/odh-base-image-cuda-py312-c9s-pull-request.yaml (1)
44-46
: Confirm the base-image pipeline also accepts image-labels.This PipelineRun references the same (or a similar) multiarch pipeline. Verify it declares image-labels and the build step applies the labels for base images too.
Use the same grep script to confirm ParamSpec and usage.
.tekton/odh-pipeline-runtime-pytorch-rocm-py312-ubi9-pull-request.yaml (1)
45-47
: Confirm pipeline and task support for newimage-labels
param
- I didn’t find
image-labels
declared in themultiarch-pull-request-pipeline
definition or consumed by any build Tasks—please verify the Pipeline spec includes this param and tasks propagate it (e.g.$(params.image-labels)
or--label
flags).- Update the pull-request PipelineRun generator (e.g.
generate_pull_request_pipelineruns.py
) to injectimage-labels
, so regenerations won’t overwrite this change.
- name: image-labels | ||
value: | ||
- release=2025b |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Confirm pipeline param exists and is wired to labeling step; update the generator instead of hand-editing autogen files.
This file is autogenerated; edit scripts/generate_pull_request_pipelineruns.py (and any related generators) so the change persists. Also verify that multiarch-pull-request-pipeline declares a param named image-labels (type: array) and passes it to the image build/task that applies labels; otherwise this addition will be ignored at runtime.
Run:
🏁 Script executed:
#!/bin/bash
# 1) Confirm the pipeline defines the param
rg -nC3 -g '!**/vendor/**' -P '(?s)\bkind:\s*Pipeline\b.*?\bmetadata:\s*\n.*?\bname:\s*multiarch-pull-request-pipeline\b.*?\bspec:\s*\n.*?\bparams:\s*\n.*?(?:-.*\n)*?\bname:\s*image-labels\b' .tekton
# 2) Check any task/step uses it (e.g., $(params.image-labels))
rg -n --pcre2 '\$\(\s*params\.image-labels\s*\)' .tekton
# 3) Ensure all autogenerated PR PipelineRuns gained the param
rg -n 'on-pull-request' .tekton | wc -l
rg -n 'name:\s*image-labels' .tekton | wc -l
Length of output: 353
Add image-labels
to the multiarch-pull-request-pipeline spec.params, wire it into the image-build task, and update the generator
No image-labels
param is defined in the pipeline YAML and no steps reference $(params.image-labels)
—edit scripts/generate_pull_request_pipelineruns.py so autogenerated PipelineRuns include the array param and pass it to the build/task that applies labels.
🤖 Prompt for AI Agents
.tekton/odh-base-image-rocm-py312-c9s-pull-request.yaml lines 43-45: the
PipelineRun/pipeline spec is missing an "image-labels" param and the image-build
task isn't receiving any labels; update the pipeline YAML to declare a param
named image-labels of type array (with appropriate default or allow empty), and
modify the image-build/taskref/taskSpec step(s) invocation to pass labels via
"$(params.image-labels)". Then edit
scripts/generate_pull_request_pipelineruns.py so autogenerated PipelineRun
objects include the image-labels array param in the params list and forward that
param value into the task invocation for the build/label step when rendering
PipelineRuns.
- name: image-labels | ||
value: | ||
- release=2025b |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Ensure singlearch-push-pipeline
supports image-labels
(array) and passes it to the builder
Push runs will fail early if the Pipeline lacks the param, even if other params are valid.
Re-run the repo-wide script from the first file to confirm param declaration and usage.
🏁 Script executed:
#!/bin/bash
set -e
# Locate the singlearch-push-pipeline definition file
PIPELINE_FILE=$(rg -lP --max-count=1 'name:\s*singlearch-push-pipeline\b' -g '*.yaml' .tekton)
echo "Pipeline file: $PIPELINE_FILE"
# Print its params block
echo -e "\n=== params in $PIPELINE_FILE ==="
sed -n '/params:/,/^[[:space:]]*[^- ]/p' "$PIPELINE_FILE"
# Look for any references to image-labels in the pipeline
echo -e "\n=== Occurrences of image-labels in $PIPELINE_FILE ==="
grep -R -n 'image-labels' "$PIPELINE_FILE"
Length of output: 10470
🏁 Script executed:
#!/bin/bash
set -e
FILE=".tekton/singlearch-push-pipeline.yaml"
echo "=== Showing first 200 lines of $FILE ==="
head -n 200 "$FILE"
echo
echo "=== Listing all params declared in $FILE ==="
grep -n '^\s*-\s*name:' "$FILE"
echo
echo "=== Searching for 'image-labels' in $FILE ==="
grep -n 'image-labels' "$FILE" || echo "No occurrences of 'image-labels' found."
Length of output: 12361
Add and wire image-labels
param in singlearch-push-pipeline
In .tekton/singlearch-push-pipeline.yaml
, under spec.params
add:
- name: image-labels
type: array
description: Array of image labels to apply to the built image
default: []
Then, in the build-container
task invocation, append:
- name: IMAGE_LABELS
value: $(params.image-labels)
This ensures PipelineRuns supplying image-labels
(e.g. release tags) won’t error out and that labels are passed through to the builder.
🤖 Prompt for AI Agents
In .tekton/odh-base-image-rocm-py312-c9s-push.yaml lines 34-36, add and wire an
image-labels parameter in .tekton/singlearch-push-pipeline.yaml: under
spec.params add a param named image-labels of type array with description "Array
of image labels to apply to the built image" and default [], and in the
build-container task invocation append the param mapping for IMAGE_LABELS with
value $(params.image-labels) so PipelineRuns can supply labels without errors
and they are forwarded to the builder.
- name: image-labels | ||
value: | ||
- release=2025b |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Validate singlearch-push-pipeline supports image-labels and that the label lands in the built image.
Ensure the pipeline defines image-labels (array) and forwards it to the build step. Consider a post-build verify step (crane or skopeo) to assert the image contains label release=2025b to prevent silent drift.
Run:
🏁 Script executed:
#!/bin/bash
# Pipeline param presence
rg -nC3 -P '(?s)\bkind:\s*Pipeline\b.*?\bmetadata:\s*\n.*?\bname:\s*singlearch-push-pipeline\b.*?\bparams:\s*\n.*?(?:-.*\n)*?\bname:\s*image-labels\b' .tekton
# Wiring to tasks
rg -n --pcre2 '\$\(\s*params\.image-labels\s*\)' .tekton
Length of output: 219
🏁 Script executed:
#!/bin/bash
# Locate pipeline definition files referencing 'singlearch-push-pipeline'
echo "Searching for pipeline files containing 'singlearch-push-pipeline' or 'single-arch-push-pipeline':"
grep -R -n --include='*.yaml' -E 'singlearch-push-pipeline|single-arch-push-pipeline' .tekton || true
# Inspect found file(s) for params and wiring
for file in $(grep -R -l --include='*.yaml' -E 'singlearch-push-pipeline|single-arch-push-pipeline' .tekton); do
echo -e "\n--- Inspecting $file ---"
# Show params section
rg -nC2 --pcre2 '\bparams:\b' "$file" || echo "No 'params:' section found"
# Search for image-labels in param definitions
rg -n --pcre2 '\bname:\s*image-labels\b' "$file" || echo "No 'image-labels' param declared"
# Search for any occurrence of image-labels usage
rg -n --pcre2 '\$\(\s*params\.(image-labels|imageLabels)\s*\)' "$file" || echo "No wiring of image-labels in tasks"
done
Length of output: 22161
Add and wire image-labels
in the singlearch-push-pipeline
- In .tekton/singlearch-push-pipeline.yaml, declare a parameter:
params: - name: image-labels type: array default: []
- Forward it into the build task (e.g.
buildah bud
orkaniko
) as annotations/labels via$(params.image-labels)
. - (Optional) Add a post-build step using crane or skopeo to assert the image contains
release=2025b
, preventing silent drift.
- name: image-labels | ||
value: | ||
- release=2025b |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Ensure the target Pipeline declares and uses param image-labels (array).
This PipelineRun passes an array param. Verify that the referenced Pipeline (multiarch-pull-request-pipeline) defines ParamSpec image-labels with type array and that the build task actually applies these labels (e.g., buildah --label). Otherwise, the run will fail with “param not declared” or silently ignore labels.
Run this repo-scoped check:
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# 1) Confirm the pipeline exists and declares the param
rg -nC3 -g ".tekton/**" -e $'^kind:\\s*Pipeline$' -e $'^metadata:\\n\\s*name:\\s*multiarch-pull-request-pipeline$' || true
rg -nC2 -g ".tekton/**" --pretty $'- name:\\s*image-labels\\b' || true
rg -nC2 -g ".tekton/**" --pretty $'type:\\s*array' || true
# 2) Confirm it’s consumed by tasks
rg -nC2 -g ".tekton/**" --pretty '\$\(\s*params\.image-labels' || true
# 3) Ensure all PR/push PipelineRuns have image-labels
echo "Missing image-labels in Tekton PipelineRuns:"
fd -a -e yaml .tekton | xargs -I{} bash -c 'grep -q "kind: PipelineRun" "{}" && (grep -q "name: image-labels" "{}" || echo "{}")'
Length of output: 1464
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
# 1) List all Tekton YAML files to locate pipeline definitions
echo "All Tekton YAML files:"
find .tekton -type f -name '*.yaml'
# 2) Find the multiarch-pull-request-pipeline file(s)
echo
echo "Files containing 'multiarch-pull-request-pipeline':"
grep -R -n "multiarch-pull-request-pipeline" .tekton
# 3) Confirm the pipeline declares the image-labels param with type array
PIPELINE_FILES=$(grep -R -l "multiarch-pull-request-pipeline" .tekton)
for file in $PIPELINE_FILES; do
echo
echo "Inspecting $file for params.image-labels:"
grep -R -n -C2 "params:" "$file"
grep -R -n "name:\s*image-labels" "$file" || echo " ⚠️ name: image-labels not found"
grep -R -n "type:\s*array" "$file" || echo " ⚠️ type: array not found for image-labels"
done
# 4) Check that tasks within the pipeline reference params.image-labels
for file in $PIPELINE_FILES; do
echo
echo "Checking consumption of params.image-labels in $file:"
grep -R -n "\$\{\s*params.image-labels" "$file" || echo " ⚠️ params.image-labels not referenced"
done
# 5) Ensure every PipelineRun under .tekton includes the image-labels param
echo
echo "PipelineRun YAMLs missing the image-labels param:"
for pr in $(grep -R -l "kind:\s*PipelineRun" -n .tekton); do
if ! grep -q -E "name:\s*image-labels" "$pr"; then
echo " - $pr"
fi
done
Length of output: 58837
Add image-labels
ParamSpec and consume it in multiarch-pull-request-pipeline.yaml
The pipeline does not declare a params.image-labels
of type array
(so any PipelineRun passing it will error) and no task uses $(params.image-labels)
. Add under the top-level params:
block:
- name: image-labels
type: array
Then inject $(params.image-labels)
into the build task (e.g. buildah --label
) to apply the labels.
🤖 Prompt for AI Agents
In .tekton/odh-workbench-jupyter-minimal-rocm-py312-ubi9-pull-request.yaml
around lines 45-47, the file sets image-labels as a literal value but does not
declare a params.image-labels of type array nor consume it; add a top-level
params entry for image-labels with type: array (e.g. under the existing params:
block add "- name: image-labels\n type: array") and then update the
pipeline/task invocation that runs the build
(multiarch-pull-request-pipeline.yaml consumer) to pass and consume
$(params.image-labels) into the build step (for example by mapping it to the
buildah --label arguments or the task param that supplies labels) so
PipelineRuns can supply an array of labels and the build command applies them.
manifests/base/commit-latest.env
Outdated
@@ -1,34 +1,34 @@ | |||
odh-pipeline-runtime-datascience-cpu-py311-ubi9-commit-n=1247a41 | |||
odh-pipeline-runtime-datascience-cpu-py312-ubi9-commit-n=bb55a95 | |||
odh-pipeline-runtime-datascience-cpu-py312-ubi9-commit-n=b739607 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Commit pin updates: validate SHAs exist
Before merge, sanity-check that all new short SHAs resolve to commits in this repo.
Run:
Also applies to: 6-6, 9-9, 11-11, 14-14, 16-16, 18-18, 20-20, 22-22, 24-25, 27-27, 29-29, 32-32
🏁 Script executed:
#!/bin/bash
set -euo pipefail
file="manifests/base/commit-latest.env"
shas=$(rg -nP '^[a-z0-9\-]+-commit-n=([0-9a-f]{7})$' -r '$1' "$file" | sort -u)
missing=0
for s in $shas; do
if ! git cat-file -t "$s" >/dev/null 2>&1; then
echo "Missing commit: $s"; missing=1
fi
done
if [ $missing -eq 0 ]; then echo "All SHAs resolve."; fi
Length of output: 4651
🏁 Script executed:
#!/bin/bash
set -euo pipefail
file="manifests/base/commit-latest.env"
shas=$(grep -oP 'commit-n=\K[0-9a-f]{7}' "$file" | sort -u)
missing=0
for s in $shas; do
if ! git cat-file -t "$s" >/dev/null 2>&1; then
echo "Missing commit: $s"
missing=1
fi
done
if [ $missing -eq 0 ]; then
echo "All SHAs resolve."
fi
Length of output: 707
Missing commit SHA in manifests/base/commit-latest.env
The short SHA 646aeb5
does not resolve to any commit in this repository—update it to a valid, existing commit before merging.
🤖 Prompt for AI Agents
In manifests/base/commit-latest.env around line 2, the short commit SHA
"646aeb5" is invalid for this repo; replace it with a valid existing commit
reference (either the full 40-char SHA or a short SHA that resolves locally).
Use git rev-parse <candidate> or git log to find the correct commit, update the
line to that exact commit identifier, and re-run a git fetch/verify to ensure
the SHA resolves before merging.
1247ab8
to
6531dd1
Compare
6531dd1
to
e1ed967
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
♻️ Duplicate comments (1)
.tekton/odh-workbench-jupyter-minimal-cpu-py312-ubi9-pull-request.yaml (1)
46-48
: Guard against unknown param error: add image-labels to the Pipeline specThis PR Run references multiarch-pull-request-pipeline; add image-labels to that Pipeline’s spec.params and pass it into the build task as IMAGE_LABELS.
Also update scripts/generate_pull_request_pipelineruns.py so future regenerations preserve this param.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (29)
.tekton/multiarch-push-pipeline.yaml
(2 hunks).tekton/odh-base-image-cuda-py311-c9s-pull-request.yaml
(1 hunks).tekton/odh-base-image-cuda-py311-c9s-push.yaml
(1 hunks).tekton/odh-base-image-cuda-py312-c9s-pull-request.yaml
(1 hunks).tekton/odh-base-image-cuda-py312-c9s-push.yaml
(1 hunks).tekton/odh-base-image-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-base-image-cuda-py312-ubi9-push.yaml
(1 hunks).tekton/odh-base-image-rocm-py312-c9s-pull-request.yaml
(1 hunks).tekton/odh-base-image-rocm-py312-c9s-push.yaml
(1 hunks).tekton/odh-base-image-rocm-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-base-image-rocm-py312-ubi9-push.yaml
(1 hunks).tekton/odh-pipeline-runtime-datascience-cpu-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-pipeline-runtime-minimal-cpu-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-pipeline-runtime-pytorch-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-pipeline-runtime-pytorch-llmcompressor-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-pipeline-runtime-pytorch-rocm-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-pipeline-runtime-tensorflow-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-pipeline-runtime-tensorflow-rocm-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-codeserver-datascience-cpu-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-datascience-cpu-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-minimal-cpu-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-minimal-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-minimal-rocm-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-pytorch-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-pytorch-llmcompressor-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-pytorch-rocm-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-tensorflow-rocm-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-trustyai-cpu-py312-ubi9-pull-request.yaml
(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (24)
- .tekton/odh-base-image-cuda-py312-c9s-push.yaml
- .tekton/odh-base-image-cuda-py311-c9s-push.yaml
- .tekton/odh-pipeline-runtime-datascience-cpu-py312-ubi9-pull-request.yaml
- .tekton/odh-base-image-rocm-py312-c9s-pull-request.yaml
- .tekton/odh-workbench-jupyter-tensorflow-rocm-py312-ubi9-pull-request.yaml
- .tekton/odh-base-image-cuda-py312-ubi9-push.yaml
- .tekton/odh-base-image-cuda-py312-c9s-pull-request.yaml
- .tekton/odh-pipeline-runtime-minimal-cpu-py312-ubi9-pull-request.yaml
- .tekton/odh-workbench-jupyter-minimal-rocm-py312-ubi9-pull-request.yaml
- .tekton/odh-pipeline-runtime-pytorch-cuda-py312-ubi9-pull-request.yaml
- .tekton/odh-workbench-jupyter-minimal-cuda-py312-ubi9-pull-request.yaml
- .tekton/odh-pipeline-runtime-tensorflow-cuda-py312-ubi9-pull-request.yaml
- .tekton/odh-workbench-jupyter-pytorch-cuda-py312-ubi9-pull-request.yaml
- .tekton/odh-base-image-rocm-py312-c9s-push.yaml
- .tekton/odh-workbench-codeserver-datascience-cpu-py312-ubi9-pull-request.yaml
- .tekton/odh-base-image-cuda-py311-c9s-pull-request.yaml
- .tekton/odh-base-image-rocm-py312-ubi9-push.yaml
- .tekton/odh-workbench-jupyter-datascience-cpu-py312-ubi9-pull-request.yaml
- .tekton/odh-workbench-jupyter-trustyai-cpu-py312-ubi9-pull-request.yaml
- .tekton/odh-pipeline-runtime-pytorch-llmcompressor-cuda-py312-ubi9-pull-request.yaml
- .tekton/odh-workbench-jupyter-pytorch-llmcompressor-cuda-py312-ubi9-pull-request.yaml
- .tekton/odh-base-image-rocm-py312-ubi9-pull-request.yaml
- .tekton/odh-workbench-jupyter-pytorch-rocm-py312-ubi9-pull-request.yaml
- .tekton/odh-pipeline-runtime-pytorch-rocm-py312-ubi9-pull-request.yaml
🧰 Additional context used
🧠 Learnings (14)
📓 Common learnings
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-08-05T17:24:08.616Z
Learning: jiridanek requested PR review for #1521 covering s390x architecture support improvements, demonstrating continued focus on systematic multi-architecture compatibility enhancements in the opendatahub-io/notebooks repository through clean implementation with centralized configuration, proper CI integration, and architecture-aware testing patterns.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1909
File: rstudio/c9s-python-3.11/Dockerfile.cpu:15-18
Timestamp: 2025-08-12T08:36:45.281Z
Learning: jiridanek requested GitHub issue creation for adding ticket references to upgrade block markers during PR #1909 review, specifically noting that scripts/dockerfile_fragments.py script can be used to update code within labeled begin/end blocks and care must be taken not to break the script. Issue was created with comprehensive problem description covering traceability enhancement across 30+ Dockerfiles, critical automation compatibility warnings, multiple implementation options, detailed acceptance criteria including script testing requirements, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-08-01T14:46:03.215Z
Learning: jiridanek requested GitHub issue creation for two nitpicks during PR #1588 review: comment wording improvement in ROCm TensorFlow Dockerfile and typo fix in Jupyter DataScience Dockerfile stage header. Issues #1589 and #1590 were successfully created with comprehensive problem descriptions, specific file locations and line numbers, clear before/after solutions, detailed acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: atheo89
PR: opendatahub-io/notebooks#1258
File: codeserver/ubi9-python-3.11/Dockerfile.cpu:32-32
Timestamp: 2025-07-07T11:08:48.524Z
Learning: atheo89 requested GitHub issue creation for multi-architecture Dockerfile improvements during PR #1258 review, specifically for enhancing structural consistency across Docker stages, replacing $(uname -m) with ${TARGETARCH} for cross-architecture builds, and adding OCI-compliant metadata labels. Issue #1332 was created with comprehensive problem description, phased implementation approach, detailed acceptance criteria, implementation guidance with code examples, and proper context linking, continuing the established pattern of systematic code quality improvements.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#2215
File: runtimes/datascience/ubi9-python-3.12/Dockerfile.cpu:0-0
Timestamp: 2025-09-05T12:10:50.856Z
Learning: jiridanek requested GitHub issue creation for Dockerfile environment variable refactoring during PR #2215 review. Issue #2311 was created addressing build-only variables (OPENBLAS_VERSION, ONNX_VERSION, GRPC_PYTHON_BUILD_SYSTEM_OPENSSL) being unnecessarily written to /etc/profile.d/ppc64le.sh in runtimes/datascience/ubi9-python-3.12/Dockerfile.cpu, causing variable duplication across stages, unreliable sourcing in non-login build contexts, and violation of DRY principles. The issue includes comprehensive problem description covering affected lines 30-37, detailed impact analysis of build reliability and maintenance overhead, three solution options with centralized ARG/ENV approach as recommended, clear acceptance criteria for version centralization and build-only variable cleanup, and specific implementation guidance with code examples, assigned to jiridanek, continuing the established pattern of systematic infrastructure improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1154
File: manifests/base/jupyter-tensorflow-notebook-imagestream.yaml:45-45
Timestamp: 2025-06-13T08:34:01.300Z
Learning: When updating dependency versions in `manifests/base/*-imagestream.yaml`, the project convention is to modify only the newest tag (e.g., "2025.1") and intentionally leave earlier tags (e.g., "2024.2") unchanged.
📚 Learning: 2025-09-12T09:51:55.421Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-09-12T09:51:55.421Z
Learning: jiridanek identified orphaned TensorFlow ROCm Python 3.12 entries in manifests/base/params-latest.env during PR #2103 review. The params file references odh-workbench-jupyter-tensorflow-rocm-py312-ubi9 and odh-pipeline-runtime-tensorflow-rocm-py312-ubi9 images with 2025a-v1.35 tags, but the corresponding source directories (jupyter/rocm/tensorflow/ubi9-python-3.12/ and runtimes/rocm-tensorflow/ubi9-python-3.12/) don't exist in the repository, creating a broken build situation where Tekton pipelines exist but have no source to build from.
Applied to files:
.tekton/odh-base-image-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-minimal-cpu-py312-ubi9-pull-request.yaml
.tekton/odh-pipeline-runtime-tensorflow-rocm-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
📚 Learning: 2025-07-08T19:09:48.746Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1306
File: jupyter/trustyai/ubi9-python-3.12/kustomize/base/kustomization.yaml:8-12
Timestamp: 2025-07-08T19:09:48.746Z
Learning: jiridanek requested GitHub issue creation for misleading CUDA prefix in TrustyAI image tags during PR #1306 review, affecting both Python 3.11 and 3.12 versions. Issue #1338 was created with comprehensive problem description covering both affected images, repository pattern analysis comparing correct vs incorrect naming conventions, clear solution with code examples, detailed acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
.tekton/odh-base-image-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
📚 Learning: 2025-08-19T15:47:12.801Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#2004
File: .tekton/odh-workbench-jupyter-minimal-rocm-py312-ubi9-push.yaml:49-50
Timestamp: 2025-08-19T15:47:12.801Z
Learning: The singlearch-push-pipeline in opendatahub-io/notebooks repository contains all standard build pipeline parameters including git-url, revision, output-image, dockerfile, path-context, and additional-tags, along with git-auth workspace and build-container task reference. Initial verification attempts may miss parameters if search patterns are too restrictive.
Applied to files:
.tekton/odh-base-image-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-minimal-cpu-py312-ubi9-pull-request.yaml
.tekton/odh-pipeline-runtime-tensorflow-rocm-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
.tekton/multiarch-push-pipeline.yaml
📚 Learning: 2025-07-11T11:16:05.131Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-11T11:16:05.131Z
Learning: jiridanek requested GitHub issue creation for RStudio py311 Tekton push pipelines during PR #1379 review. Issue #1384 was successfully created covering two RStudio variants (CPU and CUDA) found in manifests/base/params-latest.env, with comprehensive problem description, implementation requirements following the same pattern as other workbench pipelines, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
.tekton/odh-workbench-jupyter-minimal-cpu-py312-ubi9-pull-request.yaml
.tekton/odh-pipeline-runtime-tensorflow-rocm-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
📚 Learning: 2025-07-11T11:15:25.572Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1379
File: .tekton/odh-workbench-jupyter-pytorch-cuda-py312-ubi9-push.yaml:40-44
Timestamp: 2025-07-11T11:15:25.572Z
Learning: jiridanek requested GitHub issue creation for critical Tekton array parameter syntax error during PR #1379 review, affecting all 32 pipeline files with additional-tags parameter. Issue #1382 was created with comprehensive problem description covering both Python 3.11 and 3.12 pipeline files (16 each), detailed root cause analysis of value: vs values: syntax error, critical impact assessment of complete pipeline execution failure, complete list of all affected files across workbench and runtime types, implementation commands with sed scripts, detailed acceptance criteria, implementation notes about systematic copy-paste error propagation, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
.tekton/odh-workbench-jupyter-minimal-cpu-py312-ubi9-pull-request.yaml
.tekton/odh-pipeline-runtime-tensorflow-rocm-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
📚 Learning: 2025-08-19T15:49:45.132Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#2004
File: .tekton/odh-workbench-jupyter-minimal-cuda-py311-ubi9-push.yaml:35-36
Timestamp: 2025-08-19T15:49:45.132Z
Learning: jiridanek requested GitHub issue creation for two PipelineRef compatibility problems during PR #2004 review: missing additional-tags parameter in singlearch-push-pipeline and missing netrc workspace binding in PipelineRuns. Issues were successfully created with comprehensive problem descriptions covering technical details, impact analysis on multiple affected files, clear solutions with code examples, detailed acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
.tekton/odh-workbench-jupyter-minimal-cpu-py312-ubi9-pull-request.yaml
📚 Learning: 2025-07-11T11:16:05.131Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-11T11:16:05.131Z
Learning: jiridanek requested GitHub issue creation for adding RStudio py311 Tekton push pipelines during PR #1379 review, referencing existing registry entries in manifests/base/params-latest.env but missing corresponding .tekton pipeline files. A comprehensive issue was created with detailed problem description, implementation requirements following the same pattern as other workbench pipelines, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
.tekton/odh-workbench-jupyter-minimal-cpu-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
📚 Learning: 2025-09-04T09:22:45.818Z
Learnt from: atheo89
PR: opendatahub-io/notebooks#2271
File: .tekton/odh-workbench-rstudio-minimal-cpu-py311-c9s-push.yaml:32-33
Timestamp: 2025-09-04T09:22:45.818Z
Learning: atheo89 corrected CodeRabbit's analysis error regarding build-args-file parameter in singlearch-push-pipeline.yaml during PR #2271 review. The parameter was already properly declared at line 103 and consumed by tasks at lines 253 and 471, contradicting CodeRabbit's initial assessment that it was missing. This demonstrates the importance of thorough verification before flagging issues with parameter definitions in Tekton pipeline configurations.
Applied to files:
.tekton/odh-workbench-jupyter-minimal-cpu-py312-ubi9-pull-request.yaml
📚 Learning: 2025-07-24T14:05:28.815Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1497
File: .tekton/odh-pipeline-runtime-minimal-cpu-py312-ubi9-pull-request.yaml:0-0
Timestamp: 2025-07-24T14:05:28.815Z
Learning: jiridanek confirmed that CodeRabbit's original analysis about missing additional-tags parameter in Tekton pipelines was practically correct. While builds can succeed without the parameter declaration due to Tekton's flexibility, having the default parameter declaration becomes valuable when removing explicit argument values, providing better maintainability and cleaner configuration management. Build success doesn't always indicate optimal implementation.
Applied to files:
.tekton/odh-workbench-jupyter-minimal-cpu-py312-ubi9-pull-request.yaml
📚 Learning: 2025-08-19T16:06:35.822Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#2004
File: .tekton/odh-pipeline-runtime-pytorch-rocm-py312-ubi9-push.yaml:37-38
Timestamp: 2025-08-19T16:06:35.822Z
Learning: jiridanek corrected CodeRabbit's parameter analysis error for Tekton PipelineRun in opendatahub-io/notebooks repository. The git-url parameter was correctly defined in the PipelineRun at line 53, demonstrating the importance of careful verification before flagging issues with parameter definitions in Tekton pipeline configurations.
Applied to files:
.tekton/odh-workbench-jupyter-minimal-cpu-py312-ubi9-pull-request.yaml
📚 Learning: 2025-07-24T13:37:21.946Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1497
File: .tekton/odh-pipeline-runtime-minimal-cpu-py312-ubi9-pull-request.yaml:68-121
Timestamp: 2025-07-24T13:37:21.946Z
Learning: In Tekton pipelines, tasks can directly reference parameters defined in top-level `spec.params` without requiring redeclaration in `pipelineSpec.params`. For example, when `spec.params` defines `additional-tags`, a task can use `$(params.additional-tags[*])` even if `pipelineSpec.params` doesn't redeclare this parameter. This means parameter validation occurs at the top level, not requiring duplication in the embedded pipeline specification.
Applied to files:
.tekton/odh-workbench-jupyter-minimal-cpu-py312-ubi9-pull-request.yaml
📚 Learning: 2025-09-12T09:51:55.421Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-09-12T09:51:55.421Z
Learning: During PR #2103 review investigation, found that runtimes/rocm-tensorflow/ubi9-python-3.12/ directory DOES exist in the repository, correcting initial assessment that all TensorFlow ROCm Python 3.12 entries in params-latest.env were orphaned. The pipeline runtime component appears to have proper source directory support.
Applied to files:
.tekton/odh-pipeline-runtime-tensorflow-rocm-py312-ubi9-pull-request.yaml
📚 Learning: 2025-08-01T17:35:29.175Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-08-01T17:35:29.175Z
Learning: jiridanek requested GitHub issue creation for adding pytorch+llmcompressor images to Makefile build targets during PR #1519 review. Issue #1598 was successfully created with comprehensive problem description covering missing build targets for both jupyter workbench and runtime images, detailed solution with specific Makefile code examples following established patterns, thorough acceptance criteria covering individual targets, BASE_DIRS variable inclusion, and all-images target integration, implementation notes about handling '+' characters in paths, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (30)
- GitHub Check: build (rstudio-rhel9-python-3.11, 3.11, linux/amd64, true) / build
- GitHub Check: build (cuda-rstudio-rhel9-python-3.11, 3.11, linux/amd64, true) / build
- GitHub Check: build (runtime-cuda-tensorflow-ubi9-python-3.12, 3.12, linux/arm64, false) / build
- GitHub Check: build (runtime-datascience-ubi9-python-3.12, 3.12, linux/amd64, false) / build
- GitHub Check: build (jupyter-datascience-ubi9-python-3.12, 3.12, linux/amd64, false) / build
- GitHub Check: build (cuda-rstudio-c9s-python-3.11, 3.11, linux/amd64, false) / build
- GitHub Check: build (jupyter-minimal-ubi9-python-3.12, 3.12, linux/s390x, false) / build
- GitHub Check: build (rocm-runtime-pytorch-ubi9-python-3.12, 3.12, linux/amd64, false) / build
- GitHub Check: build (jupyter-minimal-ubi9-python-3.12, 3.12, linux/amd64, false) / build
- GitHub Check: build (runtime-minimal-ubi9-python-3.12, 3.12, linux/amd64, false) / build
- GitHub Check: build (codeserver-ubi9-python-3.12, 3.12, linux/arm64, false) / build
- GitHub Check: build (cuda-jupyter-minimal-ubi9-python-3.12, 3.12, linux/arm64, false) / build
- GitHub Check: build (runtime-cuda-pytorch-ubi9-python-3.12, 3.12, linux/amd64, false) / build
- GitHub Check: build (rocm-jupyter-tensorflow-ubi9-python-3.12, 3.12, linux/amd64, false) / build
- GitHub Check: build (rstudio-c9s-python-3.11, 3.11, linux/amd64, false) / build
- GitHub Check: build (cuda-jupyter-tensorflow-ubi9-python-3.12, 3.12, linux/arm64, false) / build
- GitHub Check: build (jupyter-minimal-ubi9-python-3.12, 3.12, linux/ppc64le, false) / build
- GitHub Check: build (runtime-cuda-tensorflow-ubi9-python-3.12, 3.12, linux/amd64, false) / build
- GitHub Check: build (runtime-minimal-ubi9-python-3.12, 3.12, linux/s390x, false) / build
- GitHub Check: build (cuda-jupyter-tensorflow-ubi9-python-3.12, 3.12, linux/amd64, false) / build
- GitHub Check: Red Hat Konflux / odh-pipeline-runtime-pytorch-rocm-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-base-image-cuda-py312-c9s-on-pull-request
- GitHub Check: Red Hat Konflux / odh-workbench-jupyter-minimal-cuda-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-workbench-jupyter-trustyai-cpu-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-workbench-jupyter-pytorch-cuda-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-pipeline-runtime-tensorflow-rocm-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-pipeline-runtime-pytorch-cuda-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-pipeline-runtime-datascience-cpu-py312-ubi9-on-pull-request
- GitHub Check: code-static-analysis
🔇 Additional comments (2)
.tekton/multiarch-push-pipeline.yaml (2)
282-284
: Threading looks right; ensure task param name matchesPassing $(params.image-labels[*]) down is correct. Double‑check the task’s expected param name to avoid a no‑op.
If needed, I can adjust the wiring once you confirm the task’s interface.
114-117
: Approve — param declared; confirm remote bundle maps IMAGE_LABELS to buildah labelsimage-labels is declared with default [] and is forwarded as IMAGE_LABELS into buildah-remote-oci-ta (see .tekton/multiarch-push-pipeline.yaml: 114–117, 281–284, 290–294). The buildah task is resolved from an external bundle (konflux-ci/task-buildah-remote-oci-ta) and its implementation is not in this repo; confirm the bundle accepts IMAGE_LABELS and converts it into buildah --label flags. If the bundle expects a different name (e.g., LABELS), align the pipeline mapping or task param.
.tekton/odh-pipeline-runtime-tensorflow-rocm-py312-ubi9-pull-request.yaml
Show resolved
Hide resolved
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
Show resolved
Hide resolved
e1ed967
to
379f8e6
Compare
379f8e6
to
219796f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
♻️ Duplicate comments (2)
.tekton/odh-base-image-cuda-py311-c9s-pull-request.yaml (1)
44-46
: Param added; depends on Pipeline support.Same as other PR PipelineRuns: ensure multiarch-pull-request-pipeline declares params.image-labels and uses it, otherwise this will fail validation.
.tekton/odh-workbench-jupyter-minimal-rocm-py312-ubi9-pull-request.yaml (1)
45-47
: Param added; depends on Pipeline support.Same dependency: multiarch-pull-request-pipeline must declare params.image-labels (array) and consume it.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (30)
.tekton/multiarch-pull-request-pipeline.yaml
(2 hunks).tekton/multiarch-push-pipeline.yaml
(2 hunks).tekton/odh-base-image-cuda-py311-c9s-pull-request.yaml
(1 hunks).tekton/odh-base-image-cuda-py311-c9s-push.yaml
(1 hunks).tekton/odh-base-image-cuda-py312-c9s-pull-request.yaml
(1 hunks).tekton/odh-base-image-cuda-py312-c9s-push.yaml
(1 hunks).tekton/odh-base-image-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-base-image-cuda-py312-ubi9-push.yaml
(1 hunks).tekton/odh-base-image-rocm-py312-c9s-pull-request.yaml
(1 hunks).tekton/odh-base-image-rocm-py312-c9s-push.yaml
(1 hunks).tekton/odh-base-image-rocm-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-base-image-rocm-py312-ubi9-push.yaml
(1 hunks).tekton/odh-pipeline-runtime-datascience-cpu-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-pipeline-runtime-minimal-cpu-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-pipeline-runtime-pytorch-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-pipeline-runtime-pytorch-llmcompressor-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-pipeline-runtime-pytorch-rocm-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-pipeline-runtime-tensorflow-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-pipeline-runtime-tensorflow-rocm-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-codeserver-datascience-cpu-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-datascience-cpu-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-minimal-cpu-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-minimal-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-minimal-rocm-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-pytorch-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-pytorch-llmcompressor-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-pytorch-rocm-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-tensorflow-rocm-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-trustyai-cpu-py312-ubi9-pull-request.yaml
(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (25)
- .tekton/odh-workbench-codeserver-datascience-cpu-py312-ubi9-pull-request.yaml
- .tekton/odh-base-image-cuda-py312-ubi9-pull-request.yaml
- .tekton/odh-base-image-rocm-py312-ubi9-pull-request.yaml
- .tekton/odh-base-image-rocm-py312-ubi9-push.yaml
- .tekton/odh-base-image-cuda-py312-c9s-pull-request.yaml
- .tekton/odh-workbench-jupyter-pytorch-rocm-py312-ubi9-pull-request.yaml
- .tekton/odh-base-image-rocm-py312-c9s-pull-request.yaml
- .tekton/odh-workbench-jupyter-pytorch-cuda-py312-ubi9-pull-request.yaml
- .tekton/odh-pipeline-runtime-minimal-cpu-py312-ubi9-pull-request.yaml
- .tekton/odh-pipeline-runtime-tensorflow-rocm-py312-ubi9-pull-request.yaml
- .tekton/odh-workbench-jupyter-datascience-cpu-py312-ubi9-pull-request.yaml
- .tekton/odh-workbench-jupyter-trustyai-cpu-py312-ubi9-pull-request.yaml
- .tekton/odh-base-image-cuda-py312-c9s-push.yaml
- .tekton/odh-pipeline-runtime-tensorflow-cuda-py312-ubi9-pull-request.yaml
- .tekton/odh-workbench-jupyter-pytorch-llmcompressor-cuda-py312-ubi9-pull-request.yaml
- .tekton/odh-pipeline-runtime-pytorch-llmcompressor-cuda-py312-ubi9-pull-request.yaml
- .tekton/odh-workbench-jupyter-minimal-cuda-py312-ubi9-pull-request.yaml
- .tekton/odh-base-image-rocm-py312-c9s-push.yaml
- .tekton/multiarch-push-pipeline.yaml
- .tekton/odh-pipeline-runtime-datascience-cpu-py312-ubi9-pull-request.yaml
- .tekton/odh-workbench-jupyter-tensorflow-rocm-py312-ubi9-pull-request.yaml
- .tekton/odh-workbench-jupyter-minimal-cpu-py312-ubi9-pull-request.yaml
- .tekton/odh-pipeline-runtime-pytorch-rocm-py312-ubi9-pull-request.yaml
- .tekton/odh-base-image-cuda-py312-ubi9-push.yaml
- .tekton/odh-pipeline-runtime-pytorch-cuda-py312-ubi9-pull-request.yaml
🧰 Additional context used
🧠 Learnings (18)
📓 Common learnings
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-08-05T17:24:08.616Z
Learning: jiridanek requested PR review for #1521 covering s390x architecture support improvements, demonstrating continued focus on systematic multi-architecture compatibility enhancements in the opendatahub-io/notebooks repository through clean implementation with centralized configuration, proper CI integration, and architecture-aware testing patterns.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1909
File: rstudio/c9s-python-3.11/Dockerfile.cpu:15-18
Timestamp: 2025-08-12T08:36:45.281Z
Learning: jiridanek requested GitHub issue creation for adding ticket references to upgrade block markers during PR #1909 review, specifically noting that scripts/dockerfile_fragments.py script can be used to update code within labeled begin/end blocks and care must be taken not to break the script. Issue was created with comprehensive problem description covering traceability enhancement across 30+ Dockerfiles, critical automation compatibility warnings, multiple implementation options, detailed acceptance criteria including script testing requirements, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-08-01T14:46:03.215Z
Learning: jiridanek requested GitHub issue creation for two nitpicks during PR #1588 review: comment wording improvement in ROCm TensorFlow Dockerfile and typo fix in Jupyter DataScience Dockerfile stage header. Issues #1589 and #1590 were successfully created with comprehensive problem descriptions, specific file locations and line numbers, clear before/after solutions, detailed acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: atheo89
PR: opendatahub-io/notebooks#1258
File: codeserver/ubi9-python-3.11/Dockerfile.cpu:32-32
Timestamp: 2025-07-07T11:08:48.524Z
Learning: atheo89 requested GitHub issue creation for multi-architecture Dockerfile improvements during PR #1258 review, specifically for enhancing structural consistency across Docker stages, replacing $(uname -m) with ${TARGETARCH} for cross-architecture builds, and adding OCI-compliant metadata labels. Issue #1332 was created with comprehensive problem description, phased implementation approach, detailed acceptance criteria, implementation guidance with code examples, and proper context linking, continuing the established pattern of systematic code quality improvements.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#2215
File: runtimes/datascience/ubi9-python-3.12/Dockerfile.cpu:0-0
Timestamp: 2025-09-05T12:10:50.856Z
Learning: jiridanek requested GitHub issue creation for Dockerfile environment variable refactoring during PR #2215 review. Issue #2311 was created addressing build-only variables (OPENBLAS_VERSION, ONNX_VERSION, GRPC_PYTHON_BUILD_SYSTEM_OPENSSL) being unnecessarily written to /etc/profile.d/ppc64le.sh in runtimes/datascience/ubi9-python-3.12/Dockerfile.cpu, causing variable duplication across stages, unreliable sourcing in non-login build contexts, and violation of DRY principles. The issue includes comprehensive problem description covering affected lines 30-37, detailed impact analysis of build reliability and maintenance overhead, three solution options with centralized ARG/ENV approach as recommended, clear acceptance criteria for version centralization and build-only variable cleanup, and specific implementation guidance with code examples, assigned to jiridanek, continuing the established pattern of systematic infrastructure improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#2268
File: manifests/base/jupyter-tensorflow-notebook-imagestream.yaml:64-90
Timestamp: 2025-09-04T16:21:47.890Z
Learning: In opendatahub-io/notebooks, during release rollover PRs (e.g., 2025b onboarding in PR #2268), the process intentionally:
- Introduces new N images (often those previously staged under manifests/overlays/additional).
- Shifts the previous N images into the N-1 slots in manifests/base/*-imagestream.yaml.
- As a result, the N-1 blocks will show version increases compared to the old N-1, reflecting the prior N. This is not a violation of the N-1 freeze policy; the freeze applies after the shift (N-1 is then updated only for security).
Example: manifests/base/jupyter-tensorflow-notebook-imagestream.yaml — N: 2025.2 (py312, TF 2.19); N-1: 2025.1 (py311, TF 2.18) with corresponding py312/py311 placeholders.
📚 Learning: 2025-09-12T09:51:55.421Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-09-12T09:51:55.421Z
Learning: jiridanek identified orphaned TensorFlow ROCm Python 3.12 entries in manifests/base/params-latest.env during PR #2103 review. The params file references odh-workbench-jupyter-tensorflow-rocm-py312-ubi9 and odh-pipeline-runtime-tensorflow-rocm-py312-ubi9 images with 2025a-v1.35 tags, but the corresponding source directories (jupyter/rocm/tensorflow/ubi9-python-3.12/ and runtimes/rocm-tensorflow/ubi9-python-3.12/) don't exist in the repository, creating a broken build situation where Tekton pipelines exist but have no source to build from.
Applied to files:
.tekton/odh-base-image-cuda-py311-c9s-push.yaml
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-base-image-cuda-py311-c9s-pull-request.yaml
.tekton/odh-workbench-jupyter-minimal-rocm-py312-ubi9-pull-request.yaml
📚 Learning: 2025-09-04T09:22:45.818Z
Learnt from: atheo89
PR: opendatahub-io/notebooks#2271
File: .tekton/odh-workbench-rstudio-minimal-cpu-py311-c9s-push.yaml:32-33
Timestamp: 2025-09-04T09:22:45.818Z
Learning: atheo89 corrected CodeRabbit's analysis error regarding build-args-file parameter in singlearch-push-pipeline.yaml during PR #2271 review. The parameter was already properly declared at line 103 and consumed by tasks at lines 253 and 471, contradicting CodeRabbit's initial assessment that it was missing. This demonstrates the importance of thorough verification before flagging issues with parameter definitions in Tekton pipeline configurations.
Applied to files:
.tekton/odh-base-image-cuda-py311-c9s-push.yaml
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-base-image-cuda-py311-c9s-pull-request.yaml
.tekton/odh-workbench-jupyter-minimal-rocm-py312-ubi9-pull-request.yaml
📚 Learning: 2025-07-24T14:05:28.815Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1497
File: .tekton/odh-pipeline-runtime-minimal-cpu-py312-ubi9-pull-request.yaml:0-0
Timestamp: 2025-07-24T14:05:28.815Z
Learning: jiridanek confirmed that CodeRabbit's original analysis about missing additional-tags parameter in Tekton pipelines was practically correct. While builds can succeed without the parameter declaration due to Tekton's flexibility, having the default parameter declaration becomes valuable when removing explicit argument values, providing better maintainability and cleaner configuration management. Build success doesn't always indicate optimal implementation.
Applied to files:
.tekton/odh-base-image-cuda-py311-c9s-push.yaml
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-base-image-cuda-py311-c9s-pull-request.yaml
.tekton/odh-workbench-jupyter-minimal-rocm-py312-ubi9-pull-request.yaml
📚 Learning: 2025-08-19T15:47:12.801Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#2004
File: .tekton/odh-workbench-jupyter-minimal-rocm-py312-ubi9-push.yaml:49-50
Timestamp: 2025-08-19T15:47:12.801Z
Learning: The singlearch-push-pipeline in opendatahub-io/notebooks repository contains all standard build pipeline parameters including git-url, revision, output-image, dockerfile, path-context, and additional-tags, along with git-auth workspace and build-container task reference. Initial verification attempts may miss parameters if search patterns are too restrictive.
Applied to files:
.tekton/odh-base-image-cuda-py311-c9s-push.yaml
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-base-image-cuda-py311-c9s-pull-request.yaml
.tekton/multiarch-pull-request-pipeline.yaml
.tekton/odh-workbench-jupyter-minimal-rocm-py312-ubi9-pull-request.yaml
📚 Learning: 2025-07-24T13:37:21.946Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1497
File: .tekton/odh-pipeline-runtime-minimal-cpu-py312-ubi9-pull-request.yaml:68-121
Timestamp: 2025-07-24T13:37:21.946Z
Learning: In Tekton pipelines, tasks can directly reference parameters defined in top-level `spec.params` without requiring redeclaration in `pipelineSpec.params`. For example, when `spec.params` defines `additional-tags`, a task can use `$(params.additional-tags[*])` even if `pipelineSpec.params` doesn't redeclare this parameter. This means parameter validation occurs at the top level, not requiring duplication in the embedded pipeline specification.
Applied to files:
.tekton/odh-base-image-cuda-py311-c9s-push.yaml
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-minimal-rocm-py312-ubi9-pull-request.yaml
📚 Learning: 2025-07-11T11:15:25.572Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1379
File: .tekton/odh-workbench-jupyter-pytorch-cuda-py312-ubi9-push.yaml:40-44
Timestamp: 2025-07-11T11:15:25.572Z
Learning: jiridanek requested GitHub issue creation for critical Tekton array parameter syntax error during PR #1379 review, affecting all 32 pipeline files with additional-tags parameter. Issue #1382 was created with comprehensive problem description covering both Python 3.11 and 3.12 pipeline files (16 each), detailed root cause analysis of value: vs values: syntax error, critical impact assessment of complete pipeline execution failure, complete list of all affected files across workbench and runtime types, implementation commands with sed scripts, detailed acceptance criteria, implementation notes about systematic copy-paste error propagation, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
.tekton/odh-base-image-cuda-py311-c9s-push.yaml
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-base-image-cuda-py311-c9s-pull-request.yaml
.tekton/odh-workbench-jupyter-minimal-rocm-py312-ubi9-pull-request.yaml
📚 Learning: 2025-07-11T11:16:05.131Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-11T11:16:05.131Z
Learning: jiridanek requested GitHub issue creation for RStudio py311 Tekton push pipelines during PR #1379 review. Issue #1384 was successfully created covering two RStudio variants (CPU and CUDA) found in manifests/base/params-latest.env, with comprehensive problem description, implementation requirements following the same pattern as other workbench pipelines, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-base-image-cuda-py311-c9s-pull-request.yaml
.tekton/odh-workbench-jupyter-minimal-rocm-py312-ubi9-pull-request.yaml
📚 Learning: 2025-07-08T19:09:48.746Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1306
File: jupyter/trustyai/ubi9-python-3.12/kustomize/base/kustomization.yaml:8-12
Timestamp: 2025-07-08T19:09:48.746Z
Learning: jiridanek requested GitHub issue creation for misleading CUDA prefix in TrustyAI image tags during PR #1306 review, affecting both Python 3.11 and 3.12 versions. Issue #1338 was created with comprehensive problem description covering both affected images, repository pattern analysis comparing correct vs incorrect naming conventions, clear solution with code examples, detailed acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
📚 Learning: 2025-08-01T17:35:29.175Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-08-01T17:35:29.175Z
Learning: jiridanek requested GitHub issue creation for adding pytorch+llmcompressor images to Makefile build targets during PR #1519 review. Issue #1598 was successfully created with comprehensive problem description covering missing build targets for both jupyter workbench and runtime images, detailed solution with specific Makefile code examples following established patterns, thorough acceptance criteria covering individual targets, BASE_DIRS variable inclusion, and all-images target integration, implementation notes about handling '+' characters in paths, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
📚 Learning: 2025-07-11T11:16:05.131Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-11T11:16:05.131Z
Learning: jiridanek requested GitHub issue creation for adding RStudio py311 Tekton push pipelines during PR #1379 review, referencing existing registry entries in manifests/base/params-latest.env but missing corresponding .tekton pipeline files. A comprehensive issue was created with detailed problem description, implementation requirements following the same pattern as other workbench pipelines, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-base-image-cuda-py311-c9s-pull-request.yaml
📚 Learning: 2025-08-19T15:49:45.132Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#2004
File: .tekton/odh-workbench-jupyter-minimal-cuda-py311-ubi9-push.yaml:35-36
Timestamp: 2025-08-19T15:49:45.132Z
Learning: jiridanek requested GitHub issue creation for two PipelineRef compatibility problems during PR #2004 review: missing additional-tags parameter in singlearch-push-pipeline and missing netrc workspace binding in PipelineRuns. Issues were successfully created with comprehensive problem descriptions covering technical details, impact analysis on multiple affected files, clear solutions with code examples, detailed acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-base-image-cuda-py311-c9s-pull-request.yaml
📚 Learning: 2025-08-19T16:06:35.822Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#2004
File: .tekton/odh-pipeline-runtime-pytorch-rocm-py312-ubi9-push.yaml:37-38
Timestamp: 2025-08-19T16:06:35.822Z
Learning: jiridanek corrected CodeRabbit's parameter analysis error for Tekton PipelineRun in opendatahub-io/notebooks repository. The git-url parameter was correctly defined in the PipelineRun at line 53, demonstrating the importance of careful verification before flagging issues with parameter definitions in Tekton pipeline configurations.
Applied to files:
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-base-image-cuda-py311-c9s-pull-request.yaml
📚 Learning: 2025-07-09T15:10:16.532Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1365
File: .tekton/odh-workbench-jupyter-pytorch-rocm-py311-ubi9-push.yaml:9-9
Timestamp: 2025-07-09T15:10:16.532Z
Learning: jiridanek requested GitHub issue creation for YAML syntax error in Tekton PipelineRun during PR #1365 review. Issue #1371 was successfully created with comprehensive problem description covering trailing backslash causing YAML parser failure, technical details with specific error messages, impact analysis of pipeline execution breakdown, clear solution with code examples, detailed acceptance criteria, and proper notification to riprasad about automation failure, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
📚 Learning: 2025-09-04T09:23:45.728Z
Learnt from: atheo89
PR: opendatahub-io/notebooks#2271
File: .tekton/odh-workbench-jupyter-datascience-cpu-py312-ubi9-pull-request.yaml:43-44
Timestamp: 2025-09-04T09:23:45.728Z
Learning: atheo89 corrected CodeRabbit's analysis error regarding the build-args-file parameter in the generate_pull_request_pipelineruns.py script during PR #2271 review. The script was updated with dynamic parameter handling that automatically extracts parameters (including build-args-file) from push pipelines and includes them in generated PR pipelines, contradicting CodeRabbit's assessment that the parameter was missing from the generator. This demonstrates the importance of understanding the full context of script modifications before flagging parameter generation issues.
Applied to files:
.tekton/odh-base-image-cuda-py311-c9s-pull-request.yaml
📚 Learning: 2025-07-09T12:29:56.162Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1320
File: jupyter/pytorch/ubi9-python-3.12/Dockerfile.cuda:42-52
Timestamp: 2025-07-09T12:29:56.162Z
Learning: jiridanek requested GitHub issue creation for OpenShift client architecture mapping problem affecting 29 Dockerfiles during PR #1320 review. Issue was created with comprehensive analysis covering all affected files using $(uname -m) returning 'aarch64' but OpenShift mirror expecting 'arm64', systematic solution using BuildKit TARGETARCH mapping with proper amd64→x86_64 and arm64→arm64 conversion, detailed acceptance criteria, and implementation guidance, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
.tekton/odh-base-image-cuda-py311-c9s-pull-request.yaml
📚 Learning: 2025-08-01T14:46:03.215Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-08-01T14:46:03.215Z
Learning: jiridanek requested GitHub issue creation for two nitpicks during PR #1588 review: comment wording improvement in ROCm TensorFlow Dockerfile and typo fix in Jupyter DataScience Dockerfile stage header. Issues #1589 and #1590 were successfully created with comprehensive problem descriptions, specific file locations and line numbers, clear before/after solutions, detailed acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
.tekton/odh-base-image-cuda-py311-c9s-pull-request.yaml
📚 Learning: 2025-07-07T11:08:48.524Z
Learnt from: atheo89
PR: opendatahub-io/notebooks#1258
File: codeserver/ubi9-python-3.11/Dockerfile.cpu:32-32
Timestamp: 2025-07-07T11:08:48.524Z
Learning: atheo89 requested GitHub issue creation for multi-architecture Dockerfile improvements during PR #1258 review, specifically for enhancing structural consistency across Docker stages, replacing $(uname -m) with ${TARGETARCH} for cross-architecture builds, and adding OCI-compliant metadata labels. Issue #1332 was created with comprehensive problem description, phased implementation approach, detailed acceptance criteria, implementation guidance with code examples, and proper context linking, continuing the established pattern of systematic code quality improvements.
Applied to files:
.tekton/multiarch-pull-request-pipeline.yaml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: Generate job matrix
- GitHub Check: build (cuda-rstudio-rhel9-python-3.11, 3.11, linux/amd64, true) / build
- GitHub Check: build (rstudio-rhel9-python-3.11, 3.11, linux/amd64, true) / build
🔇 Additional comments (3)
.tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml (1)
45-47
: Param is fine here; ensure the referenced Pipeline declares/consumes it.This PipelineRun passes image-labels, but the referenced multiarch-pull-request-pipeline must expose a ParamSpec named image-labels (type: array) and pass it to the build task, or the run will be rejected.
.tekton/odh-base-image-cuda-py311-c9s-push.yaml (1)
33-35
: Push PR: confirm multiarch-push-pipeline wiring for image-labels.Good addition. Verify multiarch-push-pipeline has params.image-labels (array, default: []) and forwards it to the build task (e.g., IMAGE_LABELS) so labels are applied.
.tekton/multiarch-pull-request-pipeline.yaml (1)
226-228
: Build task consumption looks right; will work once ParamSpec exists.IMAGE_LABELS mapping with $(params.image-labels[*]) is correct. After adding the ParamSpec, this will apply labels per platform.
219796f
to
5ecf512
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (3)
.tekton/odh-workbench-jupyter-minimal-cuda-py312-ubi9-pull-request.yaml (1)
45-47
: Avoid hardcoding release=2025b in every PipelineRun.Prefer a single source of truth (e.g., a central var in the generator or a defaulted pipeline param). This reduces drift during future rollovers (2025c, etc.).
.tekton/odh-base-image-cuda-py311-c9s-push.yaml (2)
33-35
: Optional: add standard OCI version label alongside release.This improves interoperability with tooling that reads org.opencontainers.image.version.
Apply:
- name: image-labels value: - - release=2025b + - release=2025b + - org.opencontainers.image.version=2025b
33-35
: PR description/title mismatch with implementation approach.Change is via pipeline-provided image label, not a Dockerfile LABEL edit. Please adjust PR title/body for accuracy.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (30)
.tekton/multiarch-pull-request-pipeline.yaml
(2 hunks).tekton/multiarch-push-pipeline.yaml
(2 hunks).tekton/odh-base-image-cuda-py311-c9s-pull-request.yaml
(1 hunks).tekton/odh-base-image-cuda-py311-c9s-push.yaml
(1 hunks).tekton/odh-base-image-cuda-py312-c9s-pull-request.yaml
(1 hunks).tekton/odh-base-image-cuda-py312-c9s-push.yaml
(1 hunks).tekton/odh-base-image-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-base-image-cuda-py312-ubi9-push.yaml
(1 hunks).tekton/odh-base-image-rocm-py312-c9s-pull-request.yaml
(1 hunks).tekton/odh-base-image-rocm-py312-c9s-push.yaml
(1 hunks).tekton/odh-base-image-rocm-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-base-image-rocm-py312-ubi9-push.yaml
(1 hunks).tekton/odh-pipeline-runtime-datascience-cpu-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-pipeline-runtime-minimal-cpu-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-pipeline-runtime-pytorch-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-pipeline-runtime-pytorch-llmcompressor-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-pipeline-runtime-pytorch-rocm-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-pipeline-runtime-tensorflow-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-pipeline-runtime-tensorflow-rocm-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-codeserver-datascience-cpu-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-datascience-cpu-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-minimal-cpu-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-minimal-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-minimal-rocm-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-pytorch-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-pytorch-llmcompressor-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-pytorch-rocm-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-tensorflow-rocm-py312-ubi9-pull-request.yaml
(1 hunks).tekton/odh-workbench-jupyter-trustyai-cpu-py312-ubi9-pull-request.yaml
(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- .tekton/odh-workbench-jupyter-datascience-cpu-py312-ubi9-pull-request.yaml
🚧 Files skipped from review as they are similar to previous changes (26)
- .tekton/odh-pipeline-runtime-pytorch-llmcompressor-cuda-py312-ubi9-pull-request.yaml
- .tekton/odh-pipeline-runtime-tensorflow-rocm-py312-ubi9-pull-request.yaml
- .tekton/odh-base-image-cuda-py312-c9s-pull-request.yaml
- .tekton/odh-base-image-cuda-py312-ubi9-pull-request.yaml
- .tekton/odh-workbench-jupyter-minimal-rocm-py312-ubi9-pull-request.yaml
- .tekton/odh-workbench-jupyter-pytorch-cuda-py312-ubi9-pull-request.yaml
- .tekton/odh-base-image-rocm-py312-ubi9-push.yaml
- .tekton/multiarch-push-pipeline.yaml
- .tekton/odh-workbench-jupyter-tensorflow-rocm-py312-ubi9-pull-request.yaml
- .tekton/odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-pull-request.yaml
- .tekton/odh-pipeline-runtime-pytorch-cuda-py312-ubi9-pull-request.yaml
- .tekton/odh-pipeline-runtime-minimal-cpu-py312-ubi9-pull-request.yaml
- .tekton/odh-base-image-rocm-py312-c9s-push.yaml
- .tekton/odh-pipeline-runtime-pytorch-rocm-py312-ubi9-pull-request.yaml
- .tekton/odh-base-image-cuda-py312-ubi9-push.yaml
- .tekton/odh-workbench-jupyter-minimal-cpu-py312-ubi9-pull-request.yaml
- .tekton/multiarch-pull-request-pipeline.yaml
- .tekton/odh-pipeline-runtime-tensorflow-cuda-py312-ubi9-pull-request.yaml
- .tekton/odh-workbench-jupyter-pytorch-llmcompressor-cuda-py312-ubi9-pull-request.yaml
- .tekton/odh-workbench-codeserver-datascience-cpu-py312-ubi9-pull-request.yaml
- .tekton/odh-base-image-rocm-py312-ubi9-pull-request.yaml
- .tekton/odh-base-image-cuda-py312-c9s-push.yaml
- .tekton/odh-workbench-jupyter-trustyai-cpu-py312-ubi9-pull-request.yaml
- .tekton/odh-base-image-rocm-py312-c9s-pull-request.yaml
- .tekton/odh-base-image-cuda-py311-c9s-pull-request.yaml
- .tekton/odh-pipeline-runtime-datascience-cpu-py312-ubi9-pull-request.yaml
🧰 Additional context used
🧠 Learnings (10)
📓 Common learnings
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-08-05T17:24:08.616Z
Learning: jiridanek requested PR review for #1521 covering s390x architecture support improvements, demonstrating continued focus on systematic multi-architecture compatibility enhancements in the opendatahub-io/notebooks repository through clean implementation with centralized configuration, proper CI integration, and architecture-aware testing patterns.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1909
File: rstudio/c9s-python-3.11/Dockerfile.cpu:15-18
Timestamp: 2025-08-12T08:36:45.281Z
Learning: jiridanek requested GitHub issue creation for adding ticket references to upgrade block markers during PR #1909 review, specifically noting that scripts/dockerfile_fragments.py script can be used to update code within labeled begin/end blocks and care must be taken not to break the script. Issue was created with comprehensive problem description covering traceability enhancement across 30+ Dockerfiles, critical automation compatibility warnings, multiple implementation options, detailed acceptance criteria including script testing requirements, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-08-01T14:46:03.215Z
Learning: jiridanek requested GitHub issue creation for two nitpicks during PR #1588 review: comment wording improvement in ROCm TensorFlow Dockerfile and typo fix in Jupyter DataScience Dockerfile stage header. Issues #1589 and #1590 were successfully created with comprehensive problem descriptions, specific file locations and line numbers, clear before/after solutions, detailed acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Learnt from: atheo89
PR: opendatahub-io/notebooks#1258
File: codeserver/ubi9-python-3.11/Dockerfile.cpu:32-32
Timestamp: 2025-07-07T11:08:48.524Z
Learning: atheo89 requested GitHub issue creation for multi-architecture Dockerfile improvements during PR #1258 review, specifically for enhancing structural consistency across Docker stages, replacing $(uname -m) with ${TARGETARCH} for cross-architecture builds, and adding OCI-compliant metadata labels. Issue #1332 was created with comprehensive problem description, phased implementation approach, detailed acceptance criteria, implementation guidance with code examples, and proper context linking, continuing the established pattern of systematic code quality improvements.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#2215
File: runtimes/datascience/ubi9-python-3.12/Dockerfile.cpu:0-0
Timestamp: 2025-09-05T12:10:50.856Z
Learning: jiridanek requested GitHub issue creation for Dockerfile environment variable refactoring during PR #2215 review. Issue #2311 was created addressing build-only variables (OPENBLAS_VERSION, ONNX_VERSION, GRPC_PYTHON_BUILD_SYSTEM_OPENSSL) being unnecessarily written to /etc/profile.d/ppc64le.sh in runtimes/datascience/ubi9-python-3.12/Dockerfile.cpu, causing variable duplication across stages, unreliable sourcing in non-login build contexts, and violation of DRY principles. The issue includes comprehensive problem description covering affected lines 30-37, detailed impact analysis of build reliability and maintenance overhead, three solution options with centralized ARG/ENV approach as recommended, clear acceptance criteria for version centralization and build-only variable cleanup, and specific implementation guidance with code examples, assigned to jiridanek, continuing the established pattern of systematic infrastructure improvements through detailed issue tracking.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-09-12T09:51:55.421Z
Learning: jiridanek identified orphaned TensorFlow ROCm Python 3.12 entries in manifests/base/params-latest.env during PR #2103 review. The params file references odh-workbench-jupyter-tensorflow-rocm-py312-ubi9 and odh-pipeline-runtime-tensorflow-rocm-py312-ubi9 images with 2025a-v1.35 tags, but the corresponding source directories (jupyter/rocm/tensorflow/ubi9-python-3.12/ and runtimes/rocm-tensorflow/ubi9-python-3.12/) don't exist in the repository, creating a broken build situation where Tekton pipelines exist but have no source to build from.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1154
File: manifests/base/jupyter-tensorflow-notebook-imagestream.yaml:45-45
Timestamp: 2025-06-13T08:34:01.300Z
Learning: When updating dependency versions in `manifests/base/*-imagestream.yaml`, the project convention is to modify only the newest tag (e.g., "2025.1") and intentionally leave earlier tags (e.g., "2024.2") unchanged.
Learnt from: jiridanek
PR: opendatahub-io/notebooks#2268
File: manifests/base/jupyter-tensorflow-notebook-imagestream.yaml:64-90
Timestamp: 2025-09-04T16:21:47.890Z
Learning: In opendatahub-io/notebooks, during release rollover PRs (e.g., 2025b onboarding in PR #2268), the process intentionally:
- Introduces new N images (often those previously staged under manifests/overlays/additional).
- Shifts the previous N images into the N-1 slots in manifests/base/*-imagestream.yaml.
- As a result, the N-1 blocks will show version increases compared to the old N-1, reflecting the prior N. This is not a violation of the N-1 freeze policy; the freeze applies after the shift (N-1 is then updated only for security).
Example: manifests/base/jupyter-tensorflow-notebook-imagestream.yaml — N: 2025.2 (py312, TF 2.19); N-1: 2025.1 (py311, TF 2.18) with corresponding py312/py311 placeholders.
📚 Learning: 2025-09-12T09:51:55.421Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-09-12T09:51:55.421Z
Learning: jiridanek identified orphaned TensorFlow ROCm Python 3.12 entries in manifests/base/params-latest.env during PR #2103 review. The params file references odh-workbench-jupyter-tensorflow-rocm-py312-ubi9 and odh-pipeline-runtime-tensorflow-rocm-py312-ubi9 images with 2025a-v1.35 tags, but the corresponding source directories (jupyter/rocm/tensorflow/ubi9-python-3.12/ and runtimes/rocm-tensorflow/ubi9-python-3.12/) don't exist in the repository, creating a broken build situation where Tekton pipelines exist but have no source to build from.
Applied to files:
.tekton/odh-base-image-cuda-py311-c9s-push.yaml
.tekton/odh-workbench-jupyter-minimal-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-pytorch-rocm-py312-ubi9-pull-request.yaml
📚 Learning: 2025-09-04T09:22:45.818Z
Learnt from: atheo89
PR: opendatahub-io/notebooks#2271
File: .tekton/odh-workbench-rstudio-minimal-cpu-py311-c9s-push.yaml:32-33
Timestamp: 2025-09-04T09:22:45.818Z
Learning: atheo89 corrected CodeRabbit's analysis error regarding build-args-file parameter in singlearch-push-pipeline.yaml during PR #2271 review. The parameter was already properly declared at line 103 and consumed by tasks at lines 253 and 471, contradicting CodeRabbit's initial assessment that it was missing. This demonstrates the importance of thorough verification before flagging issues with parameter definitions in Tekton pipeline configurations.
Applied to files:
.tekton/odh-base-image-cuda-py311-c9s-push.yaml
📚 Learning: 2025-07-24T14:05:28.815Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1497
File: .tekton/odh-pipeline-runtime-minimal-cpu-py312-ubi9-pull-request.yaml:0-0
Timestamp: 2025-07-24T14:05:28.815Z
Learning: jiridanek confirmed that CodeRabbit's original analysis about missing additional-tags parameter in Tekton pipelines was practically correct. While builds can succeed without the parameter declaration due to Tekton's flexibility, having the default parameter declaration becomes valuable when removing explicit argument values, providing better maintainability and cleaner configuration management. Build success doesn't always indicate optimal implementation.
Applied to files:
.tekton/odh-base-image-cuda-py311-c9s-push.yaml
📚 Learning: 2025-08-19T15:47:12.801Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#2004
File: .tekton/odh-workbench-jupyter-minimal-rocm-py312-ubi9-push.yaml:49-50
Timestamp: 2025-08-19T15:47:12.801Z
Learning: The singlearch-push-pipeline in opendatahub-io/notebooks repository contains all standard build pipeline parameters including git-url, revision, output-image, dockerfile, path-context, and additional-tags, along with git-auth workspace and build-container task reference. Initial verification attempts may miss parameters if search patterns are too restrictive.
Applied to files:
.tekton/odh-base-image-cuda-py311-c9s-push.yaml
.tekton/odh-workbench-jupyter-minimal-cuda-py312-ubi9-pull-request.yaml
.tekton/odh-workbench-jupyter-pytorch-rocm-py312-ubi9-pull-request.yaml
📚 Learning: 2025-07-24T13:37:21.946Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1497
File: .tekton/odh-pipeline-runtime-minimal-cpu-py312-ubi9-pull-request.yaml:68-121
Timestamp: 2025-07-24T13:37:21.946Z
Learning: In Tekton pipelines, tasks can directly reference parameters defined in top-level `spec.params` without requiring redeclaration in `pipelineSpec.params`. For example, when `spec.params` defines `additional-tags`, a task can use `$(params.additional-tags[*])` even if `pipelineSpec.params` doesn't redeclare this parameter. This means parameter validation occurs at the top level, not requiring duplication in the embedded pipeline specification.
Applied to files:
.tekton/odh-base-image-cuda-py311-c9s-push.yaml
📚 Learning: 2025-07-11T11:15:25.572Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#1379
File: .tekton/odh-workbench-jupyter-pytorch-cuda-py312-ubi9-push.yaml:40-44
Timestamp: 2025-07-11T11:15:25.572Z
Learning: jiridanek requested GitHub issue creation for critical Tekton array parameter syntax error during PR #1379 review, affecting all 32 pipeline files with additional-tags parameter. Issue #1382 was created with comprehensive problem description covering both Python 3.11 and 3.12 pipeline files (16 each), detailed root cause analysis of value: vs values: syntax error, critical impact assessment of complete pipeline execution failure, complete list of all affected files across workbench and runtime types, implementation commands with sed scripts, detailed acceptance criteria, implementation notes about systematic copy-paste error propagation, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
.tekton/odh-base-image-cuda-py311-c9s-push.yaml
.tekton/odh-workbench-jupyter-pytorch-rocm-py312-ubi9-pull-request.yaml
📚 Learning: 2025-09-04T16:21:47.890Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#2268
File: manifests/base/jupyter-tensorflow-notebook-imagestream.yaml:64-90
Timestamp: 2025-09-04T16:21:47.890Z
Learning: In opendatahub-io/notebooks, during release rollover PRs (e.g., 2025b onboarding in PR #2268), the process intentionally:
- Introduces new N images (often those previously staged under manifests/overlays/additional).
- Shifts the previous N images into the N-1 slots in manifests/base/*-imagestream.yaml.
- As a result, the N-1 blocks will show version increases compared to the old N-1, reflecting the prior N. This is not a violation of the N-1 freeze policy; the freeze applies after the shift (N-1 is then updated only for security).
Example: manifests/base/jupyter-tensorflow-notebook-imagestream.yaml — N: 2025.2 (py312, TF 2.19); N-1: 2025.1 (py311, TF 2.18) with corresponding py312/py311 placeholders.
Applied to files:
.tekton/odh-workbench-jupyter-minimal-cuda-py312-ubi9-pull-request.yaml
📚 Learning: 2025-07-11T11:16:05.131Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-11T11:16:05.131Z
Learning: jiridanek requested GitHub issue creation for RStudio py311 Tekton push pipelines during PR #1379 review. Issue #1384 was successfully created covering two RStudio variants (CPU and CUDA) found in manifests/base/params-latest.env, with comprehensive problem description, implementation requirements following the same pattern as other workbench pipelines, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
.tekton/odh-workbench-jupyter-pytorch-rocm-py312-ubi9-pull-request.yaml
📚 Learning: 2025-07-11T11:16:05.131Z
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-07-11T11:16:05.131Z
Learning: jiridanek requested GitHub issue creation for adding RStudio py311 Tekton push pipelines during PR #1379 review, referencing existing registry entries in manifests/base/params-latest.env but missing corresponding .tekton pipeline files. A comprehensive issue was created with detailed problem description, implementation requirements following the same pattern as other workbench pipelines, clear acceptance criteria, and proper context linking, continuing the established pattern of systematic code quality improvements through detailed issue tracking.
Applied to files:
.tekton/odh-workbench-jupyter-pytorch-rocm-py312-ubi9-pull-request.yaml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (26)
- GitHub Check: build (cuda-rstudio-rhel9-python-3.11, 3.11, linux/amd64, true) / build
- GitHub Check: build (rstudio-rhel9-python-3.11, 3.11, linux/amd64, true) / build
- GitHub Check: Red Hat Konflux / odh-workbench-jupyter-pytorch-rocm-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-base-image-cuda-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-pipeline-runtime-datascience-cpu-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-base-image-cuda-py312-c9s-on-pull-request
- GitHub Check: Red Hat Konflux / odh-workbench-jupyter-datascience-cpu-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-workbench-codeserver-datascience-cpu-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-workbench-jupyter-pytorch-cuda-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-base-image-cuda-py311-c9s-on-pull-request
- GitHub Check: Red Hat Konflux / odh-pipeline-runtime-pytorch-llmcompressor-cuda-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-pipeline-runtime-minimal-cpu-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-workbench-jupyter-tensorflow-rocm-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-base-image-rocm-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-pipeline-runtime-pytorch-rocm-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-pipeline-runtime-tensorflow-cuda-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-workbench-jupyter-pytorch-llmcompressor-cuda-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-workbench-jupyter-minimal-rocm-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-pipeline-runtime-pytorch-cuda-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-workbench-jupyter-tensorflow-cuda-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-workbench-jupyter-minimal-cuda-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-pipeline-runtime-tensorflow-rocm-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-base-image-rocm-py312-c9s-on-pull-request
- GitHub Check: Red Hat Konflux / odh-workbench-jupyter-trustyai-cpu-py312-ubi9-on-pull-request
- GitHub Check: Red Hat Konflux / odh-workbench-jupyter-minimal-cpu-py312-ubi9-on-pull-request
- GitHub Check: code-static-analysis
🔇 Additional comments (3)
.tekton/odh-workbench-jupyter-pytorch-rocm-py312-ubi9-pull-request.yaml (1)
45-47
: LGTM — image-labels added; confirm pipeline consumer supports parameterrelease=2025b and image-labels are present consistently in .tekton pull-request YAMLs (e.g. .tekton/odh-workbench-jupyter-pytorch-rocm-py312-ubi9-pull-request.yaml, .tekton/odh-workbench-jupyter-tensorflow-rocm-py312-ubi9-pull-request.yaml, .tekton/odh-base-image-rocm-py312-ubi9-pull-request.yaml).
No "multiarch-pull-request-pipeline" definition was found in the repo search — verify the pipeline that consumes image-labels accepts this parameter..tekton/odh-workbench-jupyter-minimal-cuda-py312-ubi9-pull-request.yaml (1)
45-47
: image-labels wiring confirmed; keep build-args-filemultiarch-pull-request-pipeline.yaml declares params.image-labels and maps it to IMAGE_LABELS; PR PipelineRun files (including the one under review) set image-labels: - release=2025b. build-args-file is still declared and consumed by the multiarch/singlearch pipelines and appears in PR PipelineRuns — do not remove it.
.tekton/odh-base-image-cuda-py311-c9s-push.yaml (1)
33-35
: Approved — image-labels param declared and consumed.tekton/odh-base-image-cuda-py311-c9s-push.yaml adds image-labels: - release=2025b (lines 33–35). multiarch-push-pipeline.yaml declares image-labels as type: array (lines 115–118) and forwards it to task param IMAGE_LABELS via $(params.image-labels[*]) (lines 282–284).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: daniellutz The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
@dibryant: The following test failed, say
Full PR test history. Your PR dashboard. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
/hold Revision 5ecf512 was retested 3 times: holding |
Looks like the initial workaround for adding the release label during the image build is not behaving as expected. If you run:
you’ll see that the final image ends up with:
That value is coming from the base image or from the Konflux build process, and it overwrites the To make sure the correct release label is consistently applied (and not overridden), we should add it explicitly in the Dockerfile’s LABEL section instead of relying on pipeline injection. That way the label is baked into the image definition itself and survives the build process. |
|
Fixes for https://issues.redhat.com/browse/RHAIENG-394?filter=-1
Description
Add 2025b on the Dockefile Label section
How Has This Been Tested?
Merge criteria:
Summary by CodeRabbit
New Features
Chores