-
Notifications
You must be signed in to change notification settings - Fork 820
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Create "Integration Patterns" section in docs
This sets us up to write the series of guides for Game Server Allocation advanced filtering (#1239), as well as adding extra guides for integrations such as: * Websocket servers * Reusing GameServers * Canary Testing And I'm sure more will show up!
- Loading branch information
1 parent
0c1fd4f
commit 88341a4
Showing
6 changed files
with
85 additions
and
38 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
--- | ||
title: "Common Integration Patterns" | ||
linkTitle: "Integration Patterns" | ||
weight: 8 | ||
date: 2021-07-27 | ||
description: > | ||
Common patterns and integrations of external systems, such as matchmakers, with `GameServer` starting, allocating | ||
and shutdown. | ||
--- | ||
|
||
{{< alert title="Note" color="info" >}} | ||
These examples will use the `GameServerAllocation` resource for convenience, but these same patterns can be applied | ||
when using the [Allocation Service]({{% ref "/docs/Advanced/allocator-service.md" %}}) instead. | ||
{{< /alert >}} |
37 changes: 37 additions & 0 deletions
37
site/content/en/docs/Integration Patterns/allocation-from-fleet.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
--- | ||
title: "Matchmaker requests a GameServer from a Fleet" | ||
linkTitle: "Allocation from a Fleet" | ||
date: 2021-07-27 | ||
weight: 10 | ||
description: > | ||
This is the preferred workflow for a GameServer, in which an external matchmaker requests an allocation from one or | ||
more `Fleets` using a `GameServerAllocation`. | ||
--- | ||
|
||
|
||
![Allocated Lifecycle Sequence Diagram](../../../diagrams/gameserver-lifecycle.puml.png) | ||
|
||
## Sample `GameServerAllocation` | ||
|
||
Since Agones will automatically add the label `agones.dev/fleet` to a `GameServer` of a given `Fleet`, we can use that | ||
label selector to target a specific `Fleet` by name. In this instance, we are targeting the `Fleet` `xonotic`. | ||
|
||
```yaml | ||
apiVersion: "allocation.agones.dev/v1" | ||
kind: GameServerAllocation | ||
spec: | ||
required: | ||
matchLabels: | ||
agones.dev/fleet: xonotic | ||
``` | ||
## Next Steps: | ||
- Read the various references, including the | ||
[GameServer]({{< ref "/docs/Reference/gameserver.md" >}}) and [Fleet]({{< ref "/docs/Reference/fleet.md" >}}) | ||
reference materials. | ||
- Review the specifics of [Health Checking]({{< ref "/docs/Guides/health-checking.md" >}}). | ||
- See all the commands the [Client SDK]({{< ref "/docs/Guides/Client SDKs/_index.md" >}}) provides - we only show a | ||
few here! | ||
- If you aren't familiar with the term [Pod](https://kubernetes.io/docs/concepts/workloads/pods/pod/), this should | ||
provide a reference. |
30 changes: 30 additions & 0 deletions
30
site/content/en/docs/Integration Patterns/matchmaker-registration.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
--- | ||
title: "Matchmaker requires game server process registration" | ||
linkTitle: "Matchmaker registration" | ||
date: 2021-07-27 | ||
weight: 20 | ||
description: > | ||
A scenario in which a Matchmaker requires a game server process to register themselves with the matchmaker, and the | ||
matchmaker decides which `GameServer` players are sent to. | ||
--- | ||
|
||
In this scenario, the `GameServer` process will need to self Allocate when informed by the matchmaker that players | ||
are being sent to them. | ||
|
||
![Reserved Lifecycle Sequence Diagram](../../../diagrams/gameserver-reserved.puml.png) | ||
|
||
{{< alert title="Warning" color="warning">}} | ||
This does relinquish control over how `GameServers` are packed across the cluster to the external matchmaker. It is likely | ||
it will not do as good a job at packing and scaling as Agones. | ||
{{< /alert >}} | ||
gameserver-reserved.puml.png | ||
## Next Steps: | ||
|
||
- Read the various references, including the | ||
[GameServer]({{< ref "/docs/Reference/gameserver.md" >}}) and [Fleet]({{< ref "/docs/Reference/fleet.md" >}}) | ||
reference materials. | ||
- Review the specifics of [Health Checking]({{< ref "/docs/Guides/health-checking.md" >}}). | ||
- See all the commands the [Client SDK]({{< ref "/docs/Guides/Client SDKs/_index.md" >}}) provides - we only show a | ||
few here! | ||
- If you aren't familiar with the term [Pod](https://kubernetes.io/docs/concepts/workloads/pods/pod/), this should | ||
provide a reference. |