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

Implemented PodDisruptionBudget on relevant deployments #2740

Merged
merged 3 commits into from
Nov 18, 2022

Conversation

valentintorikian
Copy link
Contributor

What type of PR is this?

Uncomment only one /kind <> line, press enter to put that in a new line, and remove leading whitespace from that line:

/kind breaking
/kind bug
/kind cleanup
/kind documentation

/kind feature

/kind hotfix

What this PR does / Why we need it:
Added (optional) PodDisruptionBudget creation for the ping and allocator deployment. Disabled by default.
Will allow for better management of voluntary disruptions.

Which issue(s) this PR fixes:
N/A

Special notes for your reviewer:
N/A

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 509435e5-e37b-4c21-a44b-953204dc26b2

The following development artifacts have been built, and will exist for the next 30 days:

A preview of the website (the last 30 builds are retained):

To install this version:

  • git fetch https://github.com/googleforgames/agones.git pull/2740/head:pr_2740 && git checkout pr_2740
  • helm install agones ./install/helm/agones --namespace agones-system --set agones.image.tag=1.26.0-5725210-amd64

@roberthbailey
Copy link
Member

Thanks for the PR! I will take a look at it once the in-progress release is finalized (also, you will probably have to rebase and deal with conflicts in the documentation changes at that point).

@SaitejaTamma SaitejaTamma added the kind/feature New features for Agones label Sep 14, 2022
@valentintorikian valentintorikian force-pushed the implements-pdb branch 2 times, most recently from 8ca4d02 to 454ade0 Compare September 18, 2022 16:38
@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 9f9325d1-9094-497f-9c40-760d1d8edb4d

The following development artifacts have been built, and will exist for the next 30 days:

A preview of the website (the last 30 builds are retained):

To install this version:

  • git fetch https://github.com/googleforgames/agones.git pull/2740/head:pr_2740 && git checkout pr_2740
  • helm install agones ./install/helm/agones --namespace agones-system --set agones.image.tag=1.27.0-8ca4d02-amd64

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 9de7fb60-ffca-41e9-927b-85b51581ea61

The following development artifacts have been built, and will exist for the next 30 days:

A preview of the website (the last 30 builds are retained):

To install this version:

  • git fetch https://github.com/googleforgames/agones.git pull/2740/head:pr_2740 && git checkout pr_2740
  • helm install agones ./install/helm/agones --namespace agones-system --set agones.image.tag=1.27.0-454ade0-amd64

@roberthbailey
Copy link
Member

@valentintorikian - As expected, you now need to rebase your documentation changes.

@valentintorikian
Copy link
Contributor Author

@roberthbailey rebased

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 41e283be-ac80-41ea-9543-2c6456c75670

The following development artifacts have been built, and will exist for the next 30 days:

A preview of the website (the last 30 builds are retained):

To install this version:

  • git fetch https://github.com/googleforgames/agones.git pull/2740/head:pr_2740 && git checkout pr_2740
  • helm install agones ./install/helm/agones --namespace agones-system --set agones.image.tag=1.27.0-807468d-amd64

@markmandel
Copy link
Member

@roberthbailey just gently bumping if this is good to go? Looks like you were reviewing 😃

name: agones-ping-pdb
spec:
minAvailable: {{ .Values.agones.ping.pdb.minAvailable }}
maxUnavailable: {{ .Values.agones.ping.pdb.maxUnavailable }}
Copy link
Member

Choose a reason for hiding this comment

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

According to https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget the above two fields are mutually exclusive (e.g. you can only set one or the other).

It isn't clear to me what happens if the spec looks like:

spec:
  minAvailable: 2
  maxUnavailable: 

which is what will be produced if the boolean to enable this is toggled to true. Is that spec accepted by k8s or rejected?

Does the template here need to be more complicated so that we only set a single value?

Copy link
Collaborator

Choose a reason for hiding this comment

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

I was curious, so I tested this. It works fine, and sends the JSON you might expect: "spec":{"maxUnavailable":null,"minAvailable":0, [...]}.

Copy link
Member

Choose a reason for hiding this comment

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

Thanks @zmerlynn for checking that out. Do you think this is ok to submit as-is then?

Copy link
Collaborator

Choose a reason for hiding this comment

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

I think it should still be documented, but we could also merge and come back to that later.

| Parameter | Description | Default |
|---------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------|
| `agones.allocator.pdb.enabled` | Set to `true` to enable the creation of a [PodDisruptionBudget](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) for the allocator deployment | `false` |
| `agones.allocator.pdb.minAvailable` | Description of the number of pods from that set that must still be available after the eviction, even in the absence of the evicted pod. Can be either an absolute number or a percentage. | `1` |
Copy link
Member

Choose a reason for hiding this comment

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

In each of the lines for minAvailable and maxUnavailable can you note that the two fields are mutually exclusive? Following the link to PDBs you can find this but it would be nice to highlight it here as well.

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: e10468d0-5167-4688-91cc-6c0bade55422

The following development artifacts have been built, and will exist for the next 30 days:

A preview of the website (the last 30 builds are retained):

To install this version:

  • git fetch https://github.com/googleforgames/agones.git pull/2740/head:pr_2740 && git checkout pr_2740
  • helm install agones ./install/helm/agones --namespace agones-system --set agones.image.tag=1.27.0-f1df1bd-amd64

@markmandel
Copy link
Member

Just a gentle reminder that our Release Candidate comes out next week, so if you would like this in our next release, Tuesday next week is the deadline.

@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: 3dd445f7-851d-442a-84d6-f33b068dc276

To get permission to view the Cloud Build view, join the agones-discuss Google Group.

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 4ce81b70-be04-441a-8f14-6eee240e15b8

The following development artifacts have been built, and will exist for the next 30 days:

A preview of the website (the last 30 builds are retained):

To install this version:

  • git fetch https://github.com/googleforgames/agones.git pull/2740/head:pr_2740 && git checkout pr_2740
  • helm install agones ./install/helm/agones --namespace agones-system --set agones.image.tag=1.27.0-f1df1bd-amd64

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 68990e16-e340-41db-85fc-3d7da364742b

The following development artifacts have been built, and will exist for the next 30 days:

A preview of the website (the last 30 builds are retained):

To install this version:

  • git fetch https://github.com/googleforgames/agones.git pull/2740/head:pr_2740 && git checkout pr_2740
  • helm install agones ./install/helm/agones --namespace agones-system --set agones.image.tag=1.27.0-f1df1bd-amd64

@mangalpalli mangalpalli added the feature-freeze-do-not-merge Only eligible to be merged once we are out of feature freeze (next full release) label Oct 18, 2022
- added a pdb on the ping deployment
- added a pdb on the allocator deployment
- default to no creation of pdb, opt-in install
@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 47000304-7854-4a68-9d75-626b078bce56

The following development artifacts have been built, and will exist for the next 30 days:

A preview of the website (the last 30 builds are retained):

To install this version:

  • git fetch https://github.com/googleforgames/agones.git pull/2740/head:pr_2740 && git checkout pr_2740
  • helm install agones ./install/helm/agones --namespace agones-system --set agones.image.tag=1.27.0-0894d7b-amd64

@mangalpalli mangalpalli removed the feature-freeze-do-not-merge Only eligible to be merged once we are out of feature freeze (next full release) label Oct 26, 2022
@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: e40326e6-0fc9-4156-89d0-be92c08192a1

The following development artifacts have been built, and will exist for the next 30 days:

A preview of the website (the last 30 builds are retained):

To install this version:

  • git fetch https://github.com/googleforgames/agones.git pull/2740/head:pr_2740 && git checkout pr_2740
  • helm install agones ./install/helm/agones --namespace agones-system --set agones.image.tag=1.28.0-fd19f47-amd64

@zmerlynn zmerlynn self-assigned this Nov 14, 2022
Copy link
Collaborator

@zmerlynn zmerlynn left a comment

Choose a reason for hiding this comment

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

@roberthbailey I'm happy to fix up the documentation on mutual-exclusivity after this goes in.

@google-oss-prow google-oss-prow bot added the lgtm label Nov 14, 2022
@zmerlynn
Copy link
Collaborator

@roberthbailey I'm happy to fix up the documentation on mutual-exclusivity after this goes in.

It looks like we could even use an approach like https://stackoverflow.com/questions/53508229/helm-chart-with-dependent-values to just ensure it.

@google-oss-prow google-oss-prow bot removed the lgtm label Nov 18, 2022
@google-oss-prow
Copy link

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: roberthbailey, valentintorikian, zmerlynn

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

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: b062ad7a-4082-4a31-af8c-1caf1950a613

The following development artifacts have been built, and will exist for the next 30 days:

A preview of the website (the last 30 builds are retained):

To install this version:

  • git fetch https://github.com/googleforgames/agones.git pull/2740/head:pr_2740 && git checkout pr_2740
  • helm install agones ./install/helm/agones --namespace agones-system --set agones.image.tag=1.28.0-12f90ad-amd64

@roberthbailey roberthbailey merged commit 0a8d878 into googleforgames:main Nov 18, 2022
@mangalpalli mangalpalli added this to the 1.28.0 milestone Nov 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants