Agones Kubernetes API

Detailed list of Agones Custom Resource Definitions available

Packages:

agones.dev/v1

Package v1 is the v1 version of the API.

Resource Types:

Fleet

Fleet is the data structure for a Fleet resource

Field Description
apiVersion
string
agones.dev/v1
kind
string
Fleet
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
FleetSpec


replicas
int32

Replicas are the number of GameServers that should be in this set. Defaults to 0.

allocationOverflow
AllocationOverflow
(Optional)

[Stage: Beta] [FeatureFlag:FleetAllocationOverflow] Labels and/or Annotations to apply to overflowing GameServers when the number of Allocated GameServers is more than the desired replicas on the underlying GameServerSet

strategy
Kubernetes apps/v1.DeploymentStrategy

Deployment strategy

scheduling
agones.dev/agones/pkg/apis.SchedulingStrategy

Scheduling strategy. Defaults to “Packed”.

priorities
[]Priority
(Optional)

(Alpha, CountsAndLists feature flag) The first Priority on the array of Priorities is the most important for sorting. The Fleetautoscaler will use the first priority for sorting GameServers by total Capacity in the Fleet and acts as a tie-breaker after sorting the game servers by State and Strategy. Impacts scale down logic.

template
GameServerTemplateSpec

Template the GameServer template to apply for this Fleet

status
FleetStatus

GameServer

GameServer is the data structure for a GameServer resource. It is worth noting that while there is a GameServerStatus Status entry for the GameServer, it is not defined as a subresource - unlike Fleet and other Agones resources. This is so that we can retain the ability to change multiple aspects of a GameServer in a single atomic operation, which is particularly useful for operations such as allocation.

Field Description
apiVersion
string
agones.dev/v1
kind
string
GameServer
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
GameServerSpec


container
string

Container specifies which Pod container is the game server. Only required if there is more than one container defined

ports
[]GameServerPort

Ports are the array of ports that can be exposed via the game server

health
Health

Health configures health checking

scheduling
agones.dev/agones/pkg/apis.SchedulingStrategy

Scheduling strategy. Defaults to “Packed”

sdkServer
SdkServer

SdkServer specifies parameters for the Agones SDK Server sidecar container

template
Kubernetes core/v1.PodTemplateSpec

Template describes the Pod that will be created for the GameServer

players
PlayersSpec
(Optional)

(Alpha, PlayerTracking feature flag) Players provides the configuration for player tracking features.

counters
map[string]agones.dev/agones/pkg/apis/agones/v1.CounterStatus
(Optional)

(Alpha, CountsAndLists feature flag) Counters provides the configuration for tracking of int64 values against a GameServer. Keys must be declared at GameServer creation time.

lists
map[string]agones.dev/agones/pkg/apis/agones/v1.ListStatus
(Optional)

(Alpha, CountsAndLists feature flag) Lists provides the configuration for tracking of lists of up to 1000 values against a GameServer. Keys must be declared at GameServer creation time.

eviction
Eviction
(Optional)

Eviction specifies the eviction tolerance of the GameServer. Defaults to “Never”.

status
GameServerStatus

GameServerSet

GameServerSet is the data structure for a set of GameServers. This matches philosophically with the relationship between Deployments and ReplicaSets

Field Description
apiVersion
string
agones.dev/v1
kind
string
GameServerSet
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
GameServerSetSpec


replicas
int32

Replicas are the number of GameServers that should be in this set

allocationOverflow
AllocationOverflow
(Optional)

[Stage: Beta] [FeatureFlag:FleetAllocationOverflow] Labels and Annotations to apply to GameServers when the number of Allocated GameServers drops below the desired replicas on the underlying GameServerSet

scheduling
agones.dev/agones/pkg/apis.SchedulingStrategy

Scheduling strategy. Defaults to “Packed”.

priorities
[]Priority
(Optional)

(Alpha, CountsAndLists feature flag) The first Priority on the array of Priorities is the most important for sorting. The Fleetautoscaler will use the first priority for sorting GameServers by total Capacity in the Fleet and acts as a tie-breaker after sorting the game servers by State and Strategy. Impacts scale down logic.

template
GameServerTemplateSpec

Template the GameServer template to apply for this GameServerSet

status
GameServerSetStatus

AggregatedCounterStatus

(Appears on: FleetStatus, GameServerSetStatus)

AggregatedCounterStatus stores total and allocated Counter tracking values

Field Description
allocatedCount
int64
allocatedCapacity
int64
count
int64
capacity
int64

AggregatedListStatus

(Appears on: FleetStatus, GameServerSetStatus)

AggregatedListStatus stores total and allocated List tracking values

Field Description
allocatedCount
int64
allocatedCapacity
int64
count
int64
capacity
int64

AggregatedPlayerStatus

(Appears on: FleetStatus, GameServerSetStatus)

AggregatedPlayerStatus stores total player tracking values

Field Description
count
int64
capacity
int64

AllocationOverflow

(Appears on: FleetSpec, GameServerSetSpec)

AllocationOverflow specifies what labels and/or annotations to apply on Allocated GameServers if the desired number of the underlying GameServerSet drops below the number of Allocated GameServers attached to it.

Field Description
labels
map[string]string
(Optional)

Labels to be applied to the GameServer

annotations
map[string]string
(Optional)

Annotations to be applied to the GameServer

CounterStatus

(Appears on: GameServerAllocationStatus, GameServerSpec, GameServerStatus)

CounterStatus stores the current counter values and maximum capacity

Field Description
count
int64
capacity
int64

Eviction

(Appears on: GameServerSpec, GameServerStatus)

Eviction specifies the eviction tolerance of the GameServer

Field Description
safe
EvictionSafe

Game server supports termination via SIGTERM: - Always: Allow eviction for both Cluster Autoscaler and node drain for upgrades - OnUpgrade: Allow eviction for upgrades alone - Never (default): Pod should run to completion

EvictionSafe (string alias)

(Appears on: Eviction)

EvictionSafe specified whether the game server supports termination via SIGTERM

FleetSpec

(Appears on: Fleet)

FleetSpec is the spec for a Fleet

Field Description
replicas
int32

Replicas are the number of GameServers that should be in this set. Defaults to 0.

allocationOverflow
AllocationOverflow
(Optional)

[Stage: Beta] [FeatureFlag:FleetAllocationOverflow] Labels and/or Annotations to apply to overflowing GameServers when the number of Allocated GameServers is more than the desired replicas on the underlying GameServerSet

strategy
Kubernetes apps/v1.DeploymentStrategy

Deployment strategy

scheduling
agones.dev/agones/pkg/apis.SchedulingStrategy

Scheduling strategy. Defaults to “Packed”.

priorities
[]Priority
(Optional)

(Alpha, CountsAndLists feature flag) The first Priority on the array of Priorities is the most important for sorting. The Fleetautoscaler will use the first priority for sorting GameServers by total Capacity in the Fleet and acts as a tie-breaker after sorting the game servers by State and Strategy. Impacts scale down logic.

template
GameServerTemplateSpec

Template the GameServer template to apply for this Fleet

FleetStatus

(Appears on: Fleet, FleetAutoscaleRequest)

FleetStatus is the status of a Fleet

Field Description
replicas
int32

Replicas the total number of current GameServer replicas

readyReplicas
int32

ReadyReplicas are the number of Ready GameServer replicas

reservedReplicas
int32

ReservedReplicas are the total number of Reserved GameServer replicas in this fleet. Reserved instances won’t be deleted on scale down, but won’t cause an autoscaler to scale up.

allocatedReplicas
int32

AllocatedReplicas are the number of Allocated GameServer replicas

players
AggregatedPlayerStatus
(Optional)

[Stage:Alpha] [FeatureFlag:PlayerTracking] Players are the current total player capacity and count for this Fleet

counters
map[string]agones.dev/agones/pkg/apis/agones/v1.AggregatedCounterStatus
(Optional)

(Alpha, CountsAndLists feature flag) Counters provides aggregated Counter capacity and Counter count for this Fleet.

lists
map[string]agones.dev/agones/pkg/apis/agones/v1.AggregatedListStatus
(Optional)

(Alpha, CountsAndLists feature flag) Lists provides aggregated List capacityv and List values for this Fleet.

GameServerPort

(Appears on: GameServerSpec)

GameServerPort defines a set of Ports that are to be exposed via the GameServer

Field Description
name
string

Name is the descriptive name of the port

portPolicy
PortPolicy

PortPolicy defines the policy for how the HostPort is populated. Dynamic port will allocate a HostPort within the selected MIN_PORT and MAX_PORT range passed to the controller at installation time. When Static portPolicy is specified, HostPort is required, to specify the port that game clients will connect to

container
string
(Optional)

Container is the name of the container on which to open the port. Defaults to the game server container.

containerPort
int32

ContainerPort is the port that is being opened on the specified container’s process

hostPort
int32

HostPort the port exposed on the host for clients to connect to

protocol
Kubernetes core/v1.Protocol

Protocol is the network protocol being used. Defaults to UDP. TCP and TCPUDP are other options.

GameServerSetSpec

(Appears on: GameServerSet)

GameServerSetSpec the specification for GameServerSet

Field Description
replicas
int32

Replicas are the number of GameServers that should be in this set

allocationOverflow
AllocationOverflow
(Optional)

[Stage: Beta] [FeatureFlag:FleetAllocationOverflow] Labels and Annotations to apply to GameServers when the number of Allocated GameServers drops below the desired replicas on the underlying GameServerSet

scheduling
agones.dev/agones/pkg/apis.SchedulingStrategy

Scheduling strategy. Defaults to “Packed”.

priorities
[]Priority
(Optional)

(Alpha, CountsAndLists feature flag) The first Priority on the array of Priorities is the most important for sorting. The Fleetautoscaler will use the first priority for sorting GameServers by total Capacity in the Fleet and acts as a tie-breaker after sorting the game servers by State and Strategy. Impacts scale down logic.

template
GameServerTemplateSpec

Template the GameServer template to apply for this GameServerSet

GameServerSetStatus

(Appears on: GameServerSet)

GameServerSetStatus is the status of a GameServerSet

Field Description
replicas
int32

Replicas is the total number of current GameServer replicas

readyReplicas
int32

ReadyReplicas is the number of Ready GameServer replicas

reservedReplicas
int32

ReservedReplicas is the number of Reserved GameServer replicas

allocatedReplicas
int32

AllocatedReplicas is the number of Allocated GameServer replicas

shutdownReplicas
int32

ShutdownReplicas is the number of Shutdown GameServers replicas

players
AggregatedPlayerStatus
(Optional)

[Stage:Alpha] [FeatureFlag:PlayerTracking] Players is the current total player capacity and count for this GameServerSet

counters
map[string]agones.dev/agones/pkg/apis/agones/v1.AggregatedCounterStatus
(Optional)

(Alpha, CountsAndLists feature flag) Counters provides aggregated Counter capacity and Counter count for this GameServerSet.

lists
map[string]agones.dev/agones/pkg/apis/agones/v1.AggregatedListStatus
(Optional)

(Alpha, CountsAndLists feature flag) Lists provides aggregated List capacity and List values for this GameServerSet.

GameServerSpec

(Appears on: GameServer, GameServerTemplateSpec)

GameServerSpec is the spec for a GameServer resource

Field Description
container
string

Container specifies which Pod container is the game server. Only required if there is more than one container defined

ports
[]GameServerPort

Ports are the array of ports that can be exposed via the game server

health
Health

Health configures health checking

scheduling
agones.dev/agones/pkg/apis.SchedulingStrategy

Scheduling strategy. Defaults to “Packed”

sdkServer
SdkServer

SdkServer specifies parameters for the Agones SDK Server sidecar container

template
Kubernetes core/v1.PodTemplateSpec

Template describes the Pod that will be created for the GameServer

players
PlayersSpec
(Optional)

(Alpha, PlayerTracking feature flag) Players provides the configuration for player tracking features.

counters
map[string]agones.dev/agones/pkg/apis/agones/v1.CounterStatus
(Optional)

(Alpha, CountsAndLists feature flag) Counters provides the configuration for tracking of int64 values against a GameServer. Keys must be declared at GameServer creation time.

lists
map[string]agones.dev/agones/pkg/apis/agones/v1.ListStatus
(Optional)

(Alpha, CountsAndLists feature flag) Lists provides the configuration for tracking of lists of up to 1000 values against a GameServer. Keys must be declared at GameServer creation time.

eviction
Eviction
(Optional)

Eviction specifies the eviction tolerance of the GameServer. Defaults to “Never”.

GameServerState (string alias)

(Appears on: GameServerSelector, GameServerStatus)

GameServerState is the state for the GameServer

GameServerStatus

(Appears on: GameServer)

GameServerStatus is the status for a GameServer resource

Field Description
state
GameServerState

GameServerState is the current state of a GameServer, e.g. Creating, Starting, Ready, etc

ports
[]GameServerStatusPort
address
string
addresses
[]Kubernetes core/v1.NodeAddress
(Optional)

Addresses is the array of addresses at which the GameServer can be reached; copy of Node.Status.addresses.

nodeName
string
reservedUntil
Kubernetes meta/v1.Time
players
PlayerStatus
(Optional)

[Stage:Alpha] [FeatureFlag:PlayerTracking]

counters
map[string]agones.dev/agones/pkg/apis/agones/v1.CounterStatus
(Optional)

(Alpha, CountsAndLists feature flag) Counters and Lists provides the configuration for generic tracking features.

lists
map[string]agones.dev/agones/pkg/apis/agones/v1.ListStatus
(Optional)
eviction
Eviction
(Optional)

Eviction specifies the eviction tolerance of the GameServer.

GameServerStatusPort

(Appears on: GameServerAllocationStatus, GameServerStatus)

GameServerStatusPort shows the port that was allocated to a GameServer.

Field Description
name
string
port
int32

GameServerTemplateSpec

(Appears on: FleetSpec, GameServerSetSpec)

GameServerTemplateSpec is a template for GameServers

Field Description
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
GameServerSpec


container
string

Container specifies which Pod container is the game server. Only required if there is more than one container defined

ports
[]GameServerPort

Ports are the array of ports that can be exposed via the game server

health
Health

Health configures health checking

scheduling
agones.dev/agones/pkg/apis.SchedulingStrategy

Scheduling strategy. Defaults to “Packed”

sdkServer
SdkServer

SdkServer specifies parameters for the Agones SDK Server sidecar container

template
Kubernetes core/v1.PodTemplateSpec

Template describes the Pod that will be created for the GameServer

players
PlayersSpec
(Optional)

(Alpha, PlayerTracking feature flag) Players provides the configuration for player tracking features.

counters
map[string]agones.dev/agones/pkg/apis/agones/v1.CounterStatus
(Optional)

(Alpha, CountsAndLists feature flag) Counters provides the configuration for tracking of int64 values against a GameServer. Keys must be declared at GameServer creation time.

lists
map[string]agones.dev/agones/pkg/apis/agones/v1.ListStatus
(Optional)

(Alpha, CountsAndLists feature flag) Lists provides the configuration for tracking of lists of up to 1000 values against a GameServer. Keys must be declared at GameServer creation time.

eviction
Eviction
(Optional)

Eviction specifies the eviction tolerance of the GameServer. Defaults to “Never”.

Health

(Appears on: GameServerSpec)

Health configures health checking on the GameServer

Field Description
disabled
bool

Disabled is whether health checking is disabled or not

periodSeconds
int32

PeriodSeconds is the number of seconds each health ping has to occur in

failureThreshold
int32

FailureThreshold how many failures in a row constitutes unhealthy

initialDelaySeconds
int32

InitialDelaySeconds initial delay before checking health

ListStatus

(Appears on: GameServerAllocationStatus, GameServerSpec, GameServerStatus)

ListStatus stores the current list values and maximum capacity

Field Description
capacity
int64
values
[]string

PlayerStatus

(Appears on: GameServerStatus)

PlayerStatus stores the current player capacity values

Field Description
count
int64
capacity
int64
ids
[]string

PlayersSpec

(Appears on: GameServerSpec)

PlayersSpec tracks the initial player capacity

Field Description
initialCapacity
int64

PortPolicy (string alias)

(Appears on: GameServerPort)

PortPolicy is the port policy for the GameServer

Priority

(Appears on: FleetSpec, GameServerAllocationSpec, GameServerSetSpec)

Priority is a sorting option for GameServers with Counters or Lists based on the Capacity.

Field Description
type
string

Type: Sort by a “Counter” or a “List”.

key
string

Key: The name of the Counter or List. If not found on the GameServer, has no impact.

order
string

Order: Sort by “Ascending” or “Descending”. “Descending” a bigger Capacity is preferred. “Ascending” would be smaller Capacity is preferred.

SdkServer

(Appears on: GameServerSpec)

SdkServer specifies parameters for the Agones SDK Server sidecar container

Field Description
logLevel
SdkServerLogLevel

LogLevel for SDK server (sidecar) logs. Defaults to “Info”

grpcPort
int32

GRPCPort is the port on which the SDK Server binds the gRPC server to accept incoming connections

httpPort
int32

HTTPPort is the port on which the SDK Server binds the HTTP gRPC gateway server to accept incoming connections

SdkServerLogLevel (string alias)

(Appears on: SdkServer)

SdkServerLogLevel is the log level for SDK server (sidecar) logs


allocation.agones.dev/v1

Package v1 is the v1 version of the API.

Resource Types:

GameServerAllocation

GameServerAllocation is the data structure for allocating against a set of GameServers, defined selectors selectors

Field Description
apiVersion
string
allocation.agones.dev/v1
kind
string
GameServerAllocation
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
GameServerAllocationSpec


multiClusterSetting
MultiClusterSetting

MultiClusterPolicySelector if specified, multi-cluster policies are applied. Otherwise, allocation will happen locally.

required
GameServerSelector

Deprecated: use field Selectors instead. If Selectors is set, this field is ignored. Required is the GameServer selector from which to choose GameServers from. Defaults to all GameServers.

preferred
[]GameServerSelector

Deprecated: use field Selectors instead. If Selectors is set, this field is ignored. Preferred is an ordered list of preferred GameServer selectors that are optional to be fulfilled, but will be searched before the required selector. If the first selector is not matched, the selection attempts the second selector, and so on. If any of the preferred selectors are matched, the required selector is not considered. This is useful for things like smoke testing of new game servers.

priorities
[]Priority
(Optional)

(Alpha, CountsAndLists feature flag) The first Priority on the array of Priorities is the most important for sorting. The allocator will use the first priority for sorting GameServers by available Capacity in the Selector set. Acts as a tie-breaker after sorting the game servers by State and Strategy Packed. Impacts which GameServer is checked first.

selectors
[]GameServerSelector

Ordered list of GameServer label selectors. If the first selector is not matched, the selection attempts the second selector, and so on. This is useful for things like smoke testing of new game servers. Note: This field can only be set if neither Required or Preferred is set.

scheduling
agones.dev/agones/pkg/apis.SchedulingStrategy

Scheduling strategy. Defaults to “Packed”.

metadata
MetaPatch

MetaPatch is optional custom metadata that is added to the game server at allocation You can use this to tell the server necessary session data

counters
map[string]agones.dev/agones/pkg/apis/allocation/v1.CounterAction
(Optional)

(Alpha, CountsAndLists feature flag) Counter actions to perform during allocation.

lists
map[string]agones.dev/agones/pkg/apis/allocation/v1.ListAction
(Optional)

(Alpha, CountsAndLists feature flag) List actions to perform during allocation.

status
GameServerAllocationStatus

CounterAction

(Appears on: GameServerAllocationSpec)

CounterAction is an optional action that can be performed on a Counter at allocation.

Field Description
action
string
(Optional)

Action must to either “Increment” or “Decrement” the Counter’s Count. Must also define the Amount.

amount
int64
(Optional)

Amount is the amount to increment or decrement the Count. Must be a positive integer.

capacity
int64
(Optional)

Capacity is the amount to update the maximum capacity of the Counter to this number. Min 0, Max int64.

CounterSelector

(Appears on: GameServerSelector)

CounterSelector is the filter options for a GameServer based on the count and/or available capacity.

Field Description
minCount
int64
(Optional)

MinCount is the minimum current value. Defaults to 0.

maxCount
int64
(Optional)

MaxCount is the maximum current value. Defaults to 0, which translates as max(in64).

minAvailable
int64
(Optional)

MinAvailable specifies the minimum capacity (current capacity - current count) available on a GameServer. Defaults to 0.

maxAvailable
int64
(Optional)

MaxAvailable specifies the maximum capacity (current capacity - current count) available on a GameServer. Defaults to 0, which translates to max(int64).

GameServerAllocationSpec

(Appears on: GameServerAllocation)

GameServerAllocationSpec is the spec for a GameServerAllocation

Field Description
multiClusterSetting
MultiClusterSetting

MultiClusterPolicySelector if specified, multi-cluster policies are applied. Otherwise, allocation will happen locally.

required
GameServerSelector

Deprecated: use field Selectors instead. If Selectors is set, this field is ignored. Required is the GameServer selector from which to choose GameServers from. Defaults to all GameServers.

preferred
[]GameServerSelector

Deprecated: use field Selectors instead. If Selectors is set, this field is ignored. Preferred is an ordered list of preferred GameServer selectors that are optional to be fulfilled, but will be searched before the required selector. If the first selector is not matched, the selection attempts the second selector, and so on. If any of the preferred selectors are matched, the required selector is not considered. This is useful for things like smoke testing of new game servers.

priorities
[]Priority
(Optional)

(Alpha, CountsAndLists feature flag) The first Priority on the array of Priorities is the most important for sorting. The allocator will use the first priority for sorting GameServers by available Capacity in the Selector set. Acts as a tie-breaker after sorting the game servers by State and Strategy Packed. Impacts which GameServer is checked first.

selectors
[]GameServerSelector

Ordered list of GameServer label selectors. If the first selector is not matched, the selection attempts the second selector, and so on. This is useful for things like smoke testing of new game servers. Note: This field can only be set if neither Required or Preferred is set.

scheduling
agones.dev/agones/pkg/apis.SchedulingStrategy

Scheduling strategy. Defaults to “Packed”.

metadata
MetaPatch

MetaPatch is optional custom metadata that is added to the game server at allocation You can use this to tell the server necessary session data

counters
map[string]agones.dev/agones/pkg/apis/allocation/v1.CounterAction
(Optional)

(Alpha, CountsAndLists feature flag) Counter actions to perform during allocation.

lists
map[string]agones.dev/agones/pkg/apis/allocation/v1.ListAction
(Optional)

(Alpha, CountsAndLists feature flag) List actions to perform during allocation.

GameServerAllocationState (string alias)

(Appears on: GameServerAllocationStatus)

GameServerAllocationState is the Allocation state

GameServerAllocationStatus

(Appears on: GameServerAllocation)

GameServerAllocationStatus is the status for an GameServerAllocation resource

Field Description
state
GameServerAllocationState

GameServerState is the current state of an GameServerAllocation, e.g. Allocated, or UnAllocated

gameServerName
string
ports
[]GameServerStatusPort
address
string
addresses
[]Kubernetes core/v1.NodeAddress
nodeName
string
source
string

If the allocation is from a remote cluster, Source is the endpoint of the remote agones-allocator. Otherwise, Source is “local”

metadata
GameServerMetadata
counters
map[string]agones.dev/agones/pkg/apis/agones/v1.CounterStatus
lists
map[string]agones.dev/agones/pkg/apis/agones/v1.ListStatus

GameServerMetadata

(Appears on: GameServerAllocationStatus)

GameServerMetadata is the metadata from the allocated game server at allocation time

Field Description
labels
map[string]string
annotations
map[string]string

GameServerSelector

(Appears on: GameServerAllocationSpec)

GameServerSelector contains all the filter options for selecting a GameServer for allocation.

Field Description
LabelSelector
Kubernetes meta/v1.LabelSelector

(Members of LabelSelector are embedded into this type.)

See: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/

gameServerState
GameServerState

GameServerState specifies which State is the filter to be used when attempting to retrieve a GameServer via Allocation. Defaults to “Ready”. The only other option is “Allocated”, which can be used in conjunction with label/annotation/player selectors to retrieve an already Allocated GameServer.

players
PlayerSelector
(Optional)

[Stage:Alpha] [FeatureFlag:PlayerAllocationFilter] Players provides a filter on minimum and maximum values for player capacity when retrieving a GameServer through Allocation. Defaults to no limits.

counters
map[string]agones.dev/agones/pkg/apis/allocation/v1.CounterSelector
(Optional)

(Alpha, CountsAndLists feature flag) Counters provides filters on minimum and maximum values for a Counter’s count and available capacity when retrieving a GameServer through Allocation. Defaults to no limits.

lists
map[string]agones.dev/agones/pkg/apis/allocation/v1.ListSelector
(Optional)

(Alpha, CountsAndLists feature flag) Lists provides filters on minimum and maximum values for List capacity, and for the existence of a value in a List, when retrieving a GameServer through Allocation. Defaults to no limits.

ListAction

(Appears on: GameServerAllocationSpec)

ListAction is an optional action that can be performed on a List at allocation.

Field Description
addValues
[]string
(Optional)

AddValues appends values to a List’s Values array. Any duplicate values will be ignored.

capacity
int64
(Optional)

Capacity updates the maximum capacity of the Counter to this number. Min 0, Max 1000.

ListSelector

(Appears on: GameServerSelector)

ListSelector is the filter options for a GameServer based on List available capacity and/or the existence of a value in a List.

Field Description
containsValue
string
(Optional)

ContainsValue says to only match GameServers who has this value in the list. Defaults to “”, which is all.

minAvailable
int64
(Optional)

MinAvailable specifies the minimum capacity (current capacity - current count) available on a GameServer. Defaults to 0.

maxAvailable
int64
(Optional)

MaxAvailable specifies the maximum capacity (current capacity - current count) available on a GameServer. Defaults to 0, which is translated as max(int64).

MetaPatch

(Appears on: GameServerAllocationSpec)

MetaPatch is the metadata used to patch the GameServer metadata on allocation

Field Description
labels
map[string]string
annotations
map[string]string

MultiClusterSetting

(Appears on: GameServerAllocationSpec)

MultiClusterSetting specifies settings for multi-cluster allocation.

Field Description
enabled
bool
policySelector
Kubernetes meta/v1.LabelSelector

PlayerSelector

(Appears on: GameServerSelector)

PlayerSelector is the filter options for a GameServer based on player counts

Field Description
minAvailable
int64
maxAvailable
int64

autoscaling.agones.dev/v1

Package v1 is the v1 version of the API.

Resource Types:

FleetAutoscaler

FleetAutoscaler is the data structure for a FleetAutoscaler resource

Field Description
apiVersion
string
autoscaling.agones.dev/v1
kind
string
FleetAutoscaler
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
FleetAutoscalerSpec


fleetName
string
policy
FleetAutoscalerPolicy

Autoscaling policy

sync
FleetAutoscalerSync
(Optional)

Sync defines when FleetAutoscalers runs autoscaling

status
FleetAutoscalerStatus

BufferPolicy

(Appears on: FleetAutoscalerPolicy)

BufferPolicy controls the desired behavior of the buffer policy.

Field Description
maxReplicas
int32

MaxReplicas is the maximum amount of replicas that the fleet may have. It must be bigger than both MinReplicas and BufferSize

minReplicas
int32

MinReplicas is the minimum amount of replicas that the fleet must have If zero, it is ignored. If non zero, it must be smaller than MaxReplicas and bigger than BufferSize

bufferSize
k8s.io/apimachinery/pkg/util/intstr.IntOrString

BufferSize defines how many replicas the autoscaler tries to have ready all the time Value can be an absolute number (ex: 5) or a percentage of desired gs instances (ex: 15%) Absolute number is calculated from percentage by rounding up. Example: when this is set to 20%, the autoscaler will make sure that 20% of the fleet’s game server replicas are ready. When this is set to 20, the autoscaler will make sure that there are 20 available game servers Must be bigger than 0 Note: by “ready” we understand in this case “non-allocated”; this is done to ensure robustness and computation stability in different edge case (fleet just created, not enough capacity in the cluster etc)

CounterPolicy

(Appears on: FleetAutoscalerPolicy)

CounterPolicy controls the desired behavior of the Counter autoscaler policy.

Field Description
key
string

Key is the name of the Counter. Required field.

maxCapacity
int64

MaxCapacity is the maximum aggregate Counter total capacity across the fleet. MaxCapacity must be bigger than both MinCapacity and BufferSize. Required field.

minCapacity
int64

MinCapacity is the minimum aggregate Counter total capacity across the fleet. If zero, MinCapacity is ignored. If non zero, MinCapacity must be smaller than MaxCapacity and bigger than BufferSize.

bufferSize
k8s.io/apimachinery/pkg/util/intstr.IntOrString

BufferSize is the size of a buffer of counted items that are available in the Fleet (available capacity). Value can be an absolute number (ex: 5) or a percentage of desired gs instances (ex: 5%). An absolute number is calculated from percentage by rounding up. Must be bigger than 0. Required field.

FixedIntervalSync

(Appears on: FleetAutoscalerSync)

FixedIntervalSync controls the desired behavior of the fixed interval based sync.

Field Description
seconds
int32

Seconds defines how often we run fleet autoscaling in seconds

FleetAutoscaleRequest

(Appears on: FleetAutoscaleReview)

FleetAutoscaleRequest defines the request to webhook autoscaler endpoint

Field Description
uid
k8s.io/apimachinery/pkg/types.UID

UID is an identifier for the individual request/response. It allows us to distinguish instances of requests which are otherwise identical (parallel requests, requests when earlier requests did not modify etc) The UID is meant to track the round trip (request/response) between the Autoscaler and the WebHook, not the user request. It is suitable for correlating log entries between the webhook and apiserver, for either auditing or debugging.

name
string

Name is the name of the Fleet being scaled

namespace
string

Namespace is the namespace associated with the request (if any).

status
FleetStatus

The Fleet’s status values

FleetAutoscaleResponse

(Appears on: FleetAutoscaleReview)

FleetAutoscaleResponse defines the response of webhook autoscaler endpoint

Field Description
uid
k8s.io/apimachinery/pkg/types.UID

UID is an identifier for the individual request/response. This should be copied over from the corresponding FleetAutoscaleRequest.

scale
bool

Set to false if no scaling should occur to the Fleet

replicas
int32

The targeted replica count

FleetAutoscaleReview

FleetAutoscaleReview is passed to the webhook with a populated Request value, and then returned with a populated Response.

Field Description
request
FleetAutoscaleRequest
response
FleetAutoscaleResponse

FleetAutoscalerPolicy

(Appears on: FleetAutoscalerSpec)

FleetAutoscalerPolicy describes how to scale a fleet

Field Description
type
FleetAutoscalerPolicyType

Type of autoscaling policy.

buffer
BufferPolicy
(Optional)

Buffer policy config params. Present only if FleetAutoscalerPolicyType = Buffer.

webhook
WebhookPolicy
(Optional)

Webhook policy config params. Present only if FleetAutoscalerPolicyType = Webhook.

counter
CounterPolicy
(Optional)

[Stage:Alpha] [FeatureFlag:CountsAndLists] Counter policy config params. Present only if FleetAutoscalerPolicyType = Counter.

list
ListPolicy
(Optional)

[Stage:Alpha] [FeatureFlag:CountsAndLists] List policy config params. Present only if FleetAutoscalerPolicyType = List.

FleetAutoscalerPolicyType (string alias)

(Appears on: FleetAutoscalerPolicy)

FleetAutoscalerPolicyType is the policy for autoscaling for a given Fleet

FleetAutoscalerSpec

(Appears on: FleetAutoscaler)

FleetAutoscalerSpec is the spec for a Fleet Scaler

Field Description
fleetName
string
policy
FleetAutoscalerPolicy

Autoscaling policy

sync
FleetAutoscalerSync
(Optional)

Sync defines when FleetAutoscalers runs autoscaling

FleetAutoscalerStatus

(Appears on: FleetAutoscaler)

FleetAutoscalerStatus defines the current status of a FleetAutoscaler

Field Description
currentReplicas
int32

CurrentReplicas is the current number of gameserver replicas of the fleet managed by this autoscaler, as last seen by the autoscaler

desiredReplicas
int32

DesiredReplicas is the desired number of gameserver replicas of the fleet managed by this autoscaler, as last calculated by the autoscaler

lastScaleTime
Kubernetes meta/v1.Time
(Optional)

lastScaleTime is the last time the FleetAutoscaler scaled the attached fleet,

ableToScale
bool

AbleToScale indicates that we can access the target fleet

scalingLimited
bool

ScalingLimited indicates that the calculated scale would be above or below the range defined by MinReplicas and MaxReplicas, and has thus been capped.

FleetAutoscalerSync

(Appears on: FleetAutoscalerSpec)

FleetAutoscalerSync describes when to sync a fleet

Field Description
type
FleetAutoscalerSyncType

Type of autoscaling sync.

fixedInterval
FixedIntervalSync
(Optional)

FixedInterval config params. Present only if FleetAutoscalerSyncType = FixedInterval.

FleetAutoscalerSyncType (string alias)

(Appears on: FleetAutoscalerSync)

FleetAutoscalerSyncType is the sync strategy for a given Fleet

ListPolicy

(Appears on: FleetAutoscalerPolicy)

ListPolicy controls the desired behavior of the List autoscaler policy.

Field Description
key
string

Key is the name of the List. Required field.

maxCapacity
int64

MaxCapacity is the maximum aggregate List total capacity across the fleet. MaxCapacity must be bigger than both MinCapacity and BufferSize. Required field.

minCapacity
int64

MinCapacity is the minimum aggregate List total capacity across the fleet. If zero, it is ignored. If non zero, it must be smaller than MaxCapacity and bigger than BufferSize.

bufferSize
k8s.io/apimachinery/pkg/util/intstr.IntOrString

BufferSize is the size of a buffer based on the List capacity that is available over the current aggregate List length in the Fleet (available capacity). It can be specified either as an absolute value (i.e. 5) or percentage format (i.e. 5%). Must be bigger than 0. Required field.

WebhookPolicy

(Appears on: FleetAutoscalerPolicy)

WebhookPolicy controls the desired behavior of the webhook policy. It contains the description of the webhook autoscaler service used to form url which is accessible inside the cluster

Field Description
url
string
(Optional)

url gives the location of the webhook, in standard URL form (scheme://host:port/path). Exactly one of url or service must be specified.

The host should not refer to a service running in the cluster; use the service field instead. The host might be resolved via external DNS in some apiservers (e.g., kube-apiserver cannot resolve in-cluster DNS as that would be a layering violation). host may also be an IP address.

Please note that using localhost or 127.0.0.1 as a host is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.

The scheme must be “https”; the URL must begin with “https://”.

A path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.

Attempting to use a user or basic auth e.g. “user:password@” is not allowed. Fragments (“#…”) and query parameters (“?…”) are not allowed, either.

service
Kubernetes admissionregistration/v1.ServiceReference
(Optional)

service is a reference to the service for this webhook. Either service or url must be specified.

If the webhook is running within the cluster, then you should use service.

caBundle
[]byte
(Optional)

caBundle is a PEM encoded CA bundle which will be used to validate the webhook’s server certificate. If unspecified, system trust roots on the apiserver are used.


multicluster.agones.dev/v1

Package v1 is the v1 version of the API.

Resource Types:

GameServerAllocationPolicy

GameServerAllocationPolicy is the Schema for the gameserverallocationpolicies API

Field Description
apiVersion
string
multicluster.agones.dev/v1
kind
string
GameServerAllocationPolicy
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
GameServerAllocationPolicySpec


priority
int32
weight
int
connectionInfo
ClusterConnectionInfo

ClusterConnectionInfo

(Appears on: GameServerAllocationPolicySpec)

ClusterConnectionInfo defines the connection information for a cluster

Field Description
clusterName
string

Optional: the name of the targeted cluster

allocationEndpoints
[]string

The endpoints for the allocator service in the targeted cluster. If the AllocationEndpoints is not set, the allocation happens on local cluster. If there are multiple endpoints any of the endpoints that can handle allocation request should suffice

secretName
string

The name of the secret that contains TLS client certificates to connect the allocator server in the targeted cluster

namespace
string

The cluster namespace from which to allocate gameservers

serverCa
[]byte

The PEM encoded server CA, used by the allocator client to authenticate the remote server.

ConnectionInfoIterator

ConnectionInfoIterator an iterator on ClusterConnectionInfo

Field Description
currPriority
int

currPriority Current priority index from the orderedPriorities

orderedPriorities
[]int32

orderedPriorities list of ordered priorities

priorityToCluster
map[int32]map[string][]*agones.dev/agones/pkg/apis/multicluster/v1.GameServerAllocationPolicy

priorityToCluster Map of priority to cluster-policies map

clusterBlackList
map[string]bool

clusterBlackList the cluster blacklist for the clusters that has already returned

GameServerAllocationPolicySpec

(Appears on: GameServerAllocationPolicy)

GameServerAllocationPolicySpec defines the desired state of GameServerAllocationPolicy

Field Description
priority
int32
weight
int
connectionInfo
ClusterConnectionInfo

Generated with gen-crd-api-reference-docs.


Last modified March 19, 2024: Update Supported Kubernetes to 1.27, 1.28, 1.29 (#3654) (ace51d6)