helm: bundle DisaggregatedSet into the lws chart (#871)
Ship the DisaggregatedSet CRD, RBAC, and validating webhook from the unified `charts/lws` Helm chart so users can deploy LeaderWorkerSet and DisaggregatedSet with a single `helm install`. The controller is already bundled in the same manager binary, so no Deployment, ServiceAccount, or image changes are required. The DisaggregatedSet CRD ships under `charts/lws/crds/`, matching the existing `crds/` layout used for the LeaderWorkerSet CRD (the same pattern as the sibling jobset chart). Because Helm installs `crds/` content during `helm install` only, the chart README documents the manual `kubectl apply` step needed before `helm upgrade` from an earlier release that did not ship the CRD. Migrating to the `templates/crd/` layout (the kueue pattern) would change the upgrade contract and is intentionally out of scope. The manager `ClusterRole` is extended unconditionally with the DisaggregatedSet permissions because the bundled controller always starts, even when `enableDisaggregatedSet` is false. The flag remains useful for opting into the user-facing editor/viewer/admin `ClusterRoles` and the validating webhook entry. The validating webhook path and rule `apiVersions` are registered as `v1` so requests reach the handler the controller registers in `pkg/webhooks/disaggregatedset/disaggregatedset_webhook.go`. The standalone DisaggregatedSet chart used `v1alpha1`; the merged chart fixes this to match the actual API group/version that exists under `api/disaggregatedset/v1`. The `crds` Makefile target now splits the kustomize output into one file per CRD (`leaderworkerset.x-k8s.io_leaderworkersets.yaml` and `disaggregatedset.x-k8s.io_disaggregatedsets.yaml`), with `test -s` guards so a missing CRD fails the build rather than silently producing an empty file. The previous single-file target had been writing both CRDs into the LeaderWorkerSet filename. The standalone `disaggregatedset/charts/disaggregatedset` chart is marked deprecated in its README and `Chart.yaml`. Removal is tracked separately as the final step of https://github.com/kubernetes-sigs/lws/issues/789. Signed-off-by: Kay Yan <kay.yan@daocloud.io>
K
Kay Yan committed
7d64d66a1e46d258d281aa38001ca05593d8724f
Parent: 1d9204a
Committed by GitHub <noreply@github.com>
on 6/3/2026, 12:25:49 PM