Off-Host Execution Beta User Migration

The off-host execution beta moving to GA also moves your content from Bionic to Jammy by default. This will cause all content to get rebuilt. If all content being rebuilt is acceptable, then no further action is necessary.

If you prefer a phased approach to migration, you may continue using the bionic images for existing content and jammy images for new content.

Note: All images used by existing content should be specified in either launcher.customRuntimeImages or launcher.additionalRuntimeImages. If content requires both bionic and jammy images, then you must use R source packages. Binary packages will not work when multiple OS distributions are used.

  1. If you are currently using customRuntimeImages: 'base' (the default), use values-base.yaml as a reference for updating your values file.

  2. If you are currently using customRuntimeImages: 'pro', use values-prod.yaml as a reference for updating your values file.

Technical Details

The values files in this directory contain overrides for the chart’s default runtime.yaml configurations. The v0.5.0 version of the rstudio-connect Helm chart contains a breaking change for users who are evaluating the Beta off-host execution feature set. v0.5.0 changes the default OS from bionic to jammy which is considered a breaking change for existing content.

When migrating to the v0.5.0 release, beta users should be aware that the set of execution environments defined by launcher.customRuntimeYaml and launcher.additionalRuntimeImages will be used to “bootstrap” Connect’s database the first time Connect starts. Subsequent restarts of Connect will not modify the database, even when a runtimes.yaml configuration is defined.

These example values are for users that are evaluating the off-host execution feature set and have content currently deployed which depends on the default set of bionic images. They define the previous default set of bionic images in the launcher.additionalRuntimeImages section, but each image’s “matching” has been set to exact.

Any new content that is building for the first time, or existing content that is re-building, will attempt to match against the new default set of jammy images. Content that has already been built with a bionic image can continue to execute with that image until it rebuilds. If an existing piece of content needs to be rebuilt and requires bionic for some reason, the Publisher must explicitly define a default execution environment for that content through the content-settings (access pane) on the dashboard or via the server API.

values-base.yaml

values-base.yaml
# -- A nested map of maps that generates the rstudio-connect.gcfg file
# @default -- [RStudio Connect Configuration Reference](https://docs.rstudio.com/connect/admin/appendix/configuration/)
config:

  # Overrides the package URLs to use source packages which are required if the list
  # of execution environments contains multiple OS distributions.
  'RPackageRepository "CRAN"':
    URL: https://packagemanager.rstudio.com/cran/latest

  # Overrides the package URLs to use source packages which are required if the list
  # of execution environments contains multiple OS distributions.
  'RPackageRepository "RSPM"':
    URL: https://packagemanager.rstudio.com/cran/latest

launcher:
  # -- Optional. The runtime.yaml definition of Kubernetes runtime containers. Defaults to "base", which pulls in the default
  # runtime.yaml file. If changing this value, be careful to include the images that you have already used. 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.
  customRuntimeYaml: "base"

  # 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".
  # Bootstraps the previous default set of "base" bionic images with "exact" matching. This means they can still
  # be selected explicitly by the publisher.
  additionalRuntimeImages:
    - name: ghcr.io/rstudio/content-base:r3.1.3-py2.7.18-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/2.7.18/bin/python2.7
            version: 2.7.18
      r:
        installations:
          - path: /opt/R/3.1.3/bin/R
            version: 3.1.3
    - name: ghcr.io/rstudio/content-base:r3.2.5-py2.7.18-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/2.7.18/bin/python2.7
            version: 2.7.18
      r:
        installations:
          - path: /opt/R/3.2.5/bin/R
            version: 3.2.5
    - name: ghcr.io/rstudio/content-base:r3.3.3-py3.6.13-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/3.6.13/bin/python3.6
            version: 3.6.13
      r:
        installations:
          - path: /opt/R/3.3.3/bin/R
            version: 3.3.3
    - name: ghcr.io/rstudio/content-base:r3.4.4-py3.6.13-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/3.6.13/bin/python3.6
            version: 3.6.13
      r:
        installations:
          - path: /opt/R/3.4.4/bin/R
            version: 3.4.4
    - name: ghcr.io/rstudio/content-base:r3.5.3-py3.7.10-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/3.7.10/bin/python3.7
            version: 3.7.10
      r:
        installations:
          - path: /opt/R/3.5.3/bin/R
            version: 3.5.3
    - name: ghcr.io/rstudio/content-base:r3.6.3-py3.8.8-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/3.8.8/bin/python3.8
            version: 3.8.8
      r:
        installations:
          - path: /opt/R/3.6.3/bin/R
            version: 3.6.3
    - name: ghcr.io/rstudio/content-base:r4.0.5-py3.8.8-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/3.8.8/bin/python3.8
            version: 3.8.8
      r:
        installations:
          - path: /opt/R/4.0.5/bin/R
            version: 4.0.5
    - name: ghcr.io/rstudio/content-base:r4.0.5-py3.9.2-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/3.9.2/bin/python3.9
            version: 3.9.2
      r:
        installations:
          - path: /opt/R/4.0.5/bin/R
            version: 4.0.5
    - name: ghcr.io/rstudio/content-base:r4.1.0-py3.8.8-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/3.8.8/bin/python3.8
            version: 3.8.8
      r:
        installations:
          - path: /opt/R/4.1.0/bin/R
            version: 4.1.0
    - name: ghcr.io/rstudio/content-base:r4.1.0-py3.9.2-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/3.9.2/bin/python3.9
            version: 3.9.2
      r:
        installations:
          - path: /opt/R/4.1.0/bin/R
            version: 4.1.0
    - name: ghcr.io/rstudio/content-base:r4.1.3-py3.10.4-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/3.10.4/bin/python3
            version: 3.10.4
      r:
        installations:
          - path: /opt/R/4.1.3/bin/R
            version: 4.1.3
      quarto:
        installations:
          - path: /opt/quarto/bin/quarto
            version: 1.0.35

values-pro.yaml

values-pro.yaml
# -- A nested map of maps that generates the rstudio-connect.gcfg file
# @default -- [RStudio Connect Configuration Reference](https://docs.rstudio.com/connect/admin/appendix/configuration/)
config:

  # Overrides the package URLs to use source packages which are required if the list
  # of execution environments contains multiple OS distributions.
  'RPackageRepository "CRAN"':
    URL: https://packagemanager.rstudio.com/cran/latest

  # Overrides the package URLs to use source packages which are required if the list
  # of execution environments contains multiple OS distributions.
  'RPackageRepository "RSPM"':
    URL: https://packagemanager.rstudio.com/cran/latest

launcher:
  # -- Optional. The runtime.yaml definition of Kubernetes runtime containers. Defaults to "base", which pulls in the default
  # runtime.yaml file. If changing this value, be careful to include the images that you have already used. 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.
  customRuntimeYaml: "pro"

  # 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".
  # Bootstraps the previous default set of "pro" bionic images with "exact" matching. This means they must
  # be selected explicitly by the publisher.
  additionalRuntimeImages:
    - name: ghcr.io/rstudio/content-pro:r3.1.3-py2.7.18-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/2.7.18/bin/python2.7
            version: 2.7.18
      r:
        installations:
          - path: /opt/R/3.1.3/bin/R
            version: 3.1.3
    - name: ghcr.io/rstudio/content-pro:r3.2.5-py2.7.18-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/2.7.18/bin/python2.7
            version: 2.7.18
      r:
        installations:
          - path: /opt/R/3.2.5/bin/R
            version: 3.2.5
    - name: ghcr.io/rstudio/content-pro:r3.3.3-py3.6.13-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/3.6.13/bin/python3.6
            version: 3.6.13
      r:
        installations:
          - path: /opt/R/3.3.3/bin/R
            version: 3.3.3
    - name: ghcr.io/rstudio/content-pro:r3.4.4-py3.6.13-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/3.6.13/bin/python3.6
            version: 3.6.13
      r:
        installations:
          - path: /opt/R/3.4.4/bin/R
            version: 3.4.4
    - name: ghcr.io/rstudio/content-pro:r3.4.4-py3.7.10-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/3.7.10/bin/python3.7
            version: 3.7.10
      r:
        installations:
          - path: /opt/R/3.4.4/bin/R
            version: 3.4.4
    - name: ghcr.io/rstudio/content-pro:r3.5.3-py2.7.18-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/2.7.18/bin/python2.7
            version: 2.7.18
      r:
        installations:
          - path: /opt/R/3.5.3/bin/R
            version: 3.5.3
    - name: ghcr.io/rstudio/content-pro:r3.5.3-py3.7.10-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/3.7.10/bin/python3.7
            version: 3.7.10
      r:
        installations:
          - path: /opt/R/3.5.3/bin/R
            version: 3.5.3
    - name: ghcr.io/rstudio/content-pro:r3.6.3-py2.7.18-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/2.7.18/bin/python2.7
            version: 2.7.18
      r:
        installations:
          - path: /opt/R/3.6.3/bin/R
            version: 3.6.3
    - name: ghcr.io/rstudio/content-pro:r3.6.3-py3.6.13-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/3.6.13/bin/python3.6
            version: 3.6.13
      r:
        installations:
          - path: /opt/R/3.6.3/bin/R
            version: 3.6.3
    - name: ghcr.io/rstudio/content-pro:r3.6.3-py3.8.8-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/3.8.8/bin/python3.8
            version: 3.8.8
      r:
        installations:
          - path: /opt/R/3.6.3/bin/R
            version: 3.6.3
    - name: ghcr.io/rstudio/content-pro:r4.0.5-py3.6.13-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/3.6.13/bin/python3.6
            version: 3.6.13
      r:
        installations:
          - path: /opt/R/4.0.5/bin/R
            version: 4.0.5
    - name: ghcr.io/rstudio/content-pro:r4.0.5-py3.7.10-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/3.7.10/bin/python3.7
            version: 3.7.10
      r:
        installations:
          - path: /opt/R/4.0.5/bin/R
            version: 4.0.5
    - name: ghcr.io/rstudio/content-pro:r4.0.5-py3.8.8-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/3.8.8/bin/python3.8
            version: 3.8.8
      r:
        installations:
          - path: /opt/R/4.0.5/bin/R
            version: 4.0.5
    - name: ghcr.io/rstudio/content-pro:r4.0.5-py3.9.2-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/3.9.2/bin/python3.9
            version: 3.9.2
      r:
        installations:
          - path: /opt/R/4.0.5/bin/R
            version: 4.0.5
    - name: ghcr.io/rstudio/content-pro:r4.1.0-py3.8.8-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/3.8.8/bin/python3.8
            version: 3.8.8
      r:
        installations:
          - path: /opt/R/4.1.0/bin/R
            version: 4.1.0
    - name: ghcr.io/rstudio/content-pro:r4.1.0-py3.9.2-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/3.9.2/bin/python3.9
            version: 3.9.2
      r:
        installations:
          - path: /opt/R/4.1.0/bin/R
            version: 4.1.0
    - name: ghcr.io/rstudio/content-pro:r4.1.3-py3.10.4-bionic
      matching: "exact"
      python:
        installations:
          - path: /opt/python/3.10.4/bin/python3
            version: 3.10.4
      r:
        installations:
          - path: /opt/R/4.1.3/bin/R
            version: 4.1.3
      quarto:
        installations:
          - path: /opt/quarto/bin/quarto
            version: 1.0.35