Configuring Posit Package Manager with additional volumes
This example shows how to mount a ConfigMap
to the Package Manager pod. This pattern of specifying the volumes and volumeMounts will work for a variety of volume types: PVC
, ConfigMap
, etc.
To use this example you will need:
- a license file or key
- a PostgreSQL database
- either
- a
ReadWriteMany
POSIX compliant storage class forsharedStorage
- S3
- a
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
# This section is used to mount to the Package Manager container which is
# often used to add in additional configuration and TLS certificates
pod:
volumeMounts:
- mountPath: /etc/pm-certs # TODO: Change to your desired mount path
name: ldap-certificate # TODO: Change to match the volume name below
volumes:
- name: ldap-certificate # TODO: Change to match the volumeMounts name above
# Can be any type of volume... persistentVolumeClaim, configMap, etc.
# Can also provision a PVC, PV, ConfigMap, etc via `extraObjects` if desired
configMap:
name: pm-ldap-certificate # TODO: Change to match your ConfigMap name
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>