Skip to content
Release Radar

Kubernetes operator for managing Grafana instances

v5.25.076 days after v5.24.0
View on GitHub

Part of Grafana

Release history

v5.25.0

CompareGitHub

<!-- Release notes generated using configuration in .github/release.yml at master --> Welcome to release 5.25.0 of the Grafana Operator!

This release contains many bug fixes and contains a bunch of new features like:

  • Public Dashboard support: Expose your dashboards to anonymous users in a declarative way
  • Scale subresource suppport: Allows you to kubectl scale --replicas=X your grafana instances & integrate with auto scalers
  • Variable support for dashboards: Set default values for your template variables from the GrafanaDashboard directly

Thanks to everyone who contributed & reported bugs!

Upgrade instructions

Using Helm

# Upgrade the operator image & deployment
helm upgrade -i grafana-operator oci://ghcr.io/grafana/helm-charts/grafana-operator --version 5.25.0
# Upgrading CRDs
kubectl apply --server-side --force-conflicts -f https://github.com/grafana/grafana-operator/releases/download/v5.25.0/crds.yaml

Using kubectl

# Namespace Scope
kubectl replace -f https://github.com/grafana/grafana-operator/releases/download/v5.25.0/kustomize-namespace_scoped.yaml
# Cluster Scope
kubectl replace -f https://github.com/grafana/grafana-operator/releases/download/v5.25.0/kustomize-cluster_scoped.yaml 

Using kustomize

flux pull artifact oci://ghcr.io/grafana/kustomize/grafana-operator:v5.25.0 --output ./grafana-operator/

Using OLM

Releases are published to operatorhub.io as well as the OpenShift Operator Catalog. Depending on the installation, existing installations will either upgrade automatically or require approval from an administrator.

What's Changed

Breaking changes

Features

Fixes

Dependencies

…(truncated)

<!-- Release notes generated using configuration in .github/release.yml at master --> Welcome to release 5.24.0 of the Grafana Operator!

This release contains an important security fix, and we urge you to update to this version as soon as possible. We are not aware of any breaking changes all through versions >= 5 so updates should be trivial.

Regarding features, this release includes support for fetching dashboards & library panels using OCI artifacts.

Upgrade instructions

Using Helm

# Upgrade the operator image & deployment
helm upgrade -i grafana-operator oci://ghcr.io/grafana/helm-charts/grafana-operator --version 5.24.0
# Upgrading CRDs
kubectl apply --server-side --force-conflicts -f https://github.com/grafana/grafana-operator/releases/download/v5.24.0/crds.yaml

Using kubectl

# Namespace Scope
kubectl replace -f https://github.com/grafana/grafana-operator/releases/download/v5.24.0/kustomize-namespace_scoped.yaml
# Cluster Scope
kubectl replace -f https://github.com/grafana/grafana-operator/releases/download/v5.24.0/kustomize-cluster_scoped.yaml 

Using kustomize

flux pull artifact oci://ghcr.io/grafana/kustomize/grafana-operator:v5.24.0 --output ./grafana-operator/

Using OLM

Releases are published to operatorhub.io as well as the OpenShift Operator Catalog. Depending on the installation, existing installations will either upgrade automatically or require approval from an administrator.

What's Changed

Features

Fixes

Dependencies

Other Changes

New Contributors

Full Changelog: https://github.com/grafana/grafana-operator/compare/v5.23.0...v5.24.0

<!-- Release notes generated using configuration in .github/release.yml at master --> We're happy to announce version 5.23.0 of the Grafana Operator!

This release contains fixes for a bunch of long standing issues as well as quality-of-live improvements. It also bumps the default Grafana version to 13.0.1. Note that existing instances will not be updated automatically. To update them, modify the value of .spec.version.

Upgrade instructions

Using Helm

# Upgrade the operator image & deployment
helm upgrade -i grafana-operator oci://ghcr.io/grafana/helm-charts/grafana-operator --version 5.23.0
# Upgrading CRDs
kubectl apply --server-side --force-conflicts -f https://github.com/grafana/grafana-operator/releases/download/v5.23.0/crds.yaml

Using kubectl

# Namespace Scope
kubectl replace -f https://github.com/grafana/grafana-operator/releases/download/v5.23.0/kustomize-namespace_scoped.yaml
# Cluster Scope
kubectl replace -f https://github.com/grafana/grafana-operator/releases/download/v5.23.0/kustomize-cluster_scoped.yaml 

Using kustomize

flux pull artifact oci://ghcr.io/grafana/kustomize/grafana-operator:v5.23.0 --output ./grafana-operator/

Using OLM

Releases are published to operatorhub.io as well as the OpenShift Operator Catalog. Depending on the installation, existing installations will either upgrade automatically or require approval from an administrator. <!-- Release notes generated using configuration in .github/release.yml at master -->

What's Changed

Features

Fixes

Dependencies

Documentation

Other Changes

…(truncated)

This release fixes issues around CEL validation rules and kubernetes compatibility. No changes were made to the functionality of the operator since the last release.

When updating, you should ideally update to this release directly, skipping 5.22.0 and 5.22.1 to prevent issues during CRD updates.

<!-- Release notes generated using configuration in .github/release.yml at master -->

What's Changed

Fixes

Dependencies

Documentation

Full Changelog: https://github.com/grafana/grafana-operator/compare/v5.22.1...v5.22.2

Changes worth paying attention to

  • new emptyDir volume with /tmp mount point and deprecation of TMPDIR env:
    • starting from Grafana v12.4.0, plugins no longer have access to all environment variables by default (PR). It means that TMPDIR env, which we have previously used to override temporary location for plugin downloads, is now ignored. To mitigate that change on the operator side, we backed /tmp by an emptyDir volume and stopped adding TMPDIR env (the alternative was to generate forward_host_env_vars setting in plugins section of a configMap, which would be overly complex for our needs). It works with any Grafana version, so should be a transparent change for most users. In case you, for some reasons, have some manual volume overrides for /tmp as well, it would be a good idea to remove those;
  • deprecation of pre-provisioned receivers:
    • starting from Grafana v12.4.0, the pre-provisioned set of receivers has changed (PR), so, if you happen to rely on one of those (e.g. default-receiver, grafana-default-email), before upgrading to v12.4.0+, you should migrate to a custom receiver (use GrafanaContactPoint CR to provision one). It's also an option to rely on empty receiver instead, but it's available only in v12.4.0+, so you'd have to upgrade all matching Grafana instances at once;
  • RBAC for events:
    • with v5.22.0, you might have noticed in logs that the operator fails to generate LeaderElection events. It appears that controller-runtime still depends on core API ("") to generate this specific event. All the other events get recorded using events.k8s.io API group. Our RBAC manifests have been extended to accomodate both groups (thanks to @tamcore).

What's Changed

Breaking changes

Fixes

Dependencies

Documentation

Other Changes

Full Changelog: https://github.com/grafana/grafana-operator/compare/v5.22.0...v5.22.1

<!-- Release notes generated using configuration in .github/release.yml at master --> We're happy to announce version 5.22.0 of the Grafana Operator!

This release contains a bunch of new and exciting features like:

  • The brand new GrafanaManifest resource
    • This allows you to manage resources previously not supported by the operator but available through the new Kuberentes-style Grafana APIs (e.g Playlists, ShortURLs) as well as resources introduced by plugins (e.g. Frontend O11y configuration in Grafana Cloud).
  • Dynamic resource patching (currently only available to GrafanaManifest resources)
    • Patch resources with arbitrary jq scripts before submitting them to the Grafana API!
  • Alert rule groups have been updated to support more fields exposed by the Grafana API
  • Service accounts no longer require a name and will default to metadata.name

Upgrade instructions

Using Helm

# Upgrade the operator image & deployment
helm upgrade -i grafana-operator oci://ghcr.io/grafana/helm-charts/grafana-operator --version 5.22.0
# Upgrading CRDs
kubectl apply --server-side --force-conflicts -f https://github.com/grafana/grafana-operator/releases/download/v5.22.0/crds.yaml

Using kubectl

# Namespace Scope
kubectl replace -f https://github.com/grafana/grafana-operator/releases/download/v5.22.0/kustomize-namespace_scoped.yaml
# Cluster Scope
kubectl replace -f https://github.com/grafana/grafana-operator/releases/download/v5.22.0/kustomize-cluster_scoped.yaml 

Using kustomize

flux pull artifact oci://ghcr.io/grafana/kustomize/grafana-operator:v5.22.0 --output ./grafana-operator/

Using OLM

Releases are published to operatorhub.io as well as the OpenShift Operator Catalog. Depending on the installation, existing installations will either upgrade automatically or require approval from an administrator.

What's Changed

Changes that might need your attention

Features

Fixes

Dependencies

Documentation

…(truncated)

This release contains a few fixes around HTTPRoute CRD discovery, kustomize artifacts, and NotificationPolicy validations.

What's Changed

Breaking changes

  • fix(NotificationPolicy): disable invalid fields on .spec.route by @Baarsgaard in https://github.com/grafana/grafana-operator/pull/2270
    • even though, technically, the change is breaking, it may only affect configurations and k8s versions that we do not support:
      • essentially, we added CEL-rules prohibiting usage of a few top-level fields inside .spec.route. Those fields have never had any effect, so should have never been used by anyone in the first place. More details can be found in the related PR;
      • some of those rules rely on a CEL function that is not available on k8s <= 1.31.x. 1.31 has already reached its EOL, so it should not be an issue either;
    • if any of the changes mentioned above prevent you from upgrading, you may simply skip CRD upgrade this time (e.g. keep using the one from v5.21.3, it differs only around those validations).

Fixes

  • fix(autodetect): HTTPRoute discovery for partial Gateway API CRD set by @weisdd in https://github.com/grafana/grafana-operator/pull/2417
    • previously, the operator would assume that users would have either all Gateway API CRDs installed or none of them. As a consequence, if HTTPRoute CRD was actually missing, the operator would crash while trying to do cache fine-tuning (part of the start-up process). From now on, the operator will specifically check for HTTPRoute CRD instead;
  • fix(kustomize): remove stale image override from cluster_scoped overlay by @abh in https://github.com/grafana/grafana-operator/pull/2413
    • it appears that, starting from v5.18.0, cluster-scoped kustomize artifacts (kustomize-cluster_scoped.yaml) have contained a stale image override. Those artifacts, based on our pull stats, are not widely used, so the effect was minimal. In any case, we'll adjust our Makefile targets to prevent accidental image overrides.

New Contributors

Full Changelog: https://github.com/grafana/grafana-operator/compare/v5.21.3...v5.21.4

NOTE: This patch release is aimed to fix a bug in the helm chart around setting the default value for image.repository (in earlier v5.21.x versions, it should have been set to grafana/grafana-operator, not to ghcr.io/grafana/grafana-operator, which resulted in ErrImagePull errors).

<!-- Release notes generated using configuration in .github/release.yml at master -->

What's Changed

Fixes

Full Changelog: https://github.com/grafana/grafana-operator/compare/v5.21.2...v5.21.3

NOTE: due to a bug in our workflow, image.repository in the helm chart is set to ghcr.io/grafana/grafana-operator (instead of grafana/grafana-operator), which will lead to the ErrImagePull error in Kubernetes. You can either do a manual override or wait for chart 5.21.3.

<!-- Release notes generated using configuration in .github/release.yml at master -->

What's Changed

Fixes

Full Changelog: https://github.com/grafana/grafana-operator/compare/v5.21.1...v5.21.2

NOTE: functionality-wise, v5.21.1 is the same as v5.21.0. - The patch release contains only a fix for our helm publishing workflow. Make sure to use 5.21.1 tag for helm chart.

NOTE: due to a bug in our workflow, image.repository in the helm chart is set to ghcr.io/grafana/grafana-operator (instead of grafana/grafana-operator), which will lead to the ErrImagePull error in Kubernetes. You can either do a manual override or wait for chart 5.21.3.


Welcome to release 5.21.1 of the Grafana Operator!

It mainly includes bug fixes but also some cool new features (like kubernetes-native JWT authentication, HTTPRoute support or more flexible date parsing in alert rule groups).

We also made some changes to the helm chart. One minor change is that we removed the v prefix from our chart versions which should hopefully simplify OCI installations. We also aligned the image.repository value with other Grafana helm charts which might cause issues. More details can be found in the next section.

Breaking changes to the helm chart

If you've been using the image.repository field to change the image, this field has been split into registry and repository to align with the rest of the Grafana helm charts.

To migrate any custom values to this new format, follow this example: <details>

<summary>Migration example</summary>

If your values.yaml contained this:

image:
  repository: example.com/my-custom/grafana-operator

you'll need to replace it with this:

image:
   registry: example.com
   repository: my-custom/grafana-operator

</details

If you haven't changed this field in your values.yaml, you can safely ignore this.

Upgrade instructions

Using Helm

# Upgrade the operator image & deployment
helm upgrade -i grafana-operator oci://ghcr.io/grafana/helm-charts/grafana-operator --version 5.21.1
# Upgrading CRDs
kubectl apply --server-side --force-conflicts -f https://github.com/grafana/grafana-operator/releases/download/v5.21.1/crds.yaml

Using kubectl

# Namespace Scope
kubectl replace -f https://github.com/grafana/grafana-operator/releases/download/v5.21.1/kustomize-namespace_scoped.yaml
# Cluster Scope
kubectl replace -f https://github.com/grafana/grafana-operator/releases/download/v5.21.1/kustomize-cluster_scoped.yaml 

Using kustomize

flux pull artifact oci://ghcr.io/grafana/kustomize/grafana-operator:v5.21.1 --output ./grafana-operator/

Using OLM

Releases are published to operatorhub.io as well as the OpenShift Operator Catalog. Depending on the installation, existing installations will either upgrade automatically or require approval from an administrator.

What's Changed

Features

Fixes

Dependencies

New Contributors

Full Changelog: https://github.com/grafana/grafana-operator/compare/v5.20.0...v5.21.0

Welcome to release 5.21.0 of the Grafana Operator!

It mainly includes bug fixes but also some cool new features (like kubernetes-native JWT authentication, HTTPRoute support or more flexible date parsing in alert rule groups).

We also made some changes to the helm chart. One minor change is that we removed the v prefix from our chart versions which should hopefully simplify OCI installations. We also aligned the image.repository value with other Grafana helm charts which might cause issues. More details can be found in the next section.

Breaking changes to the helm chart

If you've been using the image.repository field to change the image, this field has been split into registry and repository to align with the rest of the Grafana helm charts.

To migrate any custom values to this new format, follow this example: <details>

<summary>Migration example</summary>

If your values.yaml contained this:

image:
  repository: example.com/my-custom/grafana-operator

you'll need to replace it with this:

image:
   registry: example.com
   repository: my-custom/grafana-operator

</details

If you haven't changed this field in your values.yaml, you can safely ignore this.

Upgrade instructions

Using Helm

# Upgrade the operator image & deployment
helm upgrade -i grafana-operator oci://ghcr.io/grafana/helm-charts/grafana-operator --version 5.21.0
# Upgrading CRDs
kubectl apply --server-side --force-conflicts -f https://github.com/grafana/grafana-operator/releases/download/v5.21.0/crds.yaml

Using kubectl

# Namespace Scope
kubectl replace -f https://github.com/grafana/grafana-operator/releases/download/v5.21.0/kustomize-namespace_scoped.yaml
# Cluster Scope
kubectl replace -f https://github.com/grafana/grafana-operator/releases/download/v5.21.0/kustomize-cluster_scoped.yaml 

Using kustomize

flux pull artifact oci://ghcr.io/grafana/kustomize/grafana-operator:v5.21.0 --output ./grafana-operator/

Using OLM

Releases are published to operatorhub.io as well as the OpenShift Operator Catalog. Depending on the installation, existing installations will either upgrade automatically or require approval from an administrator.

What's Changed

Features

Fixes

Dependencies

New Contributors

Full Changelog: https://github.com/grafana/grafana-operator/compare/v5.20.0...v5.21.0