38 lines
1.7 KiB
Markdown
38 lines
1.7 KiB
Markdown
# ComfyUI Helm chart
|
|||
|
|
|
||
|
|
This adapter chart runs the public ComfyUI container image and keeps model,
|
||
|
|
input, output, and user data in one PVC. It avoids the image's boot-time custom
|
||
|
|
node installation path by starting ComfyUI directly. The image tag and tested
|
||
|
|
ComfyUI release are recorded in `Chart.yaml`.
|
||
|
|
|
||
|
|
Install the public chart:
|
||
|
|
|
||
|
|
```sh
|
||
|
|
helm repo add brunner.ninja https://brunner.ninja/charts
|
||
|
|
helm repo update brunner.ninja
|
||
|
|
helm upgrade --install comfyui brunner.ninja/comfyui \
|
||
|
|
--namespace comfyui --create-namespace --wait --timeout 10m
|
||
|
|
```
|
||
|
|
|
||
|
|
Set `persistence.existingClaim` to reuse a pre-existing model/data volume. For
|
||
|
|
another cluster, leave it empty and configure `persistence.size` and
|
||
|
|
`persistence.storageClass`. `args`, node placement, and resource sizing can be
|
||
|
|
overridden for the available CPU/GPU hardware. The chart creates an internal
|
||
|
|
Service on port 8188; it does not expose the editor publicly by default.
|
||
|
|
|
||
|
|
This repository owns the portable Deployment, probes, Service, data-directory
|
||
|
|
initialization, and optional PVC. A consuming GitOps repository owns only its
|
||
|
|
selected chart version and cluster values. The homelab instance is managed by
|
||
|
|
the separate `homelab-gitops` Application `comfyui` in namespace `ollama`.
|
||
|
|
|
||
|
|
## Validation and releases
|
||
|
|
|
||
|
|
Run `./test.sh` to lint and render the chart and verify that its Service,
|
||
|
|
selectors, ports, PVC, mounts, and probes fit together.
|
||
|
|
|
||
|
|
Git tags follow the application release (`v0.8.2` for ComfyUI 0.8.2). CI uses
|
||
|
|
`git describe --tags --long` for immutable package versions; later chart-only
|
||
|
|
commits retain their count and Git hash. The public chart repository is
|
||
|
|
`brunner.ninja/charts`. Gitea Actions needs `PACKAGE_USERNAME`, `PACKAGE_TOKEN`,
|
||
|
|
and `GITOPS_TOKEN`; the workflow has no Kubernetes credentials.
|