<p>Let's say I want to install an operator like <a href="https://kubedb.com/" rel="nofollow noreferrer">kubedb</a> or <a href="https://github.com/spotahome/redis-operator" rel="nofollow noreferrer">redis-operator</a> and I want to deploy respective Databases / CRDs in different namespaces such as dev, int , prod etc. Do these operators need to be in kube-system or they can be in some independent namespace such as kubedb or redis-ope.. ? </p>

<p>What is the best practice ? what are pros and cons ? </p>

user2062360
<p>The operators don't need to be in any specific namespace. The way it works is the service accounts that is used by the operators to interact with Kubernetes API need to have right RABC via role or clusterrole. </p>

<p>Best practice is to install operators in separate namespace of their own. This reduces the possibility of interfering with other components such a critical pods of <code>kube-system</code> namespace when you want to uninstall or upgrade the operators.</p>
