Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: switch to upstream openwebui helm chart #379

Merged
merged 7 commits into from
Feb 7, 2025
Merged
Show file tree
Hide file tree
Changes from 6 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
9 changes: 9 additions & 0 deletions .github/workflows/release-helm-chart.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,15 @@ jobs:
uses: azure/setup-helm@v4
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"

- name: Add Helm Dependency Repos
run: |
helm repo add open-webui https://helm.openwebui.com/
helm repo update

- name: Build Helm Dependencies
run: helm dependency build ./charts/kubeai

- name: Run chart-releaser
uses: helm/[email protected]
env:
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,5 @@ Chart.lock
site

/tmp

./charts/kubeai/charts/*.tgz
17 changes: 11 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -75,27 +75,32 @@ test-unit: fmt vet
test-integration: fmt vet envtest
KUBEBUILDER_ASSETS="$(shell $(ENVTEST) use $(ENVTEST_K8S_VERSION) --bin-dir $(LOCALBIN) -p path)" go test -v ./test/integration -coverprofile cover.integration.out

.PHONY: helm-dependency-build
helm-dependency-build:
helm repo add open-webui https://helm.openwebui.com/
helm dependency build charts/kubeai

.PHONY: test-e2e-quickstart
test-e2e-quickstart: skaffold
test-e2e-quickstart: skaffold helm-dependency-build
./test/e2e/run.sh quickstart

.PHONY: test-e2e-openai-python-client
.PHONY: test-e2e-openai-python-client helm-dependency-build
test-e2e-openai-python-client: skaffold
./test/e2e/run.sh openai-python-client --profile e2e-test-default

.PHONY: test-e2e-autoscaler-restart
test-e2e-autoscaler-restart: skaffold
test-e2e-autoscaler-restart: skaffold helm-dependency-build
./test/e2e/run.sh autoscaler-restart --profile e2e-test-autoscaler-restart

.PHONY: test-e2e-cache-shared-filesystem
test-e2e-cache-shared-filesystem: skaffold
test-e2e-cache-shared-filesystem: skaffold helm-dependency-build
./test/e2e/run.sh cache-shared-filesystem --profile e2e-test-default

.PHONY: test-e2e-engine-vllm-pvc
test-e2e-engine-vllm-pvc: skaffold
test-e2e-engine-vllm-pvc: skaffold helm-dependency-build
./test/e2e/run.sh engine-vllm-pvc --profile e2e-test-default

.PHONY: test-e2e-engine
.PHONY: test-e2e-engine helm-dependency-build
test-e2e-engine: skaffold
CACHE_PROFILE=$(CACHE_PROFILE) ./test/e2e/run.sh engine-$(ENGINE) --profile e2e-test-default

Expand Down
7 changes: 4 additions & 3 deletions charts/kubeai/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,10 @@ appVersion: "v0.14.0"
dependencies:
# Open Web UI is an open source ChatGPT-like user interface.
# https://docs.openwebui.com/
- name: openwebui
condition: openwebui.enabled
version: 0.2.0
- name: open-webui
condition: open-webui.enabled
repository: https://helm.openwebui.com/
Copy link
Contributor

Choose a reason for hiding this comment

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

why do we need to include the tgz file itself if we already specify the repo here? I probably prefer to remove the tgz file and just point to upstream helm repo url.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I have asked myself the same question. Does it still work without the tgz? I will try that.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Without the tgz:

Error: INSTALLATION FAILED: An error occurred while checking for chart dependencies. You may need to run `helm dependency build` to fetch missing dependencies: found in Chart.yaml, but missing in charts/ directory: open-webui

Copy link
Contributor

Choose a reason for hiding this comment

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

Will it automatically download the tgz file somehow and we can simply put it in .gitignore?

Copy link
Contributor

Choose a reason for hiding this comment

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

I will play around with this a bit more as well to see if we can figure out a way to omit these tgz files. If not, we can just include them as well.

Copy link
Contributor

Choose a reason for hiding this comment

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

Generated Artifacts:
The .tgz file created by helm dependency build is a generated artifact. Since it’s derived from the dependency information in your Chart.yaml, it can be recreated at any time by running that command.

Version Control Best Practices:
It’s generally best practice to avoid committing generated files to Git. Instead, you should commit the source (in this case, the dependency definitions in Chart.yaml) and let the build process handle generating the required artifacts.

Vendoring vs. Rebuilding:
The only time you might consider committing the .tgz files is if you need your chart to be completely self-contained (for example, to support offline installations or to ensure absolute reproducibility without fetching dependencies). However, if your users can run helm dependency build as part of their workflow, it’s simpler and cleaner not to commit them.

Publishing as a Helm Repo:
When you package your chart for publication in a Helm repo (using helm package), the packaging process will include your dependencies appropriately. The repository consumers will download the packaged chart, not the raw Git repo, so committing the .tgz file is unnecessary.

^^ AI had this to say. I think we're probably fine with not including the tgz as long as we run helm dependency build during local development. The publishing will automatically include the depedencies. I will make some changes to this PR to try this out.

Copy link
Contributor

Choose a reason for hiding this comment

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

I was able to remove the tgz file from repo and it should be included in the release packaging workflow as well. I will make sure to validate that in the upcoming release.

version: 5.4.0

keywords: ["LLM", "AI"]

Expand Down
23 changes: 0 additions & 23 deletions charts/kubeai/charts/openwebui/.helmignore

This file was deleted.

24 changes: 0 additions & 24 deletions charts/kubeai/charts/openwebui/Chart.yaml

This file was deleted.

22 changes: 0 additions & 22 deletions charts/kubeai/charts/openwebui/templates/NOTES.txt

This file was deleted.

62 changes: 0 additions & 62 deletions charts/kubeai/charts/openwebui/templates/_helpers.tpl

This file was deleted.

72 changes: 0 additions & 72 deletions charts/kubeai/charts/openwebui/templates/deployment.yaml

This file was deleted.

32 changes: 0 additions & 32 deletions charts/kubeai/charts/openwebui/templates/hpa.yaml

This file was deleted.

61 changes: 0 additions & 61 deletions charts/kubeai/charts/openwebui/templates/ingress.yaml

This file was deleted.

Loading
Loading