<p>I am attempting to install <code>istio</code> in my DO K8s cluster.</p>
<p>I have created a null resource to download <code>istio</code> and run the helm charts using this example - <a href="https://mohsensy.github.io/sysadmin/2021/04/09/install-istio-with-terraform.html" rel="nofollow noreferrer">https://mohsensy.github.io/sysadmin/2021/04/09/install-istio-with-terraform.html</a></p>
<p>TF looks like -</p>
<pre><code>resource &quot;kubernetes_namespace&quot; &quot;istio_system&quot; {
  metadata {
    name = &quot;istio-system&quot;
  }
}

resource &quot;null_resource&quot; &quot;istio&quot; {
  provisioner &quot;local-exec&quot; {
    command = &lt;&lt;EOF
      set -xe

      cd ${path.root}
      rm -rf ./istio-1.9.2 || true
      curl -sL https://istio.io/downloadIstio | ISTIO_VERSION=1.9.2 sh -
      rm -rf ./istio || true
      mv ./istio-1.9.2 istio
    EOF
  }

  triggers = {
    build_number = timestamp()
  }
}

resource &quot;helm_release&quot; &quot;istio_base&quot; {
  name = &quot;istio-base&quot;
  chart = &quot;istio/manifests/charts/base&quot;

  timeout = 120
  cleanup_on_fail = true
  force_update = true
  namespace = &quot;istio-system&quot;

  depends_on = [
    digitalocean_kubernetes_cluster.k8s_cluster,
    kubernetes_namespace.istio_system,
    null_resource.istio
  ]
}
</code></pre>
<p>I can see the <code>istio</code> charts are downloaded with the CRDs.</p>
<pre><code>│ Error: failed to install CRD crds/crd-all.gen.yaml: unable to recognize &quot;&quot;: no matches for kind &quot;CustomResourceDefinition&quot; in version &quot;apiextensions.k8s.io/v1beta1&quot;
│ 
│   with helm_release.istio_base,
│   on istio.tf line 32, in resource &quot;helm_release&quot; &quot;istio_base&quot;:
│   32: resource &quot;helm_release&quot; &quot;istio_base&quot; {
</code></pre>
<p>I need help in understanding what <code>unable to recognize &quot;&quot;</code> tells here!</p>
<p>I am looking for a resolution with some explanation.</p>

cs1193
<p>The error is trying to help you out:</p>
<pre><code>unable to recognize &quot;&quot;: no matches for kind &quot;CustomResourceDefinition&quot; in version &quot;apiextensions.k8s.io/v1beta1&quot;
</code></pre>
<p>Take a look at the API resources available in your Kubernetes enviornment:</p>
<pre><code>$ kubectl api-resources | grep CustomResourceDefinition
</code></pre>
<p>You will probably see something like:</p>
<pre><code>customresourcedefinitions             crd,crds                               apiextensions.k8s.io/v1                        false        CustomResourceDefinition
</code></pre>
<p>Note the API version there: it's <code>aspiextensions.k8s/io/v1</code>, not <code>/v1beta1</code>. Your manifest was built for an older version of Kubernetes. Changes are you can just change the <code>apiVersion</code> in the manifest to the correct value and it will work.</p>
