<p dir="auto">Using latest release of kube-apiserver and kubectl, with etcd 2.2.1 and a fresh data directory</p>
<p dir="auto"><code class="notranslate">Client Version: version.Info{Major:"1", Minor:"3+", GitVersion:"v1.3.0-alpha.4", GitCommit:"9990f843cd62caa90445cf76b07d63ba7b5c86fd", GitTreeState:"clean", BuildDate:"2016-05-17T21:58:54Z", GoVersion:"go1.6.2", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"3+", GitVersion:"v1.3.0-alpha.4", GitCommit:"9990f843cd62caa90445cf76b07d63ba7b5c86fd", GitTreeState:"clean", BuildDate:"2016-05-17T21:51:30Z", GoVersion:"go1.6.2", Compiler:"gc", Platform:"linux/amd64"} </code></p>
<p dir="auto">I can create a ThirdPartyResource type okay with lets say a name of student.stable.acme.com via ./kubectl create -f student-type-setup.yaml, this returns a sucess message.  I then can get and list via curl at /apis/stable.acme.com/v1/students no problem.</p>
<p dir="auto">However if I add another third party resource type say course.stable.acme.com, I can't list from this, server returns a 404, even though it was added successfully.</p>
<p dir="auto">More strangely, if at this point I restart the api server, 'courses' now lists okay, but voila 'student's no longer list.  Guessing as my etcd knowledge is very very limited - it's almost as if they are keyed to the same key. At this stage I'm guessing this is related to storage.</p>
<p dir="auto">I am trying to install the following thirdparty resources:</p>
<div class="highlight highlight-source-yaml notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="metadata:
  name: compute-node.tess.io
apiVersion: extensions/v1beta1
kind: ThirdPartyResource
description: &quot;A compute node object is used by the mastercontroller to track computes in cloud&quot;
versions:
 - name: v1"><pre class="notranslate"><span class="pl-ent">metadata</span>:
  <span class="pl-ent">name</span>: <span class="pl-s">compute-node.tess.io</span>
<span class="pl-ent">apiVersion</span>: <span class="pl-s">extensions/v1beta1</span>
<span class="pl-ent">kind</span>: <span class="pl-s">ThirdPartyResource</span>
<span class="pl-ent">description</span>: <span class="pl-s"><span class="pl-pds">"</span>A compute node object is used by the mastercontroller to track computes in cloud<span class="pl-pds">"</span></span>
<span class="pl-ent">versions</span>:
 - <span class="pl-ent">name</span>: <span class="pl-c1">v1</span></pre></div>
<p dir="auto">And</p>
<div class="highlight highlight-source-yaml notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="metadata:
  name: node-pool.tess.io
apiVersion: extensions/v1beta1
kind: ThirdPartyResource
description: &quot;A node pool object to nodes is analogous to what a replicationcontroller is to pods&quot;
versions:
 - name: v1"><pre class="notranslate"><span class="pl-ent">metadata</span>:
  <span class="pl-ent">name</span>: <span class="pl-s">node-pool.tess.io</span>
<span class="pl-ent">apiVersion</span>: <span class="pl-s">extensions/v1beta1</span>
<span class="pl-ent">kind</span>: <span class="pl-s">ThirdPartyResource</span>
<span class="pl-ent">description</span>: <span class="pl-s"><span class="pl-pds">"</span>A node pool object to nodes is analogous to what a replicationcontroller is to pods<span class="pl-pds">"</span></span>
<span class="pl-ent">versions</span>:
 - <span class="pl-ent">name</span>: <span class="pl-c1">v1</span></pre></div>
<p dir="auto">The first one gets successfully registered when I try to create it. But the second on never gets registered and kubectl does not throw an error out either. I digged a little deep into the kube-apiserver logs and I see the following error:</p>
<p dir="auto"><code class="notranslate">Recovered from panic: "http: multiple registrations for /apis/tess.io/v1" (http: multiple registrations for /apis/tess.io/v1)</code></p>
<p dir="auto">When I digged deep into the thirdparty controller and master.go, here: <a href="https://github.com/kubernetes/kubernetes/blob/master/pkg/master/master.go#L611">https://github.com/kubernetes/kubernetes/blob/master/pkg/master/master.go#L611</a>, I see that we have not covered the case where there can be 2 API objects defined on the same resource path prefix, like <code class="notranslate">/apis/tess.io/v1/nodepools</code> and <code class="notranslate">/apis/tess.io/v1/computenodes</code></p>
<p dir="auto">Is there something I am missing, or is this a genuine issue you think ?</p>