<p dir="auto"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/timothysc/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/timothysc">@timothysc</a> has a comment on this on <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="143028687" data-permission-text="Title is private" data-url="https://github.com/kubernetes/kubernetes/issues/23387" data-hovercard-type="pull_request" data-hovercard-url="/kubernetes/kubernetes/pull/23387/hovercard" href="https://github.com/kubernetes/kubernetes/pull/23387">#23387</a>. It's orthogonal to the issue but of course we could extend it to a discussion.</p>
<p dir="auto">Currently, Codec() and Versioner() wrap an input object that could be shared across different storage back-ends. The code is just a repeat for each implementation:</p>
<div class="highlight highlight-source-go notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="func NewSomeImpl(codec runtime.Codec, ...) {}

func (i *someImpl) Codec() {
  return i.codec
}"><pre class="notranslate"><span class="pl-k">func</span> <span class="pl-en">NewSomeImpl</span>(<span class="pl-s1">codec</span> runtime.<span class="pl-smi">Codec</span>, <span class="pl-c1">...</span>) {}

<span class="pl-k">func</span> (<span class="pl-s1">i</span> <span class="pl-c1">*</span><span class="pl-smi">someImpl</span>) <span class="pl-en">Codec</span>() {
  <span class="pl-k">return</span> <span class="pl-s1">i</span>.<span class="pl-c1">codec</span>
}</pre></div>
<p dir="auto">BUG REPORT</p>
<p dir="auto"><strong>Kubernetes version</strong> (use <code class="notranslate">kubectl version</code>):<br>
Client Version: version.Info{Major:"1", Minor:"3", GitVersion:"v1.3.6", GitCommit:"ae4550cc9c89a593bcda6678df201db1b208133b", GitTreeState:"clean", BuildDate:"2016-08-26T18:13:23Z", GoVersion:"go1.6.2", Compiler:"gc", Platform:"linux/amd64"}<br>
Server Version: version.Info{Major:"1", Minor:"3", GitVersion:"v1.3.6", GitCommit:"ae4550cc9c89a593bcda6678df201db1b208133b", GitTreeState:"clean", BuildDate:"2016-08-26T18:06:06Z", GoVersion:"go1.6.2", Compiler:"gc", Platform:"linux/amd64"}</p>
<p dir="auto"><strong>Environment</strong>:</p>
<ul dir="auto">
<li><strong>Cloud provider or hardware configuration</strong>:<br>
bare metal ubuntu</li>
<li><strong>OS</strong> (e.g. from /etc/os-release):<br>
14.04.5 LTS</li>
<li><strong>Kernel</strong> (e.g. <code class="notranslate">uname -a</code>):<br>
Linux yehiyam-adsl 3.19.0-68-generic <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="35609427" data-permission-text="Title is private" data-url="https://github.com/kubernetes/kubernetes/issues/76" data-hovercard-type="pull_request" data-hovercard-url="/kubernetes/kubernetes/pull/76/hovercard" href="https://github.com/kubernetes/kubernetes/pull/76">#76</a>~14.04.1-Ubuntu SMP Fri Aug 12 11:46:25 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux</li>
<li><strong>Install tools</strong>:</li>
<li><strong>Others</strong>:</li>
</ul>
<p dir="auto"><strong>What happened</strong>:<br>
In kubernetes 1.3.6 every container that is created has an ipv6 address that is marked as duplicate address.<br>
i.e.<br>
<code class="notranslate">10: eth0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1450  inet6 fe80::42:acff:fe10:2e02/64 scope link tentative dadfailed  valid_lft forever preferred_lft forever</code><br>
this prevents one of our services (kurento-media-server) from working correctly.<br>
This never happened with an older version of k8s (1.1.7)<br>
<strong>What you expected to happen</strong>:<br>
The IPv6 address should not be marked as duplicate</p>
<p dir="auto"><strong>How to reproduce it</strong> (as minimally and precisely as possible):<br>
Create a container (e.g. busybox, nginx)<br>
execute the <strong>ip</strong> command in the container<br>
<code class="notranslate">kubectl exec pod_name ip add show</code></p>
<p dir="auto"><strong>Anything else do we need to know</strong>:</p>