title: versioned clientset for client-go
body: <p>I am read some code <a href="https://github.com/openshift/router/blob/master/pkg/router/controller/factory/factory.go" rel="nofollow noreferrer">https://github.com/openshift/router/blob/master/pkg/router/controller/factory/factory.go</a>.</p>
  <p>In this go file, it references to 3 clientset, I have used standard K8s clientset - k8s.io/client-go/kubernetes, but I don't understand why many projects like to generate new clientset? Why standard K8s clientset doesn't provide enough API or functionalities? Could anybody give ideas or an example why some project wants to generate new clientset? What is it for?</p>
  <pre><code>    kclientset &quot;k8s.io/client-go/kubernetes&quot;
  
      projectclient &quot;github.com/openshift/client-go/project/clientset/versioned/typed/project/v1&quot;
      routeclientset &quot;github.com/openshift/client-go/route/clientset/versioned&quot;
  </code></pre>