diff --git a/README.md b/README.md index ec86cec..3ff15ce 100644 --- a/README.md +++ b/README.md @@ -238,6 +238,37 @@ Caused by: org.rocksdb.RocksDBException: while open a file for lock: /pulsar/dat ... 13 more ``` +### Recovering from `helm upgrade` error "unable to build kubernetes objects from current release manifest" + +Example of the error message: +```bash +Error: UPGRADE FAILED: unable to build kubernetes objects from current release manifest: +[resource mapping not found for name: "pulsar-bookie" namespace: "pulsar" from "": +no matches for kind "PodDisruptionBudget" in version "policy/v1beta1" ensure CRDs are installed first, +resource mapping not found for name: "pulsar-broker" namespace: "pulsar" from "": +no matches for kind "PodDisruptionBudget" in version "policy/v1beta1" ensure CRDs are installed first, +resource mapping not found for name: "pulsar-zookeeper" namespace: "pulsar" from "": +no matches for kind "PodDisruptionBudget" in version "policy/v1beta1" ensure CRDs are installed first] +``` + +Helm documentation [explains issues with managing releases deployed using outdated APIs](https://helm.sh/docs/topics/kubernetes_apis/#helm-users) when the Kubernetes cluster has been upgraded +to a version where these APIs are removed. This happens regardless of whether the chart in the upgrade includes supported API versions. +In this case, you can use the following workaround: + +1. Install the [Helm mapkubeapis plugin](https://github.com/helm/helm-mapkubeapis): + + ```bash + helm plugin install https://github.com/helm/helm-mapkubeapis + ``` + +2. Run the `helm mapkubeapis` command with the appropriate namespace and release name. In this example, we use the namespace "pulsar" and release name "pulsar": + + ```bash + helm mapkubeapis --namespace pulsar pulsar + ``` + +This workaround addresses the issue by updating in-place Helm release metadata that contains deprecated or removed Kubernetes APIs to a new instance with supported Kubernetes APIs and should allow for a successful Helm upgrade. + ## Uninstall To uninstall the Pulsar Chart, run the following command: