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

remove ctx within the condition func #3959

Merged
merged 1 commit into from
Aug 21, 2024
Merged

Conversation

peterzhongyi
Copy link
Collaborator

The ctx and cancelCtx was added to avoid helper.DeleteAgonesPod from failing from deadline exceeded. However, it doesn't work as desired because ctx can get cancelled by retryTimeout, which will in turn fail the grpc.Allocate(ctx, request). We actually don't even need to call helper.DeleteAgonesPod thanks to the namespace clean up in main_test.go, so I removed it, along with the ctx and cancelCtx.

Tested by patching #3933 and running the test.

Towards #3919

@agones-bot
Copy link
Collaborator

Build Succeeded 🥳

Build Id: 4e7fa5cb-f356-4acb-bca7-fdc50ea677f4

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/3959/head:pr_3959 && git checkout pr_3959
helm install agones ./install/helm/agones --namespace agones-system --set agones.image.registry=us-docker.pkg.dev/agones-images/ci --set agones.image.tag=1.43.0-dev-fd0ef66

Copy link
Collaborator

@gongmax gongmax left a comment

Choose a reason for hiding this comment

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

So this will leave the Agones Pod running until next set of tests start to run. Can we modify the main_test.go so it performs the cleanup not only before the test but also after the test?

@peterzhongyi
Copy link
Collaborator Author

peterzhongyi commented Aug 20, 2024

So this will leave the Agones Pod running until next set of tests start to run. Can we modify the main_test.go so it performs the cleanup not only before the test but also after the test?

I believe the main_test.go also performs a clean up after the test (it performs a lot of clean ups):

if framework.Namespace == "" {
// use a custom namespace - Unix timestamp
framework.Namespace = strconv.Itoa(int(time.Now().Unix()))
log.Infof("Custom namespace is set: %s", framework.Namespace)
if err := framework.CreateNamespace(framework.Namespace); err != nil {
log.WithError(err).Error("failed to create a custom namespace")
os.Exit(1)
}
defer func() {
if derr := framework.DeleteNamespace(framework.Namespace); derr != nil {
log.Error(derr)
}
os.Exit(exitCode)
}()
} else {
// use an already existing namespace
// run cleanup before tests to ensure no resources from previous runs exist
err = framework.CleanUp(framework.Namespace)
if err != nil {
log.WithError(err).Error("failed to cleanup resources")
}
defer func() {
err = framework.CleanUp(framework.Namespace)
if err != nil {
log.WithError(err).Error("failed to cleanup resources")
}
os.Exit(exitCode)
}()
}

Specifically, checking on the logs, I see

INFO[2024-08-20 21:39:30.925] Namespace 1724189094 is deleted              
ok  	agones.dev/agones/test/e2e/allocator	878.180s

at the end of the test, which means framework.DeleteNamespace was called as a deferred step:

if derr := framework.DeleteNamespace(framework.Namespace); derr != nil {

I was also checking the pods in the namespace 1724189094, and they were all deleted after the test.
Screenshot 2024-08-20 at 4 58 43 PM

@gongmax
Copy link
Collaborator

gongmax commented Aug 21, 2024

So this will leave the Agones Pod running until next set of tests start to run. Can we modify the main_test.go so it performs the cleanup not only before the test but also after the test?

I believe the main_test.go also performs a clean up after the test (it performs a lot of clean ups):

if framework.Namespace == "" {
// use a custom namespace - Unix timestamp
framework.Namespace = strconv.Itoa(int(time.Now().Unix()))
log.Infof("Custom namespace is set: %s", framework.Namespace)
if err := framework.CreateNamespace(framework.Namespace); err != nil {
log.WithError(err).Error("failed to create a custom namespace")
os.Exit(1)
}
defer func() {
if derr := framework.DeleteNamespace(framework.Namespace); derr != nil {
log.Error(derr)
}
os.Exit(exitCode)
}()
} else {
// use an already existing namespace
// run cleanup before tests to ensure no resources from previous runs exist
err = framework.CleanUp(framework.Namespace)
if err != nil {
log.WithError(err).Error("failed to cleanup resources")
}
defer func() {
err = framework.CleanUp(framework.Namespace)
if err != nil {
log.WithError(err).Error("failed to cleanup resources")
}
os.Exit(exitCode)
}()
}

Specifically, checking on the logs, I see

INFO[2024-08-20 21:39:30.925] Namespace 1724189094 is deleted              
ok  	agones.dev/agones/test/e2e/allocator	878.180s

at the end of the test, which means framework.DeleteNamespace was called as a deferred step:

if derr := framework.DeleteNamespace(framework.Namespace); derr != nil {

I was also checking the pods in the namespace 1724189094, and they were all deleted after the test. Screenshot 2024-08-20 at 4 58 43 PM

Yep you're right! I missed that defer part.

@gongmax gongmax merged commit 1a1a7ef into googleforgames:main Aug 21, 2024
4 checks passed
@kamaljeeti kamaljeeti added kind/hotfix Hotfixes for issues against release and removed kind/other labels Aug 22, 2024
spiceratops referenced this pull request in spiceratops/k8s-gitops Aug 30, 2024
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [agones](https://agones.dev)
([source](https://github.com/googleforgames/agones)) | minor |
`1.42.0` -> `1.43.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>googleforgames/agones (agones)</summary>

###
[`v1.43.0`](https://github.com/googleforgames/agones/releases/tag/v1.43.0)

[Compare
Source](https://github.com/googleforgames/agones/compare/v1.42.0...v1.43.0)

This is the 1.43.0 release of Agones.

In this release, we updated the supported Kubernetes version, added a
new scheduled autoscaler, as well as Unity support for Counters and
Lists..

-   **Kubernetes 1.30 Support**
With this release, the Kubernetes support matrix for Agones is now 1.28,
1.29 and 1.30.

-   **Alpha support for ScheduledAutoscaler**
This provides the ability to have Fleet autoscaler scheduling with the
feature flag `ScheduledAutoscaler`, to allow you to schedule what level
of autoscaling you would like on a schedule or between dates, giving you
more control over your autoscaling needs.

-   **Unity SDK: Counters and Lists**
We now have support for `GameServer` [Counters and
Lists](https://agones.dev/site/docs/guides/counters-and-lists/) with our
Unity SDK!

-   **New Helm Installation Configuration Options**
    Two new installation options!

We made the parameters that control how fast we scale up and down
`GameServers` configurable, so you can see how fast your Kubernetes
control plane really is when spinning up lots of `GameServer` instances.

We also have new Helm configuration options that allow the use of the
host network for the Agones controller and extensions for AWS EKS when
using Cilium.

-   **Beta support for Passthrough PortPolicy on GKE Autopilot**
We’ve graduated Passthrough Port Policy support from Alpha to Beta on
GKE Autopilot, which you can now enable using the feature flag
`AutopilotPassthroughPort`.

<!-- Release notes generated using configuration in .github/release.yml
at main -->

#### What's Changed

##### Breaking changes

- Revert "Update Supported Kubernetes to 1.28, 1.29, 1.30
([#&#8203;3933](https://github.com/googleforgames/agones/issues/3933))"
by [@&#8203;gongmax](https://github.com/gongmax) in
[https://github.com/googleforgames/agones/pull/3952](https://github.com/googleforgames/agones/pull/3952)

##### Implemented enhancements

- Add Option to Use Host Network and Configure Ports by
[@&#8203;Orza](https://github.com/Orza) in
[https://github.com/googleforgames/agones/pull/3895](https://github.com/googleforgames/agones/pull/3895)
- Graduate Passthrough Port Policy to Beta on Autopilot by
[@&#8203;vicentefb](https://github.com/vicentefb) in
[https://github.com/googleforgames/agones/pull/3916](https://github.com/googleforgames/agones/pull/3916)
- Agones Unity SDK development setup instructions + Agones Unity SDK
Ready test by [@&#8203;aallbrig](https://github.com/aallbrig)
in
[https://github.com/googleforgames/agones/pull/3887](https://github.com/googleforgames/agones/pull/3887)
- feat: Add API Changes and Validation for FleetAutoscaler
Schedule/Chain Policy by
[@&#8203;indexjoseph](https://github.com/indexjoseph) in
[https://github.com/googleforgames/agones/pull/3893](https://github.com/googleforgames/agones/pull/3893)
- feat: Adds autoscaling logic for new Chain and Schedule policies by
[@&#8203;indexjoseph](https://github.com/indexjoseph) in
[https://github.com/googleforgames/agones/pull/3929](https://github.com/googleforgames/agones/pull/3929)
- Adds basic framework for the in place Agones upgrades test controller
by [@&#8203;igooch](https://github.com/igooch) in
[https://github.com/googleforgames/agones/pull/3956](https://github.com/googleforgames/agones/pull/3956)
- \[Performance] - Added a new metric inside the allocator to track the
success retry rate inside the retry loop by
[@&#8203;vicentefb](https://github.com/vicentefb) in
[https://github.com/googleforgames/agones/pull/3927](https://github.com/googleforgames/agones/pull/3927)
- Make the parameters that limits the number of GameServers to add
configurable by
[@&#8203;vicentefb](https://github.com/vicentefb) in
[https://github.com/googleforgames/agones/pull/3950](https://github.com/googleforgames/agones/pull/3950)
- feat: Adds e2e tests for chain/schedule policy and bump
ScheduledAutoscaler to Alpha by
[@&#8203;indexjoseph](https://github.com/indexjoseph) in
[https://github.com/googleforgames/agones/pull/3946](https://github.com/googleforgames/agones/pull/3946)
- Implement CountsAndLists for Unity SDK + Tests by
[@&#8203;ZeroParticle](https://github.com/ZeroParticle) in
[https://github.com/googleforgames/agones/pull/3883](https://github.com/googleforgames/agones/pull/3883)

##### Fixed bugs

- Resolves `make site-server` issue
[#&#8203;3885](https://github.com/googleforgames/agones/issues/3885)
by [@&#8203;aallbrig](https://github.com/aallbrig) in
[https://github.com/googleforgames/agones/pull/3914](https://github.com/googleforgames/agones/pull/3914)

##### Other

- Preparation for Release v1.43.0 by
[@&#8203;kamaljeeti](https://github.com/kamaljeeti) in
[https://github.com/googleforgames/agones/pull/3910](https://github.com/googleforgames/agones/pull/3910)
- Introduce external resource(s) on multiplayer game programming to docs
by [@&#8203;aallbrig](https://github.com/aallbrig) in
[https://github.com/googleforgames/agones/pull/3884](https://github.com/googleforgames/agones/pull/3884)
- Added line of code to update failure count details inside runscenario
by [@&#8203;vicentefb](https://github.com/vicentefb) in
[https://github.com/googleforgames/agones/pull/3915](https://github.com/googleforgames/agones/pull/3915)
- updated golang upgrade template by
[@&#8203;ashutosji](https://github.com/ashutosji) in
[https://github.com/googleforgames/agones/pull/3902](https://github.com/googleforgames/agones/pull/3902)
- Changes for GitHub/Cloud Build app integration by
[@&#8203;zmerlynn](https://github.com/zmerlynn) in
[https://github.com/googleforgames/agones/pull/3918](https://github.com/googleforgames/agones/pull/3918)
- Meta: Contributor role by
[@&#8203;markmandel](https://github.com/markmandel) in
[https://github.com/googleforgames/agones/pull/3922](https://github.com/googleforgames/agones/pull/3922)
- Fix allocator metrics endpoint by
[@&#8203;vicentefb](https://github.com/vicentefb) in
[https://github.com/googleforgames/agones/pull/3921](https://github.com/googleforgames/agones/pull/3921)
- Meta: Contributor => Collaborator by
[@&#8203;markmandel](https://github.com/markmandel) in
[https://github.com/googleforgames/agones/pull/3928](https://github.com/googleforgames/agones/pull/3928)
- Rewrite agones-bot, commit to Agones repo by
[@&#8203;zmerlynn](https://github.com/zmerlynn) in
[https://github.com/googleforgames/agones/pull/3923](https://github.com/googleforgames/agones/pull/3923)
- Small cleanup of incorrect comment in features.go file by
[@&#8203;igooch](https://github.com/igooch) in
[https://github.com/googleforgames/agones/pull/3944](https://github.com/googleforgames/agones/pull/3944)
- Update Supported Kubernetes to 1.28, 1.29, 1.30 by
[@&#8203;ashutosji](https://github.com/ashutosji) in
[https://github.com/googleforgames/agones/pull/3933](https://github.com/googleforgames/agones/pull/3933)
- remove ctx within the condition func by
[@&#8203;peterzhongyi](https://github.com/peterzhongyi) in
[https://github.com/googleforgames/agones/pull/3959](https://github.com/googleforgames/agones/pull/3959)
- Reapply "Update Supported Kubernetes to 1.28, 1.29, 1.30
([#&#8203;3933](https://github.com/googleforgames/agones/issues/3933))"
([#&#8203;3](https://github.com/googleforgames/agones/issues/3)…
by [@&#8203;gongmax](https://github.com/gongmax) in
[https://github.com/googleforgames/agones/pull/3961](https://github.com/googleforgames/agones/pull/3961)
- change kubernetes API version to fix broken CI by
[@&#8203;peterzhongyi](https://github.com/peterzhongyi) in
[https://github.com/googleforgames/agones/pull/3962](https://github.com/googleforgames/agones/pull/3962)
- docs(godot): add Agones x Godot third party example by
[@&#8203;andresromerodev](https://github.com/andresromerodev)
in
[https://github.com/googleforgames/agones/pull/3938](https://github.com/googleforgames/agones/pull/3938)
- Link Unity Netcode for Gameobjects example in documentation by
[@&#8203;mbychkowski](https://github.com/mbychkowski) in
[https://github.com/googleforgames/agones/pull/3937](https://github.com/googleforgames/agones/pull/3937)
- Docs: Use k8s-api-version for links by
[@&#8203;markmandel](https://github.com/markmandel) in
[https://github.com/googleforgames/agones/pull/3963](https://github.com/googleforgames/agones/pull/3963)

#### New Contributors

- [@&#8203;Orza](https://github.com/Orza) made their first
contribution in
[https://github.com/googleforgames/agones/pull/3895](https://github.com/googleforgames/agones/pull/3895)

**Full Changelog**:
googleforgames/agones@v1.42.0...v1.43.0

Images available with this release:

-
[us-docker.pkg.dev/agones-images/release/agones-controller:1.43.0](https://us-docker.pkg.dev/agones-images/release/agones-controller:1.43.0)
-
[us-docker.pkg.dev/agones-images/release/agones-sdk:1.43.0](https://us-docker.pkg.dev/agones-images/release/agones-sdk:1.43.0)
-
[us-docker.pkg.dev/agones-images/release/agones-ping:1.43.0](https://us-docker.pkg.dev/agones-images/release/agones-ping:1.43.0)
-
[us-docker.pkg.dev/agones-images/release/agones-allocator:1.43.0](https://us-docker.pkg.dev/agones-images/release/agones-allocator:1.43.0)
-
[us-docker.pkg.dev/agones-images/examples/allocation-endpoint-proxy:0.9](https://us-docker.pkg.dev/agones-images/examples/allocation-endpoint-proxy:0.9)
-
[us-docker.pkg.dev/agones-images/examples/autoscaler-webhook:0.14](https://us-docker.pkg.dev/agones-images/examples/autoscaler-webhook:0.14)
-
[us-docker.pkg.dev/agones-images/examples/cpp-simple-server:0.18](https://us-docker.pkg.dev/agones-images/examples/cpp-simple-server:0.18)
-
[us-docker.pkg.dev/agones-images/examples/crd-client:0.17](https://us-docker.pkg.dev/agones-images/examples/crd-client:0.17)
-
[us-docker.pkg.dev/agones-images/examples/nodejs-simple-server:0.10](https://us-docker.pkg.dev/agones-images/examples/nodejs-simple-server:0.10)
-
[us-docker.pkg.dev/agones-images/examples/rust-simple-server:0.13](https://us-docker.pkg.dev/agones-images/examples/rust-simple-server:0.13)
-
[us-docker.pkg.dev/agones-images/examples/simple-game-server:0.34](https://us-docker.pkg.dev/agones-images/examples/simple-game-server:0.34)
-
[us-docker.pkg.dev/agones-images/examples/supertuxkart-example:0.14](https://us-docker.pkg.dev/agones-images/examples/supertuxkart-example:0.14)
-
[us-docker.pkg.dev/agones-images/examples/unity-simple-server:0.3](https://us-docker.pkg.dev/agones-images/examples/unity-simple-server:0.3)
-
[us-docker.pkg.dev/agones-images/examples/xonotic-example:2.0](https://us-docker.pkg.dev/agones-images/examples/xonotic-example:2.0)

Helm chart available with this release:

- <a href="https://agones.dev/chart/stable/agones-1.43.0.tgz"
data-proofer-ignore>
    <code>helm install agones agones/agones --version 1.43.0</code></a>

> Make sure to add our stable helm repository using `helm repo add
agones https://agones.dev/chart/stable`

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41Ny4xIiwidXBkYXRlZEluVmVyIjoiMzguNTcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUvaGVsbSIsInR5cGUvbWlub3IiXX0=-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/hotfix Hotfixes for issues against release size/S
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants