Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 3 additions & 0 deletions .github/workflows/chart-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,9 @@ jobs:
- name: Set up Helm
uses: azure/setup-helm@v4

- name: Add rstudio helm repo
run: helm repo add rstudio https://helm.rstudio.com

- uses: extractions/setup-just@v2

- name: Run executable verification for default interpreters
Expand Down
10 changes: 7 additions & 3 deletions Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -88,31 +88,35 @@ test chart='all':

test-connect-interpreter-versions:
#!/usr/bin/env bash
set -xe
set -euo pipefail
cd ./charts/rstudio-connect && helm dependency build && cd -

# find the default image
image=$(
helm template ./charts/rstudio-connect \
--set launcher.enabled=false \
--show-only templates/deployment.yaml | \
grep "image\:.*rstudio-connect.*" | \
awk -F": " '{print $2}' | \
xargs)

for lang in "Python" "Quarto" "R"
do
echo "Testing $lang"

# print the default connect config file for local execution in ini format
# print the section and grep for the Executables to find each interpreter
executables=$(
helm template ./charts/rstudio-connect \
--set config.Launcher.Enabled=false \
--set launcher.enabled=false \
--show-only templates/configmap.yaml | \
sed -n -e "/\[$lang\]/,/\[*\]/ p" | \
grep Executable | awk -F= '{print $2}' | \
xargs)
xargs || echo "")

for ex in $executables
do
echo "Checking $ex"
docker run --rm $image /bin/bash -c "command -v $ex"
done
done
Expand Down
2 changes: 1 addition & 1 deletion charts/rstudio-connect/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: rstudio-connect
description: Official Helm chart for Posit Connect
version: 0.8.29
version: 0.8.30
apiVersion: v2
appVersion: 2026.02.0
icon: https://raw.githubusercontent.com/rstudio/helm/main/images/posit-icon-fullcolor.svg
Expand Down
4 changes: 4 additions & 0 deletions charts/rstudio-connect/NEWS.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Changelog

## 0.8.30

- Fix connect-version-check in CI

## 0.8.29

- Re-enable TensorFlow serving and remove executable path from Connect configuration
Expand Down
6 changes: 3 additions & 3 deletions charts/rstudio-connect/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Posit Connect

![Version: 0.8.29](https://img.shields.io/badge/Version-0.8.29-informational?style=flat-square) ![AppVersion: 2026.02.0](https://img.shields.io/badge/AppVersion-2026.02.0-informational?style=flat-square)
![Version: 0.8.30](https://img.shields.io/badge/Version-0.8.30-informational?style=flat-square) ![AppVersion: 2026.02.0](https://img.shields.io/badge/AppVersion-2026.02.0-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.8.29:
To install the chart with the release name `my-release` at version 0.8.30:

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

To explore other chart versions, look at:
Expand Down
4 changes: 2 additions & 2 deletions charts/rstudio-connect/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -438,13 +438,13 @@ config:
# https://docs.posit.co/connect/admin/python/
Executable:
- /opt/python/3.12.11/bin/python
- /opt/python/3.11.13/bin/python
- /opt/python/3.13.9/bin/python
Comment on lines 440 to +441
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this a significant change for end-users? Is there any reason to keep 3.11 around?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, we only support 2 versions of Python? 😞

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dbkegley Connect was significantly behind the other products in its dependency versions to where I had some issues raised related to versions being out of sync. I thought I had gotten approval to make these changes, but it wasn't given enough thought as is clear by the fact I forgot to update the charts.

We should have a conversation about how we can better manage synchronizing the image config with the helm config going forward and/or accelerate our move to the new images repos. Since Helm overrides the configs in the image, which we do try to keep up to date, it's always going to have a lagging problem unless we modify our release workflow. The new images should make that process easier since it will heavily diminish our chances of making a breaking in-release change due to each release pinning to versions present when the release is initially created. We should at least add a step to check dependency versions and consider upgrades/patches when updating the image and the Helm charts, with particular scrutiny over making sure the Helm chart dependency versions will match the image dependency versions for the tag being targeted.

As @kfeinauer said, we can provide multiple Python versions in the Connect image, but it's an image size issue for rstudio-docker-products. The new images use uv which significantly cuts down the Python installation size, but this repo still uses python-builds. We can include an additional version to mitigate the issue if you want, but it will inflate the image by around 700mb if memory serves. It's not as hefty as additional R versions at least.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ianpittwood Can weigh in more here, but we can support more than 2 versions of Python, but with the current way of distributing Python in the images it is quite expensive in terms of size (the new images will use uv which is much more space efficient).

We could add back in Python 3.11.13 alongside the newer 3.13.9 to prevent a breakage for customers using Helm. Should we consider going down this route (and taking the size penalty), or should we proceed with a version break?

We should have consulted you more about upgrading Python, so apologies there. Connect was very behind the other products on Python version so we decided to update to keep the products more in parity, but we understand that dropping Python versions is a big deal for Connect so we should have gotten buy-in before doing so.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Totally understand why the change was made since we were way behind. I just wanted to make sure it was flagged so we could start the discussion about how we can change the process going forward. Right now it's challenging for us to time these upgrades in order to avoid breakages. We like to coordinate the upgrades with Connect version bumps which allows us to call out the change in the image/helm release notes and give customers a chance to plan to the change proactively.

We should at least add a step to check dependency versions and consider upgrades/patches when updating the image and the Helm charts, with particular scrutiny over making sure the Helm chart dependency versions will match the image dependency versions for the tag being targeted.

This PR fixes the CI checks that enforce this for the helm chart but we are lacking similar checks on the images repo upstream.

We could add back in Python 3.11.13 alongside the newer 3.13.9 to prevent a breakage for customers using Helm. Should we consider going down this route (and taking the size penalty), or should we proceed with a version break?

Given that this has been broken for a while now, I don't think we need to worry about re-adding the old version.

We should have a conversation about how we can better manage synchronizing the image config with the helm config going forward and/or accelerate our move to the new images repos. Since Helm overrides the configs in the image, which we do try to keep up to date, it's always going to have a lagging problem unless we modify our release workflow. The new images should make that process easier since it will heavily diminish our chances of making a breaking in-release change due to each release pinning to versions present when the release is initially created.

Agreed, let's move this discussion offline for now and make an announcement once we've reached a consensus on how we want to move forward. I think the migration to the new images is one part of the equation. I'd like to explore what it would look like to make the min images the helm chart defaults and rely more on executable scanning so we can eliminate the need to explicitly configure the interpreter versions.

Quarto:
Enabled: true
# Note: The `Executable` listed below is only used for Local Execution.
# For Off-Host Execution, Quarto versions are defined by the set of Execution Environments
# https://docs.posit.co/connect/admin/quarto/
Executable: "/opt/quarto/1.4.557/bin/quarto"
Executable: "/opt/quarto/1.8.25/bin/quarto"
TensorFlow:
Enabled: true
# For off-host Execution, TensorFlow versions are defined by the set of Execution Environments https://docs.posit.co/connect/admin/tensorflow/
Expand Down
Loading