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

Fix waiting for MetalLB controller #10858

Merged
merged 1 commit into from
Feb 6, 2024

Conversation

flxbwr
Copy link
Contributor

@flxbwr flxbwr commented Jan 30, 2024

What type of PR is this?

/kind bug

What this PR does / why we need it:

I think the current state waiting method is bad to implement. When changing the deployment version, which is execute with the upgrade_cluster in the previous ansible task: "Kubernetes Apps | Install and configure MetalLB", next ansible task: "Kubernetes Apps | Wait for MetalLB controller to be running" may fall with an error.

[konstantin@kube ~]$ kubectl get deployments.apps -n metallb-system 
NAME         READY   UP-TO-DATE   AVAILABLE   AGE
controller   1/1     1            1           162d
[konstantin@kube ~]$ kubectl rollout restart deployment -n metallb-system controller ; kubectl -n metallb-system wait --for=condition=ready pod -l app=metallb,component=controller --timeout=2m ; echo $?
deployment.apps/controller restarted
pod/controller-849869d49d-5ftfp condition met
Error from server (NotFound): pods "controller-d48f5fc6f-l79nd" not found
1

Error not found pods controller-d48f5fc6f-l79nd is a result of changing deployment version аnd as a result, the execution of upgrade_cluster.yml failed.

I suggest changing the method of waiting for the current state to a more correct one in my opinion.

[konstantin@kube ~]$ kubectl get deployments.apps -n metallb-system 
NAME         READY   UP-TO-DATE   AVAILABLE   AGE
controller   1/1     1            1           162d
[konstantin@kube ~]$ kubectl rollout restart deployment -n metallb-system controller ; kubectl rollout status -n metallb-system deployment -l app=metallb,component=controller --timeout=2m ; echo $?
deployment.apps/controller restarted
Waiting for deployment "controller" rollout to finish: 1 old replicas are pending termination...
Waiting for deployment "controller" rollout to finish: 1 old replicas are pending termination...
deployment "controller" successfully rolled out
0

In a situation when a deployment is created for the first time, this method also processes correctly.

[konstantin@kube ~]$ kubectl get deployments.apps -n metallb-system
No resources found in metallb-system namespace.
[konstantin@kube ~]$ kubectl apply -f controller.yml ; kubectl rollout status -n metallb-system deployment -l app=metallb,component=controller --timeout=2m ; echo $?
deployment.apps/controller created
Waiting for deployment "controller" rollout to finish: 0 of 1 updated replicas are available...
deployment "controller" successfully rolled out
0
[konstantin@kube ~]$ kubectl get deployments.apps -n metallb-system
NAME         READY   UP-TO-DATE   AVAILABLE   AGE
controller   1/1     1            1           15s

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:

Does this PR introduce a user-facing change?:

Fix waiting for MetalLB controller 

The current state waiting method is bad to implement.
When changing the deployment version, which is execute with the upgrade_cluster in the previous ansible task: "Kubernetes Apps | Install and configure MetalLB", next ansible task: "Kubernetes Apps | Wait for MetalLB controller to be running" may fall with an error.
@k8s-ci-robot k8s-ci-robot added the kind/bug Categorizes issue or PR as related to a bug. label Jan 30, 2024
Copy link

linux-foundation-easycla bot commented Jan 30, 2024

CLA Signed

The committers listed above are authorized under a signed CLA.

@k8s-ci-robot k8s-ci-robot added the cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. label Jan 30, 2024
@k8s-ci-robot k8s-ci-robot requested review from bozzo and oomichi January 30, 2024 17:26
@k8s-ci-robot
Copy link
Contributor

Welcome @flxbwr!

It looks like this is your first PR to kubernetes-sigs/kubespray 🎉. Please refer to our pull request process documentation to help your PR have a smooth ride to approval.

You will be prompted by a bot to use commands during the review process. Do not be afraid to follow the prompts! It is okay to experiment. Here is the bot commands documentation.

You can also check if kubernetes-sigs/kubespray has its own contribution guidelines.

You may want to refer to our testing guide if you run into trouble with your tests not passing.

If you are having difficulty getting your pull request seen, please follow the recommended escalation practices. Also, for tips and tricks in the contribution process you may want to read the Kubernetes contributor cheat sheet. We want to make sure your contribution gets all the attention it needs!

Thank you, and welcome to Kubernetes. 😃

@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 Jan 30, 2024
@k8s-ci-robot
Copy link
Contributor

Hi @flxbwr. 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 /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 size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. and removed cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. labels Jan 30, 2024
@yankay
Copy link
Member

yankay commented Jan 31, 2024

/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 Jan 31, 2024
@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jan 31, 2024
@flxbwr
Copy link
Contributor Author

flxbwr commented Feb 1, 2024

Thanks @LuckySB
/lgtm

@k8s-ci-robot
Copy link
Contributor

@flxbwr: you cannot LGTM your own PR.

In response to this:

Thanks @LuckySB
/lgtm

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.

Copy link
Member

@floryut floryut left a comment

Choose a reason for hiding this comment

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

@flxbwr Thank you 👍

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: floryut, flxbwr, LuckySB

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

@VannTen
Copy link
Contributor

VannTen commented Feb 6, 2024

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Feb 6, 2024
@k8s-ci-robot k8s-ci-robot merged commit ad565ad into kubernetes-sigs:master Feb 6, 2024
65 checks passed
@mzaian mzaian mentioned this pull request Apr 26, 2024
dibi-codes pushed a commit to fino-digital/kubespray that referenced this pull request May 7, 2024
The current state waiting method is bad to implement.
When changing the deployment version, which is execute with the upgrade_cluster in the previous ansible task: "Kubernetes Apps | Install and configure MetalLB", next ansible task: "Kubernetes Apps | Wait for MetalLB controller to be running" may fall with an error.
pedro-peter pushed a commit to pedro-peter/kubespray that referenced this pull request May 8, 2024
The current state waiting method is bad to implement.
When changing the deployment version, which is execute with the upgrade_cluster in the previous ansible task: "Kubernetes Apps | Install and configure MetalLB", next ansible task: "Kubernetes Apps | Wait for MetalLB controller to be running" may fall with an error.
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/bug Categorizes issue or PR as related to a bug. lgtm "Looks good to me", indicates that a PR is ready to be merged. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants