Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 90 additions & 0 deletions .github/workflows/helm-chart-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

name: "Helm Chart CI"

on:
push:
branches: [ master, 'release-*' ]
paths: [ 'helm/**', '.github/workflows/helm-chart-ci.yml' ]
pull_request:
paths: [ 'helm/**', '.github/workflows/helm-chart-ci.yml' ]

permissions:
contents: read

jobs:
lint-and-render:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false

- uses: azure/setup-helm@v4
with:
version: v3.16.2

- name: helm lint
run: |
helm lint helm/hugegraph
helm lint helm/hugegraph -f helm/hugegraph/values-single.yaml
helm lint helm/hugegraph -f helm/hugegraph/values-cluster.yaml

- name: helm template
run: |
for preset in "" "-f helm/hugegraph/values-single.yaml" "-f helm/hugegraph/values-cluster.yaml"; do
helm template ci helm/hugegraph $preset > /dev/null
done

- name: reject invalid values
run: |
# each of these must fail; the schema and helpers are the contract
! helm template ci helm/hugegraph --set pd.replicas=100 2>/dev/null
! helm template ci helm/hugegraph --set pd.pdb.minAvailable=3 2>/dev/null
! helm template ci helm/hugegraph --set server.hpa.enabled=true 2>/dev/null
! helm template ci helm/hugegraph \
--set server.hpa.enabled=true \
--set server.hpa.minReplicas=2 \
--set server.resources.requests.cpu=100m \
--set server.pdb.enabled=true \
--set server.pdb.minAvailable=2 2>/dev/null
! helm template ci helm/hugegraph --set server.auth.enabled=true 2>/dev/null

- name: kubeconform
shell: bash
run: |
set -o pipefail
curl -sSLo /tmp/kc.tar.gz https://github.com/yannh/kubeconform/releases/download/v0.6.7/kubeconform-linux-amd64.tar.gz
tar -xzf /tmp/kc.tar.gz -C /tmp
for preset in "" "-f helm/hugegraph/values-single.yaml" "-f helm/hugegraph/values-cluster.yaml"; do
helm template ci helm/hugegraph $preset | /tmp/kubeconform -strict -summary -kubernetes-version 1.23.0
done

- name: legacy --reuse-values compatibility
run: |
# A release created before a field existed must still render. This has
# regressed five times, so it is guarded here rather than by review.
# `-f` is NOT equivalent: it merges over the new defaults, whereas
# --reuse-values discards them, so the fixture must become values.yaml.
cp -R helm/hugegraph /tmp/legacy
cp helm/hugegraph/testdata/values-pre-hardening.yaml /tmp/legacy/values.yaml
helm template legacy /tmp/legacy > /dev/null
helm template legacy /tmp/legacy --is-upgrade > /dev/null

- name: helm package
run: helm package helm/hugegraph -d /tmp/chart
11 changes: 9 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -207,9 +207,16 @@ For advanced Docker configurations, see:
>
> **Version Tags**: Use release tags (e.g., `1.7.0`) for stable deployments. The `latest` tag should only be used for testing or development.

### Option 2: Kubernetes with Helm

The HStore Helm chart deploys HugeGraph PD, Store, and Server as a distributed
Kubernetes cluster. See the [chart documentation](helm/hugegraph/README.md) for
single-node and highly available presets, configuration, and
upgrade guidance.


<details>
<summary><b>Option 2: Download Binary Package</b></summary>
<summary><b>Option 3: Download Binary Package</b></summary>

Download pre-built packages from the [Download Page](https://hugegraph.apache.org/docs/download/download/):

Expand Down Expand Up @@ -242,7 +249,7 @@ For detailed instructions, see the [Binary Installation Guide](https://hugegraph
</details>

<details>
<summary><b>Option 3: Build from Source</b></summary>
<summary><b>Option 4: Build from Source</b></summary>

Build from source for development or customization:

Expand Down
33 changes: 33 additions & 0 deletions helm/hugegraph/.helmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Patterns to ignore when building packages.
.DS_Store
.git/
.gitignore
*.swp
*.bak
*.tmp
*.orig
*~
.idea/
.vscode/

# Contributor tooling, if present in a working tree. Never ship it.
scripts/
testdata/

# Never package a chart archive inside a chart.
*.tgz
36 changes: 36 additions & 0 deletions helm/hugegraph/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

apiVersion: v2
name: hugegraph
description: Helm chart for Apache HugeGraph HStore cluster (PD + Store + Server)
type: application
version: 0.1.0
appVersion: "latest"
kubeVersion: ">=1.23.0-0"
keywords:
- hugegraph
- graph
- hstore
- raft
home: https://hugegraph.apache.org/
sources:
- https://github.com/apache/hugegraph
maintainers:
- name: HugeGraph Community
url: https://hugegraph.apache.org/
email: dev@hugegraph.apache.org
Loading
Loading