<p>With the <a href="https://sdk.operatorframework.io/docs/building-operators/golang/tutorial/" rel="nofollow noreferrer">operator-sdk guide v1.0</a>, it is necessary to install operator-sdk in production environment when deploy an operator.</p>
<p>Is it possibile to deploy an operator without installing operator-sdk? Because it leads to more dependency and complexity.</p>
<p>How can I just generate CRD yaml, CR yaml and Contoller Image?
Or any other more convenient way to publish an Operator？</p>

<p>You can change the make deploy command to generate deploy.yaml with all rbac and deployment objects needed for the operator.
I struggle with my self until I found this solution.</p>
<p>Just change the <a href="https://github.com/operator-framework/operator-sdk/blob/74f5a36af68489d8e3d857f2fedbffacf207474e/testdata/go/memcached-operator/Makefile#L52-L54" rel="nofollow noreferrer">deploy</a> task in the make file.</p>
<pre><code>$(KUSTOMIZE) build config/default | kubectl apply -f -
</code></pre>
<p>To</p>
<pre><code>$(KUSTOMIZE) build config/default &gt; deploy.yaml
</code></pre>
<p>Then run make deploy.
And then copy the deploy.yaml and install it in your k8s or create a helm chart from it.
This worked for me no need for operator-sdk in your environment.</p>
<p>Edit: <br>
I didn't use CRD i use it to watch existing resources.
But it's look like the same solution should work with the <code>install</code> task for CRD and CR.</p>
