<p>With Helm v3.0.2 + a new Kubernetes v1.14.9 cluster.</p>

<p>fyi, I've already added the stable repo:</p>

<pre class="lang-sh prettyprint-override"><code>helm repo add stable https://kubernetes-charts.storage.googleapis.com/
</code></pre>

<pre class="lang-sh prettyprint-override"><code>helm install \
  --namespace prometheus \
  prom-dry-run \
  stable/prometheus-operator \
  --dry-run

manifest_sorter.go:175: info: skipping unknown hook: "crd-install"
manifest_sorter.go:175: info: skipping unknown hook: "crd-install"
manifest_sorter.go:175: info: skipping unknown hook: "crd-install"
manifest_sorter.go:175: info: skipping unknown hook: "crd-install"
manifest_sorter.go:175: info: skipping unknown hook: "crd-install"
Error: unable to build kubernetes objects from release manifest: [unable to recognize "": no matches for kind "Alertmanager" in version "monitoring.coreos.com/v1", unable to recognize "": no matches for kind "Prometheus" in version "monitoring.coreos.com/v1", unable to recognize "": no matches for kind "PrometheusRule" in version "monitoring.coreos.com/v1", unable to recognize "": no matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1"]
</code></pre>

<p>I thought Helm 3 was backward-compatible with existing charts? Is this an exception?</p>

<p>Is prometheus-operator not compatible with Helm 3? Do I have to use Helm 2? Or is there a backward-compatibility option?</p>

<p>The stable repo is scheduled to be deprecated and probably not updated with latest charts.The canonical source for Helm charts is the <a href="https://hub.helm.sh" rel="nofollow noreferrer">Helm Hub</a>. Use below command to add repo and install prometheus operator from Helm Hub using helm 3 or helm 2.</p>

<pre><code>helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-prom-release bitnami/prometheus-operator
</code></pre>

<p>There is a detailed <a href="https://helm.sh/blog/migrate-from-helm-v2-to-helm-v3/" rel="nofollow noreferrer">guide</a> for migrating from helm 2 to helm 3</p>

<p>In helm 3 during a dry run, CRDs are not installed but the Kubernetes validation happens against the output of the chart. So any CR that uses a CRD that is installed by the chart will fail validation during dry run.</p>

<p><strong>Current work-arounds:</strong></p>

<p>1.Use helm template instead of dry run</p>

<p>2.Don't reference CRs in the same chart that has the CRDs</p>

<p>3.Install the CRD separately before running the dry run</p>
