-
Notifications
You must be signed in to change notification settings - Fork 134
Prepare for OCI publishing of helm charts to docker hub #814
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
Validate url Validate checksum
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.
Pull request overview
This PR prepares the Solr Operator project for publishing Helm charts as OCI artifacts to Docker Hub, addressing issue #813 which aims to modernize the chart distribution mechanism.
Changes:
- Adds a GitHub Actions workflow for publishing Helm charts to Docker Hub's OCI registry with validation and verification steps
- Updates documentation across all README files to include OCI registry installation instructions alongside traditional HTTPS repository methods
- Integrates OCI publishing into the release wizard process as a new step after traditional Helm chart publishing
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 19 comments.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/publish-helm-oci.yaml | New workflow for publishing charts to OCI registry with URL validation, checksum verification, and dry-run support |
| helm/solr/README.md | Adds OCI registry installation and upgrade examples with traditional methods as alternatives |
| helm/solr-operator/README.md | Restructures installation section to prioritize OCI registry approach with detailed instructions for both methods |
| hack/release/wizard/releaseWizard.yaml | Adds new release task for OCI publishing with step-by-step instructions and verification commands |
| README.md | Updates main README to highlight OCI registry installation as the recommended approach |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| # Verify solr-operator chart | ||
| echo "Pulling solr-operator chart version ${{ steps.versions.outputs.operator-version }}..." | ||
| helm pull oci://docker.io/apache/solr-operator-chart --version ${{ steps.versions.outputs.operator-version }} |
Copilot
AI
Jan 27, 2026
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.
The OCI registry path in the helm pull command is incorrect. Based on the chart name in Chart.yaml, this should be:
helm pull oci://docker.io/apache/solr-operator --version ${{ steps.versions.outputs.operator-version }}
This matches the actual location where the chart will be published when pushed with helm (see comment on line 134).
| helm pull oci://docker.io/apache/solr-operator-chart --version ${{ steps.versions.outputs.operator-version }} | |
| helm pull oci://docker.io/apache/solr-operator --version ${{ steps.versions.outputs.operator-version }} |
|
|
||
| ```bash | ||
| # Via OCI registry (recommended) | ||
| helm install example oci://docker.io/apache/solr-chart --version 0.10.0-prerelease --set image.tag=9.10.0 |
Copilot
AI
Jan 27, 2026
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.
The OCI registry path is incorrect. Based on the chart name "solr" in helm/solr/Chart.yaml, the correct path should be:
helm install example oci://docker.io/apache/solr --version 0.10.0-prerelease --set image.tag=9.10.0
The chart name comes from Chart.yaml and cannot be overridden with a different path suffix.
| helm install example oci://docker.io/apache/solr-chart --version 0.10.0-prerelease --set image.tag=9.10.0 | |
| helm install example oci://docker.io/apache/solr --version 0.10.0-prerelease --set image.tag=9.10.0 |
| ```bash | ||
| # Watch the namespace where the operator is deployed to (just pass the boolean true) | ||
| helm install solr-operator apache-solr/solr-operator --namespace solr --set watchNamespaces=true | ||
| helm install solr-operator oci://docker.io/apache/solr-operator-chart --version 0.10.0-prerelease --namespace solr --set watchNamespaces=true |
Copilot
AI
Jan 27, 2026
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.
The OCI registry path is incorrect. Based on the chart name "solr-operator" in helm/solr-operator/Chart.yaml, the correct path should be:
helm install solr-operator oci://docker.io/apache/solr-operator --version 0.10.0-prerelease --namespace solr --set watchNamespaces=true
The chart name comes from Chart.yaml and cannot be overridden with a different path suffix.
| helm install solr-operator apache-solr/solr-operator --namespace solr --set watchNamespaces=other | ||
| # Watch multiple namespaces (commmas must be escaped in the set string) | ||
| helm install solr-operator apache-solr/solr-operator --namespace solr --set watchNamespaces="team1\,team2\,team3" | ||
| helm install solr-operator oci://docker.io/apache/solr-operator-chart --version 0.10.0-prerelease --namespace solr --set watchNamespaces=other |
Copilot
AI
Jan 27, 2026
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.
The OCI registry path is incorrect. Based on the chart name "solr-operator" in helm/solr-operator/Chart.yaml, the correct path should be:
helm install solr-operator oci://docker.io/apache/solr-operator --version 0.10.0-prerelease --namespace solr --set watchNamespaces=other
The chart name comes from Chart.yaml and cannot be overridden with a different path suffix.
| echo "Pushing solr-operator chart (version ${{ steps.versions.outputs.operator-version }}) to oci://docker.io/apache/solr-operator-chart" | ||
| helm push solr-operator.tgz oci://docker.io/apache/solr-operator-chart | ||
| echo "✓ solr-operator chart pushed successfully" | ||
|
|
||
| - name: Push solr chart to OCI registry | ||
| if: ${{ !inputs.dry-run }} | ||
| run: | | ||
| echo "Pushing solr chart (version ${{ steps.versions.outputs.solr-version }}) to oci://docker.io/apache/solr-chart" | ||
| helm push solr.tgz oci://docker.io/apache/solr-chart |
Copilot
AI
Jan 27, 2026
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.
The OCI registry path in the echo statement is incorrect. Based on the chart name in Chart.yaml, the correct path should be:
oci://docker.io/apache/solr-operator
The chart name comes from Chart.yaml and cannot be overridden with a different path suffix.
| echo "Pushing solr-operator chart (version ${{ steps.versions.outputs.operator-version }}) to oci://docker.io/apache/solr-operator-chart" | |
| helm push solr-operator.tgz oci://docker.io/apache/solr-operator-chart | |
| echo "✓ solr-operator chart pushed successfully" | |
| - name: Push solr chart to OCI registry | |
| if: ${{ !inputs.dry-run }} | |
| run: | | |
| echo "Pushing solr chart (version ${{ steps.versions.outputs.solr-version }}) to oci://docker.io/apache/solr-chart" | |
| helm push solr.tgz oci://docker.io/apache/solr-chart | |
| echo "Pushing solr-operator chart (version ${{ steps.versions.outputs.operator-version }}) to oci://docker.io/apache/solr-operator" | |
| helm push solr-operator.tgz oci://docker.io/apache/solr-operator | |
| echo "✓ solr-operator chart pushed successfully" | |
| - name: Push solr chart to OCI registry | |
| if: ${{ !inputs.dry-run }} | |
| run: | | |
| echo "Pushing solr chart (version ${{ steps.versions.outputs.solr-version }}) to oci://docker.io/apache/solr" | |
| helm push solr.tgz oci://docker.io/apache/solr |
|
|
||
| ```bash | ||
| helm install solr-operator apache-solr/solr-operator --namespace solr | ||
| helm install solr-operator oci://docker.io/apache/solr-operator-chart --version 0.10.0-prerelease --namespace solr |
Copilot
AI
Jan 27, 2026
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.
The OCI registry path is incorrect. Based on the chart name "solr-operator" in helm/solr-operator/Chart.yaml, the correct path should be:
helm install solr-operator oci://docker.io/apache/solr-operator --version 0.10.0-prerelease --namespace solr
The chart name comes from Chart.yaml and cannot be overridden with a different path suffix.
| ```bash | ||
| helm install solr-operator apache-solr/solr-operator --skip-crds --namespace solr | ||
| # Via OCI registry | ||
| helm install solr-operator oci://docker.io/apache/solr-operator-chart --version 0.10.0-prerelease --skip-crds --namespace solr |
Copilot
AI
Jan 27, 2026
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.
The OCI registry path is incorrect. Based on the chart name "solr-operator" in helm/solr-operator/Chart.yaml, the correct path should be:
helm install solr-operator oci://docker.io/apache/solr-operator --version 0.10.0-prerelease --skip-crds --namespace solr
The chart name comes from Chart.yaml and cannot be overridden with a different path suffix.
| - oci://docker.io/apache/solr-operator-chart | ||
| - oci://docker.io/apache/solr-chart |
Copilot
AI
Jan 27, 2026
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.
The OCI registry paths referenced in the documentation are incorrect. Based on the chart names in Chart.yaml files, the correct paths should be:
oci://docker.io/apache/solr-operator(not solr-operator-chart)oci://docker.io/apache/solr(not solr-chart)
The chart names come from Chart.yaml and cannot be overridden with a different path suffix when using helm push.
| helm pull oci://docker.io/apache/solr-operator-chart --version {{ release_version[1:] }} | ||
| helm pull oci://docker.io/apache/solr-chart --version {{ release_version[1:] }} |
Copilot
AI
Jan 27, 2026
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.
The OCI registry paths in the verification commands are incorrect. Based on the chart names in Chart.yaml files, the correct commands should be:
helm pull oci://docker.io/apache/solr-operator --version {{ release_version[1:] }}helm pull oci://docker.io/apache/solr --version {{ release_version[1:] }}
The chart names come from Chart.yaml and cannot be overridden with a different path suffix.
| if: ${{ !inputs.dry-run }} | ||
| run: | | ||
| echo "Pushing solr chart (version ${{ steps.versions.outputs.solr-version }}) to oci://docker.io/apache/solr-chart" | ||
| helm push solr.tgz oci://docker.io/apache/solr-chart |
Copilot
AI
Jan 27, 2026
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.
The OCI registry path in the helm push command is incorrect. When using helm push with OCI registries, the chart name comes from the Chart.yaml file, not from the path. Since the chart is named "solr" in helm/solr/Chart.yaml, this command should be:
helm push solr.tgz oci://docker.io/apache
This will make the chart available at oci://docker.io/apache/solr, not oci://docker.io/apache/solr-chart. All references throughout the PR (in documentation and this workflow) should use oci://docker.io/apache/solr instead of oci://docker.io/apache/solr-chart. If you want the -chart suffix, you would need to rename the chart in Chart.yaml.
This is a DRAFT PR for publishing charts as OCI artifacts in docker hub., see #813.