Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
959f1b3
feat(helm): Add new workflow for linting and releasing Helm charts.
junhaoliao Jan 20, 2026
0a8d30f
feat(helm): Update workflow to support branch-specific releases and a…
junhaoliao Jan 21, 2026
e7a79cc
refactor(helm): Replace chart-releaser with custom packaging and publ…
junhaoliao Jan 21, 2026
e424eb1
feat(docs): Update CLP Helm chart instructions to use Helm repository…
junhaoliao Jan 22, 2026
0e29b51
feat(docs): Clarify version flag behavior for Helm chart releases
junhaoliao Jan 22, 2026
82d111c
ci(helm): Fix formatting of commit message in Helm packaging workflow
junhaoliao Jan 22, 2026
2a7bf23
ci(helm): Refactor commit message formatting in Helm packaging workflow
junhaoliao Jan 22, 2026
e65ee3e
Merge branch 'main' into helm-release
junhaoliao Jan 22, 2026
9ea4e04
ci(helm): Skip publishing if chart version already exists
junhaoliao Jan 22, 2026
88e671a
update troubleshooting cmd for clarity - Apply suggestions from code …
junhaoliao Jan 22, 2026
ec3f223
Merge branch 'main' into helm-release
junhaoliao Jan 22, 2026
20d0b4a
move env file source closer to usage - Apply suggestions from code re…
junhaoliao Jan 23, 2026
e66b9ad
use python Path operators for all path components - Apply suggestions…
junhaoliao Jan 23, 2026
e14dd6a
revert changes to `--set distributedDeployment=true`
junhaoliao Jan 23, 2026
627ed80
ci(helm): Extract chart version using yq for improved readability and…
junhaoliao Jan 23, 2026
9116ab4
ci(helm): Fix inconsistent quoting in yq command within packaging wor…
junhaoliao Jan 23, 2026
1801a73
Merge branch 'main' into helm-release
junhaoliao Jan 23, 2026
19742d5
docs: Remove redundant docstrings from quick-start and deployment guides
junhaoliao Jan 26, 2026
f5b9366
Merge branch 'main' into helm-release
junhaoliao Jan 27, 2026
a4d72e5
Merge branch 'main' into helm-release
junhaoliao Jan 29, 2026
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
8 changes: 0 additions & 8 deletions .github/workflows/clp-lint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,6 @@ jobs:
with:
submodules: "recursive"

# Fetch all history for all branches; otherwise, `helm lint` would complain about not
# finding the `origin/main` branch.
fetch-depth: 0

- uses: "actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38"
with:
python-version: "3.11"
Expand Down Expand Up @@ -82,7 +78,3 @@ jobs:
- name: "Lint .yaml files"
shell: "bash"
run: "task lint:check-yaml"

- name: "Lint Helm charts"
shell: "bash"
run: "task lint:check-helm"
114 changes: 114 additions & 0 deletions .github/workflows/clp-package-helm.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
name: "clp-package-helm"

on:
pull_request:
paths:
- ".github/workflows/clp-package-helm.yaml"
- "taskfiles/helm.yaml"
- "tools/deployment/package-helm/**"
push:
paths:
- ".github/workflows/clp-package-helm.yaml"
- "taskfiles/helm.yaml"
- "tools/deployment/package-helm/**"
workflow_dispatch:
Comment on lines +3 to +14

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick | 🔵 Trivial

Consider using YAML anchor for duplicate paths.

The paths array is identical for both pull_request and push triggers. Per repository conventions, YAML anchors are preferred to avoid duplication.

♻️ Suggested refactor
 on:
   pull_request:
-    paths:
+    paths: &helm_paths
       - ".github/workflows/clp-package-helm.yaml"
       - "taskfiles/helm.yaml"
       - "tools/deployment/package-helm/**"
   push:
-    paths:
-      - ".github/workflows/clp-package-helm.yaml"
-      - "taskfiles/helm.yaml"
-      - "tools/deployment/package-helm/**"
+    paths: *helm_paths
   workflow_dispatch:

Based on learnings, YAML anchors/aliases are acceptable and preferred in this repository's workflows.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
on:
pull_request:
paths:
- ".github/workflows/clp-package-helm.yaml"
- "taskfiles/helm.yaml"
- "tools/deployment/package-helm/**"
push:
paths:
- ".github/workflows/clp-package-helm.yaml"
- "taskfiles/helm.yaml"
- "tools/deployment/package-helm/**"
workflow_dispatch:
on:
pull_request:
paths: &helm_paths
- ".github/workflows/clp-package-helm.yaml"
- "taskfiles/helm.yaml"
- "tools/deployment/package-helm/**"
push:
paths: *helm_paths
workflow_dispatch:
🤖 Prompt for AI Agents
In @.github/workflows/clp-package-helm.yaml around lines 3 - 14, The
pull_request and push trigger blocks both duplicate the same paths array;
replace the duplicated arrays with a YAML anchor/alias: define an anchor (e.g.,
&common_paths) for the shared paths list and reference it under both
pull_request.paths and push.paths using the alias (*common_paths) so both
triggers reuse the same paths definition while keeping the existing entries
(".github/workflows/clp-package-helm.yaml", "taskfiles/helm.yaml",
"tools/deployment/package-helm/**").


permissions: {}

concurrency:
group: "${{github.workflow}}-${{github.ref}}"

# Cancel in-progress jobs for efficiency
cancel-in-progress: true
Comment on lines +18 to +22

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

cat -n .github/workflows/clp-package-helm.yaml

Repository: y-scope/clp

Length of output: 4480


🌐 Web query:

GitHub Actions concurrency group github.ref multiple branches parallel execution same job

💡 Result:

In GitHub Actions, only runs that resolve to the exact same concurrency.group value will block/cancel each other. So whether the “same job” can run in parallel across branches depends entirely on what string your group expression produces. (docs.github.com)

What github.ref does for multiple branches

  • On push events, github.ref is the full branch ref (for example refs/heads/main, refs/heads/feature-x). That means different branches produce different group keys, so they can run in parallel when you use group: ${{ github.ref }} (or include it in a longer string). (docs.github.com)
  • On pull_request events, github.ref is not the source branch; it’s typically a PR ref like refs/pull/<n>/merge, so concurrency will be “per PR ref,” not “per branch name.” (docs.github.com)

Recommended patterns

1) Parallel across branches, but serialized per-branch (common)

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

This allows branch A and branch B to run in parallel, but new runs on the same branch cancel/queue each other. (docs.github.com)

2) “Per source branch” behavior for PRs + pushes (avoid PR github.ref mismatch)

concurrency:
  group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }}
  cancel-in-progress: true

github.head_ref exists only for PR events, so the fallback avoids errors and keeps a stable “branch-like” key across event types. (docs.github.com)

If you share your trigger (push, pull_request, etc.) and your current concurrency: block, I can tell you exactly why your runs are (or aren’t) parallelizing.

Citations:


Serialise publishing to avoid gh-pages push races.

The concurrency group includes ${{ github.ref }}, which generates different group values for different branches. This allows the publish job on main and v* release branches to run in parallel. Since both push to the same gh-pages branch, simultaneous pushes create non-fast-forward failures. Add a publish-specific concurrency group to serialise updates.

🛠️ Suggested fix (publish-only concurrency)
   publish:
+    concurrency:
+      group: "${{github.workflow}}-gh-pages"
+      cancel-in-progress: true
     # Publish from `main` and `vA.B.C` release branches.
     if: >-
       github.event_name != 'pull_request'
       && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/v'))
🤖 Prompt for AI Agents
In @.github/workflows/clp-package-helm.yaml around lines 18 - 22, The workflow's
global concurrency group uses "${{ github.ref }}" which allows runs from
different branches to execute in parallel and causes gh-pages push races; update
the publishing job (the job named "publish") to use its own concurrency block
(or change the global block) so the group is unique for gh-pages pushes (e.g., a
publish-specific group string) and keep cancel-in-progress: true; modify the
concurrency.group value referenced in the workflow to a fixed publish-only
identifier for the publish job instead of including "${{ github.ref }}" so
publish runs are serialized and non-fast-forward failures are avoided.


jobs:
lint:
runs-on: "ubuntu-24.04"
steps:
- uses: "actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8" # v6.0.1
with:
submodules: "recursive"

# Fetch all history for all branches; otherwise, `helm lint` would complain about not
# finding the `origin/main` branch.
fetch-depth: 0

- name: "Install task"
shell: "bash"
run: "npm install -g @go-task/cli@3.44.0"

- name: "Lint Helm charts"
shell: "bash"
run: "task lint:check-helm"

publish:
# Publish from `main` and `vA.B.C` release branches.
if: >-
github.event_name != 'pull_request'
&& (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/v'))
needs: "lint"
runs-on: "ubuntu-24.04"
permissions:
# To push to the `gh-pages` branch.
contents: "write"
steps:
- uses: "actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8" # v6.0.1
with:
submodules: "recursive"

- name: "Install task"
shell: "bash"
run: "npm install -g @go-task/cli@3.44.0"

- name: "Package Helm chart"
shell: "bash"
run: "task helm:package"

- name: "Checkout branch `gh-pages`"
uses: "actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8" # v6.0.1
with:
path: "gh-pages"
ref: "gh-pages"

- name: "Get chart version"
id: "get-chart-version"
uses: "mikefarah/yq@065b200af9851db0d5132f50bc10b1406ea5c0a8" # v4.50.1
with:
cmd: "yq '.version' 'tools/deployment/package-helm/Chart.yaml'"

- name: "Update Helm repository"
id: "update-helm-repo"
shell: "bash"
run: |-
chart_tgz="clp-${{steps.get-chart-version.outputs.result}}.tgz"

# Skip if this chart version already exists.
if [[ -f "gh-pages/${chart_tgz}" ]]; then
echo "Chart ${chart_tgz} already exists, skipping publish."
echo "skip_publish=true" >> "$GITHUB_OUTPUT"
exit 0
fi

cp "build/clp-package-helm"/*.tgz "gh-pages/"

# Update index.yaml, merging with existing index if present.
. "build/toolchains/helm/env"
url="${{github.server_url}}/${{github.repository}}/raw/gh-pages"
if [[ -f "gh-pages/index.yaml" ]]; then
helm repo index "gh-pages" --merge "gh-pages/index.yaml" --url "${url}"
else
helm repo index "gh-pages" --url "${url}"
fi

- name: "Push to gh-pages branch"
if: "steps.update-helm-repo.outputs.skip_publish != 'true'"
shell: "bash"
working-directory: "gh-pages"
run: |-
git config user.name "$GITHUB_ACTOR"
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
git add "*.tgz" "index.yaml"
commit_message="ci(helm): Publish clp-${{steps.get-chart-version.outputs.result}}"
commit_message+=" from ${{github.ref_name}} (${{github.sha}})."
git commit -m "$commit_message"
git push
21 changes: 21 additions & 0 deletions docs/conf/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
"""Sphinx configuration file for CLP documentation."""

from datetime import datetime, timezone
from pathlib import Path

import yaml
from sphinx.application import Sphinx

# Constants
Expand Down Expand Up @@ -120,6 +122,24 @@ def setup(app: Sphinx) -> None:
app.connect("source-read", _replace_variable_placeholders)


def _get_helm_version_flag() -> str:
"""
Reads the Helm chart version from Chart.yaml and returns the appropriate version flag.

:return: "--version <version>" for stable releases, or "--devel" for dev versions.
"""
Comment thread
coderabbitai[bot] marked this conversation as resolved.
chart_yaml_path = (
Path(__file__).parent.parent.parent / "tools" / "deployment" / "package-helm" / "Chart.yaml"
)
chart = yaml.safe_load(chart_yaml_path.read_text())

version = chart.get("version")
if version is not None and "-dev" not in version:
return f"--version {version}"

return "--devel"
Comment on lines +131 to +140

@coderabbitai coderabbitai Bot Jan 22, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

# First, check if Chart.yaml exists at the specified path
find . -name "Chart.yaml" -type f

Repository: y-scope/clp

Length of output: 166


🏁 Script executed:

# Check the current state of the _get_helm_version_flag function and its context
cat -n docs/conf/conf.py | sed -n '120,150p'

Repository: y-scope/clp

Length of output: 1224


🏁 Script executed:

# Look for error handling patterns and how yaml is imported/used
rg "yaml\." docs/conf/conf.py -A 2 -B 2

Repository: y-scope/clp

Length of output: 241


🏁 Script executed:

# Find where _get_helm_version_flag is called
rg "_get_helm_version_flag" docs/conf/conf.py -B 2 -A 2

Repository: y-scope/clp

Length of output: 399


🏁 Script executed:

# Verify Chart.yaml exists at the expected location
find . -path "*/tools/deployment/package-helm/Chart.yaml" -type f -exec head -5 {} \;

Repository: y-scope/clp

Length of output: 211


🏁 Script executed:

# Check for any yaml imports and their usage patterns
rg "import yaml" docs/conf/conf.py

Repository: y-scope/clp

Length of output: 66


Add error handling to prevent doc build failures when Chart.yaml is missing or invalid.

The function is called during Sphinx setup to populate documentation variables. If Chart.yaml is missing, unreadable, or contains invalid YAML, the entire documentation build fails with no fallback. Wrap the file read and YAML parse in a try-except to gracefully return "--devel" on error.

Additionally, the docstring states the function returns an empty string "" for dev versions, but it actually returns "--devel". Update the docstring to match the implementation.

🛠️ Proposed fix
-    chart = yaml.safe_load(chart_yaml_path.read_text())
-
-    version = chart.get("version")
+    try:
+        chart = yaml.safe_load(chart_yaml_path.read_text()) or {}
+        version = chart.get("version")
+    except (FileNotFoundError, yaml.YAMLError, AttributeError):
+        return "--devel"
🤖 Prompt for AI Agents
In `@docs/conf/conf.py` around lines 131 - 140, The current logic that reads
Chart.yaml (variables chart_yaml_path, chart, version) can raise if the file is
missing or contains invalid YAML; wrap the chart_yaml_path.read_text() and
yaml.safe_load(...) in a try/except that catches IOError, OSError,
yaml.YAMLError (or a broad Exception) and on any error return "--devel" to avoid
failing the Sphinx build; also update the function docstring to state that for
dev or on error it returns "--devel" (not an empty string) so the docs match the
implementation.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Chart.yaml is not expected to be missing. If we ever move it, it is actually better to let the docs building fail so that developers can be reminded to update the docs.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@junhaoliao, understood! That's a reasonable approach—letting the build fail serves as an explicit signal when the file structure changes, which is consistent with the fail-fast philosophy I see in the CLP project.

One minor note: the docstring currently states the function returns "" for dev versions, but the implementation actually returns "--devel". You might want to update line 129 to say:

    :return: "--version <version>" for stable releases, or "--devel" for dev versions.

This is just a documentation accuracy fix and doesn't affect the fail-fast behavior.


✏️ Learnings added
Learnt from: junhaoliao
Repo: y-scope/clp PR: 1891
File: docs/conf/conf.py:131-140
Timestamp: 2026-01-22T01:18:27.853Z
Learning: In the CLP project's documentation build (docs/conf/conf.py), when _get_helm_version_flag() reads Chart.yaml, the team prefers to let the build fail if the file is missing or moved, rather than adding error handling with fallbacks. This fail-fast approach serves as a reminder to developers to update the documentation when file structures change.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.


🧠 Learnings used
Learnt from: Bill-hbrhbr
Repo: y-scope/clp PR: 1261
File: .github/workflows/clp-core-build.yaml:294-332
Timestamp: 2025-08-25T06:29:59.610Z
Learning: In the CLP project, Bill-hbrhbr prefers a "fail fast" approach for CI workflows - allowing potential command availability issues (like getconf in musllinux) to surface through CI failures rather than preemptively adding fallback logic, as they will fix issues when they occur.

Learnt from: junhaoliao
Repo: y-scope/clp PR: 1152
File: components/clp-package-utils/clp_package_utils/general.py:0-0
Timestamp: 2025-08-19T14:41:28.901Z
Learning: In the CLP codebase, prefer explicit failures over automatic directory creation in utility functions like dump_config. The user junhaoliao prefers to let file operations fail when parent directories don't exist, as this helps catch implementation errors during development rather than masking setup issues with automatic directory creation.

Learnt from: kirkrodrigues
Repo: y-scope/clp PR: 1885
File: docs/src/user-docs/guides-k8s-deployment.md:586-589
Timestamp: 2026-01-19T12:06:21.961Z
Learning: In the y-scope/clp project documentation built with Sphinx, relative paths work for linking to files within the repository, but directory links require GitHub URLs. When linking to directories (e.g., the Helm chart at tools/deployment/package-helm/), use GitHub URLs with DOCS_VAR_CLP_GIT_REF to keep them version-agnostic.

Learnt from: junhaoliao
Repo: y-scope/clp PR: 1466
File: .github/workflows/clp-rust-checks.yaml:14-15
Timestamp: 2025-10-22T21:14:12.225Z
Learning: Repository y-scope/clp: In GitHub Actions workflows (e.g., .github/workflows/clp-rust-checks.yaml), YAML anchors/aliases are acceptable and preferred to avoid duplication; if actionlint flags an alias node (e.g., on push.paths) as an error, treat it as a tool limitation and do not require inlining unless the team asks to silence the warning.

Learnt from: junhaoliao
Repo: y-scope/clp PR: 0
File: :0-0
Timestamp: 2025-10-22T21:02:31.113Z
Learning: Repository y-scope/clp: Maintain deterministic CI/builds for Rust; add a check to verify Cargo.lock is in sync with Cargo.toml without updating dependencies (non-mutating verification in clp-rust-checks workflow).



def _replace_variable_placeholders(_app: Sphinx, _docname: str, content: list[str]) -> None:
"""
Replaces each variable placeholder in the docs with the relevant value.
Expand All @@ -130,6 +150,7 @@ def _replace_variable_placeholders(_app: Sphinx, _docname: str, content: list[st
"""
placeholder_to_value = {
"DOCS_VAR_CLP_GIT_REF": CLP_GIT_REF,
"DOCS_VAR_HELM_VERSION_FLAG": _get_helm_version_flag(),
}
for placeholder, value in placeholder_to_value.items():
content[0] = content[0].replace(placeholder, value)
1 change: 1 addition & 0 deletions docs/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
myst-parser>=4.0.0
pydata-sphinx-theme>=0.16.0
PyYAML>=6.0.3
sphinx>=8.1.3
sphinx_design>=0.6.1
sphinx-copybutton>=0.5.2
Expand Down
26 changes: 14 additions & 12 deletions docs/src/user-docs/guides-k8s-deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,13 +113,11 @@ Once your cluster is ready, you can install CLP using the Helm chart.

### Getting the chart

The CLP Helm chart is located in the repository at
[`tools/deployment/package-helm/`][clp-helm-chart].
The CLP Helm chart is published to a [Helm repository][clp-helm-repo] hosted on GitHub Pages.

```bash
# Clone the repository (if you haven't already)
git clone --branch DOCS_VAR_CLP_GIT_REF https://github.com/y-scope/clp.git
cd clp/tools/deployment/package-helm
helm repo add clp https://y-scope.github.io/clp
helm repo update clp
```

#### Production cluster requirements (optional)
Expand Down Expand Up @@ -204,7 +202,7 @@ export CLP_COMPRESSION_WORKER_REPLICAS=1
export CLP_QUERY_WORKER_REPLICAS=1
export CLP_REDUCER_REPLICAS=1

helm install clp . \
helm install clp clp/clp DOCS_VAR_HELM_VERSION_FLAG \
--set clpConfig.data_directory="$CLP_HOME/var/data" \
--set clpConfig.logs_directory="$CLP_HOME/var/log" \
--set clpConfig.tmp_directory="$CLP_HOME/var/tmp" \
Expand All @@ -225,7 +223,7 @@ For multi-node clusters with shared storage mounted on all nodes (e.g., NFS/Ceph
`/etc/fstab`), enable distributed storage mode and configure multiple worker replicas:

```bash
helm install clp . \
helm install clp clp/clp DOCS_VAR_HELM_VERSION_FLAG \
--set distributedDeployment=true \
--set compressionWorker.replicas=3 \
--set queryWorker.replicas=3 \
Expand Down Expand Up @@ -288,7 +286,7 @@ credentials:
Install with custom values:

```bash
helm install clp . -f custom-values.yaml
helm install clp clp/clp DOCS_VAR_HELM_VERSION_FLAG -f custom-values.yaml
```

::::{tip}
Expand Down Expand Up @@ -348,7 +346,7 @@ To run compression workers, query workers, and reducers in separate node pools:
3. Install:

```bash
helm install clp . -f dedicated-scheduling.yaml
helm install clp clp/clp DOCS_VAR_HELM_VERSION_FLAG -f dedicated-scheduling.yaml
```

#### Shared node pool
Expand Down Expand Up @@ -397,7 +395,7 @@ To run all worker types in the same node pool:
3. Install:

```bash
helm install clp . -f shared-scheduling.yaml
helm install clp clp/clp DOCS_VAR_HELM_VERSION_FLAG -f shared-scheduling.yaml
```

---
Expand Down Expand Up @@ -524,7 +522,11 @@ kubectl exec -it <pod-name> -- /bin/bash
To debug Helm chart issues:

```bash
helm install clp . --dry-run --debug
# For debugging the published chart from the repository
helm install clp clp/clp DOCS_VAR_HELM_VERSION_FLAG --dry-run --debug

# For debugging local chart changes during development
helm install clp /path/to/local/chart --dry-run --debug
```

---
Expand Down Expand Up @@ -590,7 +592,7 @@ To tear down a `kubeadm` cluster:
[aks]: https://azure.microsoft.com/en-us/products/kubernetes-service
[api-server]: guides-using-the-api-server.md
[Cilium]: https://cilium.io/
[clp-helm-chart]: https://github.com/y-scope/clp/tree/DOCS_VAR_CLP_GIT_REF/tools/deployment/package-helm
[clp-helm-repo]: https://y-scope.github.io/clp
[clp-releases]: https://github.com/y-scope/clp/releases
[design-orchestration]: ../dev-docs/design-deployment-orchestration.md
[docker-compose-deployment]: guides-docker-compose-deployment.md
Expand Down
18 changes: 4 additions & 14 deletions docs/src/user-docs/quick-start/clp-json.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,20 +98,10 @@ EOF
Then, install the Helm chart:

```bash
# Download and extract the Helm chart from the CLP repository.
mkdir -p "$HOME/clp-package-helm"
curl \
--silent \
--location https://github.com/y-scope/clp/archive/refs/heads/DOCS_VAR_CLP_GIT_REF.tar.gz \
| tar \
--extract \
--gzip \
--strip-components=4 \
--directory "$HOME/clp-package-helm" \
"clp-DOCS_VAR_CLP_GIT_REF/tools/deployment/package-helm"
cd "$HOME/clp-package-helm"

helm install clp . \
helm repo add clp https://y-scope.github.io/clp
helm repo update clp

helm install clp clp/clp DOCS_VAR_HELM_VERSION_FLAG \
--set clpConfig.webui.port="$CLP_WEBUI_PORT" \
--set clpConfig.results_cache.port="$CLP_RESULTS_CACHE_PORT" \
--set clpConfig.api_server.port="$CLP_API_SERVER_PORT" \
Expand Down
18 changes: 4 additions & 14 deletions docs/src/user-docs/quick-start/clp-text.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,20 +108,10 @@ EOF
Then, install the Helm chart with clp-text configuration:

```bash
# Download and extract the Helm chart from the CLP repository.
mkdir -p "$HOME/clp-package-helm"
curl \
--silent \
--location https://github.com/y-scope/clp/archive/refs/heads/DOCS_VAR_CLP_GIT_REF.tar.gz \
| tar \
--extract \
--gzip \
--strip-components=4 \
--directory "$HOME/clp-package-helm" \
"clp-DOCS_VAR_CLP_GIT_REF/tools/deployment/package-helm"
cd "$HOME/clp-package-helm"

helm install clp . \
helm repo add clp https://y-scope.github.io/clp
helm repo update clp

helm install clp clp/clp DOCS_VAR_HELM_VERSION_FLAG \
--set clpConfig.package.storage_engine=clp \
--set clpConfig.package.query_engine=clp \
--set clpConfig.webui.port="$CLP_WEBUI_PORT" \
Expand Down
1 change: 1 addition & 0 deletions taskfile.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ includes:
deps: "taskfiles/deps/main.yaml"
docker-images: "taskfiles/docker-images.yaml"
docs: "taskfiles/docs.yaml"
helm: "taskfiles/helm.yaml"
lint: "taskfiles/lint.yaml"
tests: "taskfiles/tests/main.yaml"
toolchains: "taskfiles/toolchains.yaml"
Expand Down
19 changes: 19 additions & 0 deletions taskfiles/helm.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
version: "3"

includes:
toolchains: "toolchains.yaml"

vars:
G_PACKAGE_HELM_BUILD_DIR: "{{.G_BUILD_DIR}}/clp-package-helm"

tasks:
package:
vars:
OUTPUT_DIR: "{{.G_PACKAGE_HELM_BUILD_DIR}}"
deps: ["toolchains:helm"]
cmds:
- "rm -rf '{{.OUTPUT_DIR}}'"
- "mkdir -p '{{.OUTPUT_DIR}}'"
- |-
. "{{.G_HELM_TOOLCHAIN_ENV_FILE}}"
helm package "{{.ROOT_DIR}}/tools/deployment/package-helm" --destination "{{.OUTPUT_DIR}}"
Loading