<p>I installed <code>minikube</code> on my Mac and I'd like to deploy elasticsearch on this k8s cluster. I followed this instruction: <a href="https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-deploy-elasticsearch.html" rel="nofollow noreferrer">https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-deploy-elasticsearch.html</a></p>
<p>The file I created is:</p>
<pre><code>apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
  name: quickstart
spec:
  version: 7.10.0
  nodeSets:
  - name: default
    count: 1
    config:
      node.store.allow_mmap: false
</code></pre>
<p>when I run <code>kubectl apply -f es.yaml</code>, I got this error: <code>error: unable to recognize &quot;es.yaml&quot;: no matches for kind &quot;Elasticsearch&quot; in version &quot;elasticsearch.k8s.elastic.co/v1&quot;</code></p>
<p>It says <code>kind</code> is not matched. I wonder how I can make it work. I searched k8s doc and it seems <code>kind</code> can be <code>service</code>, <code>pod</code>, <code>deployment</code>. But why the above instruction uses <code>Elasticsearch</code> as the <code>kind</code>? What value of <code>kind</code> should I specify?</p>

<p>I think you might have missed the step of installing CRD and the operator for ElasticSearch. Have you followed this step <a href="https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-deploy-eck.html" rel="nofollow noreferrer">https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-deploy-eck.html</a>?</p>
<p><code>Service</code>, <code>Pod</code>, <code>Deployment</code> etc are Kubernetes native resources. Kubernetes provides a way to write custom resources also, using <a href="https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/" rel="nofollow noreferrer">CRDs</a>. <code>Elasticsearch</code> is one such example, so you have to define custom resource before using it for Kubernetes to understand that.</p>
