Migrating to Posit images
Chart version 0.20.0 replaces the rstudio/ and ghcr.io/rstudio/ default images with new images under posit/ on Docker Hub and ghcr.io/posit-dev/ on GitHub Container Registry (GHCR).
Docker Hub applies rate limits to unauthenticated and free-tier pulls. For production clusters, consider using ghcr.io/posit-dev/ or a pull-through cache to avoid throttling.
Breaking change: default tags moved from {tagPrefix}{appVersion} to {appVersion}-{os}, following the {version}-{variant} convention used by official Docker images. Update image references before upgrading.
The default OS changed from Ubuntu 22.04 to Ubuntu 24.04 across all products. The new images bundle a single R version and a single Python version instead of two of each. Set image.os to ubuntu-22.04 if you need to stay on the previous OS.
If you never set image.repository, image.tagPrefix, or image.tag, you do not need to change anything.
If you mirror images to a private registry, update the repository path. Make sure your mirror tags follow the new {appVersion}-{os} format, or pin image.tag to an exact value.
Posit Connect
Images are renamed as follows:
ghcr.io/rstudio/rstudio-connect→posit/connectghcr.io/rstudio/content-base/content-pro→posit/connect-contentghcr.io/rstudio/rstudio-connect-content-init→posit/connect-content-init
See the images-connect repository for image-specific migration details.
Old default
image:
repository: "ghcr.io/rstudio/rstudio-connect"
tagPrefix: ubuntu2204-New default
image:
repository: "posit/connect"
os: "ubuntu-24.04"These values can be configured as follows:
image.os: OS variant (default:ubuntu-24.04)image.tag: full tag override, bypassesosandappVersionimage.repository: useghcr.io/posit-dev/connectfor GHCR
Removed values
These values cause a hard error if set:
image.tagPrefix: useimage.osinsteadlauncher.defaultInitContainer.tagPrefix: uselauncher.defaultInitContainer.osinsteadbackends.kubernetes.defaultInitContainer.tagPrefix: usebackends.kubernetes.defaultInitContainer.osinsteadlauncher.customRuntimeYaml: useexecutionEnvironmentsinsteadlauncher.additionalRuntimeImages: useexecutionEnvironmentsinstead
The chart defaults for config.Python.Executable and config.Quarto.Executable changed to match the new server image. If you override these values, verify the paths exist in your image.
Python: /opt/python/3.12.11/bin/python and /opt/python/3.13.9/bin/python → /opt/python/3.14.4/bin/python
Quarto: /opt/quarto/1.8.25/bin/quarto → /usr/local/bin/quarto
Connect Content images
Content runtime images moved from ghcr.io/rstudio/content-base and content-pro to a single posit/connect-content repository. The base and pro variants are now differentiated by tag suffix rather than separate repos:
- Base:
posit/connect-content:R4.6.0-python3.14.4-ubuntu-24.04 - Pro:
posit/connect-content:R4.6.0-python3.14.4-ubuntu-24.04-pro
Configure content images through the executionEnvironments value:
values.yaml
executionEnvironments:
- name: posit/connect-content:R4.6.0-python3.14.4-ubuntu-24.04
title: "R 4.6.0 / Python 3.14.4"
matching: any
python:
installations:
- version: "3.14.4"
path: /opt/python/3.14.4/bin/python3
r:
installations:
- version: "4.6.0"
path: /opt/R/4.6.0/bin/RFor available tags and R/Python combinations, see the images-connect repository.
Posit Workbench
Images are renamed as follows:
rstudio/rstudio-workbench→posit/workbenchrstudio/r-session-complete→posit/workbench-sessionrstudio/workbench-session→posit/workbench-sessionrstudio/workbench-session-init→posit/workbench-session-initrstudio/workbench-positron-init→posit/workbench-positron-init
See the images-workbench repository for image-specific migration details.
Server image
Old default
image:
repository: "rstudio/rstudio-workbench"
tagPrefix: ubuntu2204-New default
image:
repository: "posit/workbench"
os: "ubuntu-24.04"These values can be configured as follows:
image.os: OS variant (default:ubuntu-24.04)image.tag: full tag override, bypassesosandappVersionimage.repository: useghcr.io/posit-dev/workbenchfor GHCR
Workbench Session image
Session image tags now use three separate values instead of a single pinned tag string:
Old default
session:
image:
repository: "rstudio/workbench-session"
tagPrefix: ubuntu2204-New default
session:
image:
repository: "posit/workbench-session"
os: "ubuntu-24.04"
rVersion: "4.5.2"
pythonVersion: "3.14.3"These values can be configured as follows:
session.image.rVersion: R version (default:4.5.2)session.image.pythonVersion: Python version (default:3.14.3)session.image.os: OS variant (default:ubuntu-24.04)session.image.tag: full tag override, bypasses all three
Removed values
These values cause a hard error if set:
image.tagPrefix: useimage.osinsteadsession.image.tagPrefix: usesession.image.os,session.image.rVersion, andsession.image.pythonVersioninstead
Posit Package Manager
Images are renamed as follows:
rstudio/rstudio-package-manager→posit/package-manager
See the images-package-manager repository for image-specific migration details.
Old default
image:
repository: "rstudio/rstudio-package-manager"
tagPrefix: ubuntu2204-New default
image:
repository: "posit/package-manager"
os: "ubuntu-24.04"These values can be configured as follows:
image.os: OS variant (default:ubuntu-24.04)image.tag: full tag override, bypassesosandappVersionimage.repository: useghcr.io/posit-dev/package-managerfor GHCR
Removed values
These values cause a hard error if set:
image.tagPrefix: useimage.osinstead
Verifying the upgrade
Run helm diff upgrade before applying to preview the rendered manifests:
Terminal
helm diff upgrade my-release rstudio/<chart-name> \
--version <target-version> \
-f my-values.yamlCheck that each image: reference resolves to a real tag:
All products:
- Server pod:
posit/<product>:{appVersion}-{os}
Connect:
- Content runtime:
posit/connect-content:R{rVersion}-python{pythonVersion}-{os} - Content init container:
posit/connect-content-init:{appVersion}-{os}
Workbench:
- Session image:
posit/workbench-session:R{rVersion}-python{pythonVersion}-{os} - Session init container:
posit/workbench-session-init:{appVersion}-{os} - Positron init container:
posit/workbench-positron-init:{positronVersion}