<p dir="auto">In the swagger api spec, in the proxy methods:</p>
<p dir="auto"><a href="https://github.com/kubernetes/kubernetes/blob/master/api/swagger-spec/v1.json#L6670">https://github.com/kubernetes/kubernetes/blob/master/api/swagger-spec/v1.json#L6670</a></p>
<p dir="auto">There are many such entries like this:</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="       {
        &quot;type&quot;: &quot;string&quot;,
        &quot;paramType&quot;: &quot;query&quot;,
        &quot;name&quot;: &quot;path&quot;,
        &quot;description&quot;: &quot;Path is the URL path to use for the current proxy request to pod.&quot;,
        &quot;required&quot;: false,
        &quot;allowMultiple&quot;: false
       },
       {
        &quot;type&quot;: &quot;string&quot;,
        &quot;paramType&quot;: &quot;path&quot;,
        &quot;name&quot;: &quot;namespace&quot;,
        &quot;description&quot;: &quot;object name and auth scope, such as for teams and projects&quot;,
        &quot;required&quot;: true,
        &quot;allowMultiple&quot;: false
       },
       {
        &quot;type&quot;: &quot;string&quot;,
        &quot;paramType&quot;: &quot;path&quot;,
        &quot;name&quot;: &quot;name&quot;,
        &quot;description&quot;: &quot;name of the Pod&quot;,
        &quot;required&quot;: true,
        &quot;allowMultiple&quot;: false
       },
       {
        &quot;type&quot;: &quot;string&quot;,
        &quot;paramType&quot;: &quot;path&quot;,
        &quot;name&quot;: &quot;path&quot;,
        &quot;description&quot;: &quot;path to the resource&quot;,
        &quot;required&quot;: true,
        &quot;allowMultiple&quot;: false
       }"><pre class="notranslate">       <span class="pl-kos">{</span>
        <span class="pl-s">"type"</span>: <span class="pl-s">"string"</span><span class="pl-kos">,</span>
        <span class="pl-s">"paramType"</span>: <span class="pl-s">"query"</span><span class="pl-kos">,</span>
        <span class="pl-s">"name"</span>: <span class="pl-s">"path"</span><span class="pl-kos">,</span>
        <span class="pl-s">"description"</span>: <span class="pl-s">"Path is the URL path to use for the current proxy request to pod."</span><span class="pl-kos">,</span>
        <span class="pl-s">"required"</span>: <span class="pl-c1">false</span><span class="pl-kos">,</span>
        <span class="pl-s">"allowMultiple"</span>: <span class="pl-c1">false</span>
       <span class="pl-kos">}</span><span class="pl-kos">,</span>
       <span class="pl-kos">{</span>
        <span class="pl-s">"type"</span>: <span class="pl-s">"string"</span><span class="pl-kos">,</span>
        <span class="pl-s">"paramType"</span>: <span class="pl-s">"path"</span><span class="pl-kos">,</span>
        <span class="pl-s">"name"</span>: <span class="pl-s">"namespace"</span><span class="pl-kos">,</span>
        <span class="pl-s">"description"</span>: <span class="pl-s">"object name and auth scope, such as for teams and projects"</span><span class="pl-kos">,</span>
        <span class="pl-s">"required"</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span>
        <span class="pl-s">"allowMultiple"</span>: <span class="pl-c1">false</span>
       <span class="pl-kos">}</span><span class="pl-kos">,</span>
       <span class="pl-kos">{</span>
        <span class="pl-s">"type"</span>: <span class="pl-s">"string"</span><span class="pl-kos">,</span>
        <span class="pl-s">"paramType"</span>: <span class="pl-s">"path"</span><span class="pl-kos">,</span>
        <span class="pl-s">"name"</span>: <span class="pl-s">"name"</span><span class="pl-kos">,</span>
        <span class="pl-s">"description"</span>: <span class="pl-s">"name of the Pod"</span><span class="pl-kos">,</span>
        <span class="pl-s">"required"</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span>
        <span class="pl-s">"allowMultiple"</span>: <span class="pl-c1">false</span>
       <span class="pl-kos">}</span><span class="pl-kos">,</span>
       <span class="pl-kos">{</span>
        <span class="pl-s">"type"</span>: <span class="pl-s">"string"</span><span class="pl-kos">,</span>
        <span class="pl-s">"paramType"</span>: <span class="pl-s">"path"</span><span class="pl-kos">,</span>
        <span class="pl-s">"name"</span>: <span class="pl-s">"path"</span><span class="pl-kos">,</span>
        <span class="pl-s">"description"</span>: <span class="pl-s">"path to the resource"</span><span class="pl-kos">,</span>
        <span class="pl-s">"required"</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span>
        <span class="pl-s">"allowMultiple"</span>: <span class="pl-c1">false</span>
       <span class="pl-kos">}</span></pre></div>
<p dir="auto">As you can see, the name "path" is used twice here. Despite the <code class="notranslate">paramType</code> being different, this causes <code class="notranslate">swagger-codegen</code> to create invalid code:</p>
<div class="highlight highlight-source-cs notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="ConnectOptionsNamespacedPodProxy_6 (string _namespace, string name, string path, string path);"><pre class="notranslate">ConnectOptionsNamespacedPodProxy_6 <span class="pl-kos">(</span><span class="pl-smi">string</span> _namespace<span class="pl-kos">,</span> <span class="pl-smi">string</span> name<span class="pl-kos">,</span> <span class="pl-smi">string</span> path<span class="pl-kos">,</span> <span class="pl-smi">string</span> path<span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
<p dir="auto">As the name is there twice, path is a duplicate variable, causing errors.</p>
<p dir="auto">Although this isn't necessarily a kubernetes issue - duplicate names should be handled properly in swagger-codegen - I think it would be wise to not use the same name twice in these methods.</p>
<p dir="auto">Docker now supports Overlayfs as a storage backend. Since Aufs doesn't work on all distributions and has caused kernel issues in the past (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="93913324" data-permission-text="Title is private" data-url="https://github.com/kubernetes/kubernetes/issues/10959" data-hovercard-type="issue" data-hovercard-url="/kubernetes/kubernetes/issues/10959/hovercard" href="https://github.com/kubernetes/kubernetes/issues/10959">#10959</a>), we should evaluate <code class="notranslate">Overlayfs</code> and see if it can become the default/recommended storage driver for kubernetes deployments.</p>
<p dir="auto">Kubernetes is already being used with multiple storage backends, but our existing test infrastructure does not test against all the possible docker storage backends. Until we can enhance the existing kubernetes e2e infrastructure, we will continue to recommend users to use the default storage backend, which is <code class="notranslate">Aufs</code> as of now.</p>