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