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

wip: Windows containerd support #1322

Merged
merged 1 commit into from Mar 5, 2020

Conversation

PatrickLang
Copy link
Contributor

@PatrickLang PatrickLang commented May 16, 2019

Reason for Change:
Once completed, this will install ContainerD and configure Kubernetes to use it on Windows

Requirements:

Notes:
/hold do-not-merge

@PatrickLang
Copy link
Contributor Author

This is going to be open a few days or more. My goal is to get the PR open early with the changes that could break Linux or fail unit tests and let the CI system find those issues. Meanwhile, I still have a lot of work to do in the Windows setup steps that aren't covered in those tests.

@codecov
Copy link

codecov bot commented May 17, 2019

Codecov Report

Merging #1322 into master will increase coverage by <.01%.
The diff coverage is 76%.

@@            Coverage Diff             @@
##           master    #1322      +/-   ##
==========================================
+ Coverage   72.47%   72.47%   +<.01%     
==========================================
  Files         140      140              
  Lines       25589    25612      +23     
==========================================
+ Hits        18545    18562      +17     
- Misses       5976     5981       +5     
- Partials     1068     1069       +1

@PatrickLang
Copy link
Contributor Author

This may not even build right now - did a few hours of work on a plane and then --force-with-lease

🤠

@acs-bot acs-bot added size/XXL and removed size/XL labels May 28, 2019
@PatrickLang PatrickLang force-pushed the windows-containerd branch 2 times, most recently from 64a2b94 to 16e3beb Compare June 7, 2019 23:21
@acs-bot acs-bot added size/XL and removed size/XXL labels Jul 3, 2019
@mboersma mboersma added the needs-rebase Changes in the target branch require a `git rebase` and `git push -f` label Jul 31, 2019
@stale
Copy link

stale bot commented Sep 1, 2019

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Sep 1, 2019
@stale stale bot closed this Sep 8, 2019
@PatrickLang PatrickLang reopened this Sep 11, 2019
@stale stale bot removed the stale label Sep 11, 2019
@acs-bot
Copy link

acs-bot commented Sep 11, 2019

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: PatrickLang

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

@stale
Copy link

stale bot commented Oct 11, 2019

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Oct 11, 2019
@PatrickLang PatrickLang added this to In progress in backlog Oct 16, 2019
@PatrickLang
Copy link
Contributor Author

ok, another day, another rebase + squash with a commit amend to appease Semantic Pull Request

@PatrickLang
Copy link
Contributor Author

PatrickLang commented Mar 3, 2020

/hold cancel

Ready for review. It's not done, but it builds clusters.

next steps (not in any order):

"networkPlugin": "kubenet",
"containerRuntime": "containerd",
"windowsContainerdURL": "https://acsenginedev.blob.core.windows.net/cri-containerd/windows-cri-containerd-05072019.zip",
"windowsSdnPluginURL": "https://acsenginedev.blob.core.windows.net/cri-containerd/windows-cni-containerd-05072019.zip"
Copy link
Contributor

Choose a reason for hiding this comment

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

Right now it looks like we already have a mix of windows specific settings in both kubernetesConfig (azureCNIURLWindows) and windowsProfile (windowsDockerVersion)...
I don't think we should add this to agentPoolProfile but need to think about kubernetesConfig or windowsProfile

"networkPlugin": "kubenet",
"containerRuntime": "containerd",
"windowsContainerdURL": "https://acsenginedev.blob.core.windows.net/cri-containerd/windows-cri-containerd-05072019.zip",
"windowsSdnPluginURL": "https://acsenginedev.blob.core.windows.net/cri-containerd/windows-cni-containerd-05072019.zip"
Copy link
Contributor

Choose a reason for hiding this comment

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

Lets keep it in the kubernetesConfig since it logically fits in with the other config values in there.
If we need more flexibility I think it make more sense to add a per node pool override in the agentPoolProfile but that can come later.

"networkPlugin": "kubenet",
"containerRuntime": "containerd",
"windowsContainerdURL": "https://acsenginedev.blob.core.windows.net/cri-containerd/windows-cri-containerd-05072019.zip",
"windowsSdnPluginURL": "https://acsenginedev.blob.core.windows.net/cri-containerd/windows-cni-containerd-05072019.zip"
Copy link
Contributor

Choose a reason for hiding this comment

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

And we should maybe consider moving the WindowsDockerVersion out of windowsProfile to kubernetesConfig too (and document that flag in clusterdefintions.md)

parts/k8s/windowsconfigfunc.ps1 Show resolved Hide resolved
examples/windows/kubernetes-hybrid.containerd.json Outdated Show resolved Hide resolved
| controllerManagerConfig | no | Configure various runtime configuration for controller-manager. See `controllerManagerConfig` [below](#feat-controller-manager-config) |
| customWindowsPackageURL | no | Configure custom windows Kubernetes release package URL for deployment on Windows. The format of this file is a zip file with multiple items (binaries, cni, infra container) in it. This setting will be deprecated in a future release of aks-engine where the binaries will be pulled in the format of Kubernetes releases that only contain the kubernetes binaries. |
| WindowsNodeBinariesURL | no | Windows Kubernetes Node binaries can be provided in the format of Kubernetes release (example: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.11.md#node-binaries-1). This setting allows overriding the binaries for custom builds. |
| WindowsContainerdURL | no (for development only) | **Experimental** - see [Windows ContainerD](features.md#windows-containerd) |
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't think we should change this now but i'm curious if you think these belong here or under the WindowsProfile long-term?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

a bit of history - this codebase originally supported mesos and docker swarm too, so the container runtime version existed before kubernetesConfig.

I do think these may should have a cluster-wide default, but with a per-agentpool override. All of them happen to be in kubernetesConfig

  • containerRuntime
  • runtime version (containerdVersion / mobyVersion)
  • kubeletConfig

So getting back to an answer - I'd consider moving them from kubernetesConfig to an agent pool setting as a group in the future for consistency, not just a single setting

Copy link
Contributor

@marosset marosset left a comment

Choose a reason for hiding this comment

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

/lgtm
Looks good for the state we are currently targeting :)

@marosset marosset merged commit b068aa7 into Azure:master Mar 5, 2020
backlog automation moved this from Under Review to Done Mar 5, 2020
bowen5 pushed a commit to bowen5/aks-engine that referenced this pull request Mar 31, 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 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 added a commit to bowen5/aks-engine that referenced this pull request Apr 28, 2020
AbelHu added a commit to AbelHu/aks-engine that referenced this pull request Jul 21, 2020
AbelHu added a commit to AbelHu/aks-engine that referenced this pull request Jul 21, 2020
AbelHu added a commit that referenced this pull request Jul 24, 2020
…onfig agent support for Windows (#3630)

* Add staging Windows scripts

* Update parts folder for Windows

* feat: Consume signed powershell scripts

* update the signed package version (#3584)

* fix: use mcr.azk8s.cn for Azure CNI in China cloud

* feat: add hosts config agent support for Windows nodes

* Generate templates_generated.go

* feat: Experimental support for Windows+ContainerD (#1322)

* chore: update Windows default VHD for July (#3619)

* fix

Co-authored-by: James Sturtevant <jstur@microsoft.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
No open projects
backlog
  
Done
Development

Successfully merging this pull request may close these issues.

None yet

6 participants