Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(e2e): add e2e test for non graceful node shutdown #111380

Merged
merged 2 commits into from Aug 23, 2022

Conversation

sonasingh46
Copy link
Contributor

Signed-off-by: Ashutosh Kumar sonasingh46@gmail.com

What type of PR is this?

/kind feature

What this PR does / why we need it:

This PR adds e2e test for non graceful shutdown of the node.

Ref:
Blog Link: https://kubernetes.io/blog/2022/05/20/kubernetes-1-24-non-graceful-node-shutdown-alpha/
Feature PR Link: #108486
Issue Link : kubernetes/enhancements#2268

None

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:

https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/2268-non-graceful-shutdown

@k8s-ci-robot k8s-ci-robot added release-note-none Denotes a PR that doesn't merit a release note. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. 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. do-not-merge/needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Jul 25, 2022
@k8s-ci-robot
Copy link
Contributor

@sonasingh46: This issue is currently awaiting triage.

If a SIG or subproject determines this is a relevant issue, they will accept it by applying the triage/accepted label and provide further guidance.

The triage/accepted label can be added by org members by writing /triage accepted in a comment.

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.

@k8s-ci-robot k8s-ci-robot added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Jul 25, 2022
@k8s-ci-robot
Copy link
Contributor

Hi @sonasingh46. Thanks for your PR.

I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

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.

@k8s-ci-robot k8s-ci-robot added needs-priority Indicates a PR lacks a `priority/foo` label and requires one. area/e2e-test-framework Issues or PRs related to refactoring the kubernetes e2e test framework area/test sig/storage Categorizes an issue or PR as relevant to SIG Storage. sig/testing Categorizes an issue or PR as relevant to SIG Testing. and removed do-not-merge/needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. labels Jul 25, 2022
@palnabarun
Copy link
Member

/ok-to-test

@k8s-ci-robot k8s-ci-robot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Jul 25, 2022
@endocrimes
Copy link
Member

/assign

@xing-yang
Copy link
Contributor

/assign

@xing-yang
Copy link
Contributor

/assign @jingxu97 @gnufied

@dzjiang91
Copy link
Contributor

/assign

ginkgo.It("should get immediately rescheduled to a different node after non graceful node shutdown ", func() {
// Install gce pd csi driver
ginkgo.By("deploying csi gce-pd driver")
driver := drivers.InitGcePDCSIDriver()
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we have this test for Hostpath CSI driver as well?
See this: https://github.com/kubernetes/kubernetes/blob/master/test/e2e/storage/csi_volumes.go#L30-L31

Copy link
Contributor

Choose a reason for hiding this comment

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

yeah, hostpath driver test is kind of must in this case.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@humblec -- Sure. I need to understand more on why and what cases it covers.
For hostpath, the hostpath csi driver and the application pod needs to reside on the same node. Once we shut down a node non gracefully -- the hostpath csi driver will be stuck in pending state due to node affinity requirements. Even if we patch the hostpath csi driver to make it run on a different node -- the application pod using the pv will be in pending state because of the node affinity rule that is wired into the PV. That means we use altogether a new PVC to get the application pod running again on a different node -- which I think will defeat the purpose of test.

Am I missing something, or there could be a way to test?


ginkgo.Describe("NonGracefulNodeShutdown", func() {
ginkgo.Context("pod that uses a persistent volume via gce pd driver", func() {
ginkgo.It("should get immediately rescheduled to a different node after non graceful node shutdown ", func() {
Copy link
Member

Choose a reason for hiding this comment

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

We generally use Context block only when we want to isolate our test suite in different contexts, since this test has only one, may be we don't need one.

test/e2e/storage/non_graceful_node_shutdown.go Outdated Show resolved Hide resolved
test/e2e/storage/non_graceful_node_shutdown.go Outdated Show resolved Hide resolved
@gnufied
Copy link
Member

gnufied commented Aug 10, 2022

/retest
/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Aug 10, 2022
@gnufied
Copy link
Member

gnufied commented Aug 10, 2022

Can you squash the commits?

Signed-off-by: Ashutosh Kumar <sonasingh46@gmail.com>
@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Aug 10, 2022
@sonasingh46
Copy link
Contributor Author

Can you squash the commits?

Done

@gnufied
Copy link
Member

gnufied commented Aug 10, 2022

/retest

@gnufied
Copy link
Member

gnufied commented Aug 11, 2022

/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 Aug 11, 2022
@gnufied
Copy link
Member

gnufied commented Aug 11, 2022

/assign @pohly

Signed-off-by: Ashutosh Kumar <sonasingh46@gmail.com>
@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Aug 16, 2022
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: gnufied, sonasingh46

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

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Aug 16, 2022
@sonasingh46
Copy link
Contributor Author

/retest

@gnufied
Copy link
Member

gnufied commented Aug 18, 2022

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Aug 18, 2022
@k8s-ci-robot k8s-ci-robot merged commit 72a28b4 into kubernetes:master Aug 23, 2022
@k8s-ci-robot k8s-ci-robot added this to the v1.26 milestone Aug 23, 2022
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. area/e2e-test-framework Issues or PRs related to refactoring the kubernetes e2e test framework area/test 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. needs-priority Indicates a PR lacks a `priority/foo` label and requires one. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. release-note-none Denotes a PR that doesn't merit a release note. sig/storage Categorizes an issue or PR as relevant to SIG Storage. sig/testing Categorizes an issue or PR as relevant to SIG Testing. 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.

None yet