v1alpha1

package
v0.8.1 Latest Latest
Warning

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

Go to latest
Published: Mar 15, 2019 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Overview

Package v1alpha1 is the v1alpha1 version of the API. +groupName=stable.agones.dev

Index

Constants

View Source
const (
	// GameServerStatePortAllocation is for when a dynamically allocating GameServer
	// is being created, an open port needs to be allocated
	GameServerStatePortAllocation GameServerState = "PortAllocation"
	// GameServerStateCreating is before the Pod for the GameServer is being created
	GameServerStateCreating GameServerState = "Creating"
	// GameServerStateStarting is for when the Pods for the GameServer are being
	// created but are not yet Scheduled
	GameServerStateStarting GameServerState = "Starting"
	// GameServerStateScheduled is for when we have determined that the Pod has been
	// scheduled in the cluster -- basically, we have a NodeName
	GameServerStateScheduled GameServerState = "Scheduled"
	// GameServerStateRequestReady is when the GameServer has declared that it is ready
	GameServerStateRequestReady GameServerState = "RequestReady"
	// GameServerStateReady is when a GameServer is ready to take connections
	// from Game clients
	GameServerStateReady GameServerState = "Ready"
	// GameServerStateShutdown is when the GameServer has shutdown and everything needs to be
	// deleted from the cluster
	GameServerStateShutdown GameServerState = "Shutdown"
	// GameServerStateError is when something has gone wrong with the Gameserver and
	// it cannot be resolved
	GameServerStateError GameServerState = "Error"
	// GameServerStateUnhealthy is when the GameServer has failed its health checks
	GameServerStateUnhealthy GameServerState = "Unhealthy"
	// GameServerStateAllocated is when the GameServer has been allocated to a session
	GameServerStateAllocated GameServerState = "Allocated"

	// Static PortPolicy means that the user defines the hostPort to be used
	// in the configuration.
	Static PortPolicy = "static"
	// Dynamic PortPolicy means that the system will choose an open
	// port for the GameServer in question
	Dynamic PortPolicy = "dynamic"

	// RoleLabel is the label in which the Agones role is specified.
	// Pods from a GameServer will have the value "gameserver"
	RoleLabel = stable.GroupName + "/role"
	// GameServerLabelRole is the GameServer label value for RoleLabel
	GameServerLabelRole = "gameserver"
	// GameServerPodLabel is the label that the name of the GameServer
	// is set on the Pod the GameServer controls
	GameServerPodLabel = stable.GroupName + "/gameserver"
	// GameServerContainerAnnotation is the annotation that stores
	// which container is the container that runs the dedicated game server
	GameServerContainerAnnotation = stable.GroupName + "/container"
	// DevAddressAnnotation is an annotation to indicate that a GameServer hosted outside of Agones.
	// A locally hosted GameServer is not managed by Agones it is just simply registered.
	DevAddressAnnotation = "stable.agones.dev/dev-address"
)
View Source
const (
	// FleetNameLabel is the label that the name of the Fleet
	// is set to on GameServerSet and GameServer  the Fleet controls
	FleetNameLabel = stable.GroupName + "/fleet"
)
View Source
const (
	// GameServerSetGameServerLabel is the label that the name of the GameServerSet
	// is set on the GameServer the GameServerSet controls
	GameServerSetGameServerLabel = stable.GroupName + "/gameserverset"
)

Variables

View Source
var (
	// SchemeBuilder registers our types
	SchemeBuilder = k8sruntime.NewSchemeBuilder(addKnownTypes)
	// AddToScheme local alias for SchemeBuilder.AddToScheme
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var (
	// GameServerRolePodSelector is the selector to get all GameServer Pods
	GameServerRolePodSelector = labels.SelectorFromSet(labels.Set{RoleLabel: GameServerLabelRole})
)
View Source
var SchemeGroupVersion = schema.GroupVersion{Group: stable.GroupName, Version: "v1alpha1"}

SchemeGroupVersion is group version used to register these objects

Functions

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns back a Group qualified GroupKind

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

func SumStatusAllocatedReplicas

func SumStatusAllocatedReplicas(list []*GameServerSet) int32

SumStatusAllocatedReplicas returns the total number of Status.AllocatedReplicas in the list of GameServerSets

func SumStatusReplicas

func SumStatusReplicas(list []*GameServerSet) int32

SumStatusReplicas returns the total number of Status.Replicas in the list of GameServerSets

Types

type BufferPolicy added in v0.5.0

type BufferPolicy struct {
	// MaxReplicas is the maximum amount of replicas that the fleet may have.
	// It must be bigger than both MinReplicas and BufferSize
	MaxReplicas int32 `json:"maxReplicas"`

	// 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
	MinReplicas int32 `json:"minReplicas"`

	// 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)
	BufferSize intstr.IntOrString `json:"bufferSize"`
}

BufferPolicy controls the desired behavior of the buffer policy.

func (*BufferPolicy) DeepCopy added in v0.5.0

func (in *BufferPolicy) DeepCopy() *BufferPolicy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BufferPolicy.

func (*BufferPolicy) DeepCopyInto added in v0.5.0

func (in *BufferPolicy) DeepCopyInto(out *BufferPolicy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*BufferPolicy) ValidateBufferPolicy added in v0.6.0

func (b *BufferPolicy) ValidateBufferPolicy(causes []metav1.StatusCause) []metav1.StatusCause

ValidateBufferPolicy validates the FleetAutoscaler Buffer policy settings

type Fleet

type Fleet struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   FleetSpec   `json:"spec"`
	Status FleetStatus `json:"status"`
}

Fleet is the data structure for a Fleet resource

func (*Fleet) ApplyDefaults

func (f *Fleet) ApplyDefaults()

ApplyDefaults applies default values to the Fleet

func (*Fleet) DeepCopy

func (in *Fleet) DeepCopy() *Fleet

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Fleet.

func (*Fleet) DeepCopyInto

func (in *Fleet) DeepCopyInto(out *Fleet)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Fleet) DeepCopyObject

func (in *Fleet) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Fleet) GameServerSet

func (f *Fleet) GameServerSet() *GameServerSet

GameServerSet returns a single GameServerSet for this Fleet definition

func (*Fleet) LowerBoundReplicas

func (f *Fleet) LowerBoundReplicas(i int32) int32

LowerBoundReplicas returns 0 (the minimum value for replicas) if i is < 0

func (*Fleet) UpperBoundReplicas

func (f *Fleet) UpperBoundReplicas(i int32) int32

UpperBoundReplicas returns whichever is smaller, the value i, or the f.Spec.Replicas.

type FleetAllocation

type FleetAllocation struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   FleetAllocationSpec   `json:"spec"`
	Status FleetAllocationStatus `json:"status,omitempty"`
}

FleetAllocation is the data structure for allocating against a Fleet

func (*FleetAllocation) DeepCopy

func (in *FleetAllocation) DeepCopy() *FleetAllocation

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FleetAllocation.

func (*FleetAllocation) DeepCopyInto

func (in *FleetAllocation) DeepCopyInto(out *FleetAllocation)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FleetAllocation) DeepCopyObject

func (in *FleetAllocation) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*FleetAllocation) ValidateUpdate

func (fa *FleetAllocation) ValidateUpdate(new *FleetAllocation) (bool, []metav1.StatusCause)

ValidateUpdate validates when an update occurs

type FleetAllocationList

type FleetAllocationList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []FleetAllocation `json:"items"`
}

FleetAllocationList is a list of Fleet Allocation resources

func (*FleetAllocationList) DeepCopy

func (in *FleetAllocationList) DeepCopy() *FleetAllocationList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FleetAllocationList.

func (*FleetAllocationList) DeepCopyInto

func (in *FleetAllocationList) DeepCopyInto(out *FleetAllocationList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FleetAllocationList) DeepCopyObject

func (in *FleetAllocationList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type FleetAllocationSpec

type FleetAllocationSpec struct {
	FleetName string    `json:"fleetName"`
	MetaPatch MetaPatch `json:"metadata,omitempty"`
}

FleetAllocationSpec is the spec for a Fleet Allocation

func (*FleetAllocationSpec) DeepCopy

func (in *FleetAllocationSpec) DeepCopy() *FleetAllocationSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FleetAllocationSpec.

func (*FleetAllocationSpec) DeepCopyInto

func (in *FleetAllocationSpec) DeepCopyInto(out *FleetAllocationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FleetAllocationStatus

type FleetAllocationStatus struct {
	GameServer *GameServer `json:"gameServer,omitempty"`
}

FleetAllocationStatus will contain the `GameServer` that has been allocated from a Fleet

func (*FleetAllocationStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FleetAllocationStatus.

func (*FleetAllocationStatus) DeepCopyInto

func (in *FleetAllocationStatus) DeepCopyInto(out *FleetAllocationStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FleetAutoscaleRequest added in v0.7.0

type FleetAutoscaleRequest struct {
	// 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.
	UID types.UID `json:"uid"`
	// Name is the name of the Fleet being scaled
	Name string `json:"name"`
	// Namespace is the namespace associated with the request (if any).
	Namespace string `json:"namespace"`
	// The Fleet's status values
	Status FleetStatus `json:"status"`
}

FleetAutoscaleRequest defines the request to webhook autoscaler endpoint

func (*FleetAutoscaleRequest) DeepCopy added in v0.7.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FleetAutoscaleRequest.

func (*FleetAutoscaleRequest) DeepCopyInto added in v0.7.0

func (in *FleetAutoscaleRequest) DeepCopyInto(out *FleetAutoscaleRequest)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FleetAutoscaleResponse added in v0.7.0

type FleetAutoscaleResponse struct {
	// UID is an identifier for the individual request/response.
	// This should be copied over from the corresponding FleetAutoscaleRequest.
	UID types.UID `json:"uid"`
	// Set to false if no scaling should occur to the Fleet
	Scale bool `json:"scale"`
	// The targeted replica count
	Replicas int32 `json:"replicas"`
}

FleetAutoscaleResponse defines the response of webhook autoscaler endpoint

func (*FleetAutoscaleResponse) DeepCopy added in v0.7.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FleetAutoscaleResponse.

func (*FleetAutoscaleResponse) DeepCopyInto added in v0.7.0

func (in *FleetAutoscaleResponse) DeepCopyInto(out *FleetAutoscaleResponse)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FleetAutoscaleReview added in v0.7.0

type FleetAutoscaleReview struct {
	Request  *FleetAutoscaleRequest  `json:"request"`
	Response *FleetAutoscaleResponse `json:"response"`
}

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

func (*FleetAutoscaleReview) DeepCopy added in v0.7.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FleetAutoscaleReview.

func (*FleetAutoscaleReview) DeepCopyInto added in v0.7.0

func (in *FleetAutoscaleReview) DeepCopyInto(out *FleetAutoscaleReview)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FleetAutoscaler added in v0.5.0

type FleetAutoscaler struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   FleetAutoscalerSpec   `json:"spec"`
	Status FleetAutoscalerStatus `json:"status"`
}

FleetAutoscaler is the data structure for a FleetAutoscaler resource

func (*FleetAutoscaler) DeepCopy added in v0.5.0

func (in *FleetAutoscaler) DeepCopy() *FleetAutoscaler

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FleetAutoscaler.

func (*FleetAutoscaler) DeepCopyInto added in v0.5.0

func (in *FleetAutoscaler) DeepCopyInto(out *FleetAutoscaler)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FleetAutoscaler) DeepCopyObject added in v0.5.0

func (in *FleetAutoscaler) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*FleetAutoscaler) Validate added in v0.6.0

func (fas *FleetAutoscaler) Validate(causes []metav1.StatusCause) []metav1.StatusCause

Validate validates the FleetAutoscaler scaling settings

type FleetAutoscalerList added in v0.5.0

type FleetAutoscalerList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []FleetAutoscaler `json:"items"`
}

FleetAutoscalerList is a list of Fleet Scaler resources

func (*FleetAutoscalerList) DeepCopy added in v0.5.0

func (in *FleetAutoscalerList) DeepCopy() *FleetAutoscalerList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FleetAutoscalerList.

func (*FleetAutoscalerList) DeepCopyInto added in v0.5.0

func (in *FleetAutoscalerList) DeepCopyInto(out *FleetAutoscalerList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FleetAutoscalerList) DeepCopyObject added in v0.5.0

func (in *FleetAutoscalerList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type FleetAutoscalerPolicy added in v0.5.0

type FleetAutoscalerPolicy struct {
	// Type of autoscaling policy.
	Type FleetAutoscalerPolicyType `json:"type"`

	// Buffer policy config params. Present only if FleetAutoscalerPolicyType = Buffer.
	// +optional
	Buffer *BufferPolicy `json:"buffer,omitempty"`
	// Webhook policy config params. Present only if FleetAutoscalerPolicyType = Webhook.
	// +optional
	Webhook *WebhookPolicy `json:"webhook,omitempty"`
}

FleetAutoscalerPolicy describes how to scale a fleet

func (*FleetAutoscalerPolicy) DeepCopy added in v0.5.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FleetAutoscalerPolicy.

func (*FleetAutoscalerPolicy) DeepCopyInto added in v0.5.0

func (in *FleetAutoscalerPolicy) DeepCopyInto(out *FleetAutoscalerPolicy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FleetAutoscalerPolicyType added in v0.5.0

type FleetAutoscalerPolicyType string

FleetAutoscalerPolicyType is the policy for autoscaling for a given Fleet

const (
	// BufferPolicyType FleetAutoscalerPolicyType is a simple buffering strategy for Ready
	// GameServers
	BufferPolicyType FleetAutoscalerPolicyType = "Buffer"
	// WebhookPolicyType is a simple webhook strategy used for horizontal fleet scaling
	// GameServers
	WebhookPolicyType FleetAutoscalerPolicyType = "Webhook"
)

type FleetAutoscalerSpec added in v0.5.0

type FleetAutoscalerSpec struct {
	FleetName string `json:"fleetName"`

	// Autoscaling policy
	Policy FleetAutoscalerPolicy `json:"policy"`
}

FleetAutoscalerSpec is the spec for a Fleet Scaler

func (*FleetAutoscalerSpec) DeepCopy added in v0.5.0

func (in *FleetAutoscalerSpec) DeepCopy() *FleetAutoscalerSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FleetAutoscalerSpec.

func (*FleetAutoscalerSpec) DeepCopyInto added in v0.5.0

func (in *FleetAutoscalerSpec) DeepCopyInto(out *FleetAutoscalerSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FleetAutoscalerStatus added in v0.5.0

type FleetAutoscalerStatus struct {
	// CurrentReplicas is the current number of gameserver replicas
	// of the fleet managed by this autoscaler, as last seen by the autoscaler
	CurrentReplicas int32 `json:"currentReplicas"`

	// DesiredReplicas is the desired number of gameserver replicas
	// of the fleet managed by this autoscaler, as last calculated by the autoscaler
	DesiredReplicas int32 `json:"desiredReplicas"`

	// lastScaleTime is the last time the FleetAutoscaler scaled the attached fleet,
	// +optional
	LastScaleTime *metav1.Time `json:"lastScaleTime"`

	// AbleToScale indicates that we can access the target fleet
	AbleToScale bool `json:"ableToScale"`

	// ScalingLimited indicates that the calculated scale would be above or below the range
	// defined by MinReplicas and MaxReplicas, and has thus been capped.
	ScalingLimited bool `json:"scalingLimited"`
}

FleetAutoscalerStatus defines the current status of a FleetAutoscaler

func (*FleetAutoscalerStatus) DeepCopy added in v0.5.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FleetAutoscalerStatus.

func (*FleetAutoscalerStatus) DeepCopyInto added in v0.5.0

func (in *FleetAutoscalerStatus) DeepCopyInto(out *FleetAutoscalerStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FleetList

type FleetList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []Fleet `json:"items"`
}

FleetList is a list of Fleet resources

func (*FleetList) DeepCopy

func (in *FleetList) DeepCopy() *FleetList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FleetList.

func (*FleetList) DeepCopyInto

func (in *FleetList) DeepCopyInto(out *FleetList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FleetList) DeepCopyObject

func (in *FleetList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type FleetSpec

type FleetSpec struct {
	// Replicas are the number of GameServers that should be in this set
	Replicas int32 `json:"replicas"`
	// Deployment strategy
	Strategy appsv1.DeploymentStrategy `json:"strategy"`
	// Scheduling strategy. Defaults to "Packed".
	Scheduling SchedulingStrategy `json:"scheduling"`
	// Template the GameServer template to apply for this Fleet
	Template GameServerTemplateSpec `json:"template"`
}

FleetSpec is the spec for a Fleet

func (*FleetSpec) DeepCopy

func (in *FleetSpec) DeepCopy() *FleetSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FleetSpec.

func (*FleetSpec) DeepCopyInto

func (in *FleetSpec) DeepCopyInto(out *FleetSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FleetStatus

type FleetStatus struct {
	// Replicas the total number of current GameServer replicas
	Replicas int32 `json:"replicas"`
	// ReadyReplicas are the number of Ready GameServer replicas
	ReadyReplicas int32 `json:"readyReplicas"`
	// AllocatedReplicas are the number of Allocated GameServer replicas
	AllocatedReplicas int32 `json:"allocatedReplicas"`
}

FleetStatus is the status of a Fleet

func (*FleetStatus) DeepCopy

func (in *FleetStatus) DeepCopy() *FleetStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FleetStatus.

func (*FleetStatus) DeepCopyInto

func (in *FleetStatus) DeepCopyInto(out *FleetStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GameServer

type GameServer struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   GameServerSpec   `json:"spec"`
	Status GameServerStatus `json:"status"`
}

GameServer is the data structure for a gameserver resource

func (*GameServer) ApplyDefaults

func (gs *GameServer) ApplyDefaults()

ApplyDefaults applies default values to the GameServer if they are not already populated

func (*GameServer) CountPorts added in v0.3.0

func (gs *GameServer) CountPorts(policy PortPolicy) int

CountPorts returns the number of ports that have this type of PortPolicy

func (*GameServer) DeepCopy

func (in *GameServer) DeepCopy() *GameServer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GameServer.

func (*GameServer) DeepCopyInto

func (in *GameServer) DeepCopyInto(out *GameServer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*GameServer) DeepCopyObject

func (in *GameServer) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*GameServer) FindGameServerContainer

func (gs *GameServer) FindGameServerContainer() (int, corev1.Container, error)

FindGameServerContainer returns the container that is specified in spec.gameServer.container. Returns the index and the value. Returns an error if not found

func (*GameServer) GetDevAddress added in v0.8.0

func (gs *GameServer) GetDevAddress() (string, bool)

GetDevAddress returns the address for game server.

func (*GameServer) HasPortPolicy added in v0.3.0

func (gs *GameServer) HasPortPolicy(policy PortPolicy) bool

HasPortPolicy checks if there is a port with a given PortPolicy

func (*GameServer) Patch added in v0.8.0

func (gs *GameServer) Patch(delta *GameServer) ([]byte, error)

Patch creates a JSONPatch to move the current GameServer to the passed in delta GameServer

func (*GameServer) Pod

func (gs *GameServer) Pod(sidecars ...corev1.Container) (*corev1.Pod, error)

Pod creates a new Pod from the PodTemplateSpec attached to the GameServer resource

func (*GameServer) Validate

func (gs *GameServer) Validate() (bool, []metav1.StatusCause)

Validate validates the GameServer configuration. If a GameServer is invalid there will be > 0 values in the returned array

type GameServerAllocation added in v0.8.0

type GameServerAllocation struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              GameServerAllocationSpec   `json:"spec"`
	Status            GameServerAllocationStatus `json:"status,omitempty"`
}

GameServerAllocation is the data structure for allocating against a set of GameServers, defined `required` and `preferred` selectors

func (*GameServerAllocation) ApplyDefaults added in v0.8.0

func (gsa *GameServerAllocation) ApplyDefaults()

ApplyDefaults applies the default values to this GameServerAllocation

func (*GameServerAllocation) DeepCopy added in v0.8.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GameServerAllocation.

func (*GameServerAllocation) DeepCopyInto added in v0.8.0

func (in *GameServerAllocation) DeepCopyInto(out *GameServerAllocation)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*GameServerAllocation) DeepCopyObject added in v0.8.0

func (in *GameServerAllocation) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*GameServerAllocation) ValidateUpdate added in v0.8.0

func (gsa *GameServerAllocation) ValidateUpdate(new *GameServerAllocation) (bool, []metav1.StatusCause)

ValidateUpdate validates when an update occurs

type GameServerAllocationList added in v0.8.0

type GameServerAllocationList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []GameServerAllocation `json:"items"`
}

GameServerAllocationList is a list of GameServer Allocation resources

func (*GameServerAllocationList) DeepCopy added in v0.8.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GameServerAllocationList.

func (*GameServerAllocationList) DeepCopyInto added in v0.8.0

func (in *GameServerAllocationList) DeepCopyInto(out *GameServerAllocationList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*GameServerAllocationList) DeepCopyObject added in v0.8.0

func (in *GameServerAllocationList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type GameServerAllocationSpec added in v0.8.0

type GameServerAllocationSpec struct {
	// Required The required allocation. Defaults to all GameServers.
	Required metav1.LabelSelector `json:"required,omitempty"`

	// Preferred ordered list of preferred allocations out of the `required` set.
	// If the first selector is not matched,
	// the selection attempts the second selector, and so on.
	Preferred []metav1.LabelSelector `json:"preferred,omitempty"`

	// Scheduling strategy. Defaults to "Packed".
	Scheduling SchedulingStrategy `json:"scheduling"`

	// 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
	MetaPatch MetaPatch `json:"metadata,omitempty"`
}

GameServerAllocationSpec is the spec for a GameServerAllocation

func (*GameServerAllocationSpec) DeepCopy added in v0.8.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GameServerAllocationSpec.

func (*GameServerAllocationSpec) DeepCopyInto added in v0.8.0

func (in *GameServerAllocationSpec) DeepCopyInto(out *GameServerAllocationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*GameServerAllocationSpec) PreferredSelectors added in v0.8.0

func (gsas *GameServerAllocationSpec) PreferredSelectors() ([]labels.Selector, error)

PreferredSelectors converts all the the preferred label selectors into an array of labels.Selectors. This is useful as they all have `Match()` functions!

type GameServerAllocationState added in v0.8.0

type GameServerAllocationState string

GameServerAllocationState is the Allocation state

const (
	// GameServerAllocationAllocated is allocation successful
	GameServerAllocationAllocated GameServerAllocationState = "Allocated"
	// GameServerAllocationUnAllocated when the allocation is unsuccessful
	GameServerAllocationUnAllocated GameServerAllocationState = "UnAllocated"
)

type GameServerAllocationStatus added in v0.8.0

type GameServerAllocationStatus struct {
	// GameServerState is the current state of an GameServerAllocation, e.g. Allocated, or UnAllocated
	State          GameServerAllocationState `json:"state"`
	GameServerName string                    `json:"gameServerName"`
	Ports          []GameServerStatusPort    `json:"ports,omitempty"`
	Address        string                    `json:"address,omitempty"`
	NodeName       string                    `json:"nodeName,omitempty"`
}

GameServerAllocationStatus is the status for an GameServerAllocation resource

func (*GameServerAllocationStatus) DeepCopy added in v0.8.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GameServerAllocationStatus.

func (*GameServerAllocationStatus) DeepCopyInto added in v0.8.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GameServerList

type GameServerList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []GameServer `json:"items"`
}

GameServerList is a list of GameServer resources

func (*GameServerList) DeepCopy

func (in *GameServerList) DeepCopy() *GameServerList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GameServerList.

func (*GameServerList) DeepCopyInto

func (in *GameServerList) DeepCopyInto(out *GameServerList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*GameServerList) DeepCopyObject

func (in *GameServerList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type GameServerPort added in v0.3.0

type GameServerPort struct {
	// Name is the descriptive name of the port
	Name string `json:"name,omitempty"`
	// 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` is the policy specified, `HostPort` is required, to specify the port that game clients will
	// connect to
	PortPolicy PortPolicy `json:"portPolicy,omitempty"`
	// ContainerPort is the port that is being opened on the game server process
	ContainerPort int32 `json:"containerPort"`
	// HostPort the port exposed on the host for clients to connect to
	HostPort int32 `json:"hostPort,omitempty"`
	// Protocol is the network protocol being used. Defaults to UDP. TCP is the only other option
	Protocol corev1.Protocol `json:"protocol,omitempty"`
}

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

func (*GameServerPort) DeepCopy added in v0.3.0

func (in *GameServerPort) DeepCopy() *GameServerPort

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GameServerPort.

func (*GameServerPort) DeepCopyInto added in v0.3.0

func (in *GameServerPort) DeepCopyInto(out *GameServerPort)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (GameServerPort) Status added in v0.3.0

Status returns a GameServerSatusPort for this GameServerPort

type GameServerSet

type GameServerSet struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   GameServerSetSpec   `json:"spec"`
	Status GameServerSetStatus `json:"status"`
}

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

func (*GameServerSet) DeepCopy

func (in *GameServerSet) DeepCopy() *GameServerSet

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GameServerSet.

func (*GameServerSet) DeepCopyInto

func (in *GameServerSet) DeepCopyInto(out *GameServerSet)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*GameServerSet) DeepCopyObject

func (in *GameServerSet) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*GameServerSet) GameServer

func (gsSet *GameServerSet) GameServer() *GameServer

GameServer returns a single GameServer derived from the GameSever template

func (*GameServerSet) ValidateUpdate

func (gsSet *GameServerSet) ValidateUpdate(new *GameServerSet) (bool, []metav1.StatusCause)

ValidateUpdate validates when updates occur. The argument is the new GameServerSet, being passed into the old GameServerSet

type GameServerSetList

type GameServerSetList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []GameServerSet `json:"items"`
}

GameServerSetList is a list of GameServerSet resources

func (*GameServerSetList) DeepCopy

func (in *GameServerSetList) DeepCopy() *GameServerSetList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GameServerSetList.

func (*GameServerSetList) DeepCopyInto

func (in *GameServerSetList) DeepCopyInto(out *GameServerSetList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*GameServerSetList) DeepCopyObject

func (in *GameServerSetList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type GameServerSetSpec

type GameServerSetSpec struct {
	// Replicas are the number of GameServers that should be in this set
	Replicas int32 `json:"replicas"`
	// Scheduling strategy. Defaults to "Packed".
	Scheduling SchedulingStrategy `json:"scheduling,omitempty"`
	// Template the GameServer template to apply for this GameServerSet
	Template GameServerTemplateSpec `json:"template"`
}

GameServerSetSpec the specification for

func (*GameServerSetSpec) DeepCopy

func (in *GameServerSetSpec) DeepCopy() *GameServerSetSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GameServerSetSpec.

func (*GameServerSetSpec) DeepCopyInto

func (in *GameServerSetSpec) DeepCopyInto(out *GameServerSetSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GameServerSetStatus

type GameServerSetStatus struct {
	// Replicas the total number of current GameServer replicas
	Replicas int32 `json:"replicas"`
	// ReadyReplicas are the number of Ready GameServer replicas
	ReadyReplicas int32 `json:"readyReplicas"`
	// AllocatedReplicas are the number of Allocated GameServer replicas
	AllocatedReplicas int32 `json:"allocatedReplicas"`
}

GameServerSetStatus is the status of a GameServerSet

func (*GameServerSetStatus) DeepCopy

func (in *GameServerSetStatus) DeepCopy() *GameServerSetStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GameServerSetStatus.

func (*GameServerSetStatus) DeepCopyInto

func (in *GameServerSetStatus) DeepCopyInto(out *GameServerSetStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GameServerSpec

type GameServerSpec struct {
	// Container specifies which Pod container is the game server. Only required if there is more than one
	// container defined
	Container string `json:"container,omitempty"`
	// Ports are the array of ports that can be exposed via the game server
	Ports []GameServerPort `json:"ports"`
	// Health configures health checking
	Health Health `json:"health,omitempty"`
	// Scheduling strategy. Defaults to "Packed".
	Scheduling SchedulingStrategy `json:"scheduling,omitempty"`
	// Template describes the Pod that will be created for the GameServer
	Template corev1.PodTemplateSpec `json:"template"`
}

GameServerSpec is the spec for a GameServer resource

func (*GameServerSpec) DeepCopy

func (in *GameServerSpec) DeepCopy() *GameServerSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GameServerSpec.

func (*GameServerSpec) DeepCopyInto

func (in *GameServerSpec) DeepCopyInto(out *GameServerSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GameServerState added in v0.8.0

type GameServerState string

GameServerState is the state for the GameServer

type GameServerStatus

type GameServerStatus struct {
	// GameServerState is the current state of a GameServer, e.g. Creating, Starting, Ready, etc
	State    GameServerState        `json:"state"`
	Ports    []GameServerStatusPort `json:"ports"`
	Address  string                 `json:"address"`
	NodeName string                 `json:"nodeName"`
}

GameServerStatus is the status for a GameServer resource

func (*GameServerStatus) DeepCopy

func (in *GameServerStatus) DeepCopy() *GameServerStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GameServerStatus.

func (*GameServerStatus) DeepCopyInto

func (in *GameServerStatus) DeepCopyInto(out *GameServerStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GameServerStatusPort added in v0.3.0

type GameServerStatusPort struct {
	Name string `json:"name,omitempty"`
	Port int32  `json:"port"`
}

GameServerStatusPort shows the port that was allocated to a GameServer.

func (*GameServerStatusPort) DeepCopy added in v0.3.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GameServerStatusPort.

func (*GameServerStatusPort) DeepCopyInto added in v0.3.0

func (in *GameServerStatusPort) DeepCopyInto(out *GameServerStatusPort)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GameServerTemplateSpec

type GameServerTemplateSpec struct {
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              GameServerSpec `json:"spec"`
}

GameServerTemplateSpec is a template for GameServers

func (*GameServerTemplateSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GameServerTemplateSpec.

func (*GameServerTemplateSpec) DeepCopyInto

func (in *GameServerTemplateSpec) DeepCopyInto(out *GameServerTemplateSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Health

type Health struct {
	// Disabled is whether health checking is disabled or not
	Disabled bool `json:"disabled,omitempty"`
	// PeriodSeconds is the number of seconds each health ping has to occur in
	PeriodSeconds int32 `json:"periodSeconds,omitempty"`
	// FailureThreshold how many failures in a row constitutes unhealthy
	FailureThreshold int32 `json:"failureThreshold,omitempty"`
	// InitialDelaySeconds initial delay before checking health
	InitialDelaySeconds int32 `json:"initialDelaySeconds,omitempty"`
}

Health configures health checking on the GameServer

func (*Health) DeepCopy

func (in *Health) DeepCopy() *Health

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Health.

func (*Health) DeepCopyInto

func (in *Health) DeepCopyInto(out *Health)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MetaPatch added in v0.8.0

type MetaPatch struct {
	Labels      map[string]string `json:"labels,omitempty"`
	Annotations map[string]string `json:"annotations,omitempty"`
}

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

func (*MetaPatch) DeepCopy added in v0.8.0

func (in *MetaPatch) DeepCopy() *MetaPatch

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetaPatch.

func (*MetaPatch) DeepCopyInto added in v0.8.0

func (in *MetaPatch) DeepCopyInto(out *MetaPatch)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PortPolicy

type PortPolicy string

PortPolicy is the port policy for the GameServer

type SchedulingStrategy added in v0.6.0

type SchedulingStrategy string

SchedulingStrategy is the strategy that a Fleet & GameServers will use when scheduling GameServers' Pods across a cluster.

const (
	// Packed scheduling strategy will prioritise allocating GameServers
	// on Nodes with the most Allocated, and then Ready GameServers
	// to bin pack as many Allocated GameServers on a single node.
	// This is most useful for dynamic Kubernetes clusters - such as on Cloud Providers.
	// In future versions, this will also impact Fleet scale down, and Pod Scheduling.
	Packed SchedulingStrategy = "Packed"

	// Distributed scheduling strategy will prioritise allocating GameServers
	// on Nodes with the least Allocated, and then Ready GameServers
	// to distribute Allocated GameServers across many nodes.
	// This is most useful for statically sized Kubernetes clusters - such as on physical hardware.
	// In future versions, this will also impact Fleet scale down, and Pod Scheduling.
	Distributed SchedulingStrategy = "Distributed"
)

type WebhookPolicy added in v0.7.0

type WebhookPolicy admregv1b.WebhookClientConfig

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

func (*WebhookPolicy) DeepCopy added in v0.7.0

func (in *WebhookPolicy) DeepCopy() *WebhookPolicy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebhookPolicy.

func (*WebhookPolicy) DeepCopyInto added in v0.7.0

func (in *WebhookPolicy) DeepCopyInto(out *WebhookPolicy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*WebhookPolicy) ValidateWebhookPolicy added in v0.7.0

func (w *WebhookPolicy) ValidateWebhookPolicy(causes []metav1.StatusCause) []metav1.StatusCause

ValidateWebhookPolicy validates the FleetAutoscaler Webhook policy settings

Jump to

Keyboard shortcuts

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