Skip to content

feat: Run Windows containers as host-process containers#1201

Merged
andyzhangx merged 1 commit into
kubernetes-sigs:masterfrom
marosset:windows-capz-work
Mar 23, 2022
Merged

feat: Run Windows containers as host-process containers#1201
andyzhangx merged 1 commit into
kubernetes-sigs:masterfrom
marosset:windows-capz-work

Conversation

@marosset
Copy link
Copy Markdown
Contributor

@marosset marosset commented Mar 3, 2022

What type of PR is this?

/kind feature

What this PR does / why we need it:

This PR allows for running the Windows azuredisk csi driver containers as host-process containers.
This simplifies the deployment of the drivers and aligns with the long-term CSI plugin goals of the Kubernetes community.

This also works around kubernetes-sigs/cluster-api-provider-azure#2132 allowing azuredisk csi drivers to be used in CAPZ clusters.

Note: this still requires csi-proxy to be installed and running on Windows nodes in the cluster
Which issue(s) this PR fixes:

Fixes #

Requirements:

Special notes for your reviewer:

Release note:

Adds the ability to run windows node containers as host-process containers.

@k8s-ci-robot k8s-ci-robot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. kind/feature Categorizes issue or PR as related to a new feature. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Mar 3, 2022
@marosset
Copy link
Copy Markdown
Contributor Author

marosset commented Mar 3, 2022

I will work on updating the helm charts now too.

@marosset marosset changed the title WIP: Run Windows containers as host-process containers WIP: feat: Run Windows containers as host-process containers Mar 3, 2022
@marosset
Copy link
Copy Markdown
Contributor Author

marosset commented Mar 3, 2022

I updated the helm charts.
I still need to do some local validation and then also update

.PHONY: e2e-bootstrap
e2e-bootstrap: install-helm
docker pull $(IMAGE_TAG) || make container-all push-manifest
ifdef TEST_WINDOWS
helm install azuredisk-csi-driver charts/${CHART_VERSION}/azuredisk-csi-driver --namespace kube-system --wait --timeout=15m -v=5 --debug \
${E2E_HELM_OPTIONS} \
--set windows.enabled=true \
--set linux.enabled=false \
--set controller.runOnMaster=true \
--set controller.replicas=1 \
--set controller.logLevel=6 \
--set node.logLevel=6 \
--set cloud=$(CLOUD)
else
helm install azuredisk-csi-driver charts/${CHART_VERSION}/azuredisk-csi-driver --namespace kube-system --wait --timeout=15m -v=5 --debug \
${E2E_HELM_OPTIONS} \
--set snapshot.enabled=true \
--set cloud=$(CLOUD)
endif
so we can use host process containers based install if requested

@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 4, 2022
@marosset marosset force-pushed the windows-capz-work branch from 79fa1e8 to e25eba9 Compare March 5, 2022 00:14
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 5, 2022
@marosset marosset changed the title WIP: feat: Run Windows containers as host-process containers feat: Run Windows containers as host-process containers Mar 5, 2022
@k8s-ci-robot k8s-ci-robot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Mar 5, 2022
@marosset
Copy link
Copy Markdown
Contributor Author

marosset commented Mar 7, 2022

/test pull-kubernetes-e2e-capz-azure-disk

@marosset marosset force-pushed the windows-capz-work branch from e25eba9 to 0ab7eb4 Compare March 7, 2022 18:51
@marosset
Copy link
Copy Markdown
Contributor Author

marosset commented Mar 7, 2022

/test pull-kubernetes-e2e-capz-azure-disk

@marosset
Copy link
Copy Markdown
Contributor Author

marosset commented Mar 7, 2022

/test pull-kubernetes-e2e-capz-azure-disk-windows

@marosset
Copy link
Copy Markdown
Contributor Author

marosset commented Mar 7, 2022

/retest

1 similar comment
@marosset
Copy link
Copy Markdown
Contributor Author

marosset commented Mar 9, 2022

/retest

@andyzhangx
Copy link
Copy Markdown
Member

/test pull-kubernetes-e2e-capz-azure-disk-windows
/retest

@marosset
Copy link
Copy Markdown
Contributor Author

Let me fix the verify job and then squash all my commits.

@marosset marosset force-pushed the windows-capz-work branch from acf22c8 to e2f6403 Compare March 11, 2022 17:13
@marosset
Copy link
Copy Markdown
Contributor Author

/test pull-kubernetes-e2e-capz-azure-disk
/test pull-kubernetes-e2e-capz-azure-disk-windows

@marosset marosset force-pushed the windows-capz-work branch from e2f6403 to 639905a Compare March 11, 2022 17:39
@marosset
Copy link
Copy Markdown
Contributor Author

/test pull-kubernetes-e2e-capz-azure-disk
/test pull-kubernetes-e2e-capz-azure-disk-windows

@jsturtevant
Copy link
Copy Markdown

I don't have a ton of experience with the CSI drivers but generally lgtm and the test pull-kubernetes-e2e-capz-azure-disk-windows is passing using this template.

@marosset
Copy link
Copy Markdown
Contributor Author

@andyzhangx it looks like pull-kubernetes-e2e-capz-azure-disk is timing out running windows test cases

ex: Should create and attach a volume with basic perfProfile [enableBursting][disk.csi.azure.com] [Windows] [It]

Do we need to set ginkgo.skip somewhere?

@andyzhangx
Copy link
Copy Markdown
Member

@andyzhangx it looks like pull-kubernetes-e2e-capz-azure-disk is timing out running windows test cases

ex: Should create and attach a volume with basic perfProfile [enableBursting][disk.csi.azure.com] [Windows] [It]

Do we need to set ginkgo.skip somewhere?

@marosset that's zone issue:

"Disk /subscriptions/0e46bd28-a80f-4d3a-8200-d9eb8d80cb2e/resourceGroups/CAPZ-9B3W2C/providers/Microsoft.Compute/disks/reattach-disk-multiple-nodes cannot be attached to the VM because it is not in zone '1'."

currently master node is in zone 1, while agent node are non-zone, the test case would create a PV disk first with zone 1, and then it could not be attached to non-zone node, I will check how to fix it later

@andyzhangx
Copy link
Copy Markdown
Member

/test pull-azuredisk-csi-driver-e2e-capz
/test pull-azuredisk-csi-driver-e2e-capz-windows

@andyzhangx
Copy link
Copy Markdown
Member

/test pull-azuredisk-csi-driver-e2e-capz

@marosset
Copy link
Copy Markdown
Contributor Author

/test pull-azuredisk-csi-driver-e2e-capz
/test pull-azuredisk-csi-driver-e2e-capz-windows

@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 21, 2022
{{- else }}
image: "{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}"
{{- end }}
imagePullPolicy: {{ .Values.image.livenessProbe.pullPolicy }}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I thought it was a small diff, while it looks like these two deployments are quite different now, then I think we should keep two deployment files, otherwise it may be hard to understand and maintain.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

No problem. I dropped the commit to split merge the manifests.
Let me rebase again.
The manifest do have many subtle differences.

@marosset marosset force-pushed the windows-capz-work branch from aea6ca1 to 639905a Compare March 21, 2022 17:53
… containers

Signed-off-by: Mark Rossetti <marosset@microsoft.com>
@marosset marosset force-pushed the windows-capz-work branch from 639905a to 38d86ab Compare March 21, 2022 18:12
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 21, 2022
@marosset
Copy link
Copy Markdown
Contributor Author

/test pull-azuredisk-csi-driver-e2e-capz-windows

@marosset
Copy link
Copy Markdown
Contributor Author

@andyzhangx do you have any other concerns or feedback here?
I'd like to try get CAPZ + azuredisk + Windows periodic jobs enabled.

Copy link
Copy Markdown
Member

@andyzhangx andyzhangx left a comment

Choose a reason for hiding this comment

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

/lgtm
/approve

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Mar 23, 2022
@k8s-ci-robot
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: andyzhangx, marosset

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details 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

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Mar 23, 2022
@andyzhangx
Copy link
Copy Markdown
Member

/retest

3 similar comments
@andyzhangx
Copy link
Copy Markdown
Member

/retest

@andyzhangx
Copy link
Copy Markdown
Member

/retest

@andyzhangx
Copy link
Copy Markdown
Member

/retest

@k8s-ci-robot
Copy link
Copy Markdown
Contributor

k8s-ci-robot commented Mar 23, 2022

@marosset: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
pull-kubernetes-e2e-capz-azure-disk 639905a link false /test pull-kubernetes-e2e-capz-azure-disk
pull-azuredisk-csi-driver-e2e-windows aea6ca1 link true /test pull-azuredisk-csi-driver-e2e-windows
pull-azuredisk-csi-driver-e2e-capz aea6ca1 link false /test pull-azuredisk-csi-driver-e2e-capz
pull-azuredisk-csi-driver-verify 38d86ab link true /test pull-azuredisk-csi-driver-verify

Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/feature Categorizes issue or PR as related to a new feature. lgtm "Looks good to me", indicates that a PR is ready to be merged. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants