Skip to content
This repository has been archived by the owner on Oct 24, 2023. It is now read-only.

feat: add support for single stack IPv6 #2781

Merged
merged 4 commits into from Mar 6, 2020
Merged

Conversation

aramase
Copy link
Member

@aramase aramase commented Feb 25, 2020

Reason for Change:

  • Add support for single-stack IPv6 cluster in order to run conformance tests and graduate IPv6 to beta in kubernetes.

API model - https://gist.github.com/aramase/a19fcbf1f309dab99600ee9c0d700fce

Issue Fixed:

Requirements:

Notes:

@acs-bot
Copy link

acs-bot commented Feb 25, 2020

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: aramase
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: patricklang

If they are not already assigned, you can assign the PR to them by writing /assign @patricklang in a comment when ready.

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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@codecov
Copy link

codecov bot commented Feb 25, 2020

Codecov Report

Merging #2781 into master will increase coverage by 0.01%.
The diff coverage is 87.5%.

@@            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

pkg/api/vlabs/validate.go Outdated Show resolved Hide resolved
@aramase aramase changed the title [WIP] feat: add support for single stack IPv6 feat: add support for single stack IPv6 Mar 2, 2020
@jackfrancis
Copy link
Member

@aramase Is this ready for final review?

@aramase
Copy link
Member Author

aramase commented Mar 3, 2020

@jackfrancis yes, this is ready for review.

@aramase
Copy link
Member Author

aramase commented Mar 4, 2020

/cc @jackfrancis

@aramase
Copy link
Member Author

aramase commented Mar 4, 2020

@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.

@aramase aramase force-pushed the ipv6 branch 3 times, most recently from 38e1686 to 846ae94 Compare March 5, 2020 20:55
@@ -9,6 +9,15 @@ data:
kubeconfig: /var/lib/kubelet/kubeconfig
clusterCIDR: "{{ContainerConfig "cluster-cidr"}}"
mode: "{{ContainerConfig "proxy-mode"}}"
{{- if ContainerConfig "bind-address"}}
Copy link
Member

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 ?

Copy link
Member Author

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.

Copy link
Member

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") {
Copy link
Member

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 :)

Copy link
Member Author

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 :)

Copy link
Member Author

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 {
Copy link
Member Author

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.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yikes, thanks!

Copy link
Member

@jackfrancis jackfrancis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@jackfrancis jackfrancis merged commit 1b9beb4 into Azure:master Mar 6, 2020
@aramase aramase deleted the ipv6 branch March 6, 2020 23:24
bowen5 pushed a commit to bowen5/aks-engine that referenced this pull request Mar 29, 2020
bowen5 pushed a commit to bowen5/aks-engine that referenced this pull request Mar 30, 2020
bowen5 pushed a commit to bowen5/aks-engine that referenced this pull request Mar 30, 2020
xuto2 pushed a commit that referenced this pull request Mar 31, 2020
* 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>
bowen5 added a commit to bowen5/aks-engine that referenced this pull request Apr 16, 2020
bowen5 pushed a commit to bowen5/aks-engine that referenced this pull request Apr 16, 2020
xuto2 pushed a commit that referenced this pull request Apr 22, 2020
…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>
bowen5 pushed a commit to bowen5/aks-engine that referenced this pull request Apr 26, 2020
bowen5 pushed a commit to bowen5/aks-engine that referenced this pull request May 5, 2020
bowen5 pushed a commit to bowen5/aks-engine that referenced this pull request May 5, 2020
bowen5 pushed a commit to bowen5/aks-engine that referenced this pull request May 5, 2020
xuto2 pushed a commit that referenced this pull request May 5, 2020
…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>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants