<p dir="auto">In some hosting environments/configurations, the network traffic between node and master may traverse the public Internet. As a result, we'd like to secure the communication between the node components (e.g. kubelet and proxy) and master. To avoid the complexity of securing the kubelet API, we'd like to secure the node -&gt; master communication, but not the reverse. This simplification has a downside; it means all communication between kubelet and master would have to be initiated by the kubelet. For example, we'd have to change health checks to be initiated by the kubelet, which in turn raises a question of how to do flow control (master apply backpressure when it becomes overloaded).</p>
<p dir="auto"><strong>Is this a request for help?</strong> (If yes, you should use our troubleshooting guide and community support channels, see <a href="http://kubernetes.io/docs/troubleshooting/.):NO" rel="nofollow">http://kubernetes.io/docs/troubleshooting/.):NO</a></p>
<p dir="auto"><strong>What keywords did you search in Kubernetes issues before filing this one?</strong> (If you have found any duplicates, you should instead reply there.): <code class="notranslate">is:issue is:open zsh completion</code></p>
<hr>
<p dir="auto"><strong>Is this a BUG REPORT or FEATURE REQUEST?</strong> (choose one):</p>

<p dir="auto"><strong>Kubernetes version</strong> (use <code class="notranslate">kubectl version</code>):</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="% kubectl version
Client Version: version.Info{Major:&quot;1&quot;, Minor:&quot;3&quot;, GitVersion:&quot;v1.3.7+a2cba278&quot;, GitCommit:&quot;a2cba278cba1f6881bb0a7704d9cac6fca6ed435&quot;, GitTreeState:&quot;not a git tree&quot;, BuildDate:&quot;2016-09-23T02:19:56Z&quot;, GoVersion:&quot;go1.7.1&quot;, Compiler:&quot;gc&quot;, Platform:&quot;darwin/amd64&quot;}"><pre class="notranslate"><code class="notranslate">% kubectl version
Client Version: version.Info{Major:"1", Minor:"3", GitVersion:"v1.3.7+a2cba278", GitCommit:"a2cba278cba1f6881bb0a7704d9cac6fca6ed435", GitTreeState:"not a git tree", BuildDate:"2016-09-23T02:19:56Z", GoVersion:"go1.7.1", Compiler:"gc", Platform:"darwin/amd64"}
</code></pre></div>
<p dir="auto"><strong>Environment</strong>:</p>
<ul dir="auto">
<li><strong>Cloud provider or hardware configuration</strong>: MacBook Pro</li>
<li><strong>OS</strong> (e.g. from /etc/os-release): macOS</li>
<li><strong>Kernel</strong> (e.g. <code class="notranslate">uname -a</code>): Sierra</li>
<li><strong>Install tools</strong>: homebrew</li>
<li><strong>Others</strong>:</li>
</ul>
<p dir="auto"><strong>What happened</strong>:<br>
If you source the kubectl complete for zsh like so:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="$ source &lt;(kubectl completion zsh)"><pre class="notranslate"><code class="notranslate">$ source &lt;(kubectl completion zsh)
</code></pre></div>
<p dir="auto">This breaks zsh vi history search.</p>
<p dir="auto"><strong>What you expected to happen</strong>:<br>
ZSH vi history to work as normal</p>
<p dir="auto"><strong>How to reproduce it</strong> (as minimally and precisely as possible):</p>
<p dir="auto">In <code class="notranslate">.zshrc</code>, enable the <code class="notranslate">vi-mode</code> plugin from <em>oh-my-zsh</em><br>
This should allow to hit the <code class="notranslate">ESC-/</code> to perform a history search.</p>
<p dir="auto">Without source the <code class="notranslate">kubectl</code> completion, the command works normally.<br>
After sourcing the <code class="notranslate">kubectl</code> completion, zsh prompts:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="zsh: do you wish to see all 16016 possibilities (16144 lines)?"><pre class="notranslate"><code class="notranslate">zsh: do you wish to see all 16016 possibilities (16144 lines)?
</code></pre></div>
<p dir="auto">Select 'n' for NO and drops back to the prompt.</p>
<p dir="auto"><strong>Anything else do we need to know</strong>:<br>
It seems like <code class="notranslate">kubectl</code> completion is conflicting with <code class="notranslate">vi-mode</code> plugin potentially overwriting the previous configuration.</p>
<p dir="auto">If I source <code class="notranslate">vi-mode</code> after <code class="notranslate">kubectl</code>, everything works as expected.</p>