agones

package module
v1.40.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 23, 2024 License: Apache-2.0 Imports: 0 Imported by: 0

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 community membership governance.

See the Developing, Testing and Building Agones documentation for developing, testing and building Agones from source.

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

Documentation

Overview

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

Directories

Path Synopsis
build
report
build/report/report.go generates a flake report for the last N weeks on the configured build trigger.
build/report/report.go generates a flake report for the last N weeks on the configured build trigger.
scripts/bump-image
Package main implements a program to increment the new tag for the given examples image.
Package main implements a program to increment the new tag for the given examples image.
scripts/feature-shortcode-update
Package main implements a program that removes the contents of feature expiry version and publish version shortcodes in .md files within the site/content/en/docs directory.
Package main implements a program that removes the contents of feature expiry version and publish version shortcodes in .md files within the site/content/en/docs directory.
scripts/remove-data-proofer-ignore
Package main implements a program to remove data-proofer-ignore attribute from previous release blog
Package main implements a program to remove data-proofer-ignore attribute from previous release blog
scripts/sdk-update-version
Package main implements a program that updates the version of files in the sdks and install directories.
Package main implements a program that updates the version of files in the sdks and install directories.
scripts/update-navbar-version
The main package implements a program that removes the old version of the link in `navbarDropdownMenuLink` found in the `site/layouts/partials/navbar.html` file
The main package implements a program that removes the old version of the link in `navbarDropdownMenuLink` found in the `site/layouts/partials/navbar.html` file
cmd
controller
Controller for gameservers
Controller for gameservers
extensions
Extensions for the Agones System
Extensions for the Agones System
ping
binary for the pinger service for RTT measurement.
binary for the pinger service for RTT measurement.
sdk-server
sidecar for the game server that the sdk connects to
sidecar for the game server that the sdk connects to
examples
crd-client Module
pkg
Package pkg is all Agones libraries.
Package pkg is all Agones libraries.
allocation/converters
Package converters includes API conversions between GameServerAllocation API and the Allocation proto APIs.
Package converters includes API conversions between GameServerAllocation API and the Allocation proto APIs.
allocation/go
Package allocation is a reverse proxy.
Package allocation is a reverse proxy.
apis
Package apis contains all the types for the Custom Resource Definitions
Package apis contains all the types for the Custom Resource Definitions
apis/agones
Package agones implements the agones.dev APIs.
Package agones implements the agones.dev APIs.
apis/agones/v1
Package v1 is the v1 version of the API.
Package v1 is the v1 version of the API.
apis/allocation
Package allocation implements the allocation.agones.dev APIs.
Package allocation implements the allocation.agones.dev APIs.
apis/allocation/v1
Package v1 is the v1 version of the API.
Package v1 is the v1 version of the API.
apis/autoscaling
Package autoscaling implements the autoscaling.agones.dev APIs.
Package autoscaling implements the autoscaling.agones.dev APIs.
apis/autoscaling/v1
Package v1 is the v1 version of the API.
Package v1 is the v1 version of the API.
apis/multicluster
Package multicluster implements the multicluster.agones.dev
Package multicluster implements the multicluster.agones.dev
apis/multicluster/v1
Package v1 is the v1 version of the API.
Package v1 is the v1 version of the API.
client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/clientset/versioned/typed/agones/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/agones/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/clientset/versioned/typed/allocation/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/allocation/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/clientset/versioned/typed/autoscaling/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/autoscaling/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/clientset/versioned/typed/multicluster/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/multicluster/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
cloudproduct
Package cloudproduct provides an abstraction layer to product specific functionality
Package cloudproduct provides an abstraction layer to product specific functionality
cloudproduct/eviction
Package eviction implements a generic SetEviction interface for cloud products
Package eviction implements a generic SetEviction interface for cloud products
cloudproduct/generic
Package generic provides the generic cloud provider.
Package generic provides the generic cloud provider.
cloudproduct/gke
Package gke provides the GKE cloud product interfaces for GKE Standard and Autopilot
Package gke provides the GKE cloud product interfaces for GKE Standard and Autopilot
fleetautoscalers
Package fleetautoscalers handles management of the Fleet Custom Resource Definition
Package fleetautoscalers handles management of the Fleet Custom Resource Definition
fleets
Package fleets handles management of the Fleet Custom Resource Definition
Package fleets handles management of the Fleet Custom Resource Definition
gameserverallocations
Package gameserverallocations handles management of allocating Ready GameServers via selectors
Package gameserverallocations handles management of allocating Ready GameServers via selectors
gameservers
Package gameservers handles management of the GameServer Custom Resource Definition
Package gameservers handles management of the GameServer Custom Resource Definition
gameserversets
Package gameserversets handles management of the GameServerSet Custom Resource Definition
Package gameserversets handles management of the GameServerSet Custom Resource Definition
metrics
Package metrics records stats of agones controllers
Package metrics records stats of agones controllers
portallocator
Package portallocator defines a generic port allocator for game servers
Package portallocator defines a generic port allocator for game servers
sdk
Package sdk is a reverse proxy.
Package sdk is a reverse proxy.
sdk/alpha
Package alpha is a reverse proxy.
Package alpha is a reverse proxy.
sdkserver
Package sdkserver implements Agones SDK server (sidecar).
Package sdkserver implements Agones SDK server (sidecar).
testing
Package testing is for project wide testing utilities.
Package testing is for project wide testing utilities.
util
Package util is for general libraries that aren't specific to Agones
Package util is for general libraries that aren't specific to Agones
util/apiserver
Package apiserver manages kubernetes api extension apis
Package apiserver manages kubernetes api extension apis
util/crd
Package crd contains utilities for working with CustomResourceDefinitions.
Package crd contains utilities for working with CustomResourceDefinitions.
util/fswatch
Package fswatch provies Watch(), a utility function to watch a filesystem path.
Package fswatch provies Watch(), a utility function to watch a filesystem path.
util/https
Package https provides HTTPS helpers.
Package https provides HTTPS helpers.
util/logfields
Package logfields specifies constants for use in logging.
Package logfields specifies constants for use in logging.
util/runtime
Package runtime handles runtime errors Wraps and reconfigures functionality in apimachinery/pkg/runtime
Package runtime handles runtime errors Wraps and reconfigures functionality in apimachinery/pkg/runtime
util/signals
Package signals contains utilities for managing process signals, particularly around stopping processes
Package signals contains utilities for managing process signals, particularly around stopping processes
util/webhooks
Package webhooks manages and receives Kubernetes Webhooks
Package webhooks manages and receives Kubernetes Webhooks
util/workerqueue
Package workerqueue extends client-go's workqueue functionality into an opinionated queue + worker model that is reusable
Package workerqueue extends client-go's workqueue functionality into an opinionated queue + worker model that is reusable
sdks
go
Package sdk is the Go game server sdk.
Package sdk is the Go game server sdk.
test
e2e/allochelper
Package allochelper is a package for helper function that is used by e2e tests
Package allochelper is a package for helper function that is used by e2e tests
e2e/controller
Package controller is for testing controller failures.
Package controller is for testing controller failures.
e2e/framework
Package framework is a package helping setting up end-to-end testing across a Kubernetes cluster.
Package framework is a package helping setting up end-to-end testing across a Kubernetes cluster.
eviction
evictpod.go --pod <pod> --namespace <namespace> initiates a pod eviction using the k8s eviction API.
evictpod.go --pod <pod> --namespace <namespace> initiates a pod eviction using the k8s eviction API.
sdk/go
Binary sdk-client-test tests the Go SDK client.
Binary sdk-client-test tests the Go SDK client.
sdk/websocket-watch
Binary ws-watch-test tests websocket watch in Go.
Binary ws-watch-test tests websocket watch in Go.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL