Documentation ¶
Overview ¶
Package v1alpha1 is the v1alpha1 version of the API. +groupName=stable.agones.dev
Index ¶
- Constants
- Variables
- func Kind(kind string) schema.GroupKind
- func Resource(resource string) schema.GroupResource
- func SumStatusAllocatedReplicas(list []*GameServerSet) int32
- func SumStatusReplicas(list []*GameServerSet) int32
- type BufferPolicy
- type Fleet
- func (f *Fleet) ApplyDefaults()
- func (in *Fleet) DeepCopy() *Fleet
- func (in *Fleet) DeepCopyInto(out *Fleet)
- func (in *Fleet) DeepCopyObject() runtime.Object
- func (f *Fleet) GameServerSet() *GameServerSet
- func (f *Fleet) LowerBoundReplicas(i int32) int32
- func (f *Fleet) UpperBoundReplicas(i int32) int32
- type FleetAllocation
- type FleetAllocationList
- type FleetAllocationMeta
- type FleetAllocationSpec
- type FleetAllocationStatus
- type FleetAutoscaleRequest
- type FleetAutoscaleResponse
- type FleetAutoscaleReview
- type FleetAutoscaler
- type FleetAutoscalerList
- type FleetAutoscalerPolicy
- type FleetAutoscalerPolicyType
- type FleetAutoscalerSpec
- type FleetAutoscalerStatus
- type FleetList
- type FleetSpec
- type FleetStatus
- type GameServer
- func (gs *GameServer) ApplyDefaults()
- func (gs *GameServer) CountPorts(policy PortPolicy) int
- func (in *GameServer) DeepCopy() *GameServer
- func (in *GameServer) DeepCopyInto(out *GameServer)
- func (in *GameServer) DeepCopyObject() runtime.Object
- func (gs *GameServer) FindGameServerContainer() (int, corev1.Container, error)
- func (gs *GameServer) HasPortPolicy(policy PortPolicy) bool
- func (gs *GameServer) Pod(sidecars ...corev1.Container) (*corev1.Pod, error)
- func (gs *GameServer) Validate() (bool, []metav1.StatusCause)
- type GameServerList
- type GameServerPort
- type GameServerSet
- func (in *GameServerSet) DeepCopy() *GameServerSet
- func (in *GameServerSet) DeepCopyInto(out *GameServerSet)
- func (in *GameServerSet) DeepCopyObject() runtime.Object
- func (gsSet *GameServerSet) GameServer() *GameServer
- func (gsSet *GameServerSet) ValidateUpdate(new *GameServerSet) (bool, []metav1.StatusCause)
- type GameServerSetList
- type GameServerSetSpec
- type GameServerSetStatus
- type GameServerSpec
- type GameServerStatus
- type GameServerStatusPort
- type GameServerTemplateSpec
- type Health
- type PortPolicy
- type SchedulingStrategy
- type State
- type WebhookPolicy
Constants ¶
const ( // PortAllocation is for when a dynamically allocating GameServer // is being created, an open port needs to be allocated PortAllocation State = "PortAllocation" // Creating is before the Pod for the GameServer is being created Creating State = "Creating" // Starting is for when the Pods for the GameServer are being // created but are not yet Scheduled Starting State = "Starting" // Scheduled is for when we have determined that the Pod has been // scheduled in the cluster -- basically, we have a NodeName Scheduled State = "Scheduled" // RequestReady is when the GameServer has declared that it is ready RequestReady State = "RequestReady" // Ready is when a GameServer is ready to take connections // from Game clients Ready State = "Ready" // Shutdown is when the GameServer has shutdown and everything needs to be // deleted from the cluster Shutdown State = "Shutdown" // Error is when something has gone with the Gameserver and // it cannot be resolved Error State = "Error" // Unhealthy is when the GameServer has failed its health checks Unhealthy State = "Unhealthy" // Allocated is when the GameServer has been allocated to a session Allocated State = "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" // SidecarServiceAccountName is the default service account for managing access to get/update GameServers SidecarServiceAccountName = "agones-sdk" )
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" )
const ( // GameServerSetGameServerLabel is the label that the name of the GameServerSet // is set on the GameServer the GameServerSet controls GameServerSetGameServerLabel = stable.GroupName + "/gameserverset" )
Variables ¶
var ( // SchemeBuilder registers our types SchemeBuilder = k8sruntime.NewSchemeBuilder(addKnownTypes) // AddToScheme local alias for SchemeBuilder.AddToScheme AddToScheme = SchemeBuilder.AddToScheme )
var ( // GameServerRolePodSelector is the selector to get all GameServer Pods GameServerRolePodSelector = labels.SelectorFromSet(labels.Set{RoleLabel: GameServerLabelRole}) )
var SchemeGroupVersion = schema.GroupVersion{Group: stable.GroupName, Version: "v1alpha1"}
SchemeGroupVersion is group version used to register these objects
Functions ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Fleet.
func (*Fleet) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Fleet) DeepCopyObject ¶
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 ¶
LowerBoundReplicas returns 0 (the minimum value for replicas) if i is < 0
func (*Fleet) UpperBoundReplicas ¶
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 FleetAllocationMeta ¶ added in v0.4.0
type FleetAllocationMeta struct { Labels map[string]string `json:"labels,omitempty"` Annotations map[string]string `json:"annotations,omitempty"` }
FleetAllocationMeta is the metadata used to patch the GameServer metadata on allocation
func (*FleetAllocationMeta) DeepCopy ¶ added in v0.4.0
func (in *FleetAllocationMeta) DeepCopy() *FleetAllocationMeta
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FleetAllocationMeta.
func (*FleetAllocationMeta) DeepCopyInto ¶ added in v0.4.0
func (in *FleetAllocationMeta) DeepCopyInto(out *FleetAllocationMeta)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FleetAllocationSpec ¶
type FleetAllocationSpec struct { FleetName string `json:"fleetName"` MetaPatch FleetAllocationMeta `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 ¶
func (in *FleetAllocationStatus) DeepCopy() *FleetAllocationStatus
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
func (in *FleetAutoscaleRequest) DeepCopy() *FleetAutoscaleRequest
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
func (in *FleetAutoscaleResponse) DeepCopy() *FleetAutoscaleResponse
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
func (in *FleetAutoscaleReview) DeepCopy() *FleetAutoscaleReview
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
func (in *FleetAutoscalerPolicy) DeepCopy() *FleetAutoscalerPolicy
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
func (in *FleetAutoscalerStatus) DeepCopy() *FleetAutoscalerStatus
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FleetList.
func (*FleetList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*FleetList) DeepCopyObject ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FleetSpec.
func (*FleetSpec) DeepCopyInto ¶
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) 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) Pod ¶
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 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
func (p GameServerPort) Status() GameServerStatusPort
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 GameServerStatus ¶
type GameServerStatus struct { // State is the current state of a GameServer, e.g. Creating, Starting, Ready, etc State State `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
GameServerStatusPort shows the port that was allocated to a GameServer.
func (*GameServerStatusPort) DeepCopy ¶ added in v0.3.0
func (in *GameServerStatusPort) DeepCopy() *GameServerStatusPort
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 ¶
func (in *GameServerTemplateSpec) DeepCopy() *GameServerTemplateSpec
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Health.
func (*Health) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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