Deploy Perses the GitOps Way with Helm & FluxCD — Full Setup Guide
When we talk about observability, most people immediately think of well-known SaaS platforms like Datadog, New Relic, and Grafana Cloud. They are great solutions, but they also become expensive very quickly.
Many teams then attempt to build their own observability stack using the full Grafana ecosystem. It usually starts small: a simple dashboard here and there. But as your company grows, so do your requirements. Suddenly you need essential enterprise features such as OIDC authentication. At that point, Grafana OSS is no longer enough, and you’re pushed toward the Enterprise edition, which can easily cost around $60,000 per year for just 60 seats.
But what if I told you that you can have a fully featured dashboard, including enterprise-level functionality — for $0? Yes, it is possible.
Over the past few weeks, I’ve contributed heavily to a CNCF Sandbox project to improve its Helm chart and help accelerate new features. The project is called Perses, and it is already battle-tested in production environments by companies like Dash0.
The community is growing fast, and the tooling is becoming more powerful every day.
In this post, we will set up a Perses dashboard so you can compare it directly with Grafana before deciding to switch. I will use FluxCD and Helm manifests to deploy everything the GitOps way, giving you a fast, repeatable, and reliable setup.
Get Paris Nakita Kejser’s stories in your inbox
Join Medium for free to get updates from this writer.
If you are not using FluxCD, you can still install Perses using the official Helm. I recommend starting with a test cluster, for example a local kind cluster so you don’t risk impacting your production environment.
helm repo add fluxcd-community https://fluxcd-community.github.io/helm-charts
helm repo update
helm install flux2 fluxcd-community/flux2 --version 2.17.2 \
--namespace flux-system \
--create-namespaceOnce FluxCD is up and running in your cluster, the next step is to create your observability namespace.
apiVersion: v1
kind: Namespace
metadata:
name: observabilityNow let’s add the Perses Helm repository through Flux.
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: perses
namespace: observability
spec:
interval: 5m
url: https://perses.github.io/helm-chartsNow we’re ready to apply the Helm chart. For local testing, we’ll disable authentication to make it easier to explore the dashboard.
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: perses
namespace: flux-gitops-homelab
spec:
interval: 1h
timeout: 5m
releaseName: perses
targetNamespace: observability
chart:
spec:
chart: perses
version: 0.19.1
sourceRef:
kind: HelmRepository
name: perses
namespace: observability
interval: 1m
values:
replicas: 1
config:
security:
enable_auth: false
install:
createNamespace: true
remediation:
retries: 3
upgrade:
remediation:
retries: 3Once you’ve confirmed that Perses is running, you can port-forward the service to access the dashboard locally.
kubectl port-forward svc/perses -n observability 8080:8080Visit your http://localhost:8080 to open the dashboard, and play around :)
Be social with me! :)
LinkedIn: https://www.linkedin.com/in/parisnakitakejser/
GitHub: https://github.com/parisnakitakejser
YouTube: https://www.youtube.com/c/parisnakitakejser?sub_confirmation=1










