A Helm chart for the Perses Operator - manages Perses instances and dashboards on Kubernetes
- Kubernetes 1.26+
- Helm 3.x
- cert-manager installed in the cluster (required when
certManager.enable=true, which is the default)
To install the chart with the release name perses-operator (requires cert-manager):
helm repo add perses https://perses.github.io/helm-charts
helm repo update
helm install perses-operator perses/perses-operatorTo install without cert-manager (not recommended for production):
helm install perses-operator perses/perses-operator --set certManager.enable=falseNote: When cert-manager is disabled, the chart generates a self-signed TLS certificate for the webhook server. CRD conversion webhooks (v1alpha1 <-> v1alpha2) are also disabled, so only
v1alpha2resources can be used. This is suitable for development and testing but not recommended for production.
To uninstall/delete the perses-operator deployment:
helm delete perses-operatorNote: CRDs are kept by default when uninstalling. To remove them, set
crd.keep=falsebefore uninstalling or delete them manually.
Starting from this release, the chart version is aligned with the perses-operator appVersion. This means chart version 0.4.0 tracks perses-operator v0.4.0. Previous chart versions (0.1.x, 0.2.x) used independent versioning.
This release updates CRDs to default to perses.dev/v1alpha2. The v1alpha1 API version is deprecated and will be removed in a future release. Existing v1alpha1 resources are automatically converted via the conversion webhook when cert-manager is enabled. Users should migrate their manifests to use v1alpha2.
| Key | Type | Default | Description |
|---|---|---|---|
| certManager | object | {"enable":true} |
Cert-manager integration for TLS certificates. Required for webhook and metrics endpoint certificates. |
| certManager.enable | bool | true |
Enable cert-manager integration |
| crd | object | {"enable":true,"keep":true} |
Custom Resource Definitions |
| crd.enable | bool | true |
Install CRDs with the chart |
| crd.keep | bool | true |
Keep CRDs when uninstalling |
| kubeRbacProxy | object | {"image":{"repository":"quay.io/brancz/kube-rbac-proxy","tag":"v0.21.2"},"resources":{"limits":{"cpu":"500m","memory":"128Mi"},"requests":{"cpu":"5m","memory":"64Mi"}},"securityContext":{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]}}} |
Kube RBAC Proxy sidecar configuration |
| kubeRbacProxy.image.repository | string | "quay.io/brancz/kube-rbac-proxy" |
Kube RBAC Proxy image repository |
| kubeRbacProxy.image.tag | string | "v0.21.2" |
Kube RBAC Proxy image tag |
| kubeRbacProxy.resources | object | {"limits":{"cpu":"500m","memory":"128Mi"},"requests":{"cpu":"5m","memory":"64Mi"}} |
Kube RBAC Proxy resource limits and requests |
| kubeRbacProxy.securityContext | object | {"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]}} |
Kube RBAC Proxy container security context |
| manager | object | {"affinity":{"nodeAffinity":{"requiredDuringSchedulingIgnoredDuringExecution":{"nodeSelectorTerms":[{"matchExpressions":[{"key":"kubernetes.io/arch","operator":"In","values":["amd64","arm64","ppc64le","s390x"]},{"key":"kubernetes.io/os","operator":"In","values":["linux"]}]}]}}},"args":["--leader-elect"],"env":[],"image":{"pullPolicy":"IfNotPresent","repository":"docker.io/persesdev/perses-operator","tag":"v0.4.0"},"imagePullSecrets":[],"nodeSelector":{},"podSecurityContext":{},"replicas":1,"resources":{"limits":{"cpu":"500m","memory":"128Mi"},"requests":{"cpu":"10m","memory":"64Mi"}},"securityContext":{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]}},"tolerations":[]} |
Configure the controller manager deployment |
| manager.affinity | object | {"nodeAffinity":{"requiredDuringSchedulingIgnoredDuringExecution":{"nodeSelectorTerms":[{"matchExpressions":[{"key":"kubernetes.io/arch","operator":"In","values":["amd64","arm64","ppc64le","s390x"]},{"key":"kubernetes.io/os","operator":"In","values":["linux"]}]}]}}} |
Manager pod affinity |
| manager.args | list | ["--leader-elect"] |
Arguments passed to the manager container |
| manager.env | list | [] |
Environment variables for the manager container |
| manager.image.pullPolicy | string | "IfNotPresent" |
Image pull policy |
| manager.image.repository | string | "docker.io/persesdev/perses-operator" |
Container image repository |
| manager.image.tag | string | "v0.4.0" |
Container image tag |
| manager.imagePullSecrets | list | [] |
Image pull secrets |
| manager.nodeSelector | object | {} |
Manager pod node selector |
| manager.podSecurityContext | object | {} |
Pod-level security settings |
| manager.replicas | int | 1 |
Number of replicas |
| manager.resources | object | {"limits":{"cpu":"500m","memory":"128Mi"},"requests":{"cpu":"10m","memory":"64Mi"}} |
Resource limits and requests |
| manager.securityContext | object | {"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]}} |
Container-level security settings |
| manager.tolerations | list | [] |
Manager pod tolerations |
| metrics | object | {"enable":true,"port":8082} |
Controller metrics endpoint. Enable to expose /metrics endpoint with RBAC protection. |
| metrics.enable | bool | true |
Enable metrics endpoint |
| metrics.port | int | 8082 |
Metrics server port |
| prometheus | object | {"enable":false} |
Prometheus ServiceMonitor for metrics scraping. Requires prometheus-operator to be installed in the cluster. |
| prometheus.enable | bool | false |
Enable ServiceMonitor creation |
| rbacHelpers | object | {"enable":false} |
Helper RBAC roles for managing custom resources |
| rbacHelpers.enable | bool | false |
Install convenience admin/editor/viewer roles for CRDs |
| testFramework | object | {"enabled":true,"image":{"registry":"ghcr.io","repository":"cloudoperators/greenhouse-extensions-integration-test","tag":"main"},"imagePullPolicy":"IfNotPresent"} |
Helm test framework configuration |
| testFramework.enabled | bool | true |
Enable helm test resources |
| testFramework.image.registry | string | "ghcr.io" |
Test image registry |
| testFramework.image.repository | string | "cloudoperators/greenhouse-extensions-integration-test" |
Test image repository |
| testFramework.image.tag | string | "main" |
Test image tag |
| testFramework.imagePullPolicy | string | "IfNotPresent" |
Test image pull policy |
| webhook | object | {"enable":true,"port":9443} |
Webhook server configuration |
| webhook.enable | bool | true |
Enable webhook server |
| webhook.port | int | 9443 |
Webhook server port |
Autogenerated from chart metadata using helm-docs v1.14.2