Skip to content

Conversation

@janhoy
Copy link
Contributor

@janhoy janhoy commented Jan 14, 2026

This is a DRAFT PR for publishing charts as OCI artifacts in docker hub., see #813.

@janhoy janhoy marked this pull request as draft January 14, 2026 15:57
Validate url
Validate checksum
Copy link

Copilot AI left a 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 }}
Copy link

Copilot AI Jan 27, 2026

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).

Suggested change
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 }}

Copilot uses AI. Check for mistakes.

```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
Copy link

Copilot AI Jan 27, 2026

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.

Suggested change
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

Copilot uses AI. Check for mistakes.
```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
Copy link

Copilot AI Jan 27, 2026

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.

Copilot uses AI. Check for mistakes.
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
Copy link

Copilot AI Jan 27, 2026

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.

Copilot uses AI. Check for mistakes.
Comment on lines +133 to +141
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
Copy link

Copilot AI Jan 27, 2026

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.

Suggested change
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

Copilot uses AI. Check for mistakes.

```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
Copy link

Copilot AI Jan 27, 2026

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.

Copilot uses AI. Check for mistakes.
```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
Copy link

Copilot AI Jan 27, 2026

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.

Copilot uses AI. Check for mistakes.
Comment on lines +1124 to +1125
- oci://docker.io/apache/solr-operator-chart
- oci://docker.io/apache/solr-chart
Copy link

Copilot AI Jan 27, 2026

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.

Copilot uses AI. Check for mistakes.
Comment on lines +1149 to +1150
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:] }}
Copy link

Copilot AI Jan 27, 2026

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.

Copilot uses AI. Check for mistakes.
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
Copy link

Copilot AI Jan 27, 2026

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.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant