Skip to content

refactor(charts): embed service charts as openhands subcharts#695

Draft
jlav wants to merge 1 commit into
mainfrom
jl/embed-service-subcharts
Draft

refactor(charts): embed service charts as openhands subcharts#695
jlav wants to merge 1 commit into
mainfrom
jl/embed-service-subcharts

Conversation

@jlav

@jlav jlav commented Jun 9, 2026

Copy link
Copy Markdown
Member

Description

Follow-up to #665, which made the openhands chart the single source of truth for vetted dependency combinations by adding enabled flags everywhere.

This repo still vendored runtime-api, automation, plugin-directory, and integrations-hub as top-level charts, each versioned and published to GHCR on its own. But nothing consumes them standalone - they only ever ship as part of openhands. Keeping them independently versioned meant a change to any one of them needed its own version bump, its own publish, and a matching dependency-version bump in the umbrella, plus a pile of CI choreography to rewrite OCI refs to alpha previews on PRs.

This folds those four into charts/openhands/charts/ as standard embedded subcharts. Their versions are now frozen and changes ride along with an openhands version bump. That collapses the release path to match the model #665 set up.

crd-check stays published independently, since charts/infra depends on it by OCI reference.

Helm Chart Checklist

  • I have updated the version field in Chart.yaml for each modified chart
  • I have tested the chart upgrade path from the previous version
  • I have verified backwards compatibility with existing values.yaml configurations
  • I have updated the chart's README.md if there are any breaking changes or new required values

Additional Notes

The subchart dependency entries in the umbrella Chart.yaml are now repository-less with version: "*", kept only for their condition flags. The enabled gating from #665 carries over unchanged.

A couple of things worth flagging for review:

  • helm doesn't recurse into embedded subcharts when resolving dependencies, so the embedded charts' own deps (postgresql, minio, helm-release-pruner) would silently drop out of the package. CI and the Makefile now run helm dependency update on each embedded subchart before packaging the umbrella.
  • .gitignore changed from charts/**/charts to charts/**/charts/*.tgz so the embedded sources stay tracked while vendored archives stay ignored.

I verified helm template of the new layout renders byte-identical to the current OCI-based umbrella, make lint passes end-to-end (it previously couldn't even package the umbrella locally because of the unpublished automation OCI pin), and the update-script test suite is green. I haven't tested a live upgrade install from a previously published version, though.

Move runtime-api, automation, plugin-directory, and integrations-hub from
charts/<name>/ into charts/openhands/charts/ as embedded subcharts. They no
longer version or publish independently; changes ship via an openhands chart
version bump. crd-check stays published (charts/infra depends on it by OCI ref).

Follow-up to #665.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant