Configuring Posit Package Manager to Access Image Registries Requiring Authentication

This example deploys RStudio Package Manager using custom images in registries requiring authentication instead of the default public Posit provided images.

The image can be pulled from your own container registry instead of the public Posit provided image. This example shows where to provide private registry credentials in the form of a Kubernetes secret of type kubernetes.io/dockercfg

The default public images are on Docker Hub:

Package Manager: rstudio/rstudio-package-manager

To use this example you will need:

  • a license file or key
  • a PostgreSQL database
  • either
    • a ReadWriteMany POSIX compliant storage class for sharedStorage
    • S3
values.yaml
# Using a license file with the helm chart:
# https://github.com/rstudio/helm/tree/main/charts/rstudio-pm#license-file
# If you would like to use a license key see this documentation:
# https://github.com/rstudio/helm/tree/main/charts/rstudio-pm#license-key
license:
  file:
    secret: posit-licenses # TODO: Change to the secret name in your cluster
    secretKey: packagemanager.lic # TODO: Change to the secret key containing your Package Manager license

# Configures Package Manager shared storage
# This should NOT be set if using S3 for storage
# Docs here on using S3 instead: https://github.com/rstudio/helm/tree/main/charts/rstudio-pm#s3-configuration
sharedStorage:
  create: true
  mount: true
  storageClassName: nfs-sc-rwx # TODO: Change to a RWX StorageClass available in your cluster
  # volumeName: pm-shared-pv-name # Only needed if PVs have been statically provisioned, in which case this will need to match the PV name.
  requests:
    storage: 100G

image:
  tagPrefix: ubuntu2204- # TODO: Change to match your custom image tag prefix
  repository: "rstudio/rstudio-package-manager" # TODO: Change to match your custom image repository
  tag: "" # TODO: Change to match your custom image tag. By default when this is left blank the chart app version is automatically filled out.
  imagePullSecrets:
    - name: private-registery-creds # TODO: Change this to match the secret of type kubernetes.io/dockercfg in your cluster. More information: https://kubernetes.io/docs/concepts/configuration/secret/#docker-config-secrets

config:
  Database:
    Provider: postgres
  Postgres:
    URL: "postgres://<USERNAME>@<HOST>:<PORT>/<DATABASE>" # TODO: Change this URI to reach your Postgres database.
    Password: "<PASSWORD>" # TODO: Remove this line and instead set the password during helm install with --set config.Postgres.Password=<your-postgres-password>
    UsageDataURL: "postgres://<USERNAME>@<HOST>:<PORT>/<DATABASE>" # TODO: Change this URI to reach your Postgres database for metrics. This must be either a seperate database or scheam from the main Package Manager database.
    UsageDataPassword: "<PASSWORD>" # TODO: Remove this line and instead set the password during helm install with --set config.Postgres.Password=<your-postgres-password>