This is an automated email from the ASF dual-hosted git repository.

jshao pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git


The following commit(s) were added to refs/heads/main by this push:
     new 1af9a3a553 [#10514] feat(helm): Add OCI registry publishing workflow 
and update chart documentation (#10515)
1af9a3a553 is described below

commit 1af9a3a553c50eea47f1abd51e05cb3d13beb009
Author: Danhua Wang <[email protected]>
AuthorDate: Thu Apr 16 14:38:29 2026 +0800

    [#10514] feat(helm): Add OCI registry publishing workflow and update chart 
documentation (#10515)
    
    ### What changes were proposed in this pull request?
    
    This PR adds support for publishing Gravitino Helm charts to OCI
    registry (Docker Hub) and updates documentation. The changes include:
    
    1. **GitHub Actions Workflow**
    - Created `.github/workflows/chart-release.yaml` for automated chart
    publishing
       - Supports publishing all 3 charts or selective publishing
       - Includes token validation and configurable Docker repository
    
    2. **Chart Name Updates**
    - Updated `Chart.yaml` files to include `-helm` suffix for OCI registry
    compatibility:
         - `gravitino` → `gravitino-helm`
    - `gravitino-iceberg-rest-server` → `gravitino-iceberg-rest-server-helm`
    - `gravitino-lance-rest-server` → `gravitino-lance-rest-server-helm`
    
    3. **Artifact Hub Integration**
       - Added `artifacthub-repo.yml` metadata files to each chart directory
       - Enables automatic discovery and indexing on Artifact Hub
    
    4. **Documentation Updates**
    - Updated `docs/chart.md`, `docs/iceberg-rest-catalog-chart.md`, and
    `docs/lance-rest-server-chart.md`
       - Added OCI registry installation instructions
       - Removed local chart installation methods for simplicity
    - Created README.md files in each chart directory linking to detailed
    documentation
    
    ### Why are the changes needed?
    
    #10514
    
    Currently, Gravitino Helm charts are not published to any public
    registry, making it difficult for users to discover and install
    Gravitino on Kubernetes. This PR enables:
    
    1. **Easy Distribution**: Users can install charts directly from OCI
    registry without cloning the repository
    2. **Version Management**: Automated publishing with version control
    3. **Discoverability**: Charts will be indexed on Artifact Hub for easy
    discovery
    4. **Simplified Installation**: Standard Helm workflow using `helm
    install oci://...`
    
    ### Does this PR introduce _any_ user-facing change?
    
    Yes. Users can now install Gravitino Helm charts directly from OCI
    registry:
    
    **Pull charts:**
    ```bash
    helm pull oci://registry-1.docker.io/apache/gravitino-helm --version 1.3.0
    helm pull 
oci://registry-1.docker.io/apache/gravitino-iceberg-rest-server-helm --version 
1.3.0
    helm pull 
oci://registry-1.docker.io/apache/gravitino-lance-rest-server-helm --version 
1.3.0
    ```
    
    ### How was this patch tested?
    
    After run the release chart CI, our chart is published and can be
    searched in Artifact Hub as following.
    
    <img width="1919" height="764" alt="image"
    
src="https://github.com/user-attachments/assets/64d75177-707c-41c0-b1d7-08a39c218825";
    />
    <img width="1905" height="1026" alt="image"
    
src="https://github.com/user-attachments/assets/f27976cf-33ee-438d-b40f-ba1b91e24007";
    />
    <img width="1907" height="1032" alt="image"
    
src="https://github.com/user-attachments/assets/581355be-4cf5-4875-b6d1-b8ff40e324ac";
    />
    <img width="1914" height="1040" alt="image"
    
src="https://github.com/user-attachments/assets/3f081f3e-712f-4891-8c3e-9f0c7870789e";
    />
---
 .github/workflows/chart-release.yaml               | 88 ++++++++++++++++++++++
 build.gradle.kts                                   |  3 +
 .../gravitino-iceberg-rest-server/Chart.yaml       |  3 +-
 dev/charts/gravitino-iceberg-rest-server/README.md | 33 ++++++++
 .../{Chart.yaml => artifacthub-repo.yml}           | 31 ++------
 dev/charts/gravitino-lance-rest-server/Chart.yaml  |  3 +-
 dev/charts/gravitino-lance-rest-server/README.md   | 43 +++++++++++
 .../artifacthub-repo.yml}                          | 31 ++------
 .../templates/service.yaml                         |  2 +-
 .../templates/tests/test-connection.yaml           |  2 +-
 dev/charts/gravitino/Chart.yaml                    | 10 ++-
 dev/charts/gravitino/README.md                     | 33 ++++++++
 .../Chart.yaml => gravitino/artifacthub-repo.yml}  | 31 ++------
 docs/chart.md                                      | 65 +++++++++++-----
 docs/iceberg-rest-catalog-chart.md                 | 56 ++++++++++----
 docs/lance-rest-server-chart.md                    | 56 ++++++++++----
 16 files changed, 360 insertions(+), 130 deletions(-)

diff --git a/.github/workflows/chart-release.yaml 
b/.github/workflows/chart-release.yaml
new file mode 100644
index 0000000000..3415b4afd7
--- /dev/null
+++ b/.github/workflows/chart-release.yaml
@@ -0,0 +1,88 @@
+name: Publish Helm Charts
+
+on:
+  workflow_dispatch:
+    inputs:
+      version:
+        description: 'Chart version to publish (e.g., 1.3.0)'
+        required: true
+        type: string
+      username:
+        description: 'Docker Hub username'
+        required: true
+        type: string
+      token:
+        description: 'Publish Docker token'
+        required: true
+        type: string
+      docker_repo_name:
+        description: 'Docker repository name (default is apache)'
+        required: false
+        default: 'apache'
+        type: string
+      charts:
+        description: 'Charts to publish (comma-separated: 
gravitino,iceberg,lance or "all")'
+        required: false
+        default: 'all'
+        type: string
+
+jobs:
+  publish-helm-charts:
+    runs-on: ubuntu-latest
+    timeout-minutes: 30
+    env:
+      input_token: ${{ github.event.inputs.token }}
+      secrets_token: ${{ secrets.PUBLISH_DOCKER_TOKEN }}
+      DOCKER_REPO: registry-1.docker.io/${{ 
github.event.inputs.docker_repo_name }}
+    steps:
+      - name: Check publish Docker token
+        run: |
+          if [[ "${secrets_token}" != "${input_token}" ]]; then
+            echo "You have entered an incorrect token. Please re-enter it."
+            exit 1
+          fi
+
+      - uses: actions/checkout@v4
+
+      - name: Set up Helm
+        uses: azure/[email protected]
+
+      - name: Login to Docker Hub
+        run: |
+          echo "${{ secrets.DOCKER_REPOSITORY_PASSWORD }}" | helm registry 
login registry-1.docker.io -u ${{ github.event.inputs.username }} 
--password-stdin
+
+      - name: Determine charts to publish
+        id: charts
+        run: |
+          INPUT_CHARTS="${{ github.event.inputs.charts }}"
+          if [[ "${INPUT_CHARTS}" == "all" ]]; then
+            echo "charts=gravitino,iceberg,lance" >> $GITHUB_OUTPUT
+          else
+            echo "charts=${INPUT_CHARTS}" >> $GITHUB_OUTPUT
+          fi
+
+      - name: Package and publish Gravitino chart
+        if: contains(steps.charts.outputs.charts, 'gravitino')
+        run: |
+          cd dev/charts/gravitino
+          helm dependency update
+          helm package . --version ${{ github.event.inputs.version }}
+          helm push gravitino-helm-${{ github.event.inputs.version }}.tgz 
oci://${DOCKER_REPO}
+
+      - name: Package and publish Gravitino Iceberg REST Server chart
+        if: contains(steps.charts.outputs.charts, 'iceberg')
+        run: |
+          cd dev/charts/gravitino-iceberg-rest-server
+          helm package . --version ${{ github.event.inputs.version }}
+          helm push gravitino-iceberg-rest-server-helm-${{ 
github.event.inputs.version }}.tgz oci://${DOCKER_REPO}
+
+      - name: Package and publish Gravitino Lance REST Server chart
+        if: contains(steps.charts.outputs.charts, 'lance')
+        run: |
+          cd dev/charts/gravitino-lance-rest-server
+          helm package . --version ${{ github.event.inputs.version }}
+          helm push gravitino-lance-rest-server-helm-${{ 
github.event.inputs.version }}.tgz oci://${DOCKER_REPO}
+
+      - name: Logout from Docker Hub
+        if: always()
+        run: helm registry logout registry-1.docker.io
diff --git a/build.gradle.kts b/build.gradle.kts
index d59e6daf13..8245c405b3 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -716,6 +716,9 @@ tasks.rat {
     "clients/client-python/tests/unittests/htmlcov/*",
     "clients/client-python/tests/integration/htmlcov/*",
     "clients/filesystem-fuse/Cargo.lock",
+    "dev/charts/gravitino/README.md",
+    "dev/charts/gravitino-iceberg-rest-server/README.md",
+    "dev/charts/gravitino-lance-rest-server/README.md",
     "dev/docker/**/*.xml",
     "dev/docker/**/*.conf",
     "dev/docker/kerberos-hive/kadm5.acl",
diff --git a/dev/charts/gravitino-iceberg-rest-server/Chart.yaml 
b/dev/charts/gravitino-iceberg-rest-server/Chart.yaml
index f007207229..d99c5aea85 100644
--- a/dev/charts/gravitino-iceberg-rest-server/Chart.yaml
+++ b/dev/charts/gravitino-iceberg-rest-server/Chart.yaml
@@ -18,7 +18,7 @@
 #
 
 apiVersion: v2
-name: gravitino-iceberg-rest-server
+name: gravitino-iceberg-rest-server-helm
 description: Apache Gravitino's REST catalog server delivers unified metadata 
management via RESTful APIs, supporting HDFS/S3/OSS storage backends, 
Spark/Flink/Trino engines, federated metadata, access control, and Iceberg REST 
spec compatibility.
 
 home: https://gravitino.apache.org
@@ -31,6 +31,7 @@ keywords:
 
 annotations:
   licenses: Apache-2.0
+  artifacthub.io/prerelease: "false"
 kubeVersion: '>=1.29.0-0'
 maintainers:
   - name: Gravitino
diff --git a/dev/charts/gravitino-iceberg-rest-server/README.md 
b/dev/charts/gravitino-iceberg-rest-server/README.md
new file mode 100644
index 0000000000..635b8e96f5
--- /dev/null
+++ b/dev/charts/gravitino-iceberg-rest-server/README.md
@@ -0,0 +1,33 @@
+# Apache Gravitino Iceberg REST Catalog Server Helm Chart
+
+This Helm chart deploys Apache Gravitino Iceberg REST Catalog Server on 
Kubernetes with customizable configurations.
+
+## Quick Start
+
+```bash
+# Install from OCI registry
+helm install gravitino-iceberg 
oci://registry-1.docker.io/apache/gravitino-iceberg-rest-server-helm --version 
<VERSION> -n gravitino --create-namespace
+
+# Or pull the chart first
+helm pull oci://registry-1.docker.io/apache/gravitino-iceberg-rest-server-helm 
--version <VERSION>
+```
+
+## Documentation
+
+For detailed installation instructions, configuration options, and usage 
examples, please refer to:
+
+📖 [Complete Iceberg REST Catalog Server 
Documentation](https://github.com/apache/gravitino/blob/main/docs/iceberg-rest-catalog-chart.md)
+
+## Quick Links
+
+- 
[Prerequisites](https://github.com/apache/gravitino/blob/main/docs/iceberg-rest-catalog-chart.md#prerequisites)
+- 
[Installation](https://github.com/apache/gravitino/blob/main/docs/iceberg-rest-catalog-chart.md#installation)
+- 
[Configuration](https://github.com/apache/gravitino/blob/main/docs/iceberg-rest-catalog-chart.md#view-chart-values)
+- [Deploy with Custom 
Configuration](https://github.com/apache/gravitino/blob/main/docs/iceberg-rest-catalog-chart.md#deploy-with-custom-configuration)
+- 
[Uninstall](https://github.com/apache/gravitino/blob/main/docs/iceberg-rest-catalog-chart.md#uninstall-helm-chart)
+
+## Support
+
+- GitHub Issues: https://github.com/apache/gravitino/issues
+- Documentation: https://gravitino.apache.org
+- Community: [email protected]
diff --git a/dev/charts/gravitino-iceberg-rest-server/Chart.yaml 
b/dev/charts/gravitino-iceberg-rest-server/artifacthub-repo.yml
similarity index 51%
copy from dev/charts/gravitino-iceberg-rest-server/Chart.yaml
copy to dev/charts/gravitino-iceberg-rest-server/artifacthub-repo.yml
index f007207229..5b3da3b186 100644
--- a/dev/charts/gravitino-iceberg-rest-server/Chart.yaml
+++ b/dev/charts/gravitino-iceberg-rest-server/artifacthub-repo.yml
@@ -16,30 +16,9 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-
-apiVersion: v2
-name: gravitino-iceberg-rest-server
-description: Apache Gravitino's REST catalog server delivers unified metadata 
management via RESTful APIs, supporting HDFS/S3/OSS storage backends, 
Spark/Flink/Trino engines, federated metadata, access control, and Iceberg REST 
spec compatibility.
-
-home: https://gravitino.apache.org
-icon: https://gravitino.apache.org/img/apache-gravitino.svg
-keywords:
-  - gravitino
-  - iceberg
-  - metadata
-  - catalog
-
-annotations:
-  licenses: Apache-2.0
-kubeVersion: '>=1.29.0-0'
-maintainers:
-  - name: Gravitino
+# Artifact Hub repository metadata file
+# 
https://github.com/artifacthub/hub/blob/master/docs/metadata/artifacthub-repo.yml
+repositoryID: 61bb03ae-cc61-48dc-9a0a-a845411d764b
+owners:
+  - name: Apache Gravitino
     email: [email protected]
-    url: https://gravitino.apache.org
-
-sources:
-  - https://github.com/apache/gravitino
-  - 
https://github.com/apache/gravitino/tree/main/dev/charts/gravitino-iceberg-rest-server
-
-appVersion: 1.3.0-SNAPSHOT
-version: 1.3.0
diff --git a/dev/charts/gravitino-lance-rest-server/Chart.yaml 
b/dev/charts/gravitino-lance-rest-server/Chart.yaml
index 2c72194886..d63e6f10c3 100644
--- a/dev/charts/gravitino-lance-rest-server/Chart.yaml
+++ b/dev/charts/gravitino-lance-rest-server/Chart.yaml
@@ -18,7 +18,7 @@
 #
 
 apiVersion: v2
-name: gravitino-lance-rest-server
+name: gravitino-lance-rest-server-helm
 description: Apache Gravitino's Lance REST server provides high-performance 
columnar data management via RESTful APIs, supporting HDFS/S3/OSS/Azure/GCS 
storage backends, and Lance format compatibility for analytical workloads.
 
 home: https://gravitino.apache.org
@@ -33,6 +33,7 @@ keywords:
 
 annotations:
   licenses: Apache-2.0
+  artifacthub.io/prerelease: "false"
 kubeVersion: '>=1.29.0-0'
 maintainers:
   - name: Gravitino
diff --git a/dev/charts/gravitino-lance-rest-server/README.md 
b/dev/charts/gravitino-lance-rest-server/README.md
new file mode 100644
index 0000000000..b68e9ef8e9
--- /dev/null
+++ b/dev/charts/gravitino-lance-rest-server/README.md
@@ -0,0 +1,43 @@
+# Apache Gravitino Lance REST Server Helm Chart
+
+This Helm chart deploys Apache Gravitino Lance REST Server on Kubernetes with 
customizable configurations.
+
+## Quick Start
+
+```bash
+# Install from OCI registry
+helm install gravitino-lance 
oci://registry-1.docker.io/apache/gravitino-lance-rest-server-helm --version 
<VERSION> \
+  -n gravitino --create-namespace \
+  --set lanceRest.gravitinoUri=http://gravitino:8090 \
+  --set lanceRest.gravitinoMetalake=your-metalake
+
+# Or pull the chart first
+helm pull oci://registry-1.docker.io/apache/gravitino-lance-rest-server-helm 
--version <VERSION>
+```
+
+## Documentation
+
+For detailed installation instructions, configuration options, and usage 
examples, please refer to:
+
+📖 [Complete Lance REST Server 
Documentation](https://github.com/apache/gravitino/blob/main/docs/lance-rest-server-chart.md)
+
+## Quick Links
+
+- 
[Prerequisites](https://github.com/apache/gravitino/blob/main/docs/lance-rest-server-chart.md#prerequisites)
+- 
[Installation](https://github.com/apache/gravitino/blob/main/docs/lance-rest-server-chart.md#installation)
+- 
[Configuration](https://github.com/apache/gravitino/blob/main/docs/lance-rest-server-chart.md#view-chart-values)
+- [Gravitino Backend 
Configuration](https://github.com/apache/gravitino/blob/main/docs/lance-rest-server-chart.md#configuration-notes)
+- 
[Uninstall](https://github.com/apache/gravitino/blob/main/docs/lance-rest-server-chart.md#uninstall-helm-chart)
+
+## Important Notes
+
+The Lance REST Server requires a running Gravitino instance. Make sure to:
+1. Deploy Gravitino first or have an existing Gravitino server
+2. Configure `lanceRest.gravitinoUri` to point to your Gravitino server
+3. Create a metalake in Gravitino and set `lanceRest.gravitinoMetalake`
+
+## Support
+
+- GitHub Issues: https://github.com/apache/gravitino/issues
+- Documentation: https://gravitino.apache.org
+- Community: [email protected]
diff --git a/dev/charts/gravitino-iceberg-rest-server/Chart.yaml 
b/dev/charts/gravitino-lance-rest-server/artifacthub-repo.yml
similarity index 51%
copy from dev/charts/gravitino-iceberg-rest-server/Chart.yaml
copy to dev/charts/gravitino-lance-rest-server/artifacthub-repo.yml
index f007207229..af64f4bc10 100644
--- a/dev/charts/gravitino-iceberg-rest-server/Chart.yaml
+++ b/dev/charts/gravitino-lance-rest-server/artifacthub-repo.yml
@@ -16,30 +16,9 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-
-apiVersion: v2
-name: gravitino-iceberg-rest-server
-description: Apache Gravitino's REST catalog server delivers unified metadata 
management via RESTful APIs, supporting HDFS/S3/OSS storage backends, 
Spark/Flink/Trino engines, federated metadata, access control, and Iceberg REST 
spec compatibility.
-
-home: https://gravitino.apache.org
-icon: https://gravitino.apache.org/img/apache-gravitino.svg
-keywords:
-  - gravitino
-  - iceberg
-  - metadata
-  - catalog
-
-annotations:
-  licenses: Apache-2.0
-kubeVersion: '>=1.29.0-0'
-maintainers:
-  - name: Gravitino
+# Artifact Hub repository metadata file
+# 
https://github.com/artifacthub/hub/blob/master/docs/metadata/artifacthub-repo.yml
+repositoryID: 38ada415-6427-4e41-a633-e2f1cd5b9425
+owners:
+  - name: Apache Gravitino
     email: [email protected]
-    url: https://gravitino.apache.org
-
-sources:
-  - https://github.com/apache/gravitino
-  - 
https://github.com/apache/gravitino/tree/main/dev/charts/gravitino-iceberg-rest-server
-
-appVersion: 1.3.0-SNAPSHOT
-version: 1.3.0
diff --git a/dev/charts/gravitino-lance-rest-server/templates/service.yaml 
b/dev/charts/gravitino-lance-rest-server/templates/service.yaml
index 9a1b542718..6f24fee5db 100644
--- a/dev/charts/gravitino-lance-rest-server/templates/service.yaml
+++ b/dev/charts/gravitino-lance-rest-server/templates/service.yaml
@@ -20,7 +20,7 @@
 apiVersion: v1
 kind: Service
 metadata:
-  name: {{ include "gravitino-lance-rest-server.fullname" . }}
+  name: {{ .Values.service.name }}
   labels:
     {{- include "gravitino-lance-rest-server.labels" . | nindent 4 }}
 spec:
diff --git 
a/dev/charts/gravitino-lance-rest-server/templates/tests/test-connection.yaml 
b/dev/charts/gravitino-lance-rest-server/templates/tests/test-connection.yaml
index d29ccbde59..004b84cf01 100644
--- 
a/dev/charts/gravitino-lance-rest-server/templates/tests/test-connection.yaml
+++ 
b/dev/charts/gravitino-lance-rest-server/templates/tests/test-connection.yaml
@@ -56,7 +56,7 @@ spec:
           fi
       env:
         - name: SERVICE_NAME
-          value: {{ include "gravitino-lance-rest-server.fullname" . | quote }}
+          value: {{ .Values.service.name | quote }}
         - name: SERVICE_PORT
           value: {{ .Values.service.port | quote }}
         - name: TEST_PATH
diff --git a/dev/charts/gravitino/Chart.yaml b/dev/charts/gravitino/Chart.yaml
index 898fe33975..a79d1e90f4 100644
--- a/dev/charts/gravitino/Chart.yaml
+++ b/dev/charts/gravitino/Chart.yaml
@@ -20,8 +20,14 @@ apiVersion: v2
 appVersion: 1.3.0-SNAPSHOT
 description: Apache Gravitino is a high-performance, geo-distributed, and 
federated metadata lake. It manages the metadata directly in different sources, 
types, and regions. It also provides users with unified metadata access for 
data and AI assets.
 home: https://gravitino.apache.org
+icon: https://gravitino.apache.org/img/apache-gravitino.svg
+keywords:
+  - gravitino
+  - metadata
+  - catalog
 annotations:
   licenses: Apache-2.0
+  artifacthub.io/prerelease: "false"
 dependencies:
   - name: common
     repository: https://charts.bitnami.com/bitnami
@@ -36,12 +42,12 @@ dependencies:
     name: postgresql
     repository: https://charts.bitnami.com/bitnami
     version: 15.4.2
-kubeVersion: '>=1.28.0-0'
+kubeVersion: '>=1.29.0-0'
 maintainers:
   - name: Gravitino
     email: [email protected]
     url: https://gravitino.apache.org
-name: gravitino
+name: gravitino-helm
 sources:
   - https://github.com/apache/gravitino
 version: 1.3.0
diff --git a/dev/charts/gravitino/README.md b/dev/charts/gravitino/README.md
new file mode 100644
index 0000000000..c2ec0a708a
--- /dev/null
+++ b/dev/charts/gravitino/README.md
@@ -0,0 +1,33 @@
+# Apache Gravitino Helm Chart
+
+This Helm chart deploys Apache Gravitino on Kubernetes with customizable 
configurations.
+
+## Quick Start
+
+```bash
+# Install from OCI registry
+helm install gravitino oci://registry-1.docker.io/apache/gravitino-helm 
--version <VERSION> -n gravitino --create-namespace
+
+# Or pull the chart first
+helm pull oci://registry-1.docker.io/apache/gravitino-helm --version <VERSION>
+```
+
+## Documentation
+
+For detailed installation instructions, configuration options, and usage 
examples, please refer to:
+
+📖 [Complete Helm Chart 
Documentation](https://github.com/apache/gravitino/blob/main/docs/chart.md)
+
+## Quick Links
+
+- 
[Prerequisites](https://github.com/apache/gravitino/blob/main/docs/chart.md#prerequisites)
+- 
[Installation](https://github.com/apache/gravitino/blob/main/docs/chart.md#installation)
+- 
[Configuration](https://github.com/apache/gravitino/blob/main/docs/chart.md#view-chart-values)
+- [Deploy with 
MySQL](https://github.com/apache/gravitino/blob/main/docs/chart.md#deploying-gravitino-with-mysql-as-the-storage-backend)
+- 
[Uninstall](https://github.com/apache/gravitino/blob/main/docs/chart.md#uninstall-helm-chart)
+
+## Support
+
+- GitHub Issues: https://github.com/apache/gravitino/issues
+- Documentation: https://gravitino.apache.org
+- Community: [email protected]
diff --git a/dev/charts/gravitino-iceberg-rest-server/Chart.yaml 
b/dev/charts/gravitino/artifacthub-repo.yml
similarity index 51%
copy from dev/charts/gravitino-iceberg-rest-server/Chart.yaml
copy to dev/charts/gravitino/artifacthub-repo.yml
index f007207229..acf33c43c1 100644
--- a/dev/charts/gravitino-iceberg-rest-server/Chart.yaml
+++ b/dev/charts/gravitino/artifacthub-repo.yml
@@ -16,30 +16,9 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-
-apiVersion: v2
-name: gravitino-iceberg-rest-server
-description: Apache Gravitino's REST catalog server delivers unified metadata 
management via RESTful APIs, supporting HDFS/S3/OSS storage backends, 
Spark/Flink/Trino engines, federated metadata, access control, and Iceberg REST 
spec compatibility.
-
-home: https://gravitino.apache.org
-icon: https://gravitino.apache.org/img/apache-gravitino.svg
-keywords:
-  - gravitino
-  - iceberg
-  - metadata
-  - catalog
-
-annotations:
-  licenses: Apache-2.0
-kubeVersion: '>=1.29.0-0'
-maintainers:
-  - name: Gravitino
+# Artifact Hub repository metadata file
+# 
https://github.com/artifacthub/hub/blob/master/docs/metadata/artifacthub-repo.yml
+repositoryID: c63e9297-5e41-4c6b-a199-39446ab5b3a4
+owners:
+  - name: Apache Gravitino
     email: [email protected]
-    url: https://gravitino.apache.org
-
-sources:
-  - https://github.com/apache/gravitino
-  - 
https://github.com/apache/gravitino/tree/main/dev/charts/gravitino-iceberg-rest-server
-
-appVersion: 1.3.0-SNAPSHOT
-version: 1.3.0
diff --git a/docs/chart.md b/docs/chart.md
index b74bbd3c5b..3fa11fb78a 100644
--- a/docs/chart.md
+++ b/docs/chart.md
@@ -14,37 +14,65 @@ This Helm chart deploys Apache Gravitino on Kubernetes with 
customizable configu
 - Kubernetes 1.29+
 - Helm 3+
 
-## Update Chart Dependency
+## Installation
 
-The Gravitino Helm chart has not yet been released to the helm registry.
-To proceed, please clone the repository, navigate to the chart directory 
`/path/to/gravitino/dev/charts`, and execute the Helm dependency update command.
+### Install from OCI Registry (Recommended for Released Versions)
+
+Pull the chart from Docker Hub OCI registry:
+
+```console
+helm pull oci://registry-1.docker.io/apache/gravitino-helm --version <VERSION>
+```
+
+Or install directly:
+
+```console
+helm upgrade --install gravitino 
oci://registry-1.docker.io/apache/gravitino-helm --version <VERSION> -n 
gravitino --create-namespace
+```
+
+### Install from Local Repository (For Development or Unreleased Versions)
+
+Clone the repository and navigate to the chart directory:
 
 ```console
-helm dependency update [CHART]
+git clone https://github.com/apache/gravitino.git
+cd gravitino/dev/charts
 ```
 
-## View Chart values
+Update chart dependencies:
+
+```console
+helm dependency update gravitino
+```
+
+Install the chart:
+
+```console
+helm upgrade --install gravitino ./gravitino -n gravitino --create-namespace
+```
+
+## View Chart Values
 
 You can customize values.yaml parameters to override chart default settings. 
Additionally, Gravitino configurations in gravitino.conf can be modified 
through Helm values.yaml.
 
 To display the default values of the Gravitino chart, run:
 
 ```console
-helm show values [CHART]
+helm show values oci://registry-1.docker.io/apache/gravitino-helm --version 
<VERSION>
 ```
 
 ## Install Helm Chart
 
 ```console
-helm install [RELEASE_NAME] [CHART] [flags]
+helm upgrade --install [RELEASE_NAME] 
oci://registry-1.docker.io/apache/gravitino-helm --version <VERSION> [flags]
 ```
 
 ### Deploy with Default Configuration
 
-Run the following command to deploy Gravitino using the default settings, 
specify container image versions using --set image.tag=x.y.z (replace x, y, z 
with the expected version numbers):
+Run the following command to deploy Gravitino using the default settings:
 
 ```console
-helm upgrade --install gravitino ./gravitino -n gravitino --create-namespace 
--set image.tag=<x.y.z>
+helm upgrade --install gravitino 
oci://registry-1.docker.io/apache/gravitino-helm --version <VERSION> -n 
gravitino --create-namespace
 ```
 
 ### Deploy with Custom Configuration
@@ -52,25 +80,26 @@ helm upgrade --install gravitino ./gravitino -n gravitino 
--create-namespace --s
 To customize the deployment, use the --set flag to override specific values:
 
 ```console
-helm upgrade --install gravitino ./gravitino -n gravitino --create-namespace \
+helm upgrade --install gravitino 
oci://registry-1.docker.io/apache/gravitino-helm --version <VERSION> \
+  -n gravitino --create-namespace \
   --set key1=val1,key2=val2,...
 ```
 
 Alternatively, you can provide a custom values.yaml file:
 
 ```console
-helm upgrade --install gravitino ./gravitino -n gravitino --create-namespace 
-f /path/to/chart/resources/scenarios/ci-values.yaml
+helm upgrade --install gravitino 
oci://registry-1.docker.io/apache/gravitino-helm --version <VERSION> \
+  -n gravitino --create-namespace \
+  -f /path/to/values.yaml
 ```
 
-_Note: \
-/path/to/chart/resources/scenarios/ci-values.yaml is an example scenario to 
deploy._
-
 ### Deploying Gravitino with MySQL as the Storage Backend
 
 To deploy both Gravitino and MySQL, where MySQL is used as the storage 
backend, enable the built-in MySQL instance:
 
 ```console
-helm upgrade --install gravitino ./gravitino -n gravitino --create-namespace \
+helm upgrade --install gravitino 
oci://registry-1.docker.io/apache/gravitino-helm --version <VERSION> \
+  -n gravitino --create-namespace \
   --set mysql.enabled=true
 ```
 
@@ -79,7 +108,8 @@ helm upgrade --install gravitino ./gravitino -n gravitino 
--create-namespace \
 By default, the MySQL PersistentVolumeClaim(PVC) storage class is local-path. 
To disable dynamic provisioning, set the storage class to "-":
 
 ```console
-helm upgrade --install gravitino ./gravitino -n gravitino --create-namespace \
+helm upgrade --install gravitino 
oci://registry-1.docker.io/apache/gravitino-helm --version <VERSION> \
+  -n gravitino --create-namespace \
   --set mysql.enabled=true \
   --set global.defaultStorageClass="-"
 ```
@@ -99,7 +129,8 @@ mysql -h database-1.***.***.rds.amazonaws.com -P 3306 -u 
<YOUR-USERNAME> -p <YOU
 Use Helm to install or upgrade Gravitino, specifying the MySQL connection 
details.
 
 ```console
-helm upgrade --install gravitino ./gravitino -n gravitino --create-namespace \
+helm upgrade --install gravitino 
oci://registry-1.docker.io/apache/gravitino-helm --version <VERSION> \
+  -n gravitino --create-namespace \
   --set 
entity.jdbcUrl="jdbc:mysql://database-1.***.***.rds.amazonaws.com:3306/gravitino"
 \
   --set entity.jdbcDriver="com.mysql.cj.jdbc.Driver" \
   --set entity.jdbcUser="admin" \
diff --git a/docs/iceberg-rest-catalog-chart.md 
b/docs/iceberg-rest-catalog-chart.md
index 9b2534aaab..b88313b5eb 100644
--- a/docs/iceberg-rest-catalog-chart.md
+++ b/docs/iceberg-rest-catalog-chart.md
@@ -15,40 +15,67 @@ This Helm chart deploys Apache Gravitino Iceberg REST 
Catalog Server on Kubernet
 - Kubernetes 1.29+
 - Helm 3+
 
-## Update Chart Dependency
+## Installation
 
-The Gravitino Iceberg REST Catalog Server Helm chart has not yet been released 
to the helm registry.
-To proceed, please clone the repository, navigate to the chart directory 
[charts](../dev/charts), and execute the Helm dependency update command.
+### Install from OCI Registry (Recommended for Released Versions)
+
+Pull the chart from Docker Hub OCI registry:
+
+```console
+helm pull oci://registry-1.docker.io/apache/gravitino-iceberg-rest-server-helm 
--version <VERSION>
+```
+
+Or install directly:
+
+```console
+helm upgrade --install gravitino-iceberg 
oci://registry-1.docker.io/apache/gravitino-iceberg-rest-server-helm --version 
<VERSION> -n gravitino --create-namespace
+```
+
+### Install from Local Repository (For Development or Unreleased Versions)
+
+Clone the repository and navigate to the chart directory:
 
 ```console
-helm dependency update [CHART]
+git clone https://github.com/apache/gravitino.git
+cd gravitino/dev/charts
 ```
 
-## View Chart values
+Update chart dependencies:
+
+```console
+helm dependency update gravitino-iceberg-rest-server
+```
+
+Install the chart:
+
+```console
+helm upgrade --install gravitino-iceberg ./gravitino-iceberg-rest-server -n 
gravitino --create-namespace
+```
+
+## View Chart Values
 
 You can customize values.yaml parameters to override chart default settings. 
Additionally, Gravitino Iceberg REST Catalog Server configurations in 
[gravitino-iceberg-rest-server.conf](../dev/charts/gravitino-iceberg-rest-server/resources/gravitino-iceberg-rest-server.conf)
 can be modified through Helm values.yaml.
 
-To display the default values of the Gravitino chart, run:
+To display the default values of the chart, run:
 
 ```console
-helm show values [CHART]
+helm show values 
oci://registry-1.docker.io/apache/gravitino-iceberg-rest-server-helm --version 
<VERSION>
 ```
 
 ## Install Helm Chart
 
 ```console
-helm install [RELEASE_NAME] [CHART] [flags]
+helm upgrade --install [RELEASE_NAME] 
oci://registry-1.docker.io/apache/gravitino-iceberg-rest-server-helm --version 
<VERSION> [flags]
 ```
 
 ### Deploy with Default Configuration
 
-Run the following command to deploy Gravitino Iceberg REST Catalog Server 
using the default settings, specify container image versions using --set 
image.tag=x.y.z (replace x, y, z with the expected version numbers):
+Run the following command to deploy Gravitino Iceberg REST Catalog Server 
using the default settings:
 
 ```console
-helm upgrade --install gravitino ./gravitino-iceberg-rest-server \
+helm upgrade --install gravitino-iceberg 
oci://registry-1.docker.io/apache/gravitino-iceberg-rest-server-helm --version 
<VERSION> \
   -n gravitino \
   --create-namespace \
-  --set image.tag=<x.y.z> \
   --set replicas=2 \
   --set resources.requests.memory="4Gi" \
   --set resources.requests.cpu="2"
@@ -59,21 +86,20 @@ helm upgrade --install gravitino 
./gravitino-iceberg-rest-server \
 To customize the deployment, use the --set flag to override specific values:
 
 ```console
-helm upgrade --install gravitino ./gravitino-iceberg-rest-server
+helm upgrade --install gravitino-iceberg 
oci://registry-1.docker.io/apache/gravitino-iceberg-rest-server-helm --version 
<VERSION> \
   -n gravitino \
   --create-namespace \
   --set key1=val1,key2=val2,...
 ```
+
 Alternatively, you can provide a custom values.yaml file:
 
 ```console
-helm upgrade --install gravitino ./gravitino-iceberg-rest-server
+helm upgrade --install gravitino-iceberg 
oci://registry-1.docker.io/apache/gravitino-iceberg-rest-server-helm --version 
<VERSION> \
   -n gravitino \
   --create-namespace \
   -f /path/to/values.yaml
 ```
-_Note: \
-The path '/path/to/values.yaml' refers to the actual path to the values.yaml 
file._
 
 ## Uninstall Helm Chart
 
diff --git a/docs/lance-rest-server-chart.md b/docs/lance-rest-server-chart.md
index 9af460e649..e1dbe5bb3a 100644
--- a/docs/lance-rest-server-chart.md
+++ b/docs/lance-rest-server-chart.md
@@ -15,40 +15,69 @@ This Helm chart deploys Apache Gravitino Lance REST Server 
on Kubernetes with cu
 - Kubernetes 1.29+
 - Helm 3+
 
-## Update Chart Dependency
+## Installation
 
-The Gravitino Lance REST Server Helm chart has not yet been officially 
released.   
-To proceed, please clone the repository, navigate to the chart directory 
[charts](../dev/charts), and execute the Helm dependency update command.
+### Install from OCI Registry (Recommended for Released Versions)
+
+Pull the chart from Docker Hub OCI registry:
+
+```console
+helm pull oci://registry-1.docker.io/apache/gravitino-lance-rest-server-helm 
--version <VERSION>
+```
+
+Or install directly:
+
+```console
+helm upgrade --install gravitino-lance 
oci://registry-1.docker.io/apache/gravitino-lance-rest-server-helm --version 
<VERSION> -n gravitino --create-namespace
+```
+
+### Install from Local Repository (For Development or Unreleased Versions)
+
+Clone the repository and navigate to the chart directory:
 
 ```console
-helm dependency update [CHART]
+git clone https://github.com/apache/gravitino.git
+cd gravitino/dev/charts
 ```
 
-## View Chart values
+Update chart dependencies:
+
+```console
+helm dependency update gravitino-lance-rest-server
+```
+
+Install the chart:
+
+```console
+helm upgrade --install gravitino-lance ./gravitino-lance-rest-server -n 
gravitino --create-namespace
+```
+
+## View Chart Values
 
 You can customize values.yaml parameters to override chart default settings. 
Additionally, Gravitino Lance REST Server configurations in 
[gravitino-lance-rest-server.conf](../dev/charts/gravitino-lance-rest-server/resources/gravitino-lance-rest-server.conf)
 can be modified through Helm values.yaml.
 
 To display the default values of the chart, run:
 
 ```console
-helm show values [CHART]
+helm show values 
oci://registry-1.docker.io/apache/gravitino-lance-rest-server-helm --version 
<VERSION>
 ```
 
 ## Install Helm Chart
 
 ```console
-helm install [RELEASE_NAME] [CHART] [flags]
+helm upgrade --install [RELEASE_NAME] 
oci://registry-1.docker.io/apache/gravitino-lance-rest-server-helm --version 
<VERSION> [flags]
 ```
 
 ### Deploy with Default Configuration
 
-Run the following command to deploy Gravitino Lance REST Server using the 
default settings, specifying the container image version using `--set 
image.tag=<version>` (replace `<version>` with the desired image tag):
+Run the following command to deploy Gravitino Lance REST Server using the 
default settings:
 
 ```console
-helm upgrade --install gravitino ./gravitino-lance-rest-server \
+helm upgrade --install gravitino-lance 
oci://registry-1.docker.io/apache/gravitino-lance-rest-server-helm --version 
<VERSION> \
   -n gravitino \
   --create-namespace \
-  --set image.tag=<version> \
+  --set lanceRest.gravitinoUri=http://gravitino:8090 \
+  --set lanceRest.gravitinoMetalake=your-metalake \
   --set replicas=2 \
   --set resources.requests.memory="4Gi" \
   --set resources.requests.cpu="2"
@@ -59,21 +88,20 @@ helm upgrade --install gravitino 
./gravitino-lance-rest-server \
 To customize the deployment, use the --set flag to override specific values:
 
 ```console
-helm upgrade --install gravitino ./gravitino-lance-rest-server \
+helm upgrade --install gravitino-lance 
oci://registry-1.docker.io/apache/gravitino-lance-rest-server-helm --version 
<VERSION> \
   -n gravitino \
   --create-namespace \
   --set key1=val1,key2=val2,...
 ```
+
 Alternatively, you can provide a custom values.yaml file:
 
 ```console
-helm upgrade --install gravitino ./gravitino-lance-rest-server \
+helm upgrade --install gravitino-lance 
oci://registry-1.docker.io/apache/gravitino-lance-rest-server-helm --version 
<VERSION> \
   -n gravitino \
   --create-namespace \
   -f /path/to/values.yaml
 ```
-_Note: \
-The path '/path/to/values.yaml' refers to the actual path to the values.yaml 
file._
 
 ## Configuration Notes
 


Reply via email to