This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is the official Helm charts repository for Posit (formerly RStudio) products: Connect, Workbench, Package Manager, and Chronicle.
just setup # Install helm-docs
just docs # Generate README.md files from templates
just test # Run helm unittest on all charts
just test <chart-name> # Run tests for specific chart (e.g., just test rstudio-connect)
just lint # Run chart-testing lint (ct lint)
just update-lock # Update Chart.lock files for all chartscd charts/<chart-name>
make lint # Lint chart with multiple values files
make template # Generate Kubernetes manifests
make template-debug # Generate with debug outputrstudio-libraryis a library chart containing reusable templates intemplates/*.tpl- All product charts depend on it via
repository: https://helm.rstudio.com - Key templates:
_helpers.tpl,_config.tpl,_rbac.tpl,_ingress.tpl,_license-*.tpl,_launcher-templates.tpl
charts/<chart-name>/
├── Chart.yaml # Metadata and dependencies
├── values.yaml # Default configuration
├── README.md.gotmpl # Documentation template (edit this, not README.md)
├── templates/ # Kubernetes resource templates
├── ci/ # Test value files (excluded from package)
├── tests/ # helm-unittest test files
└── files/ # Static files (launcher templates)
- READMEs are auto-generated using helm-docs from
README.md.gotmpltemplates - Never edit
README.mddirectly - edit the.gotmpltemplate - CI auto-generates and commits docs back to PRs
- Version bumping is mandatory: Any change (including README templates) requires bumping the chart version in
Chart.yaml - NEWS update required: All chart changes require an update to the chart's NEWS.md file
- Run
make lint: Runmake lintin the chart directory for all chart changes - CI runs only on local branches: PRs from forks won't trigger full CI - contributors need branch access
- Library chart changes propagate: Changes to
rstudio-libraryaffect all dependent charts
Tests use helm-unittest plugin. Test files in tests/*.yaml:
suite: Test Suite Name
templates:
- deployment.yaml
tests:
- it: should render correctly
set:
key: value
asserts:
- isKind:
of: DeploymentTemplate inheritance for Kubernetes job execution:
- Original templates:
examples/launcher-templates/default/<version> - Helm-modified versions:
examples/launcher-templates/helm/<version>-vN - Chart-embedded:
charts/<chart>/files/
Template versions follow product versions, not launcher versions. Helm modifications use vN suffix.
Install just using your package manager.
The just lint command requires the following tools:
You also need to add the RStudio Helm repository:
helm repo add rstudio https://helm.rstudio.com
helm repo update