feat: add support for single stack IPv6 #2781
Conversation
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: aramase If they are not already assigned, you can assign the PR to them by writing The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
dd24886
to
48d7c66
Compare
d766f5e
to
3007740
Compare
Codecov Report
@@ Coverage Diff @@
## master #2781 +/- ##
==========================================
+ Coverage 72.47% 72.48% +0.01%
==========================================
Files 140 140
Lines 25589 25658 +69
==========================================
+ Hits 18545 18599 +54
- Misses 5976 5987 +11
- Partials 1068 1072 +4 |
51436ea
to
f5cba91
Compare
@aramase Is this ready for final review? |
@jackfrancis yes, this is ready for review. |
/cc @jackfrancis |
@jackfrancis Please review this when you get a chance. I would like to get it merged and then setup conformance job in prow for single stack IPv6 cluster. Need that for graduation of IPv6 to beta. |
38e1686
to
846ae94
Compare
@@ -9,6 +9,15 @@ data: | |||
kubeconfig: /var/lib/kubelet/kubeconfig | |||
clusterCIDR: "{{ContainerConfig "cluster-cidr"}}" | |||
mode: "{{ContainerConfig "proxy-mode"}}" | |||
{{- if ContainerConfig "bind-address"}} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So go template if operates against strings according to ""
= false and any non-empty string = true ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jackfrancis correct, if it's ""
then it's ignored.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looked up and verified in the actual docs as well :)
// set host network to true for single stack IPv6 as the the nameserver is currently | ||
// IPv4 only. By setting it to host network, we can leverage the host routes to successfully | ||
// resolve dns. | ||
if cs.Properties.FeatureFlags.IsFeatureEnabled("EnableIPv6Only") { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should add UT coverage to addons_test.go
for these ipv6 scenarios. Lemme know if you want help, it's 4k+ lines of UT coverage :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let me take a stab at it, will ping you if you I need help :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jackfrancis added the tests, PTAL!
var ret []KubernetesAddon | ||
defaults := getDefaultAddons(version, kubernetesImageBase, kubernetesImageBaseType) | ||
for _, addonOverride := range addons { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jackfrancis With this logic, if overwriteDefaultAddons
is called with more than 1 overwrite addon, it would result in duplicate values for overwriteAddons[1:]
. So I've updated the logic to just do a single pass of the array.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yikes, thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
(cherry picked from commit 1b9beb4)
(cherry picked from commit 1b9beb4)
(cherry picked from commit 1b9beb4)
* feat: add support for Kubernetes 1.18.0-beta.1 (#2791) * feat: add support for Kubernetes 1.18.0-beta.1 See https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md/#v1180-beta1 * fix: windows support .zip URL (cherry picked from commit 34706cf) * feat: add support for single stack IPv6 (#2781) (cherry picked from commit 1b9beb4) * feat: allow iptables mode for dualstack 1.18+ (#2882) (cherry picked from commit ff5362e) * chore: update cluster-autoscaler for k8s 1.18 (#2901) See https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.18.0 (cherry picked from commit 0cc985d) * feat: add support for Kubernetes 1.18.0 (#2957) See https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.18.md (cherry picked from commit 6dadaf0) * test: fix test TestGetProvisionScriptParametersCommon and TestGetK8sVersionComponents * feat: Adding WindowsNodeReset.ps1 script to reset/cleanup state for nodes (#2457) * Adding WindowsNodeReset.ps1 script to reset/cleanup state for windox^C nodes * fix linting errors * fixing comments per CR feedback (cherry picked from commit 8be7000) * feat: Experimental support for Windows+ContainerD (#1322) (cherry picked from commit b068aa7) * feat: installing csi-proxy for windows at node deployment time (#2930) (cherry picked from commit 13e72f2) Co-authored-by: Matt Boersma <Matt.Boersma@microsoft.com> Co-authored-by: Anish Ramasekar <anish.ramasekar@gmail.com> Co-authored-by: Mark Rossetti <marosset@microsoft.com>
(cherry picked from commit 1b9beb4)
(cherry picked from commit 1b9beb4)
…3076) * test: fix test TestGetK8sVersionComponents and TestGetProvisionScriptParametersCommon * feat: Adding WindowsNodeReset.ps1 script to reset/cleanup state for nodes (#2457) * Adding WindowsNodeReset.ps1 script to reset/cleanup state for windox^C nodes * fix linting errors * fixing comments per CR feedback (cherry picked from commit 8be7000) * feat: add support for Kubernetes 1.18.0-beta.1 (#2791) * feat: add support for Kubernetes 1.18.0-beta.1 See https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md/#v1180-beta1 * fix: windows support .zip URL (cherry picked from commit 34706cf) * feat: Experimental support for Windows+ContainerD (#1322) (cherry picked from commit b068aa7) * feat: add support for single stack IPv6 (#2781) (cherry picked from commit 1b9beb4) * feat: allow iptables mode for dualstack 1.18+ (#2882) (cherry picked from commit ff5362e) * chore: update cluster-autoscaler for k8s 1.18 (#2901) See https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.18.0 (cherry picked from commit 0cc985d) * feat: installing csi-proxy for windows at node deployment time (#2930) (cherry picked from commit 13e72f2) * feat: add support for Kubernetes 1.18.0 (#2957) See https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.18.md (cherry picked from commit 6dadaf0) * fix: make build with go 1.14 (#3005) (cherry picked from commit 509bc9c) * feat: add support for Kubernetes 1.18.1 (#3045) * feat: add support for Kubernetes 1.18.1 See https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md#changelog-since-v1180 * ci: test PRs with k8s 1.18 (cherry picked from commit 66ff61c) Co-authored-by: Mark Rossetti <marosset@microsoft.com> Co-authored-by: Matt Boersma <Matt.Boersma@microsoft.com> Co-authored-by: Anish Ramasekar <anish.ramasekar@gmail.com> Co-authored-by: Sertaç Özercan <852750+sozercan@users.noreply.github.com>
(cherry picked from commit 1b9beb4)
(cherry picked from commit 1b9beb4)
(cherry picked from commit 1b9beb4)
(cherry picked from commit 1b9beb4)
…18.2 (#3194) * feat: add support for single stack IPv6 (#2781) (cherry picked from commit 1b9beb4) * feat: allow iptables mode for dualstack 1.18+ (#2882) (cherry picked from commit ff5362e) * chore: update cluster-autoscaler for k8s 1.18 (#2901) See https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.18.0 (cherry picked from commit 0cc985d) * feat: installing csi-proxy for windows at node deployment time (#2930) (cherry picked from commit 13e72f2) * feat: add support for Kubernetes 1.18.0 (#2957) See https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.18.md (cherry picked from commit 6dadaf0) * fix: make build with go 1.14 (#3005) (cherry picked from commit 509bc9c) * feat: add support for Kubernetes 1.18.1 (#3045) * feat: add support for Kubernetes 1.18.1 See https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md#changelog-since-v1180 * ci: test PRs with k8s 1.18 (cherry picked from commit 66ff61c) * feat: add support for Kubernetes 1.18.2 (#3089) See https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md#changelog-since-v1181 (cherry picked from commit 8ebece1) * Revert "Revert windowszip path" This reverts commit 8db438e. * Update KubeBinariesSASURLBase to new path. Co-authored-by: Anish Ramasekar <anish.ramasekar@gmail.com> Co-authored-by: Matt Boersma <Matt.Boersma@microsoft.com> Co-authored-by: Mark Rossetti <marosset@microsoft.com> Co-authored-by: Sertaç Özercan <852750+sozercan@users.noreply.github.com>
Reason for Change:
API model - https://gist.github.com/aramase/a19fcbf1f309dab99600ee9c0d700fce
Issue Fixed:
Requirements:
Notes: