MCPcopy
hub / github.com/agones-dev/agones

github.com/agones-dev/agones @v1.59.0 sqlite

repository ↗ · DeepWiki ↗ · release v1.59.0 ↗
4,881 symbols 18,500 edges 432 files 2,077 documented · 43%
README

Agones logo

go.dev reference GoDoc Go Report Card GitHub release Follow on Twitter

Agones is a library for hosting, running and scaling dedicated game servers on Kubernetes.

Agones, is derived from the Greek word agōn which roughly translates to “contest”, “competition at games” and “gathering”. (source)

Why does this project exist?

Agones replaces usual bespoke or proprietary cluster management and game server scaling solutions with a Kubernetes cluster that includes the Agones custom Kubernetes Controller and matching Custom Resource Definitions for GameServers, Fleets and more.

With Agones, Kubernetes gets native abilities to create, run, manage and scale dedicated game server processes within Kubernetes clusters using standard Kubernetes tooling and APIs. This model also allows any matchmaker to interact directly with Agones via the Kubernetes API to provision a dedicated game server.

For more details on why this project was written, read the announcement blog post.

Major Features

  • Define a single GameServer, and/or large game server Fleets within Kubernetes - either through yaml or via the API
  • Manage GameServer lifecycles - including health checking and connection information.
  • Fleet Autoscaling capabilities that integrate with Kubernetes' native cluster autoscaling
  • Gameserver specific metric exports and dashboards for ops teams

Usage

Documentation can be found on the Agones website.

Get involved

Code of Conduct

Participation in this project comes under the Contributor Covenant Code of Conduct

Reporting Security Issues

To report a security issue for this project, please follow the instructions in the Project Security Policy

Development and Contribution

Please read the contributing guide for directions on submitting Pull Requests to Agones, and the governance documentation for decision-making and community membership governance.

See the Developing, Testing and Building Agones documentation for developing, testing and building Agones from source. For adding a new field to one of the Custom Resource Definitions refer to Development Work on Agones Custom Resource Definitions (CRDs).

For Agones client SDK development refer to Developing, Testing, and Building Agones Client SDKs.

The Release Process documentation displays the project's upcoming release calendar and release process.

Agones is in active development - we would love your help in shaping its future!

This all sounds great, but can you explain Docker and/or Kubernetes to me?

Docker

Kubernetes

Licence

Apache 2.0

Extension points exported contracts — how you extend this code

FleetsGetter (Interface)
FleetsGetter has a method to return a FleetInterface. A group's client should implement this interface. [6 implementers]
pkg/client/clientset/versioned/typed/agones/v1/fleet.go
GameServerAllocator (Interface)
GameServerAllocator represents the interface to allocate game servers. [18 implementers]
pkg/gameserverallocations/processor/handler.go
APIHooks (Interface)
APIHooks is a subset of the cloudproduct.CloudProduct interface for cloud product hooks specific to this package. [4 implementers]
pkg/apis/agones/v1/apihooks.go
ControllerHooksInterface (Interface)
The Cloud Product abstraction currently consists of disjoint interfaces: * ControllerHooks() is an interface available t [2 …
pkg/cloudproduct/cloudproduct.go
GameServerCallback (FuncType)
GameServerCallback is a function definition to be called when a GameServer CRD has been changed.
sdks/go/sdk.go
Interface (Interface)
Interface manages the dynamic port allocation strategy. The portallocator does not currently support mixing static port
pkg/portallocator/portallocator.go
Handler (FuncType)
Handler is the handler for processing the work queue This is usually a syncronisation handler for a controller or relate
pkg/util/workerqueue/workerqueue.go
GenericInformer (Interface)
GenericInformer is type of SharedIndexInformer which will locate and delegate to other sharedInformers based on type [6 …
pkg/client/informers/externalversions/generic.go

Core symbols most depended-on inside this repo

t
called by 544
site/static/js/asciinema-player.js
e
called by 459
site/static/js/asciinema-player.js
Error
called by 229
pkg/util/workerqueue/workerqueue.go
o
called by 214
site/static/js/asciinema-player.js
Get
called by 211
pkg/client/listers/agones/v1/fleet.go
y
called by 209
site/static/js/asciinema-player.js
Run
called by 200
pkg/portallocator/portallocator.go
Run
called by 197
pkg/gameserverallocations/processor/client.go

Shape

Function 2,255
Method 2,038
Struct 425
Interface 91
TypeAlias 33
Class 27
FuncType 12

Languages

Go77%
TypeScript20%
Python3%

Modules by API surface

site/static/js/asciinema-player.js897 symbols
pkg/allocation/go/allocation.pb.go200 symbols
pkg/sdk/sdk.pb.go120 symbols
pkg/sdk/beta/beta.pb.go83 symbols
pkg/sdk/sdk_grpc.pb.go73 symbols
pkg/allocation/go/processor.pb.go70 symbols
pkg/apis/agones/v1/gameserver.go61 symbols
pkg/apis/agones/v1/zz_generated.deepcopy.go60 symbols
pkg/sdkserver/sdkserver.go53 symbols
pkg/fleets/controller_test.go52 symbols
pkg/apis/autoscaling/v1/zz_generated.deepcopy.go44 symbols
pkg/sdk/alpha/alpha_grpc.pb.go43 symbols

Dependencies from manifests, versioned

agones.dev/agonesv1.54.0 · 1×
cloud.google.com/gov0.112.2 · 1×
cloud.google.com/go/auth/oauth2adaptv0.2.7 · 1×
cloud.google.com/go/cloudbuildv1.15.1 · 1×
cloud.google.com/go/compute/metadatav0.9.0 · 1×
cloud.google.com/go/longrunningv0.5.6 · 1×
cloud.google.com/go/monitoringv1.18.0 · 1×
cloud.google.com/go/tracev1.10.5 · 1×
contrib.go.opencensus.io/exporter/stackdriverv0.8.0 · 1×
fortio.org/fortiov1.3.1 · 1×

For agents

$ claude mcp add agones \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact