Migrate to Kubernetes version 1.25
This procedure describes how to prepare a mimir-distributed
Helm chart release for an upgrade to Kubernetes 1.25.
Background
Kubernetes version 1.25 removes the support for the deprecated PodSecurityPolicy object. You can learn more about this topic by visiting PodSecurityPolicy Deprecation: Past, Present, and Future.
Due to how Helm works, PodSecurityPolicy objects must already be removed from the release prior to upgrading to Kubernetes version 1.25. If you are using PodSecurityPolicy on Kubernetes 1.24, this is a breaking change. mimir-distributed
Helm chart versions before 5.0 used PodSecurityPolicy by default in Kubernetes version 1.24.
Prerequisite
- You have Kubernetes version 1.22, 1.23 or 1.24.
- This procedure is only applicable if
rbac.create
istrue
andrbac.type
ispsp
in your current Helm values. This was the case by default before Helm chart version 5.0.
Procedure
- If
rbac.create
isfalse
orrbac.type
isscc
, then there is nothing to do, skip the whole procedure. - Optionally follow the Kubernetes Migrate from PodSecurityPolicy to the Built-In PodSecurity Admission Controller guide to replace PodSecurityPolicy.
- Set the
rbac.create
value tofalse
. - Upgrade the deployment. The chart will not install PodSecurityPolicy objects anymore.
Note
Grafana Mimir does not require any special permissions on the hosts that it runs on. Because of this, you can deploy it in environments that enforce the Kubernetes Restricted security policy.
Troubleshoot
If you have upgraded to Kubernetes 1.25 and see the following error containing PodSecurityPolicy during a Helm release upgrade:
resource mapping not found for name: "mimir" namespace: "" from "":
no matches for kind "PodSecurityPolicy" in version "policy/v1beta1" ensure CRDs are installed first
This happens because Helm stores the current release in a Secret in the namespace. If the current release contains removed resources the helm
command fails to determine the current state of the release.
To remove the PodSecurityPolicy from the Helm release history follow this procedure:
- Optionally follow the Kubernetes Migrate from PodSecurityPolicy to the Built-In PodSecurity Admission Controller guide to replace PodSecurityPolicy.
- Set the
rbac.create
value tofalse
. - Remove PodSecurityPolicy from the Helm release history following the Updating API Versions of a Release Manifest Helm documentation in order to proceed with the upgrade.
- Upgrade the release. The upgrade should succeed now.