Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ test-connect-interpreter-versions:
helm template ./charts/rstudio-connect \
--set launcher.enabled=false \
--show-only templates/deployment.yaml | \
grep "image\:.*rstudio-connect.*" | \
grep "image\:.*posit/connect\:.*" | \
awk -F": " '{print $2}' | \
xargs)

Expand Down
14 changes: 13 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,23 @@
[![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/rstudio)](https://artifacthub.io/packages/search?repo=rstudio)
[![GitHub license](https://img.shields.io/github/license/rstudio/helm.svg)](https://github.com/rstudio/helm/blob/main/LICENSE)

> [!IMPORTANT]
> **Chart version 0.20.0 contains breaking changes:**
>
> - Default images moved from `rstudio/` and `ghcr.io/rstudio/` to
> `posit/` on [Docker Hub](https://hub.docker.com/u/posit) and
> `ghcr.io/posit-dev/` on [GitHub Container Registry (GHCR)](https://github.com/orgs/posit-dev/packages).
> - The default tag format changed from `{tagPrefix}{appVersion}` to
> `{appVersion}-{os}`.
>
> If you are upgrading from an earlier version, read the
> [image migration guide](https://docs.posit.co/helm/docs/migrating-to-posit-images.html) first.

## Usage

1. Install [Helm](https://helm.sh). Please refer to Helm's [documentation](https://helm.sh/docs/) for more information on getting started.

2. Add the RStudio Helm repo:
2. Add the Helm repo:

```console
helm repo add rstudio https://helm.rstudio.com
Expand Down
3 changes: 3 additions & 0 deletions _quarto.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ project:
- examples/workbench/README.md
- examples/connect/README.md
- docs/customize.md
- docs/migrating-to-posit-images.qmd
- "*.qmd"

filters:
Expand Down Expand Up @@ -51,6 +52,8 @@ website:
contents:
- text: Overview
file: index.qmd
- text: Image migration guide
file: docs/migrating-to-posit-images.qmd
- section: "Posit Workbench"
contents:
- text: Overview
Expand Down
36 changes: 24 additions & 12 deletions charts/rstudio-connect/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,34 +1,46 @@
name: rstudio-connect
description: Official Helm chart for Posit Connect
version: 0.9.5
version: 0.20.0
apiVersion: v2
appVersion: 2026.04.1
icon: https://raw.githubusercontent.com/rstudio/helm/main/images/posit-icon-fullcolor.svg
home: https://www.rstudio.com
home: https://posit.co
sources:
- https://github.com/rstudio/helm
maintainers:
- name: sol-eng
email: docker@rstudio.com
email: docker@posit.co
url: https://github.com/sol-eng
dependencies:
- name: rstudio-library
version: 0.1.36
repository: https://helm.rstudio.com
annotations:
artifacthub.io/images: |
- name: rstudio-connect
image: rstudio/rstudio-connect:ubuntu2204-2026.04.1
- name: connect
image: posit/connect:2026.04.1-ubuntu-24.04
- name: connect-content-init
image: posit/connect-content-init:2026.04.1-ubuntu-24.04
artifacthub.io/license: MIT
artifacthub.io/links: |
- name: Docker Images
url: https://github.com/rstudio/rstudio-docker-products
- name: RStudio Community
url: https://community.rstudio.com/c/r-admin/5
- name: About Connect
url: https://www.rstudio.com/products/connect/
- name: About RStudio Team
url: https://www.rstudio.com/products/team/
url: https://posit.co/products/enterprise/connect/
- name: Connect Documentation
url: https://docs.posit.co/connect/
- name: Posit Helm Documentation
url: https://docs.posit.co/helm
- name: Container Images
url: https://github.com/posit-dev/images-connect
- name: Posit Community Forum
url: https://forum.posit.co/c/posit-professional-hosted
- name: GitHub Discussions
url: https://github.com/posit-dev/images/discussions
- name: About Posit Team
url: https://posit.co/products/enterprise/team/
artifacthub.io/recommendations: |
- url: https://artifacthub.io/packages/helm/rstudio/rstudio-workbench
- url: https://artifacthub.io/packages/helm/rstudio/rstudio-pm
- url: https://artifacthub.io/packages/helm/rstudio/posit-chronicle
keywords:
- "data science"
- "machine learning"
Expand Down
13 changes: 13 additions & 0 deletions charts/rstudio-connect/NEWS.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# Changelog

## 0.20.0

- **BREAKING**: Default images now pull from the `posit/` namespace on Docker Hub
- `image.repository` changed from `ghcr.io/rstudio/rstudio-connect` to `posit/connect`
- `launcher.defaultInitContainer.repository` changed to `posit/connect-content-init`
- `backends.kubernetes.defaultInitContainer.repository` changed to `posit/connect-content-init`
- Default content images updated to `posit/connect-content`
- Image tag format changed from `{tagPrefix}{appVersion}` to `{appVersion}-{os}`
- `image.tagPrefix` replaced by `image.os`; same for `launcher.defaultInitContainer` and `backends.kubernetes.defaultInitContainer`
- Update chart metadata links and branding.
- **BREAKING**: Remove `launcher.customRuntimeYaml`, `launcher.additionalRuntimeImages`, and bundled `default-runtime.yaml` / `default-runtime-pro.yaml`. Use `executionEnvironments` instead.
- Default Python executable updated to 3.14.4

## 0.9.5

- Bump Connect version to 2026.04.1
Expand Down
36 changes: 20 additions & 16 deletions charts/rstudio-connect/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Posit Connect

![Version: 0.9.5](https://img.shields.io/badge/Version-0.9.5-informational?style=flat-square) ![AppVersion: 2026.04.1](https://img.shields.io/badge/AppVersion-2026.04.1-informational?style=flat-square)
![Version: 0.20.0](https://img.shields.io/badge/Version-0.20.0-informational?style=flat-square) ![AppVersion: 2026.04.1](https://img.shields.io/badge/AppVersion-2026.04.1-informational?style=flat-square)

#### _Official Helm chart for Posit Connect_

Expand Down Expand Up @@ -30,11 +30,11 @@ To ensure reproducibility in your environment and insulate yourself from future

## Installing the chart

To install the chart with the release name `my-release` at version 0.9.5:
To install the chart with the release name `my-release` at version 0.20.0:

```{.bash}
helm repo add rstudio https://helm.rstudio.com
helm upgrade --install my-release rstudio/rstudio-connect --version=0.9.5
helm upgrade --install my-release rstudio/rstudio-connect --version=0.20.0
```

To explore other chart versions, look at:
Expand All @@ -45,6 +45,12 @@ helm search repo rstudio/rstudio-connect -l

## Upgrade guidance

### 0.20.0

- Chart version 0.20.0 switches default images from `ghcr.io/rstudio/` to the `posit/` namespace on Docker Hub (also available at `ghcr.io/posit-dev/`). See the [migration guide](https://docs.posit.co/helm/docs/migrating-to-posit-images.html) for details.
- Image tag format changed from `{tagPrefix}{appVersion}` to `{appVersion}-{os}`. The chart will fail with a clear error if you have `image.tagPrefix` set — replace it with `image.os`.
- `launcher.customRuntimeYaml` and `launcher.additionalRuntimeImages` have been removed. Use `executionEnvironments` instead.

### 0.9.0

- Chart version 0.9.0 adds support for the direct Kubernetes runner via `backends.kubernetes.enabled`. See the [upgrade guide](https://docs.posit.co/helm/examples/connect/upgrade-launcher-to-kubernetes/launcher-to-kubernetes.html) for details on transitioning from `launcher.enabled`.
Expand Down Expand Up @@ -199,8 +205,8 @@ can be set and the release can be upgraded to include the new value.

This chart supports [declarative management of execution environments](https://docs.posit.co/connect/admin/appendix/off-host/execution-environments/#declarative-management)
via `ExecutionEnvironments.ConfigFilePath`. Requires Connect version 2026.03.0 or later.
Unlike the legacy `launcher.customRuntimeYaml`, changes to `executionEnvironments`
take effect on every `helm upgrade` without requiring a pod restart or database reset.
Changes to `executionEnvironments` take effect on every `helm upgrade` without
requiring a pod restart or database reset.

When `executionEnvironments` is set, the chart renders the list into a dedicated
ConfigMap and mounts it into the Connect pod. Connect only manages the execution
Expand Down Expand Up @@ -268,11 +274,11 @@ The Helm `config` values are converted into the `rstudio-connect.gcfg` service c
| args | list | `[]` | The pod's run arguments. By default, it uses the container's default |
| backends.kubernetes.defaultInitContainer.enabled | bool | `true` | Whether to enable the defaultInitContainer. If disabled, you must ensure that the session components are available another way. Changing the default setting is an advanced option and not recommended. For more information on how Connect uses the session init container refer to https://docs.posit.co/connect/admin/appendix/off-host/arch-overview/#runtime-init-container |
| backends.kubernetes.defaultInitContainer.imagePullPolicy | string | `""` | The imagePullPolicy for the default initContainer |
| backends.kubernetes.defaultInitContainer.repository | string | `"ghcr.io/rstudio/rstudio-connect-content-init"` | The repository to use for the Content InitContainer image |
| backends.kubernetes.defaultInitContainer.os | string | `"ubuntu-24.04"` | The OS version for the image tag (e.g. ubuntu-24.04, ubuntu-22.04). Only used if tag is not defined |
| backends.kubernetes.defaultInitContainer.repository | string | `"posit/connect-content-init"` | The repository to use for the Content InitContainer image |
| backends.kubernetes.defaultInitContainer.resources | object | `{}` | Optional resources for the default initContainer |
| backends.kubernetes.defaultInitContainer.securityContext | object | `{}` | The securityContext for the default initContainer |
| backends.kubernetes.defaultInitContainer.tag | string | `""` | Overrides the image tag whose default is the chart appVersion. |
| backends.kubernetes.defaultInitContainer.tagPrefix | string | `"ubuntu2204-"` | A tag prefix for the Content InitContainer image (common selections: jammy-, ubuntu2204-). Only used if tag is not defined |
| backends.kubernetes.defaultResourceJobBase | object | `{}` | defaultResourceJobBase is an optional Kubernetes Job definition used as the base when launching content jobs. The chart automatically adds the init container and runtime volume when backends.kubernetes.defaultInitContainer.enabled is true. Only set this if you need to customize the job (e.g., add sidecars, node selectors, tolerations). https://kubernetes.io/docs/concepts/workloads/controllers/job/ |
| backends.kubernetes.defaultResourceServiceBase | object | `{}` | defaultResourceServiceBase contains the Kubernetes Service definition which is used as an overlay "base" when creating a content job's Service in Kubernetes. Conceptually this is similar to a Kustomize base. Connect then applies any required Service configuration on-top of the overlay base to produce a final Service definition. https://kubernetes.io/docs/concepts/services-networking/service/ https://kubernetes.io/docs/tasks/manage-kubernetes-objects/kustomization/#bases-and-overlays |
| backends.kubernetes.enabled | bool | `false` | Whether to enable off-host execution for running content-jobs in remote Kubernetes pods. |
Expand All @@ -297,31 +303,29 @@ The Helm `config` values are converted into the `rstudio-connect.gcfg` service c
| command | list | `[]` | The pod's run command. By default, it uses the container's default |
| config | object | [Posit Connect Configuration Reference](https://docs.posit.co/connect/admin/appendix/off-host/helm-reference/) | A nested map of maps that generates the rstudio-connect.gcfg file |
| deployment.annotations | object | `{}` | Additional annotations to add to the rstudio-connect deployment |
| executionEnvironments | list | `[]` (disabled) | Optional list of execution environments to manage declaratively. Requires Connect version 2026.03.0 or later. When set, the chart renders these into a ConfigMap, mounts it into the Connect pod, and sets ExecutionEnvironments.ConfigFilePath in the Connect configuration. Unlike launcher.customRuntimeYaml, changes take effect on every helm upgrade without requiring a pod restart or database reset. |
| executionEnvironments | list | `[]` (disabled) | Optional list of execution environments to manage declaratively. Requires Connect version 2026.03.0 or later. When set, the chart renders these into a ConfigMap, mounts it into the Connect pod, and sets ExecutionEnvironments.ConfigFilePath in the Connect configuration. Changes take effect on every helm upgrade without requiring a pod restart or database reset. |
| extraObjects | list | `[]` | Extra objects to deploy (value evaluated as a template) |
| fullnameOverride | string | `""` | The full name of the release (can be overridden) |
| image | object | `{"imagePullPolicy":"IfNotPresent","imagePullSecrets":[],"repository":"ghcr.io/rstudio/rstudio-connect","tag":"","tagPrefix":"ubuntu2204-"}` | Defines the Posit Connect image to deploy |
| image | object | `{"imagePullPolicy":"IfNotPresent","imagePullSecrets":[],"os":"ubuntu-24.04","repository":"posit/connect","tag":""}` | Defines the Posit Connect image to deploy |
| image.imagePullPolicy | string | `"IfNotPresent"` | The imagePullPolicy for the main pod image |
| image.imagePullSecrets | list | `[]` | an array of kubernetes secrets for pulling the main pod image from private registries |
| image.repository | string | `"ghcr.io/rstudio/rstudio-connect"` | The repository to use for the main pod image |
| image.os | string | `"ubuntu-24.04"` | The OS version for the image tag (e.g. ubuntu-24.04, ubuntu-22.04). Only used if tag is not defined |
| image.repository | string | `"posit/connect"` | The repository to use for the main pod image |
| image.tag | string | `""` | Overrides the image tag whose default is the chart appVersion. |
| image.tagPrefix | string | `"ubuntu2204-"` | A tag prefix for the server image (common selections: jammy-, ubuntu2204-). Only used if tag is not defined |
| ingress.annotations | object | `{}` | |
| ingress.enabled | bool | `false` | |
| ingress.hosts | string | `nil` | |
| ingress.ingressClassName | string | `""` | The ingressClassName for the ingress resource. Only used for clusters that support networking.k8s.io/v1 Ingress resources |
| ingress.tls | list | `[]` | |
| initContainers | bool | `false` | The initContainer spec that will be used verbatim |
| launcher.additionalRuntimeImages | list | `[]` | Deprecated, use `executionEnvironments` instead. Optional. Additional images to append to the end of the "launcher.customRuntimeYaml" (in the "images" key). If `customRuntimeYaml` is a "map", then "additionalRuntimeImages" will only be used if it is a "list". |
| launcher.customRuntimeYaml | string | `""` | Deprecated, use `executionEnvironments` instead. Optional. The runtime.yaml definition of Kubernetes runtime containers. If set to "base", will pull in the default runtime.yaml file. If set to "pro", will pull in the "pro" versions of the default runtime images (i.e. including the pro drivers at the cost of a larger image). Starting with Connect v2023.05.0, this configuration is used to bootstrap the initial set of execution environments the first time the server starts. If any execution environments already exist in the database, these values are ignored; execution environments are not created or modified during subsequent restarts. |
| launcher.defaultInitContainer | object | `{"enabled":true,"imagePullPolicy":"","repository":"ghcr.io/rstudio/rstudio-connect-content-init","resources":{},"securityContext":{},"tag":"","tagPrefix":"ubuntu2204-"}` | Image definition for the default Posit Connect Content InitContainer |
| launcher.defaultInitContainer | object | `{"enabled":true,"imagePullPolicy":"","os":"ubuntu-24.04","repository":"posit/connect-content-init","resources":{},"securityContext":{},"tag":""}` | Image definition for the default Posit Connect Content InitContainer |
| launcher.defaultInitContainer.enabled | bool | `true` | Whether to enable the defaultInitContainer. If disabled, you must ensure that the session components are available another way. |
| launcher.defaultInitContainer.imagePullPolicy | string | `""` | The imagePullPolicy for the default initContainer |
| launcher.defaultInitContainer.repository | string | `"ghcr.io/rstudio/rstudio-connect-content-init"` | The repository to use for the Content InitContainer image |
| launcher.defaultInitContainer.os | string | `"ubuntu-24.04"` | The OS version for the image tag (e.g. ubuntu-24.04, ubuntu-22.04). Only used if tag is not defined |
| launcher.defaultInitContainer.repository | string | `"posit/connect-content-init"` | The repository to use for the Content InitContainer image |
| launcher.defaultInitContainer.resources | object | `{}` | Optional resources for the default initContainer |
| launcher.defaultInitContainer.securityContext | object | `{}` | The securityContext for the default initContainer |
| launcher.defaultInitContainer.tag | string | `""` | Overrides the image tag whose default is the chart appVersion. |
| launcher.defaultInitContainer.tagPrefix | string | `"ubuntu2204-"` | A tag prefix for the Content InitContainer image (common selections: jammy-, ubuntu2204-). Only used if tag is not defined |
| launcher.enabled | bool | `true` | Whether to enable the launcher |
| launcher.extraTemplates | object | `{}` | extra templates to render in the template directory. |
| launcher.includeDefaultTemplates | bool | `true` | whether to include the default `job.tpl` and `service.tpl` files included with the chart |
Expand Down
10 changes: 8 additions & 2 deletions charts/rstudio-connect/README.md.gotmpl
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@

## Upgrade guidance

### 0.20.0

- Chart version 0.20.0 switches default images from `ghcr.io/rstudio/` to the `posit/` namespace on Docker Hub (also available at `ghcr.io/posit-dev/`). See the [migration guide](https://docs.posit.co/helm/docs/migrating-to-posit-images.html) for details.
- Image tag format changed from `{tagPrefix}{appVersion}` to `{appVersion}-{os}`. The chart will fail with a clear error if you have `image.tagPrefix` set — replace it with `image.os`.
- `launcher.customRuntimeYaml` and `launcher.additionalRuntimeImages` have been removed. Use `executionEnvironments` instead.

### 0.9.0

- Chart version 0.9.0 adds support for the direct Kubernetes runner via `backends.kubernetes.enabled`. See the [upgrade guide](https://docs.posit.co/helm/examples/connect/upgrade-launcher-to-kubernetes/launcher-to-kubernetes.html) for details on transitioning from `launcher.enabled`.
Expand Down Expand Up @@ -139,8 +145,8 @@ can be set and the release can be upgraded to include the new value.

This chart supports [declarative management of execution environments](https://docs.posit.co/connect/admin/appendix/off-host/execution-environments/#declarative-management)
via `ExecutionEnvironments.ConfigFilePath`. Requires Connect version 2026.03.0 or later.
Unlike the legacy `launcher.customRuntimeYaml`, changes to `executionEnvironments`
take effect on every `helm upgrade` without requiring a pod restart or database reset.
Changes to `executionEnvironments` take effect on every `helm upgrade` without
requiring a pod restart or database reset.

When `executionEnvironments` is set, the chart renders the list into a dedicated
ConfigMap and mounts it into the Connect pod. Connect only manages the execution
Expand Down
Loading
Loading