🐛 Replace generic-external-provider with language-specific providers#557
Conversation
The generic-external-provider was replaced with individual language-specific providers (python-external-provider, nodejs-external-provider) in analyzer-lsp PR #1142 (merged April 17, 2026). This change updates the operator to use the new provider images: - RELATED_IMAGE_PROVIDER_PYTHON -> python-external-provider - RELATED_IMAGE_PROVIDER_NODEJS -> nodejs-external-provider The old RELATED_IMAGE_PROVIDER_GENERIC env var is removed as the generic-external-provider image no longer exists. Fixes intermittent CI failures in konveyor/ci nightly runs where task pods would fail with 1/4 containers in Error state due to the missing/stale generic-external-provider image. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> Signed-off-by: Maayan Hadasi <mguetta@redhat.com>
📝 WalkthroughWalkthroughThe pull request replaces a single generic external provider image configuration with three language-specific provider images: Go, Python, and NodeJS. Changes span GitHub Actions workflows, Kubernetes manifests, Helm charts, and Ansible role configurations to wire the provider-specific image references throughout the infrastructure. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@bundle/manifests/konveyor-operator.clusterserviceversion.yaml`:
- Around line 555-558: The alm-examples entry still references the removed image
quay.io/konveyor/generic-external-provider:latest; update the alm-examples block
to use one of the valid provider images present in the manifest (for example
quay.io/konveyor/python-external-provider:latest or
quay.io/konveyor/nodejs-external-provider:latest) so the example matches the
actual container images; locate the alm-examples YAML section and replace the
generic-external-provider image string with the chosen valid image name(s) and
ensure the corresponding container name (e.g., provider-python or
provider-nodejs) matches.
In `@bundle/metadata/annotations.yaml`:
- Line 9: The bundle's annotations show
operators.operatorframework.io.metrics.builder: operator-sdk-v1.42.0 but the
Makefile defines OPERATOR_SDK_VERSION ?= v1.35.0; to fix, either (A) update the
Makefile's OPERATOR_SDK_VERSION to v1.42.0 so make bundle regenerates matching
artifacts, or (B) regenerate the bundle artifacts with v1.35.0 and revert
operators.operatorframework.io.metrics.builder back to operator-sdk-v1.35.0;
edit the Makefile variable OPERATOR_SDK_VERSION (or re-run bundle generation
with the intended operator-sdk) and commit the matching
bundle/metadata/annotations.yaml to keep versions in sync.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 574a9d9b-5820-4db0-91b7-54c0941dc922
📒 Files selected for processing (8)
.github/actions/make-bundle/action.yml.github/workflows/create-release.ymlbundle.Dockerfilebundle/manifests/konveyor-operator.clusterserviceversion.yamlbundle/metadata/annotations.yamlhelm/templates/deployment.yamlhelm/values.yamlroles/tackle/defaults/main.yml
jmle
left a comment
There was a problem hiding this comment.
I think we still need to add the golang provider right? It's still missing
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> Signed-off-by: Maayan Hadasi <mguetta@redhat.com>
6e9fcaa to
1dbbcc7
Compare
Add the Go provider alongside Python and Node.js providers that were introduced in analyzer-lsp PR #1142. This includes: - Add RELATED_IMAGE_PROVIDER_GO environment variable - Add provider_go configuration in Ansible defaults - Add Go extension in customresource-extension template - Fix Python extension selector to only handle Python (not Go) - Regenerate bundle with SDK v1.35.0 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> Signed-off-by: Maayan Hadasi <mguetta@redhat.com>
There was a problem hiding this comment.
🧹 Nitpick comments (1)
roles/tackle/templates/customresource-extension.yml.j2 (1)
112-112: Remove duplicateselectorkey in Python extension spec.
spec.selectoris set at Line 112 and again at Line 143. Keeping both is brittle (last key wins in many YAML parsers) and can cause silent drift.Suggested cleanup
@@ - selector: tag:Language=Python🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@roles/tackle/templates/customresource-extension.yml.j2` at line 112, The YAML template contains a duplicate selector key—remove the extra "selector: tag:Language=Python" so there is only one spec.selector in the Python extension spec; locate the duplicate occurrence of the literal selector line (the one outside the intended spec block) and delete it, leaving the single correct spec.selector entry (the other "spec.selector" within the extension resource such as the Python extension definition) to avoid key shadowing by later YAML parsers.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@roles/tackle/templates/customresource-extension.yml.j2`:
- Line 112: The YAML template contains a duplicate selector key—remove the extra
"selector: tag:Language=Python" so there is only one spec.selector in the Python
extension spec; locate the duplicate occurrence of the literal selector line
(the one outside the intended spec block) and delete it, leaving the single
correct spec.selector entry (the other "spec.selector" within the extension
resource such as the Python extension definition) to avoid key shadowing by
later YAML parsers.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: cd36b025-e83e-401e-937c-82a3cdbb0f31
📒 Files selected for processing (7)
.github/actions/make-bundle/action.yml.github/workflows/create-release.ymlbundle/manifests/konveyor-operator.clusterserviceversion.yamlhelm/templates/deployment.yamlhelm/values.yamlroles/tackle/defaults/main.ymlroles/tackle/templates/customresource-extension.yml.j2
🚧 Files skipped from review as they are similar to previous changes (4)
- helm/templates/deployment.yaml
- .github/workflows/create-release.yml
- helm/values.yaml
- bundle/manifests/konveyor-operator.clusterserviceversion.yaml
Signed-off-by: Maayan Hadasi <mguetta@redhat.com>
Summary
generic-external-providerwas replaced with individual language-specific providers (python-external-provider,nodejs-external-provider) in analyzer-lsp PR ✨ Refactor generic provider into individual providers analyzer-lsp#1142 (merged April 17, 2026)RELATED_IMAGE_PROVIDER_PYTHON→python-external-providerRELATED_IMAGE_PROVIDER_NODEJS→nodejs-external-providerRELATED_IMAGE_PROVIDER_GENERICenv var is removed as thegeneric-external-providerimage no longer existsTest plan
make bundlegenerates correct CSV with new provider imagesFixes intermittent CI failures in konveyor/ci nightly runs where task pods would fail with 1/4 containers in Error state due to the missing/stale generic-external-provider image.
🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Configuration Updates