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
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.35
version: 0.8.36
apiVersion: v2
appVersion: 2026.03.0
icon: https://raw.githubusercontent.com/rstudio/helm/main/images/posit-icon-fullcolor.svg
Expand Down
5 changes: 5 additions & 0 deletions charts/rstudio-connect/NEWS.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Changelog

## 0.8.36

- Remove deprecated default value `Metrics.Enabled = true`
- Remove legacy Graphite exporter sidecar (`prometheus.legacy`, `prometheusExporter.*`, and `configmap-graphite-exporter.yaml`). The built-in Prometheus `/metrics` endpoint is now the only supported metrics path. Use OpenTelemetry for richer instrumentation.

## 0.8.35

- Add `executionEnvironments` value for [declarative management of execution environments](https://docs.posit.co/connect/admin/appendix/off-host/execution-environments/#declarative-management). Unlike `launcher.customRuntimeYaml`, changes take effect on every `helm upgrade` without requiring a pod restart or database reset. Requires Connect version 2026.03.0 or later.
Expand Down
19 changes: 5 additions & 14 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.35](https://img.shields.io/badge/Version-0.8.35-informational?style=flat-square) ![AppVersion: 2026.03.0](https://img.shields.io/badge/AppVersion-2026.03.0-informational?style=flat-square)
![Version: 0.8.36](https://img.shields.io/badge/Version-0.8.36-informational?style=flat-square) ![AppVersion: 2026.03.0](https://img.shields.io/badge/AppVersion-2026.03.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.35:
To install the chart with the release name `my-release` at version 0.8.36:

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

To explore other chart versions, look at:
Expand Down Expand Up @@ -235,8 +235,7 @@ executionEnvironments:

- In most places, we opt to pass Helm values over configmaps. We translate these into the valid `.gcfg` file format
required by rstudio-connect.
- rstudio-connect does not export many prometheus metrics on its own. Instead, we run a sidecar graphite exporter
[as described here](https://support.rstudio.com/hc/en-us/articles/360044800273-Monitoring-RStudio-Team-Using-Prometheus-and-Graphite)
- rstudio-connect exposes Prometheus metrics via its built-in `/metrics` endpoint

## Configuration file

Expand Down Expand Up @@ -341,15 +340,7 @@ The Helm `config` values are converted into the `rstudio-connect.gcfg` service c
| podDisruptionBudget | object | `{}` | Pod disruption budget |
| priorityClassName | string | `""` | The pod's priorityClassName |
| prometheus.enabled | bool | `true` | The parent setting for whether to enable prometheus metrics. Default is to use the built-in product exporter |
| prometheus.legacy | bool | `false` | Whether to enable the legacy prometheusExporter INSTEAD OF the built-in product exporter. If you change this to `true`, please let us know why! Requires prometheusExporter.enabled=true too |
| prometheus.port | int | `3232` | The port that prometheus will listen on. If legacy=true, then this will be hard-coded to 9108 |
| prometheusExporter.enabled | bool | `true` | DEPRECATED. Whether the prometheus exporter sidecar should be enabled. See prometheus.enabled instead. |
| prometheusExporter.image.imagePullPolicy | string | `"IfNotPresent"` | |
| prometheusExporter.image.repository | string | `"prom/graphite-exporter"` | |
| prometheusExporter.image.tag | string | `"v0.9.0"` | |
| prometheusExporter.mappingYaml | string | `nil` | Yaml that defines the graphite exporter mapping. null by default, which uses the embedded / default mapping yaml file |
| prometheusExporter.resources | object | `{}` | resource specification for the prometheus exporter sidecar |
| prometheusExporter.securityContext | object | `{}` | securityContext for the prometheus exporter sidecar |
| prometheus.port | int | `3232` | The port that prometheus will listen on |
| rbac.clusterRoleCreate | bool | `false` | Whether to create the ClusterRole that grants access to the Kubernetes nodes API. This is used by the Launcher to get all of the IP addresses associated with the node that is running a particular job. In most cases, this can be disabled as the node's internal address is sufficient to allow proper functionality. |
| rbac.create | bool | `true` | Whether to create rbac. (also depends on launcher.enabled = true) |
| rbac.serviceAccount | object | `{"annotations":{},"create":true,"labels":{},"name":""}` | The serviceAccount to be associated with rbac (also depends on launcher.enabled = true) |
Expand Down
3 changes: 1 addition & 2 deletions charts/rstudio-connect/README.md.gotmpl
Original file line number Diff line number Diff line change
Expand Up @@ -175,8 +175,7 @@ executionEnvironments:

- In most places, we opt to pass Helm values over configmaps. We translate these into the valid `.gcfg` file format
required by {{ template "chart.name" . }}.
- {{ template "chart.name" . }} does not export many prometheus metrics on its own. Instead, we run a sidecar graphite exporter
[as described here](https://support.rstudio.com/hc/en-us/articles/360044800273-Monitoring-RStudio-Team-Using-Prometheus-and-Graphite)
- {{ template "chart.name" . }} exposes Prometheus metrics via its built-in `/metrics` endpoint

## Configuration file

Expand Down
5 changes: 0 additions & 5 deletions charts/rstudio-connect/templates/NOTES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,3 @@ Please consider removing this configuration value.

{{- end }}

{{- if and (hasKey .Values.config.Metrics "GraphiteEnabled") (not .Values.prometheus.legacy) }}

{{- print "\n\n`config.Metrics.GraphiteEnabled` is overwritten by `prometheus.legacy=false`. Internal Connect Prometheus will be used instead." }}

{{- end }}
17 changes: 1 addition & 16 deletions charts/rstudio-connect/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -88,22 +88,7 @@ app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{- /* default metrics / prometheus configuration */}}
{{- if .Values.prometheus.enabled }}
{{- if .Values.prometheus.legacy }}
{{- /* we set the graphite values as a default, to hide from values.yaml */ -}}
{{- $graphiteDict := dict "Metrics" (dict "Enabled" true "GraphiteClientId" "rsconnect" "GraphiteEnabled" true) }}
{{- $graphiteDict = merge $graphiteDict (dict "Metrics" (dict "GraphiteHost" "127.0.0.1" "GraphitePort" "9109")) }}
{{- $defaultConfig = merge $defaultConfig $graphiteDict }}
{{- else }}
{{- if hasKey $configCopy "Metrics" }}
{{- if hasKey (get $configCopy "Metrics") "GraphiteEnabled" }}
{{- /* we explicitly overwrite the graphite endpoint */ -}}
{{- mergeOverwrite $configCopy (dict "Metrics" (dict "GraphiteEnabled" false))}}
{{- end }}
{{- end }}

{{- /* and set a default for the prometheus listener */ -}}
{{- $defaultConfig = merge $defaultConfig (dict "Metrics" ( dict "PrometheusListen" (print ":" .Values.prometheus.port )))}}
{{- end }}
{{- $defaultConfig = merge $defaultConfig (dict "Metrics" ( dict "PrometheusListen" (print ":" .Values.prometheus.port )))}}
{{- end }}
{{- /* default OpenTelemetry configuration */}}
{{- if (dig "OpenTelemetry" "Enabled" false $configCopy) }}
Expand Down

This file was deleted.

34 changes: 1 addition & 33 deletions charts/rstudio-connect/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,13 @@ spec:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
{{- if and .Values.prometheus.legacy .Values.prometheusExporter.enabled }}
checksum/config-graphite: {{ include (print $.Template.BasePath "/configmap-graphite-exporter.yaml") . | sha256sum }}
{{- end }}
{{- if .Values.launcher.enabled }}
checksum/config-prestart: {{ include (print $.Template.BasePath "/configmap-prestart.yaml") . | sha256sum }}
{{- end }}
{{- if .Values.prometheus }}
prometheus.io/scrape: "true"
prometheus.io/path: "/metrics"
{{- if and .Values.prometheus.legacy .Values.prometheusExporter.enabled }}
prometheus.io/port: "9108"
{{- else }}
prometheus.io/port: {{ .Values.prometheus.port | quote }}
{{- end }}
{{- end }}
{{ include "rstudio-connect.pod.annotations" . | indent 8 }}
labels:
Expand Down Expand Up @@ -178,7 +171,7 @@ spec:
ports:
- containerPort: {{ .Values.pod.port }}
name: http
{{- if and .Values.prometheus.enabled (not .Values.prometheus.legacy) }}
{{- if .Values.prometheus.enabled }}
- containerPort: {{ .Values.prometheus.port }}
name: metrics
{{- end}}
Expand Down Expand Up @@ -262,25 +255,6 @@ spec:
{{- toYaml . | nindent 10 }}
{{- end }}
{{- end }}
{{- if and .Values.prometheus.legacy .Values.prometheusExporter.enabled }}
- name: exporter
image: "{{ .Values.prometheusExporter.image.repository }}:{{ .Values.prometheusExporter.image.tag }}"
imagePullPolicy: "{{ .Values.prometheusExporter.image.imagePullPolicy }}"
args:
- "--graphite.mapping-config=/mnt/graphite/graphite-mapping.yaml"
volumeMounts:
- name: graphite-exporter-config
mountPath: "/mnt/graphite"
ports:
- containerPort: 9108
name: metrics
{{- with .Values.prometheusExporter.resources }}
resources:
{{ toYaml . | nindent 10 }}
{{- end }}
securityContext:
{{- toYaml .Values.prometheusExporter.securityContext | nindent 10 }}
{{- end }}
{{- if .Values.pod.sidecar }}
{{ toYaml .Values.pod.sidecar | indent 6 }}
{{- end }}
Expand All @@ -295,12 +269,6 @@ spec:
claimName: {{default (print (include "rstudio-connect.fullname" .) "-shared-storage" ) .Values.sharedStorage.name }}
{{- end }}
{{ include "rstudio-library.license-volume" (dict "license" ( .Values.license ) "fullName" (include "rstudio-connect.fullname" .)) | indent 6 }}
{{- if and .Values.prometheus.legacy .Values.prometheusExporter.enabled }}
- name: graphite-exporter-config
configMap:
name: {{ include "rstudio-connect.fullname" . }}-graphite
defaultMode: 0755
{{- end }}
{{- if .Values.pod.volumes }}
{{ toYaml .Values.pod.volumes | indent 6 }}
{{- end }}
Expand Down
4 changes: 0 additions & 4 deletions charts/rstudio-connect/templates/svc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,6 @@ spec:
{{- if .Values.prometheus.enabled }}
- name: metrics
targetPort: metrics
{{- if .Values.prometheus.legacy }}
port: 9108
{{- else }}
port: {{ .Values.prometheus.port }}
{{- end }}
{{- end }}
---
21 changes: 1 addition & 20 deletions charts/rstudio-connect/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -167,25 +167,8 @@ securityContext: {}
prometheus:
# -- The parent setting for whether to enable prometheus metrics. Default is to use the built-in product exporter
enabled: true
# -- The port that prometheus will listen on. If legacy=true, then this will be hard-coded to 9108
# -- The port that prometheus will listen on
port: 3232
# -- Whether to enable the legacy prometheusExporter INSTEAD OF the built-in product exporter. If you change this to
# `true`, please let us know why! Requires prometheusExporter.enabled=true too
legacy: false

prometheusExporter:
# -- DEPRECATED. Whether the prometheus exporter sidecar should be enabled. See prometheus.enabled instead.
enabled: true
# -- Yaml that defines the graphite exporter mapping. null by default, which uses the embedded / default mapping yaml file
mappingYaml: null
# -- securityContext for the prometheus exporter sidecar
securityContext: {}
# -- resource specification for the prometheus exporter sidecar
resources: {}
image:
repository: "prom/graphite-exporter"
tag: "v0.9.0"
imagePullPolicy: IfNotPresent

serviceMonitor:
# -- Whether to create a ServiceMonitor CRD for use with a Prometheus Operator
Expand Down Expand Up @@ -492,6 +475,4 @@ config:
ServiceLogFormat: TEXT # TEXT or JSON
AccessLog: STDOUT
AccessLogFormat: COMMON # COMMON, COMBINED, or JSON
Metrics:
Enabled: true
Launcher: {}
Loading