-
Notifications
You must be signed in to change notification settings - Fork 803
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
Add readiness probe so controller does not report "Ready" prematurely #751
Conversation
Thanks for your pull request. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). 📝 Please follow instructions at https://git.k8s.io/community/CLA.md#the-contributor-license-agreement to sign the CLA. It may take a couple minutes for the CLA signature to be fully registered; after that, please reply here with a new comment and we'll verify. Thanks.
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. |
Welcome @vdhanan! |
Hi @vdhanan. Thanks for your PR. I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the 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. |
signed CLA |
@vdhanan looks like github can't associate your commits with your account. You can squash your commits into one and then use |
Pull Request Test Coverage Report for Build 1662
💛 - Coveralls |
@ayberk thanks, i think i fixed it. |
/ok-to-test |
@@ -91,6 +91,14 @@ spec: | |||
timeoutSeconds: 3 | |||
periodSeconds: 10 | |||
failureThreshold: 5 | |||
readinessProbe: |
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.
Do we need to update node.yaml as node service is calling metadata service on initialization?
https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/pkg/driver/node.go#L86
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.
I tried creating a ebs-csi-node DaemonSet with a GlobalNetworkPolicy blocking metadata access, and it indeed reported as Ready, when it probably shouldn't. However, even after adding a readinessProbe in node.yaml, the node service still reported as Ready. Not sure how to fix that issue -- if it even is an issue -- so I'll defer it for now.
@ayberk can you please review this CR when you get a chance? |
charts/aws-ebs-csi-driver/Chart.yaml
Outdated
@@ -2,7 +2,7 @@ apiVersion: v1 | |||
appVersion: "0.9.0" | |||
name: aws-ebs-csi-driver | |||
description: A Helm chart for AWS EBS CSI Driver | |||
version: 0.9.9 | |||
version: 0.10.0 |
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.
Sorry for the confusion. You need to bump the patch and keep minor version the same, ie, 0.9.x.
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.
got it
Thanks for your pull request. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). 📝 Please follow instructions at https://git.k8s.io/community/CLA.md#the-contributor-license-agreement to sign the CLA. It may take a couple minutes for the CLA signature to be fully registered; after that, please reply here with a new comment and we'll verify. Thanks.
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. |
run tests |
/retest |
rebuild |
/test continuous-integration/travis-ci/pr |
@ayberk: The specified target(s) for
Use
In response to this:
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. |
Ok makes sense bot is not responsible for this. We can merge this manually. |
Travis build passed here: https://travis-ci.org/github/kubernetes-sigs/aws-ebs-csi-driver/jobs/760984692 |
Thanks for your pull request. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). 📝 Please follow instructions at https://git.k8s.io/community/CLA.md#the-contributor-license-agreement to sign the CLA. It may take a couple minutes for the CLA signature to be fully registered; after that, please reply here with a new comment and we'll verify. Thanks.
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. |
/test pull-aws-ebs-csi-driver-migration-test-latest |
bump patch number
Thanks for your pull request. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). 📝 Please follow instructions at https://git.k8s.io/community/CLA.md#the-contributor-license-agreement to sign the CLA. It may take a couple minutes for the CLA signature to be fully registered; after that, please reply here with a new comment and we'll verify. Thanks.
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. |
/lgtm |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: ayberk, vdhanan 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 |
Is this a bug fix or adding new feature?
Fixes #548
What is this PR about? / Why do we need it?
This change reuses the liveness probe endpoint for a readiness probe, so that the csi controller's status can be reported accurately. Currently, if the ec2 instance metadata is unavailable, the csi controller deployment reports as ready, tries to fetch the metadata, panics when it cannot, and then stops reporting as ready. With this change, the controller deployment will not report ready from the get-go, and as a result will not report an inaccurate status if the instance metadata is unavailable.
What testing is done?
Manually tested this using both kubectl and helm. Applied a global network policy to block access to the ec2 instance metadata, then created an ebs csi driver deployment. Visually confirmed with
kubectl get deployments -n kube-system
that the behavior changed and the controller no longer reported as ready before entering theCrashLoopBackOff
state.