grafana-operator is a free, open source monitoring & observability project written in Go and released under Apache-2.0. It has 1,387 GitHub stars, 471 forks and 54 open issues, and was last pushed 23 hours ago. On this registry it ranks #204 of 271 tracked projects in Monitoring & Observability, with 5 head-to-head comparisons available.

What is grafana-operator?

Grafana Operator is a Go-based, Apache-2.0 licensed Kubernetes operator that installs and manages Grafana instances, dashboards and data sources through Kubernetes and OpenShift custom resources, built for platform and observability teams that already run those clusters and want Grafana managed as code.

What it is

Grafana Operator lives in the Kubernetes and OpenShift ecosystem as a custom resource operator. It watches custom resources whose apiVersion is grafana.integreatly.org/v1beta1, including kind: Grafana and kind: GrafanaDashboard, and reconciles the actual Grafana deployment and its contents to match what those resources declare. It is written in Go and the registry record gives the license as Apache-2.0, with 1,387 stars, 471 forks and 54 open issues at the time of listing. Its documented home is https://grafana.github.io/grafana-operator/docs/, and the project is developed in the open under the grafana GitHub organisation, with a weekly public meeting on Mondays at 13:30 Central European time and questions handled through GitHub Issues.

The concrete problem it solves is the gap between a Grafana instance and the resources inside it. The README frames the switch as moving away from "traditional deployments": instead of provisioning Grafana separately and then hand-importing dashboard JSON, clicking data sources into place and configuring plugins per instance, an operator keeps both the instance and its contents declarative. The README states the same resource also manages Grafana instances "in and outside of Kubernetes", which means a team can point the operator at an external Grafana rather than only a cluster-hosted one. Because everything is expressed as custom resources, the same definitions can flow through Git and be applied by a pipeline rather than by a person.

Key capabilities

  • Deploys and reconciles Grafana through kind: Grafana custom resources under apiVersion: grafana.integreatly.org/v1beta1, including inline configuration such as security.admin_user and security.admin_password.
  • Manages dashboards as kind: GrafanaDashboard resources, with the dashboard payload supplied directly as JSON in the spec.json field and re-synchronised on a resyncPeriod such as 30s.
  • Binds dashboards to instances with instanceSelector.matchLabels, so a GrafanaDashboard targets whichever Grafana resources carry the matching label.
  • Installs through Helm with helm upgrade -i grafana-operator oci://ghcr.io/grafana/helm-charts/grafana-operator --version 5.25.0, or through Kustomize, OpenShift OLM, or plain Kubernetes, per the installation guide.
  • Supports multi-instance and multi-namespace Grafana deployments, and manages external Grafana instances for GitOps integration.
  • Fits GitOps workflows driven by ArgoCD and Flux CD, which the README names as the tools teams use to apply these resources.
  • Ships with multi-architecture support and one-click installation through Operatorhub/OLM, and adapts its behaviour to Kubernetes versus OpenShift.

Who uses it and how

  • Platform teams running GitOps pipelines, where Grafana dashboards and data sources are committed as YAML and applied by ArgoCD or Flux CD rather than edited in the Grafana UI.
  • Organisations operating more than one Grafana instance, since the operator handles multi-instance and multi-namespace deployments "effortlessly" in the README's phrasing.
  • OpenShift v4 administrators, who can install it through Operatorhub/OLM in one click rather than managing the operator by hand.
  • Teams keeping Grafana outside the cluster, because the operator is documented as managing instances both inside and outside Kubernetes.
  • Anyone standardising on infrastructure as code, for whom dashboards, data sources and plugins are code rather than console state.

Getting started

The README's first install option is the Helm chart: helm upgrade -i grafana-operator oci://ghcr.io/grafana/helm-charts/grafana-operator --version 5.25.0. Teams that prefer Kustomize, OpenShift OLM or direct Kubernetes manifests are pointed to the installation guide and the documentation under docs/.

How it compares

This listing provides no list of paid products that Grafana Operator replaces, and the facts name no directly equivalent operator in this registry, so it stands alone here. The tools it names alongside itself, ArgoCD and Flux CD, are GitOps delivery mechanisms that apply the operator's custom resources rather than substitutes for the operator itself.

When to use it — and when not to

A self-hoster must run a Kubernetes or OpenShift cluster, install and upgrade the operator and its CRDs, and then write and maintain the Grafana and GrafanaDashboard resources themselves; the facts give no hosted option, so the cluster is a hard prerequisite. Anyone without a cluster, or without a Git-based workflow for YAML, gets little from the operator and should configure Grafana directly. The trade-offs to weigh honestly: the record shows 54 open issues, the registry excerpt of the README is truncated and defers detail to external documentation, and dashboard content still has to be authored as JSON inside the resource even though the delivery path is declarative.

project readme (upstream, from github) — read inline

Grafana Operator

Grafana Grafana Operator GitHub tag GitHub Last Commit GitHub Contributors

Official Documentation | Quickstart | Installation | Tutorials

The Grafana Operator is a Kubernetes operator built to help you manage your Grafana instances and its resources in and outside of Kubernetes.

Whether you’re running one Grafana instance or many, the Grafana Operator simplifies the processes of installing, configuring, and maintaining Grafana and its resources. Additionally, it's perfect for those who prefer to manage resources using infrastructure as code or using GitOps workflows through tools like ArgoCD and Flux CD.

Getting Started

Installation

Option 1: Helm Chart

Deploy the Grafana Operator easily in your cluster using Helm:

helm upgrade -i grafana-operator oci://ghcr.io/grafana/helm-charts/grafana-operator --version 5.25.0

Option 2: Kustomize & More

Prefer Kustomize, Openshift OLM, or Kubernetes directly? Find detailed instructions in our Installation Guide.

For even more detailed setups, see our documentation.

Example: Deploying Grafana & A Dashboard

Here's a simple example of deploying Grafana and a Grafana Dashboard using the custom resources (CRs) defined by the Grafana Operator:

apiVersion: grafana.integreatly.org/v1beta1
kind: Grafana
metadata:
  name: grafana
  labels:
    dashboards: "grafana"
spec:
  config:
    log:
      mode: "console"
    security:
      admin_user: root
      admin_password: secret

---
apiVersion: grafana.integreatly.org/v1beta1
kind: GrafanaDashboard
metadata:
  name: sample-dashboard
spec:
  resyncPeriod: 30s
  instanceSelector:
    matchLabels:
      dashboards: "grafana"
  json: >
    {
      "title": "Simple Dashboard",
      "timezone": "browser",
      "refresh": "5s",
      "panels": [],
      "time": {
        "from": "now-6h",
        "to": "now"
      }
    }

For more tailored setups and resources management, check out these guides:

Why Grafana Operator?

Switching to Grafana Operator from traditional deployments amplifies your efficiency by:

  • Enabling multi-instance and multi-namespace Grafana deployments effortlessly.
  • Simplifying dashboard, data sources, and plugin management through code.
  • Supporting both Kubernetes and Openshift with smart adjustments based on the environment.
  • Allowing management of external Grafana instances for robust GitOps integration.
  • Providing multi-architecture support, making it versatile across different platforms.
  • Offering one-click installation through Operatorhub/OLM.

Get In Touch

Got questions or suggestions? Let us know! The quickest way to reach us is through our GitHub Issues or by joining our weekly public meeting on Mondays at 13:30 Central European (Summer) Time (11:30/12:30 UTC in Summer/Winter) (link here).

Feel free to drop into our Grafana Operator discussions on:

Grafana Slack

Contributing

For more information on how to contribute to the operator look at CONTRIBUTING.md.

Frequently asked questions

Is grafana-operator free to use?

grafana-operator is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does grafana-operator do?

An operator for Grafana that installs and manages Grafana instances, Dashboards and Datasources through Kubernetes/OpenShift CRs

What is grafana-operator written in?

grafana-operator is primarily written in Go. Its source is publicly available at https://github.com/grafana/grafana-operator, and it has 1,387 GitHub stars.