Set container image repository and tag in helm chart#666
Conversation
WalkthroughThe publish-chart GitHub Actions workflow was updated with two new steps: install a prebuilt Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes 🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
🧪 Generate unit tests (beta)
Tip We've launched Issue Planner and it is currently in beta. Please try it out and share your feedback on Discord! 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: 1
🤖 Fix all issues with AI agents
In @.github/workflows/publish-chart.yml:
- Around line 79-81: The "Install yq" workflow step currently downloads from
releases/latest which is unstable; change the download URL to pin yq to the
specific version v4.52.2 (update the step named "Install yq") so the run uses
the release artifact for v4.52.2 and keep chmod a+x; also review the other step
that installs Kustomize and pin it to a known stable tag similarly for
reproducible installs.
🧹 Nitpick comments (1)
.github/workflows/publish-chart.yml (1)
83-86: Consider deriving the image repository from GitHub context variables.The repository path is hardcoded, while Line 108 already uses
${{ github.repository_owner }}dynamically. If the-controller-managersuffix is a fixed convention, you could derive it:- yq -i '.controllerManager.manager.image.repository = "ghcr.io/ironcore-dev/metal-operator-controller-manager"' dist/chart/values.yaml + yq -i '.controllerManager.manager.image.repository = "ghcr.io/${{ github.repository }}-controller-manager"' dist/chart/values.yamlThis keeps the chart publishing consistent with forks and repo renames. Skip if the image name intentionally differs from the repo name.
| - name: Install yq | ||
| run: | | ||
| curl -fsSL https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -o /usr/local/bin/yq && chmod a+x /usr/local/bin/yq |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
mikefarah yq latest release version 2025 2026
💡 Result:
- Latest mikefarah/yq release (as of Feb 10, 2026):
v4.52.2— released Jan 31, 2026. [1] - Latest release in 2025:
v4.50.1— released Dec 14, 2025. [2]
🏁 Script executed:
# Check for other workflow files and how they handle tool versions
fd '\.yml$' '.github/workflows' -x grep -l "curl.*releases/latest\|version:" {}Repository: ironcore-dev/metal-operator
Length of output: 282
🏁 Script executed:
# Search for yq usage elsewhere in the repo
rg "yq" --type yaml -A 2 -B 2Repository: ironcore-dev/metal-operator
Length of output: 53
🏁 Script executed:
# Look at the publish-chart.yml file to understand the context better
head -100 .github/workflows/publish-chart.yml | tail -50Repository: ironcore-dev/metal-operator
Length of output: 2469
Pin yq to a specific version for reproducibility and supply chain safety.
Fetching from releases/latest means a future breaking change or compromised release could silently affect chart publishing. Pin to the latest stable release (currently v4.52.2).
Suggested fix
- name: Install yq
run: |
- curl -fsSL https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -o /usr/local/bin/yq && chmod a+x /usr/local/bin/yq
+ YQ_VERSION="v4.52.2"
+ curl -fsSL "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64" -o /usr/local/bin/yq && chmod a+x /usr/local/bin/yqNote: The same workflow also installs Kustomize from master; consider pinning that version as well.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - name: Install yq | |
| run: | | |
| curl -fsSL https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -o /usr/local/bin/yq && chmod a+x /usr/local/bin/yq | |
| - name: Install yq | |
| run: | | |
| YQ_VERSION="v4.52.2" | |
| curl -fsSL "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64" -o /usr/local/bin/yq && chmod a+x /usr/local/bin/yq |
🤖 Prompt for AI Agents
In @.github/workflows/publish-chart.yml around lines 79 - 81, The "Install yq"
workflow step currently downloads from releases/latest which is unstable; change
the download URL to pin yq to the specific version v4.52.2 (update the step
named "Install yq") so the run uses the release artifact for v4.52.2 and keep
chmod a+x; also review the other step that installs Kustomize and pin it to a
known stable tag similarly for reproducible installs.
2eaea42 to
5599a15
Compare
|
This means we can no longer independently version the chart and software. Do we want that? |
You can still override the image values via |
+ switch to using image tag values. ref: ironcore-dev/metal-operator#666 ironcore-dev/boot-operator#269
+ switch to using image tag values. ref: ironcore-dev/metal-operator#666 ironcore-dev/boot-operator#269
Proposed Changes
Summary by CodeRabbit