diff --git a/pkg/apis/stable/v1alpha1/gameserverset.go b/pkg/apis/stable/v1alpha1/gameserverset.go index adfa7155f2..e94aa424b1 100644 --- a/pkg/apis/stable/v1alpha1/gameserverset.go +++ b/pkg/apis/stable/v1alpha1/gameserverset.go @@ -74,6 +74,8 @@ type GameServerSetStatus struct { ReservedReplicas int32 `json:"reservedReplicas"` // AllocatedReplicas are the number of Allocated GameServer replicas AllocatedReplicas int32 `json:"allocatedReplicas"` + // ShutdownReplicas are the number of Shutdown GameServers replicas + ShutdownReplicas int32 `json:"shutdownReplicas"` } // ValidateUpdate validates when updates occur. The argument diff --git a/pkg/fleets/controller.go b/pkg/fleets/controller.go index 5807c315c9..bd58fdac52 100644 --- a/pkg/fleets/controller.go +++ b/pkg/fleets/controller.go @@ -16,6 +16,7 @@ package fleets import ( "encoding/json" + "fmt" "reflect" "agones.dev/agones/pkg/apis/stable" @@ -348,6 +349,7 @@ func (c *Controller) upsertGameServerSet(fleet *stablev1alpha1.Fleet, active *st func (c *Controller) applyDeploymentStrategy(fleet *stablev1alpha1.Fleet, active *stablev1alpha1.GameServerSet, rest []*stablev1alpha1.GameServerSet) (int32, error) { // if there is nothing `rest`, then it's either brand Fleet, or we can just jump to the fleet value, // since there is nothing else scaling down at this point + if len(rest) == 0 { return fleet.Spec.Replicas, nil } @@ -367,7 +369,7 @@ func (c *Controller) applyDeploymentStrategy(fleet *stablev1alpha1.Fleet, active func (c *Controller) deleteEmptyGameServerSets(fleet *stablev1alpha1.Fleet, list []*stablev1alpha1.GameServerSet) error { p := metav1.DeletePropagationBackground for _, gsSet := range list { - if gsSet.Status.Replicas == 0 { + if gsSet.Status.Replicas == 0 && gsSet.Status.ShutdownReplicas == 0 { err := c.gameServerSetGetter.GameServerSets(gsSet.ObjectMeta.Namespace).Delete(gsSet.ObjectMeta.Name, &metav1.DeleteOptions{PropagationPolicy: &p}) if err != nil { return errors.Wrapf(err, "error updating gameserverset %s", gsSet.ObjectMeta.Name) @@ -475,27 +477,30 @@ func (c *Controller) rollingUpdateRest(fleet *stablev1alpha1.Fleet, rest []*stab if gsSet.Status.Replicas <= 0 { continue } + // If the Spec.Replicas does not equal the Status.Replicas for this GameServerSet, this means // that the rolling down process is currently ongoing, and we should therefore exit so we can wait for it to finish if gsSet.Spec.Replicas != gsSet.Status.Replicas { break } - gsSetCopy := gsSet.DeepCopy() - gsSetCopy.Spec.Replicas = fleet.LowerBoundReplicas(gsSetCopy.Spec.Replicas - unavailable) + if gsSet.Status.ShutdownReplicas == 0 { + gsSetCopy.Spec.Replicas = fleet.LowerBoundReplicas(gsSetCopy.Spec.Replicas - unavailable) - c.loggerForFleet(fleet).WithField("gameserverset", gsSet.ObjectMeta.Name).WithField("replicas", gsSetCopy.Spec.Replicas). - Info("applying rolling update to inactive gameserverset") + c.loggerForFleet(fleet).Info(fmt.Sprintf("Shutdownreplicas %d", gsSet.Status.ShutdownReplicas)) + c.loggerForFleet(fleet).WithField("gameserverset", gsSet.ObjectMeta.Name).WithField("replicas", gsSetCopy.Spec.Replicas). + Info("applying rolling update to inactive gameserverset") - if _, err := c.gameServerSetGetter.GameServerSets(gsSetCopy.ObjectMeta.Namespace).Update(gsSetCopy); err != nil { - return errors.Wrapf(err, "error updating gameserverset %s", gsSetCopy.ObjectMeta.Name) - } - c.recorder.Eventf(fleet, corev1.EventTypeNormal, "ScalingGameServerSet", - "Scaling inactive GameServerSet %s from %d to %d", gsSetCopy.ObjectMeta.Name, gsSet.Spec.Replicas, gsSetCopy.Spec.Replicas) + if _, err := c.gameServerSetGetter.GameServerSets(gsSetCopy.ObjectMeta.Namespace).Update(gsSetCopy); err != nil { + return errors.Wrapf(err, "error updating gameserverset %s", gsSetCopy.ObjectMeta.Name) + } + c.recorder.Eventf(fleet, corev1.EventTypeNormal, "ScalingGameServerSet", + "Scaling inactive GameServerSet %s from %d to %d", gsSetCopy.ObjectMeta.Name, gsSet.Spec.Replicas, gsSetCopy.Spec.Replicas) - // let's update just one at a time, slightly slower, but a simpler solution that doesn't require us - // to make sure we don't overshoot the amount that is being shutdown at any given point and time - break + // let's update just one at a time, slightly slower, but a simpler solution that doesn't require us + // to make sure we don't overshoot the amount that is being shutdown at any given point and time + break + } } return nil } diff --git a/pkg/gameserversets/controller.go b/pkg/gameserversets/controller.go index e1a14700d3..787119678e 100644 --- a/pkg/gameserversets/controller.go +++ b/pkg/gameserversets/controller.go @@ -593,6 +593,7 @@ func computeStatus(list []*v1alpha1.GameServer) v1alpha1.GameServerSetStatus { for _, gs := range list { if gs.IsBeingDeleted() { // don't count GS that are being deleted + status.ShutdownReplicas++ continue } diff --git a/site/content/en/docs/Reference/agones_crd_api_reference.html b/site/content/en/docs/Reference/agones_crd_api_reference.html index 579ddaa6c7..f463e27f77 100644 --- a/site/content/en/docs/Reference/agones_crd_api_reference.html +++ b/site/content/en/docs/Reference/agones_crd_api_reference.html @@ -2232,7 +2232,7 @@
Packages:
Packages:
++
Package v1alpha1 is the v1alpha1 version of the API.
+ +Resource Types: + ++
GameServerAllocation is the data structure for allocating against a set of
+GameServers, defined required
and preferred
selectors
Field | +Description | +||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
+apiVersion
+string |
+
+
+allocation.agones.dev/v1alpha1
+
+ |
+||||||||||
+kind
+string
+ |
+GameServerAllocation |
+||||||||||
+metadata
+
+
+Kubernetes meta/v1.ObjectMeta
+
+
+ |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||||||||
+spec
+
+
+GameServerAllocationSpec
+
+
+ |
+
+ + +
|
+||||||||||
+status
+
+
+GameServerAllocationStatus
+
+
+ |
++ | +
+(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
+
+
+Kubernetes meta/v1.LabelSelector
+
+
+ |
+
+ Required The required allocation. Defaults to all GameServers. + |
+
+preferred
+
+
+[]Kubernetes meta/v1.LabelSelector
+
+
+ |
+
+ Preferred ordered list of preferred allocations out of the |
+
+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 + |
+
string
alias)+(Appears on: +GameServerAllocationStatus) +
++
GameServerAllocationState is the Allocation state
+ ++(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
+
+ |
++ | +
+nodeName
+
+string
+
+ |
++ | +
+(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
+
+ |
++ | +
+(Appears on: +GameServerAllocationSpec) +
++
MultiClusterSetting specifies settings for multi-cluster allocation.
+ +Field | +Description | +
---|---|
+enabled
+
+bool
+
+ |
++ | +
+policySelector
+
+
+Kubernetes meta/v1.LabelSelector
+
+
+ |
++ | +
+
Package v1alpha1 is the v1alpha1 version of the API.
+ +Resource Types: ++
Fleet is the data structure for a Fleet resource
+ +Field | +Description | +||||||||
---|---|---|---|---|---|---|---|---|---|
+apiVersion
+string |
+
+
+stable.agones.dev/v1alpha1
+
+ |
+||||||||
+kind
+string
+ |
+Fleet |
+||||||||
+metadata
+
+
+Kubernetes meta/v1.ObjectMeta
+
+
+ |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||||||
+spec
+
+
+FleetSpec
+
+
+ |
+
+ + +
|
+||||||||
+status
+
+
+FleetStatus
+
+
+ |
++ | +
+
FleetAllocation is the data structure for allocating against a Fleet +Deprecated: Please use GameServerAllocation instead.
+ +Field | +Description | +||||
---|---|---|---|---|---|
+apiVersion
+string |
+
+
+stable.agones.dev/v1alpha1
+
+ |
+||||
+kind
+string
+ |
+FleetAllocation |
+||||
+metadata
+
+
+Kubernetes meta/v1.ObjectMeta
+
+
+ |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||
+spec
+
+
+FleetAllocationSpec
+
+
+ |
+
+ + +
|
+||||
+status
+
+
+FleetAllocationStatus
+
+
+ |
++ | +
+
FleetAutoscaler is the data structure for a FleetAutoscaler resource
+ +Field | +Description | +||||
---|---|---|---|---|---|
+apiVersion
+string |
+
+
+stable.agones.dev/v1alpha1
+
+ |
+||||
+kind
+string
+ |
+FleetAutoscaler |
+||||
+metadata
+
+
+Kubernetes meta/v1.ObjectMeta
+
+
+ |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||
+spec
+
+
+FleetAutoscalerSpec
+
+
+ |
+
+ + +
|
+||||
+status
+
+
+FleetAutoscalerStatus
+
+
+ |
++ | +
+(Appears on: +FleetAllocationStatus) +
++
GameServer is the data structure for a gameserver resource
+ +Field | +Description | +||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
+apiVersion
+string |
+
+
+stable.agones.dev/v1alpha1
+
+ |
+||||||||||
+kind
+string
+ |
+GameServer |
+||||||||||
+metadata
+
+
+Kubernetes meta/v1.ObjectMeta
+
+
+ |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||||||||
+spec
+
+
+GameServerSpec
+
+
+ |
+
+ + +
|
+||||||||||
+status
+
+
+GameServerStatus
+
+
+ |
++ | +
+
GameServerSet is the data structure a set of GameServers +This matches philosophically with the relationship between +Depoyments and ReplicaSets
+ +Field | +Description | +||||||
---|---|---|---|---|---|---|---|
+apiVersion
+string |
+
+
+stable.agones.dev/v1alpha1
+
+ |
+||||||
+kind
+string
+ |
+GameServerSet |
+||||||
+metadata
+
+
+Kubernetes meta/v1.ObjectMeta
+
+
+ |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||||
+spec
+
+
+GameServerSetSpec
+
+
+ |
+
+ + +
|
+||||||
+status
+
+
+GameServerSetStatus
+
+
+ |
++ | +
+(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) + |
+
+(Appears on: +FleetAllocation) +
++
FleetAllocationSpec is the spec for a Fleet +Allocation
+ +Field | +Description | +
---|---|
+fleetName
+
+string
+
+ |
++ | +
+metadata
+
+
+MetaPatch
+
+
+ |
++ | +
+(Appears on: +FleetAllocation) +
++
FleetAllocationStatus will contain the
+GameServer
that has been allocated from
+a Fleet
Field | +Description | +
---|---|
+gameServer
+
+
+GameServer
+
+
+ |
++ | +
+(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 + |
+
+(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 is passed to the webhook with a populated Request value, +and then returned with a populated Response.
+ +Field | +Description | +
---|---|
+request
+
+
+FleetAutoscaleRequest
+
+
+ |
++ | +
+response
+
+
+FleetAutoscaleResponse
+
+
+ |
++ | +
+(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. + |
+
string
alias)+(Appears on: +FleetAutoscalerPolicy) +
++
FleetAutoscalerPolicyType is the policy for autoscaling +for a given Fleet
+ ++(Appears on: +FleetAutoscaler) +
++
FleetAutoscalerSpec is the spec for a Fleet Scaler
+ +Field | +Description | +
---|---|
+fleetName
+
+string
+
+ |
++ | +
+policy
+
+
+FleetAutoscalerPolicy
+
+
+ |
+
+ Autoscaling policy + |
+
+(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. + |
+
+(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 + |
+
+strategy
+
+
+Kubernetes apps/v1.DeploymentStrategy
+
+
+ |
+
+ Deployment strategy + |
+
+scheduling
+
+agones.dev/agones/pkg/apis.SchedulingStrategy
+
+ |
+
+ Scheduling strategy. Defaults to “Packed”. + |
+
+template
+
+
+GameServerTemplateSpec
+
+
+ |
+
+ Template the GameServer template to apply for this Fleet + |
+
+(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 + |
+
+(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 |
+
+containerPort
+
+int32
+
+ |
+
+ ContainerPort is the port that is being opened on the game server 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 is the only other option + |
+
+(Appears on: +GameServerSet) +
++
GameServerSetSpec the specification for
+ +Field | +Description | +
---|---|
+replicas
+
+int32
+
+ |
+
+ Replicas are the number of GameServers that should be in this set + |
+
+scheduling
+
+agones.dev/agones/pkg/apis.SchedulingStrategy
+
+ |
+
+ Scheduling strategy. Defaults to “Packed”. + |
+
+template
+
+
+GameServerTemplateSpec
+
+
+ |
+
+ Template the GameServer template to apply for this GameServerSet + |
+
+(Appears on: +GameServerSet) +
++
GameServerSetStatus is the status of a GameServerSet
+ +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 number of Reserved GameServer replicas + |
+
+allocatedReplicas
+
+int32
+
+ |
+
+ AllocatedReplicas are the number of Allocated GameServer replicas + |
+
+shutdownReplicas
+
+int32
+
+ |
+
+ ShutdownReplicas are the number of Shutdown GameServers replicas + |
+
+(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”. + |
+
+template
+
+
+Kubernetes core/v1.PodTemplateSpec
+
+
+ |
+
+ Template describes the Pod that will be created for the GameServer + |
+
string
alias)+(Appears on: +GameServerStatus) +
++
GameServerState is the state for the GameServer
+ ++(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
+
+ |
++ | +
+nodeName
+
+string
+
+ |
++ | +
+(Appears on: +GameServerAllocationStatus, +GameServerStatus) +
++
GameServerStatusPort shows the port that was allocated to a +GameServer.
+ +Field | +Description | +
---|---|
+name
+
+string
+
+ |
++ | +
+port
+
+int32
+
+ |
++ | +
+(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
+
+
+ |
+
+ + +
|
+
+(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 + |
+
+(Appears on: +FleetAllocationSpec) +
++
MetaPatch is the metadata used to patch the GameServer metadata on allocation
+ +Field | +Description | +
---|---|
+labels
+
+map[string]string
+
+ |
++ | +
+annotations
+
+map[string]string
+
+ |
++ | +
string
alias)+(Appears on: +GameServerPort) +
++
PortPolicy is the port policy for the GameServer
+ ++(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)
+
The Please note that using 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/v1beta1.ServiceReference
+
+
+ |
+
+(Optional)
+
If the webhook is running within the cluster, then you should use Port 443 will be used if it is open, otherwise it is an error. + |
+
+caBundle
+
+[]byte
+
+ |
+
+
|
+
+Generated with gen-crd-api-reference-docs
.
+