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

salt/drain: Handle retryable errors when evicting #2531

Merged
merged 1 commit into from
May 7, 2020

Conversation

gdemonet
Copy link
Contributor

@gdemonet gdemonet commented May 7, 2020

The Eviction API sends '429 Too Many Requests' when a requested eviction
can't be applied due to some disruption budget. This way, the client can
wait and retry later.
We didn't handle this error in our implementation, hence rolling
upgrades were failing as soon as we hit this situation.
We add support for this, and also move the "timeout" scope to the whole
eviction process (since we now may be stuck at the eviction creation).

Fixes: #2530


Closes: #2530

The Eviction API sends '429 Too Many Requests' when a requested eviction
can't be applied due to some disruption budget. This way, the client can
wait and retry later.
We didn't handle this error in our implementation, hence rolling
upgrades were failing as soon as we hit this situation.
We add support for this, and also move the "timeout" scope to the whole
eviction process (since we now may be stuck at the eviction creation).

Fixes: #2530
@gdemonet gdemonet added kind:bug Something isn't working topic:lifecycle Issues related to upgrade or downgrade of MetalK8s complexity:easy Something that requires less than a day to fix labels May 7, 2020
@gdemonet gdemonet added this to the MetalK8s 2.4.4 milestone May 7, 2020
@gdemonet gdemonet requested a review from a team May 7, 2020 09:58
@bert-e
Copy link
Contributor

bert-e commented May 7, 2020

Hello gdemonet,

My role is to assist you with the merge of this
pull request. Please type @bert-e help to get information
on this process, or consult the user documentation.

Status report is not available.

@bert-e
Copy link
Contributor

bert-e commented May 7, 2020

Integration data created

I have created the integration data for the additional destination branches.

The following branches will NOT be impacted:

  • development/1.0
  • development/1.1
  • development/1.2
  • development/1.3

You can set option create_pull_requests if you need me to create
integration pull requests in addition to integration branches, with:

@bert-e create_pull_requests

@bert-e
Copy link
Contributor

bert-e commented May 7, 2020

Waiting for approval

The following approvals are needed before I can proceed with the merge:

  • the author

  • one peer

Peer approvals must include at least 1 approval from the following list:

@gdemonet
Copy link
Contributor Author

gdemonet commented May 7, 2020

Tested with a 3 workers deployment of Zenko, didn't get any issue with the drain during an upgrade!

@gdemonet
Copy link
Contributor Author

gdemonet commented May 7, 2020

/approve

@bert-e
Copy link
Contributor

bert-e commented May 7, 2020

Waiting for approval

The following approvals are needed before I can proceed with the merge:

  • the author

  • one peer

Peer approvals must include at least 1 approval from the following list:

The following options are set: approve

Copy link
Collaborator

@TeddyAndrieux TeddyAndrieux left a comment

Choose a reason for hiding this comment

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

I would have liked more debug log but LGTM

@bert-e
Copy link
Contributor

bert-e commented May 7, 2020

In the queue

The changeset has received all authorizations and has been added to the
relevant queue(s). The queue(s) will be merged in the target development
branch(es) as soon as builds have passed.

The changeset will be merged in:

  • ✔️ development/2.0

  • ✔️ development/2.1

  • ✔️ development/2.2

  • ✔️ development/2.3

  • ✔️ development/2.4

  • ✔️ development/2.5

  • ✔️ development/2.6

The following branches will NOT be impacted:

  • development/1.0
  • development/1.1
  • development/1.2
  • development/1.3

There is no action required on your side. You will be notified here once
the changeset has been merged. In the unlikely event that the changeset
fails permanently on the queue, a member of the admin team will
contact you to help resolve the matter.

IMPORTANT

Please do not attempt to modify this pull request.

  • Any commit you add on the source branch will trigger a new cycle after the
    current queue is merged.
  • Any commit you add on one of the integration branches will be lost.

If you need this pull request to be removed from the queue, please contact a
member of the admin team now.

The following options are set: approve

@gdemonet
Copy link
Contributor Author

gdemonet commented May 7, 2020

I would have liked more debug log but LGTM

You're right, I'll open a follow-up PR.

@bert-e
Copy link
Contributor

bert-e commented May 7, 2020

I have successfully merged the changeset of this pull request
into targetted development branches:

  • ✔️ development/2.0

  • ✔️ development/2.1

  • ✔️ development/2.2

  • ✔️ development/2.3

  • ✔️ development/2.4

  • ✔️ development/2.5

  • ✔️ development/2.6

The following branches have NOT changed:

  • development/1.0
  • development/1.1
  • development/1.2
  • development/1.3

Please check the status of the associated issue None.

Goodbye gdemonet.

@bert-e bert-e merged commit 0c7ee85 into development/2.0 May 7, 2020
@bert-e bert-e deleted the bugfix/2530-drain-wait branch May 7, 2020 16:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
complexity:easy Something that requires less than a day to fix kind:bug Something isn't working topic:lifecycle Issues related to upgrade or downgrade of MetalK8s
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants