Sitemap
Paris Nakita Kejser

Paris Nakita Kejser

DevOps Engineer, Software Architect, Software Developer, Data Scientist and identify me as a non-binary person.

Deploy Perses the GitOps Way with Helm & FluxCD — Full Setup Guide

3 min readDec 5, 2025
Press enter or click to view image in full size

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-namespace

Once FluxCD is up and running in your cluster, the next step is to create your observability namespace.

apiVersion: v1
kind: Namespace
metadata:
name: observability

Now 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-charts

Now 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: 3

Once 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:8080

Visit your http://localhost:8080 to open the dashboard, and play around :)

Press enter or click to view image in full size

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

--

--

Paris Nakita Kejser
Paris Nakita Kejser

Written by Paris Nakita Kejser

DevOps Engineer, Software Architect, Software Developer, Data Scientist and identify me as a non-binary person.