diff --git a/.github/workflows/chart-test.yaml b/.github/workflows/chart-test.yaml index 3bf4391e..00543db9 100644 --- a/.github/workflows/chart-test.yaml +++ b/.github/workflows/chart-test.yaml @@ -84,3 +84,22 @@ jobs: if: ${{ github.ref == 'refs/heads/main' }} run: ct install --target-branch main --all --chart-dirs charts --chart-dirs other-charts continue-on-error: true + + check-versions-connect: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Set up Helm + uses: azure/setup-helm@v3 + with: + version: v3.6.3 + + - uses: extractions/setup-just@v2 + + - name: Run executable verification for default interpreters + run: | + just test-connect-interpreter-versions diff --git a/Justfile b/Justfile index a4a5cf76..9afbf6f2 100644 --- a/Justfile +++ b/Justfile @@ -67,3 +67,34 @@ snapshot-rsw-diff: {{ DIFF }} $file $file.lock fi done + +test-connect-interpreter-versions: + #!/usr/bin/env bash + set -xe + cd ./charts/rstudio-connect && helm dependency build && cd - + + # find the default image + image=$( + helm template ./charts/rstudio-connect \ + --show-only templates/deployment.yaml | \ + grep "image\:.*rstudio-connect.*" | \ + awk -F": " '{print $2}' | \ + xargs) + + for lang in "Python" "Quarto" "R" + do + # 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 \ + --show-only templates/configmap.yaml | \ + sed -n -e "/\[$lang\]/,/\[*\]/ p" | \ + grep Executable | awk -F= '{print $2}' | \ + xargs) + + for ex in $executables + do + docker run --rm $image /bin/bash -c "command -v $ex" + done + done diff --git a/charts/rstudio-connect/Chart.yaml b/charts/rstudio-connect/Chart.yaml index c34a5567..d0e38f81 100644 --- a/charts/rstudio-connect/Chart.yaml +++ b/charts/rstudio-connect/Chart.yaml @@ -1,6 +1,6 @@ name: rstudio-connect description: Official Helm chart for RStudio Connect -version: 0.6.3 +version: 0.6.4 apiVersion: v2 appVersion: 2024.03.0 icon: https://rstudio.com/wp-content/uploads/2018/10/RStudio-Logo-Flat.png diff --git a/charts/rstudio-connect/NEWS.md b/charts/rstudio-connect/NEWS.md index bd7a237b..16f13201 100644 --- a/charts/rstudio-connect/NEWS.md +++ b/charts/rstudio-connect/NEWS.md @@ -1,5 +1,10 @@ # Changelog +## 0.6.4 + +- Update the default content images in `default-runtime.yaml` and `default-runtime-pro.yaml` to include newer R, Python and Quarto versions. +- Enable Python and Quarto by default in `values.yaml` when running in local or off-host execution mode. + ## 0.6.3 - Bump Chronicle Agent to version 2024.03.0 diff --git a/charts/rstudio-connect/README.md b/charts/rstudio-connect/README.md index 22649e63..35600503 100644 --- a/charts/rstudio-connect/README.md +++ b/charts/rstudio-connect/README.md @@ -1,6 +1,6 @@ # Posit Connect -![Version: 0.6.3](https://img.shields.io/badge/Version-0.6.3-informational?style=flat-square) ![AppVersion: 2024.03.0](https://img.shields.io/badge/AppVersion-2024.03.0-informational?style=flat-square) +![Version: 0.6.4](https://img.shields.io/badge/Version-0.6.4-informational?style=flat-square) ![AppVersion: 2024.03.0](https://img.shields.io/badge/AppVersion-2024.03.0-informational?style=flat-square) #### _Official Helm chart for RStudio Connect_ @@ -26,11 +26,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.6.3: +To install the chart with the release name `my-release` at version 0.6.4: ```bash helm repo add rstudio https://helm.rstudio.com -helm upgrade --install my-release rstudio/rstudio-connect --version=0.6.3 +helm upgrade --install my-release rstudio/rstudio-connect --version=0.6.4 ``` To explore other chart versions, take a look at: diff --git a/charts/rstudio-connect/default-runtime-pro.yaml b/charts/rstudio-connect/default-runtime-pro.yaml index a0fa3b18..a94522a2 100644 --- a/charts/rstudio-connect/default-runtime-pro.yaml +++ b/charts/rstudio-connect/default-runtime-pro.yaml @@ -1,12 +1,12 @@ name: Kubernetes images: - - name: ghcr.io/rstudio/content-pro:r3.6.3-py3.8.16-ubuntu2204 + name: ghcr.io/rstudio/content-pro:r3.6.3-py3.8.19-ubuntu2204 python: installations: - - path: /opt/python/3.8.16/bin/python3 - version: 3.8.16 + path: /opt/python/3.8.19/bin/python3 + version: 3.8.19 r: installations: - @@ -14,15 +14,15 @@ images: version: 3.6.3 quarto: installations: - - path: /opt/quarto/1.3.340/bin/quarto - version: 1.3.340 + - path: /opt/quarto/1.3.450/bin/quarto + version: 1.3.450 - - name: ghcr.io/rstudio/content-pro:r4.0.5-py3.9.16-ubuntu2204 + name: ghcr.io/rstudio/content-pro:r4.0.5-py3.9.19-ubuntu2204 python: installations: - - path: /opt/python/3.9.16/bin/python3 - version: 3.9.16 + path: /opt/python/3.9.19/bin/python3 + version: 3.9.19 r: installations: - @@ -30,15 +30,15 @@ images: version: 4.0.5 quarto: installations: - - path: /opt/quarto/1.3.340/bin/quarto - version: 1.3.340 + - path: /opt/quarto/1.3.450/bin/quarto + version: 1.3.450 - - name: ghcr.io/rstudio/content-pro:r4.1.3-py3.10.11-ubuntu2204 + name: ghcr.io/rstudio/content-pro:r4.1.3-py3.10.14-ubuntu2204 python: installations: - - path: /opt/python/3.10.11/bin/python3 - version: 3.10.11 + path: /opt/python/3.10.14/bin/python3 + version: 3.10.14 r: installations: - @@ -46,21 +46,53 @@ images: version: 4.1.3 quarto: installations: - - path: /opt/quarto/1.3.340/bin/quarto - version: 1.3.340 + - path: /opt/quarto/1.3.450/bin/quarto + version: 1.3.450 - - name: ghcr.io/rstudio/content-pro:r4.2.2-py3.11.3-ubuntu2204 + name: ghcr.io/rstudio/content-pro:r4.2.3-py3.11.9-ubuntu2204 python: installations: - - path: /opt/python/3.11.3/bin/python3 - version: 3.11.3 + path: /opt/python/3.11.9/bin/python3 + version: 3.11.9 r: installations: - - path: /opt/R/4.2.2/bin/R - version: 4.2.2 + path: /opt/R/4.2.3/bin/R + version: 4.2.3 quarto: installations: - - path: /opt/quarto/1.3.340/bin/quarto - version: 1.3.340 + - path: /opt/quarto/1.3.450/bin/quarto + version: 1.3.450 + - + name: ghcr.io/rstudio/content-pro:r4.3.3-py3.12.3-ubuntu2204 + python: + installations: + - + path: /opt/python/3.12.3/bin/python3 + version: 3.12.3 + r: + installations: + - + path: /opt/R/4.3.3/bin/R + version: 4.3.3 + quarto: + installations: + - path: /opt/quarto/1.4.553/bin/quarto + version: 1.4.553 + - + name: ghcr.io/rstudio/content-pro:r4.4.0-py3.12.3-ubuntu2204 + python: + installations: + - + path: /opt/python/3.12.3/bin/python3 + version: 3.12.3 + r: + installations: + - + path: /opt/R/4.4.0/bin/R + version: 4.4.0 + quarto: + installations: + - path: /opt/quarto/1.4.553/bin/quarto + version: 1.4.553 diff --git a/charts/rstudio-connect/default-runtime.yaml b/charts/rstudio-connect/default-runtime.yaml index 9c3328c0..888a763a 100644 --- a/charts/rstudio-connect/default-runtime.yaml +++ b/charts/rstudio-connect/default-runtime.yaml @@ -1,12 +1,12 @@ name: Kubernetes images: - - name: ghcr.io/rstudio/content-base:r3.6.3-py3.8.16-ubuntu2204 + name: ghcr.io/rstudio/content-base:r3.6.3-py3.8.19-ubuntu2204 python: installations: - - path: /opt/python/3.8.16/bin/python3 - version: 3.8.16 + path: /opt/python/3.8.19/bin/python3 + version: 3.8.19 r: installations: - @@ -14,15 +14,15 @@ images: version: 3.6.3 quarto: installations: - - path: /opt/quarto/1.3.340/bin/quarto - version: 1.3.340 + - path: /opt/quarto/1.3.450/bin/quarto + version: 1.3.450 - - name: ghcr.io/rstudio/content-base:r4.0.5-py3.9.16-ubuntu2204 + name: ghcr.io/rstudio/content-base:r4.0.5-py3.9.19-ubuntu2204 python: installations: - - path: /opt/python/3.9.16/bin/python3 - version: 3.9.16 + path: /opt/python/3.9.19/bin/python3 + version: 3.9.19 r: installations: - @@ -30,15 +30,15 @@ images: version: 4.0.5 quarto: installations: - - path: /opt/quarto/1.3.340/bin/quarto - version: 1.3.340 + - path: /opt/quarto/1.3.450/bin/quarto + version: 1.3.450 - - name: ghcr.io/rstudio/content-base:r4.1.3-py3.10.11-ubuntu2204 + name: ghcr.io/rstudio/content-base:r4.1.3-py3.10.14-ubuntu2204 python: installations: - - path: /opt/python/3.10.11/bin/python3 - version: 3.10.11 + path: /opt/python/3.10.14/bin/python3 + version: 3.10.14 r: installations: - @@ -46,21 +46,53 @@ images: version: 4.1.3 quarto: installations: - - path: /opt/quarto/1.3.340/bin/quarto - version: 1.3.340 + - path: /opt/quarto/1.3.450/bin/quarto + version: 1.3.450 - - name: ghcr.io/rstudio/content-base:r4.2.2-py3.11.3-ubuntu2204 + name: ghcr.io/rstudio/content-base:r4.2.3-py3.11.9-ubuntu2204 python: installations: - - path: /opt/python/3.11.3/bin/python3 - version: 3.11.3 + path: /opt/python/3.11.9/bin/python3 + version: 3.11.9 r: installations: - - path: /opt/R/4.2.2/bin/R - version: 4.2.2 + path: /opt/R/4.2.3/bin/R + version: 4.2.3 quarto: installations: - - path: /opt/quarto/1.3.340/bin/quarto - version: 1.3.340 + - path: /opt/quarto/1.3.450/bin/quarto + version: 1.3.450 + - + name: ghcr.io/rstudio/content-base:r4.3.3-py3.12.3-ubuntu2204 + python: + installations: + - + path: /opt/python/3.12.3/bin/python3 + version: 3.12.3 + r: + installations: + - + path: /opt/R/4.3.3/bin/R + version: 4.3.3 + quarto: + installations: + - path: /opt/quarto/1.4.553/bin/quarto + version: 1.4.553 + - + name: ghcr.io/rstudio/content-base:r4.4.0-py3.12.3-ubuntu2204 + python: + installations: + - + path: /opt/python/3.12.3/bin/python3 + version: 3.12.3 + r: + installations: + - + path: /opt/R/4.4.0/bin/R + version: 4.4.0 + quarto: + installations: + - path: /opt/quarto/1.4.553/bin/quarto + version: 1.4.553 diff --git a/charts/rstudio-connect/templates/_helpers.tpl b/charts/rstudio-connect/templates/_helpers.tpl index 4587e757..59e75091 100644 --- a/charts/rstudio-connect/templates/_helpers.tpl +++ b/charts/rstudio-connect/templates/_helpers.tpl @@ -73,9 +73,7 @@ app.kubernetes.io/instance: {{ .Release.Name }} {{- $_ := set $launcherSettingsDict "KubernetesUseTemplates" "false" }} {{- end }} {{- $launcherDict := dict "Launcher" ( $launcherSettingsDict ) }} - {{- $pythonSettingsDict := dict "Enabled" ("true") }} - {{- $pythonDict := dict "Python" ( $pythonSettingsDict ) }} - {{- $defaultConfig = merge $defaultConfig $launcherDict $pythonDict }} + {{- $defaultConfig = merge $defaultConfig $launcherDict }} {{- end }} {{- /* default licensing configuration */}} {{- if .Values.license.server }} diff --git a/charts/rstudio-connect/values.yaml b/charts/rstudio-connect/values.yaml index c63974f7..96f526cf 100644 --- a/charts/rstudio-connect/values.yaml +++ b/charts/rstudio-connect/values.yaml @@ -333,6 +333,18 @@ config: Server: Address: http://localhost:3939 DataDir: /var/lib/rstudio-connect + Python: + Enabled: true + # Note: The `Executable` listed below are only used for Local Execution. For Off-Host Execution, Python versions are defined by the set of Execution Environments + # https://docs.posit.co/connect/admin/python/ + Executable: + - /opt/python/3.9.17/bin/python + - /opt/python/3.8.17/bin/python + 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.3.340/bin/quarto" Scheduler: InitTimeout: 5m Logging: