diff --git a/build/Makefile b/build/Makefile index f506d663fe..c9d4e381d6 100644 --- a/build/Makefile +++ b/build/Makefile @@ -64,7 +64,7 @@ KIND_CONTAINER_NAME=$(KIND_PROFILE)-control-plane GS_TEST_IMAGE ?= us-docker.pkg.dev/agones-images/examples/simple-game-server:0.22 # Enable all alpha feature gates. Keep in sync with `false` (alpha) entries in pkg/util/runtime/features.go:featureDefaults -ALPHA_FEATURE_GATES ?= "PlayerAllocationFilter=true&PlayerTracking=true&CountsAndLists=true&FleetAllocationOverflow=true&DisableResyncOnSDKServer=true&Example=true" +ALPHA_FEATURE_GATES ?= "PlayerAllocationFilter=true&PlayerTracking=true&CountsAndLists=true&DisableResyncOnSDKServer=true&Example=true" # Build with Windows support WITH_WINDOWS=1 diff --git a/cloudbuild.yaml b/cloudbuild.yaml index d3d6850d87..e031dfeaa0 100644 --- a/cloudbuild.yaml +++ b/cloudbuild.yaml @@ -296,10 +296,10 @@ steps: region=${versionsAndRegions[$version]} if [ $cloudProduct = generic ] then - featureWithGate="PlayerAllocationFilter=true&PlayerTracking=true&ResetMetricsOnDelete=false&SplitControllerAndExtensions=false&FleetAllocationOverflow=true&CountsAndLists=true&DisableResyncOnSDKServer=true&Example=true" + featureWithGate="PlayerAllocationFilter=true&PlayerTracking=true&ResetMetricsOnDelete=false&SplitControllerAndExtensions=false&FleetAllocationOverflow=false&CountsAndLists=true&DisableResyncOnSDKServer=true&Example=true" testCluster="standard-e2e-test-cluster-${version//./-}" else - featureWithGate="PlayerAllocationFilter=true&PlayerTracking=true&ResetMetricsOnDelete=false&SplitControllerAndExtensions=true&FleetAllocationOverflow=true&CountsAndLists=true&DisableResyncOnSDKServer=true&Example=true" + featureWithGate="PlayerAllocationFilter=true&PlayerTracking=true&ResetMetricsOnDelete=false&SplitControllerAndExtensions=true&FleetAllocationOverflow=false&CountsAndLists=true&DisableResyncOnSDKServer=true&Example=true" testCluster="gke-autopilot-e2e-test-cluster-${version//./-}" fi featureWithoutGate="" diff --git a/examples/fleet.yaml b/examples/fleet.yaml index 6b26efb719..81304ea9af 100644 --- a/examples/fleet.yaml +++ b/examples/fleet.yaml @@ -50,17 +50,17 @@ spec: maxSurge: 25% # the amount to decrements GameServers by. Defaults to 25% maxUnavailable: 25% - # [Stage:Alpha] + # [Stage:Beta] # [FeatureFlag:FleetAllocationOverflow] # Labels and/or Annotations to apply to overflowing GameServers when the number of Allocated GameServers exceeds # the desired replicas in the underlying `GameServerSet` - # Commented out since Alpha, and disabled by default - # allocationOverflow: - # labels: - # mykey: myvalue - # version: "" # empty an existing label value - # annotations: - # otherkey: setthisvalue + # Now in Beta, and enabled by default + allocationOverflow: + labels: + mykey: myvalue + version: "" # empty an existing label value + annotations: + otherkey: setthisvalue # # [Stage:Alpha] # [FeatureFlag:CountsAndLists] diff --git a/install/helm/agones/defaultfeaturegates.yaml b/install/helm/agones/defaultfeaturegates.yaml index 079826ddd6..54312550f4 100644 --- a/install/helm/agones/defaultfeaturegates.yaml +++ b/install/helm/agones/defaultfeaturegates.yaml @@ -15,13 +15,13 @@ # Default values for feature gates. Keep in sync with pkg/util/runtime/features.go:featureDefaults # Beta features +FleetAllocationOverflow: true ResetMetricsOnDelete: true SplitControllerAndExtensions: true # Alpha features PlayerAllocationFilter: false PlayerTracking: false -FleetAllocationOverflow: false DisableResyncOnSDKServer: false # Pre-Alpha features diff --git a/pkg/apis/agones/v1/fleet.go b/pkg/apis/agones/v1/fleet.go index 22168673f8..876a397d50 100644 --- a/pkg/apis/agones/v1/fleet.go +++ b/pkg/apis/agones/v1/fleet.go @@ -59,7 +59,7 @@ type FleetList struct { type FleetSpec struct { // Replicas are the number of GameServers that should be in this set. Defaults to 0. Replicas int32 `json:"replicas"` - // [Stage: Alpha] + // [Stage: Beta] // [FeatureFlag:FleetAllocationOverflow] // Labels and/or Annotations to apply to overflowing GameServers when the number of Allocated GameServers is more // than the desired replicas on the underlying `GameServerSet` diff --git a/pkg/apis/agones/v1/gameserverset.go b/pkg/apis/agones/v1/gameserverset.go index 7ddfd9fe40..ec1cc89292 100644 --- a/pkg/apis/agones/v1/gameserverset.go +++ b/pkg/apis/agones/v1/gameserverset.go @@ -59,7 +59,7 @@ type GameServerSetList struct { type GameServerSetSpec struct { // Replicas are the number of GameServers that should be in this set Replicas int32 `json:"replicas"` - // [Stage: Alpha] + // [Stage: Beta] // [FeatureFlag:FleetAllocationOverflow] // Labels and Annotations to apply to GameServers when the number of Allocated GameServers drops below // the desired replicas on the underlying `GameServerSet` diff --git a/pkg/util/runtime/features.go b/pkg/util/runtime/features.go index c2fcfed703..88571447e3 100644 --- a/pkg/util/runtime/features.go +++ b/pkg/util/runtime/features.go @@ -98,11 +98,11 @@ var ( // In each of these, keep the feature sorted by descending maturity then alphabetical featureDefaults = map[Feature]bool{ // Beta features + FeatureFleetAllocateOverflow: true, FeatureResetMetricsOnDelete: true, FeatureSplitControllerAndExtensions: true, // Alpha features - FeatureFleetAllocateOverflow: false, FeaturePlayerAllocationFilter: false, FeaturePlayerTracking: false, FeatureDisableResyncOnSDKServer: false, diff --git a/site/content/en/docs/Guides/feature-stages.md b/site/content/en/docs/Guides/feature-stages.md index 90b35fac92..e126980068 100644 --- a/site/content/en/docs/Guides/feature-stages.md +++ b/site/content/en/docs/Guides/feature-stages.md @@ -40,12 +40,12 @@ The current set of `alpha` and `beta` feature gates: {{% feature publishVersion="1.37.0" %}} | Feature Name | Gate | Default | Stage | Since | |-----------------------------------------------------------------------------------------------------------------------|--------------------------------|----------|---------|--------| +| [Allocated GameServers are notified on relevant Fleet Updates][fleet-updates] | `FleetAllocationOverflow` | Enabled | `Beta` | 1.37.0 | | [Reset Metric Export on Fleet / Autoscaler deletion]({{% relref "./metrics.md#dropping-metric-labels" %}}) | `ResetMetricsOnDelete` | Enabled | `Beta` | 1.32.0 | | [Split `agones-controller` ](https://github.com/googleforgames/agones/issues/2797) | `SplitControllerAndExtensions` | Enabled | `Beta` | 1.32.0 | | [GameServer player capacity filtering on GameServerAllocations](https://github.com/googleforgames/agones/issues/1239) | `PlayerAllocationFilter` | Disabled | `Alpha` | 1.14.0 | | [Player Tracking]({{< ref "/docs/Guides/player-tracking.md" >}}) | `PlayerTracking` | Disabled | `Alpha` | 1.6.0 | -| [Allocated GameServers are notified on relevant Fleet Updates][fleet-updates] | `FleetAllocationOverflow` | Disabled | `Alpha` | 1.32.0 | -| [DisableResyncOnSDKServer](https://github.com/googleforgames/agones/issues/3377) | `DisableResyncOnSDKServer` | Disabled | `Alpha` | 1.37.0 | +| [DisableResyncOnSDKServer](https://github.com/googleforgames/agones/issues/3377) | `DisableResyncOnSDKServer` | Disabled | `Alpha` | 1.37.0 | | Example Gate (not in use) | `Example` | Disabled | None | 0.13.0 | {{% /feature %}} diff --git a/site/content/en/docs/Guides/fleet-updates.md b/site/content/en/docs/Guides/fleet-updates.md index f08dd1b441..d7fa067479 100644 --- a/site/content/en/docs/Guides/fleet-updates.md +++ b/site/content/en/docs/Guides/fleet-updates.md @@ -127,7 +127,13 @@ the rate that you deem fit for your specific rollout. ## Notifying GameServers on Fleet Update/Downscale +{{% feature expiryVersion="1.37.0" %}} {{< alpha title="Allocated GameSever Overflow Notification" gate="FleetAllocationOverflow" >}} +{{% /feature %}} + +{{% feature publishVersion="1.37.0" %}} +{{< beta title="Allocated GameSever Overflow Notification" gate="FleetAllocationOverflow" >}} +{{% /feature %}} When `Allocated` `GameServers` are utilised for a long time, such as a Lobby `GameServer`, or a `GameServer` that is being reused multiple times in a row, it can be useful 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 1db38ceb4f..3acffa009a 100644 --- a/site/content/en/docs/Reference/agones_crd_api_reference.html +++ b/site/content/en/docs/Reference/agones_crd_api_reference.html @@ -3,7 +3,7 @@ description="Detailed list of Agones Custom Resource Definitions available" +++ -{{% feature expiryVersion="1.36.0" %}} +{{% feature expiryVersion="1.37.0" %}}
Packages:
metadata
-
+
Kubernetes meta/v1.ObjectMeta
@@ -120,7 +120,7 @@ strategy
-
+
Kubernetes apps/v1.DeploymentStrategy
@@ -225,7 +225,7 @@ metadata
-
+
Kubernetes meta/v1.ObjectMeta
@@ -314,7 +314,7 @@ template
-
+
Kubernetes core/v1.PodTemplateSpec
@@ -430,7 +430,7 @@ metadata
-
+
Kubernetes meta/v1.ObjectMeta
@@ -879,7 +879,7 @@ strategy
-
+
Kubernetes apps/v1.DeploymentStrategy
@@ -1126,7 +1126,7 @@ protocol
-
+
Kubernetes core/v1.Protocol
@@ -1429,7 +1429,7 @@ template
-
+
Kubernetes core/v1.PodTemplateSpec
@@ -1560,7 +1560,7 @@ addresses
-
+
[]Kubernetes core/v1.NodeAddress
@@ -1584,7 +1584,7 @@ reservedUntil
-
+
Kubernetes meta/v1.Time
@@ -1713,7 +1713,7 @@ metadata
-
+
Kubernetes meta/v1.ObjectMeta
@@ -1802,7 +1802,7 @@ template
-
+
Kubernetes core/v1.PodTemplateSpec
@@ -2222,7 +2222,7 @@ metadata
-
+
Kubernetes meta/v1.ObjectMeta
@@ -2732,7 +2732,7 @@ addresses
-
+
[]Kubernetes core/v1.NodeAddress
@@ -2837,7 +2837,7 @@ LabelSelector
-
+
Kubernetes meta/v1.LabelSelector
@@ -3078,7 +3078,7 @@ policySelector
-
+
Kubernetes meta/v1.LabelSelector
@@ -3170,7 +3170,7 @@ metadata
-
+
Kubernetes meta/v1.ObjectMeta
@@ -3774,7 +3774,7 @@ lastScaleTime
-
+
Kubernetes meta/v1.Time
@@ -3987,7 +3987,7 @@ service
-
+
Kubernetes admissionregistration/v1.ServiceReference
@@ -4057,7 +4057,7 @@ metadata
-
+
Kubernetes meta/v1.ObjectMeta
@@ -4308,10 +4308,13 @@ gen-crd-api-reference-docs
.
{{% /feature %}}
-{{% feature publishVersion="1.36.0" %}}
+{{% feature publishVersion="1.37.0" %}}
Packages:
Package v1 is the v1 version of the API.
Resource Types: --
Fleet is the data structure for a Fleet resource
+GameServerAllocationPolicy is the Schema for the gameserverallocationpolicies API
-agones.dev/v1
+multicluster.agones.dev/v1
|
@@ -4364,7 +4360,7 @@ Fleet |
+GameServerAllocationPolicy |
|||||
@@ -4384,8 +4380,8 @@ Fleet
spec
-
-FleetSpec
+
+GameServerAllocationPolicySpec
|
+
+(Appears on: +GameServerAllocationPolicySpec) +
++
ClusterConnectionInfo defines the connection information for a cluster
+ +Field | +Description | +
---|---|
-scheduling
+clusterName
-agones.dev/agones/pkg/apis.SchedulingStrategy
+string
|
- Scheduling strategy. Defaults to “Packed”. +Optional: the name of the targeted cluster |
-priorities
+allocationEndpoints
-
-[]Priority
-
+[]string
|
-(Optional)
- (Alpha, CountsAndLists feature flag) The first Priority on the array of Priorities is the most -important for sorting. The Fleetautoscaler will use the first priority for sorting GameServers -by total Capacity in the Fleet and acts as a tie-breaker after sorting the game servers by -State and Strategy. Impacts scale down logic. +The endpoints for the allocator service in the targeted cluster. +If the AllocationEndpoints is not set, the allocation happens on local cluster. +If there are multiple endpoints any of the endpoints that can handle allocation request should suffice |
-template
+secretName
-
-GameServerTemplateSpec
-
+string
|
- Template the GameServer template to apply for this Fleet +The name of the secret that contains TLS client certificates to connect the allocator server in the targeted cluster |
namespace
+
+string
+
+The cluster namespace from which to allocate gameservers
status
+serverCa
-
-FleetStatus
-
+[]byte
The PEM encoded server CA, used by the allocator client to authenticate the remote server.
-
GameServer is the data structure for a GameServer resource.
-It is worth noting that while there is a GameServerStatus
Status entry for the GameServer
, it is not
-defined as a subresource - unlike Fleet
and other Agones resources.
-This is so that we can retain the ability to change multiple aspects of a GameServer
in a single atomic operation,
-which is particularly useful for operations such as allocation.
ConnectionInfoIterator an iterator on ClusterConnectionInfo
-apiVersion
-string |
-
-
-agones.dev/v1
-
- |
-||||||||||||||||||||||
-kind
-string
- |
-GameServer |
-||||||||||||||||||||||
-metadata
+currPriority
-
-Kubernetes meta/v1.ObjectMeta
-
+int
|
-Refer to the Kubernetes API documentation for the fields of the
-metadata field.
+currPriority Current priority index from the orderedPriorities |
||||||||||||||||||||||
-spec
-
-
-GameServerSpec
-
-
- |
-
- - -
GameServerAllocationPolicySpec +++(Appears on: +GameServerAllocationPolicy) + ++ GameServerAllocationPolicySpec defines the desired state of GameServerAllocationPolicy + +
|
-||||||||||||||||||||||
-status
-
-
-GameServerStatus
+
+ClusterConnectionInfo
|
@@ -4699,12 +4612,23 @@
+
Package v1 is the v1 version of the API.
+ +Resource Types: +-
GameServerSet is the data structure for a set of GameServers. -This matches philosophically with the relationship between -Deployments and ReplicaSets
+Fleet is the data structure for a Fleet resource
GameServerSet |
+Fleet |
|
@@ -4749,8 +4673,8 @@ GameServerSet
spec
-
-GameServerSetSpec
+
+FleetSpec
|
- Replicas are the number of GameServers that should be in this set +Replicas are the number of GameServers that should be in this set. Defaults to 0. |
|
(Optional)
- [Stage: Alpha] + [Stage: Beta]
[FeatureFlag:FleetAllocationOverflow]
-Labels and Annotations to apply to GameServers when the number of Allocated GameServers drops below
-the desired replicas on the underlying GameServerSet
+ |
+||
+strategy
+
+
+Kubernetes apps/v1.DeploymentStrategy
+
+
+ |
+
+ Deployment strategy |
|
- Template the GameServer template to apply for this GameServerSet +Template the GameServer template to apply for this Fleet |
status
-
-GameServerSetStatus
+
+FleetStatus
-(Appears on: -FleetStatus, -GameServerSetStatus) -
--
AggregatedCounterStatus stores total and allocated Counter tracking values
+GameServer is the data structure for a GameServer resource.
+It is worth noting that while there is a GameServerStatus
Status entry for the GameServer
, it is not
+defined as a subresource - unlike Fleet
and other Agones resources.
+This is so that we can retain the ability to change multiple aspects of a GameServer
in a single atomic operation,
+which is particularly useful for operations such as allocation.
-allocatedCount
-
-int64
-
+apiVersion
+string |
+
+
+agones.dev/v1
+
|
+||
+kind
+string
|
+GameServer |
||
-allocatedCapacity
+metadata
-int64
+
+Kubernetes meta/v1.ObjectMeta
+
|
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
|
||
-count
+spec
-int64
+
+GameServerSpec
+
|
- | -
-capacity
+container
-int64
+string
|
+ Container specifies which Pod container is the game server. Only required if there is more than one +container defined |
-(Appears on: -FleetStatus, -GameServerSetStatus) -
--
AggregatedListStatus stores total and allocated List tracking values
- -Field | -Description | +
+ports
+
+
+[]GameServerPort
+
+
+ |
+
+ Ports are the array of ports that can be exposed via the game server + |
---|---|---|---|
-allocatedCount
+health
-int64
+
+Health
+
|
+ Health configures health checking |
||
-allocatedCapacity
+scheduling
-int64
+agones.dev/agones/pkg/apis.SchedulingStrategy
|
+ Scheduling strategy. Defaults to “Packed” |
||
-count
+sdkServer
-int64
+
+SdkServer
+
|
+ SdkServer specifies parameters for the Agones SDK Server sidecar container |
||
-capacity
+template
-int64
+
+Kubernetes core/v1.PodTemplateSpec
+
|
+ Template describes the Pod that will be created for the GameServer |
-(Appears on: -FleetStatus, -GameServerSetStatus) -
--
AggregatedPlayerStatus stores total player tracking values
- -Field | -Description | +
+players
+
+
+PlayersSpec
+
+
+ |
+
+(Optional)
+ (Alpha, PlayerTracking feature flag) Players provides the configuration for player tracking features. + |
---|---|---|---|
-count
+counters
-int64
+
+map[string]agones.dev/agones/pkg/apis/agones/v1.CounterStatus
+
|
+(Optional)
+ (Alpha, CountsAndLists feature flag) Counters and Lists provides the configuration for generic tracking features. |
||
-capacity
+lists
-int64
+
+map[string]agones.dev/agones/pkg/apis/agones/v1.ListStatus
+
|
eviction
+
+
+Eviction
+
+
+Eviction specifies the eviction tolerance of the GameServer. Defaults to “Never”.
+status
+
+
+GameServerStatus
+
+
++
GameServerSet is the data structure for a set of GameServers. +This matches philosophically with the relationship between +Deployments and ReplicaSets
+ +Field | +Description | +||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
+apiVersion
+string |
+
+
+agones.dev/v1
+
+ |
+||||||||||
+kind
+string
+ |
+GameServerSet |
+||||||||||
+metadata
+
+
+Kubernetes meta/v1.ObjectMeta
+
+
+ |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||||||||
+spec
+
+
+GameServerSetSpec
+
+
+ |
+
+ + +
|
+||||||||||
+status
+
+
+GameServerSetStatus
+
+
+ |
++ | +
+(Appears on: +FleetStatus, +GameServerSetStatus) +
++
AggregatedCounterStatus stores total and allocated Counter tracking values
+ +Field | +Description | +
---|---|
+allocatedCount
+
+int64
+
+ |
++ | +
+allocatedCapacity
+
+int64
+
+ |
++ | +
+count
+
+int64
+
+ |
++ | +
+capacity
+
+int64
+
+ |
++ | +
+(Appears on: +FleetStatus, +GameServerSetStatus) +
++
AggregatedListStatus stores total and allocated List tracking values
+ +Field | +Description | +
---|---|
+allocatedCount
+
+int64
+
+ |
++ | +
+allocatedCapacity
+
+int64
+
+ |
++ | +
+count
+
+int64
+
+ |
++ | +
+capacity
+
+int64
+
+ |
++ | +
+(Appears on: +FleetStatus, +GameServerSetStatus) +
++
AggregatedPlayerStatus stores total player tracking values
+ +Field | +Description | +
---|---|
+count
+
+int64
+
+ |
++ | +
+capacity
+
+int64
+
+ |
++ | +
@@ -5174,7 +5463,7 @@
[Stage: Alpha] +
[Stage: Beta]
[FeatureFlag:FleetAllocationOverflow]
Labels and/or Annotations to apply to overflowing GameServers when the number of Allocated GameServers is more
than the desired replicas on the underlying GameServerSet
[Stage: Alpha] +
[Stage: Beta]
[FeatureFlag:FleetAllocationOverflow]
Labels and Annotations to apply to GameServers when the number of Allocated GameServers drops below
the desired replicas on the underlying GameServerSet
seconds
-
-int32
-
-Seconds defines how often we run fleet autoscaling in seconds
--(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. - |
-|
-counter
-
-
-CounterPolicy
-
-
- |
-
-(Optional)
- [Stage:Alpha] -[FeatureFlag:CountsAndLists] -Counter policy config params. Present only if FleetAutoscalerPolicyType = Counter. - |
+Description |
-list
+seconds
-
-ListPolicy
-
+int32
|
-(Optional)
- [Stage:Alpha] -[FeatureFlag:CountsAndLists] -List policy config params. Present only if FleetAutoscalerPolicyType = List. +Seconds defines how often we run fleet autoscaling in seconds |
string
alias)-(Appears on: -FleetAutoscalerPolicy) -
--
FleetAutoscalerPolicyType is the policy for autoscaling -for a given Fleet
- -(Appears on: -FleetAutoscaler) +FleetAutoscaleReview)
-
FleetAutoscalerSpec is the spec for a Fleet Scaler
+FleetAutoscaleRequest defines the request to webhook autoscaler endpoint
-fleetName
+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 |
-policy
+namespace
-
-FleetAutoscalerPolicy
-
+string
|
- Autoscaling policy +Namespace is the namespace associated with the request (if any). |
-sync
+status
-
-FleetAutoscalerSync
+
+FleetStatus
|
-(Optional)
- Sync defines when FleetAutoscalers runs autoscaling +The Fleet’s status values |
(Appears on: -FleetAutoscaler) +FleetAutoscaleReview)
-
FleetAutoscalerStatus defines the current status of a FleetAutoscaler
+FleetAutoscaleResponse defines the response of webhook autoscaler endpoint
-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
+uid
-
-Kubernetes meta/v1.Time
-
+k8s.io/apimachinery/pkg/types.UID
|
-(Optional)
- lastScaleTime is the last time the FleetAutoscaler scaled the attached fleet, +UID is an identifier for the individual request/response. +This should be copied over from the corresponding FleetAutoscaleRequest. |
-ableToScale
+scale
bool
|
- AbleToScale indicates that we can access the target fleet +Set to false if no scaling should occur to the Fleet |
-scalingLimited
+replicas
-bool
+int32
|
- ScalingLimited indicates that the calculated scale would be above or below the range -defined by MinReplicas and MaxReplicas, and has thus been capped. +The targeted replica count |
-(Appears on: -FleetAutoscalerSpec) -
--
FleetAutoscalerSync describes when to sync a fleet
+FleetAutoscaleReview is passed to the webhook with a populated Request value, +and then returned with a populated Response.
-type
+request
-
-FleetAutoscalerSyncType
+
+FleetAutoscaleRequest
|
- Type of autoscaling sync. |
-fixedInterval
+response
-
-FixedIntervalSync
+
+FleetAutoscaleResponse
|
-(Optional)
- FixedInterval config params. Present only if FleetAutoscalerSyncType = FixedInterval. |
string
alias)-(Appears on: -FleetAutoscalerSync) -
--
FleetAutoscalerSyncType is the sync strategy for a given Fleet
- -(Appears on: -FleetAutoscalerPolicy) +FleetAutoscalerSpec)
-
ListPolicy controls the desired behavior of the List autoscaler policy.
+FleetAutoscalerPolicy describes how to scale a fleet
-key
+type
-string
+
+FleetAutoscalerPolicyType
+
|
- Key is the name of the List. Required field. +Type of autoscaling policy. |
-maxCapacity
+buffer
-int64
+
+BufferPolicy
+
|
- MaxCapacity is the maximum aggregate List total capacity across the fleet. -MaxCapacity must be bigger than both MinCapacity and BufferSize. Required field. +(Optional) +Buffer policy config params. Present only if FleetAutoscalerPolicyType = Buffer. |
-minCapacity
+webhook
-int64
+
+WebhookPolicy
+
|
- MinCapacity is the minimum aggregate List total capacity across the fleet. -If zero, it is ignored. -If non zero, it must be smaller than MaxCapacity and bigger than BufferSize. +(Optional) +Webhook policy config params. Present only if FleetAutoscalerPolicyType = Webhook. |
-bufferSize
+counter
-k8s.io/apimachinery/pkg/util/intstr.IntOrString
+
+CounterPolicy
+
|
- BufferSize is the size of a buffer based on the List capacity that is available over the -current aggregate List length in the Fleet (available capacity). It can be specified either -as an absolute value (i.e. 5) or percentage format (i.e. 5%). -Must be bigger than 0. Required field. +(Optional) +[Stage:Alpha] +[FeatureFlag:CountsAndLists] +Counter policy config params. Present only if FleetAutoscalerPolicyType = Counter. + |
+
+list
+
+
+ListPolicy
+
+
+ |
+
+(Optional)
+ [Stage:Alpha] +[FeatureFlag:CountsAndLists] +List policy config params. Present only if FleetAutoscalerPolicyType = List. |
string
alias)(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
+FleetAutoscalerPolicyType is the policy for autoscaling +for a given Fleet
+ ++(Appears on: +FleetAutoscaler) +
++
FleetAutoscalerSpec is the spec for a Fleet Scaler
-url
+fleetName
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
+policy
-
-Kubernetes admissionregistration/v1.ServiceReference
+
+FleetAutoscalerPolicy
|
-(Optional)
-
If the webhook is running within the cluster, then you should use Autoscaling policy |
|
-caBundle
+sync
-[]byte
+
+FleetAutoscalerSync
+
|
(Optional)
-
Sync defines when FleetAutoscalers runs autoscaling |
-
Package v1 is the v1 version of the API.
+(Appears on: +FleetAutoscaler) -Resource Types: - --
GameServerAllocationPolicy is the Schema for the gameserverallocationpolicies API
+FleetAutoscalerStatus defines the current status of a FleetAutoscaler
-apiVersion
-string |
-
-
-multicluster.agones.dev/v1
-
+currentReplicas
+
+int32
+
|
-||||||
-kind
-string
+CurrentReplicas is the current number of gameserver replicas +of the fleet managed by this autoscaler, as last seen by the autoscaler |
-GameServerAllocationPolicy |
||||||
-metadata
+desiredReplicas
-
-Kubernetes meta/v1.ObjectMeta
-
+int32
|
-Refer to the Kubernetes API documentation for the fields of the
-metadata field.
+DesiredReplicas is the desired number of gameserver replicas +of the fleet managed by this autoscaler, as last calculated by the autoscaler |
||||||
-spec
+lastScaleTime
-
-GameServerAllocationPolicySpec
+
+Kubernetes meta/v1.Time
|
- - -
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: -GameServerAllocationPolicySpec) +FleetAutoscalerSpec)
-
ClusterConnectionInfo defines the connection information for a cluster
+FleetAutoscalerSync describes when to sync a fleet
-clusterName
-
-string
-
- |
-
- Optional: the name of the targeted cluster - |
-
-allocationEndpoints
-
-[]string
-
- |
-
- The endpoints for the allocator service in the targeted cluster. -If the AllocationEndpoints is not set, the allocation happens on local cluster. -If there are multiple endpoints any of the endpoints that can handle allocation request should suffice - |
-
-secretName
-
-string
-
- |
-
- The name of the secret that contains TLS client certificates to connect the allocator server in the targeted cluster - |
-
-namespace
+type
-string
+
+FleetAutoscalerSyncType
+
|
- The cluster namespace from which to allocate gameservers +Type of autoscaling sync. |
-serverCa
+fixedInterval
-[]byte
+
+FixedIntervalSync
+
|
- The PEM encoded server CA, used by the allocator client to authenticate the remote server. +(Optional) +FixedInterval config params. Present only if FleetAutoscalerSyncType = FixedInterval. |
string
alias)+(Appears on: +FleetAutoscalerSync) +
++
FleetAutoscalerSyncType is the sync strategy for a given Fleet
+ +-
ConnectionInfoIterator an iterator on ClusterConnectionInfo
+(Appears on: +FleetAutoscalerPolicy) + ++
ListPolicy controls the desired behavior of the List autoscaler policy.
-currPriority
+key
-int
+string
|
- currPriority Current priority index from the orderedPriorities +Key is the name of the List. Required field. |
-orderedPriorities
+maxCapacity
-[]int32
+int64
|
- orderedPriorities list of ordered priorities +MaxCapacity is the maximum aggregate List total capacity across the fleet. +MaxCapacity must be bigger than both MinCapacity and BufferSize. Required field. |
-priorityToCluster
+minCapacity
-map[int32]map[string][]*agones.dev/agones/pkg/apis/multicluster/v1.GameServerAllocationPolicy
+int64
|
- priorityToCluster Map of priority to cluster-policies map +MinCapacity is the minimum aggregate List total capacity across the fleet. +If zero, it is ignored. +If non zero, it must be smaller than MaxCapacity and bigger than BufferSize. |
-clusterBlackList
+bufferSize
-map[string]bool
+k8s.io/apimachinery/pkg/util/intstr.IntOrString
|
- clusterBlackList the cluster blacklist for the clusters that has already returned +BufferSize is the size of a buffer based on the List capacity that is available over the +current aggregate List length in the Fleet (available capacity). It can be specified either +as an absolute value (i.e. 5) or percentage format (i.e. 5%). +Must be bigger than 0. Required field. |
(Appears on: -GameServerAllocationPolicy) +FleetAutoscalerPolicy)
-
GameServerAllocationPolicySpec defines the desired state of GameServerAllocationPolicy
+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
-priority
+url
-int32
+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. |
-weight
+service
-int
+
+Kubernetes admissionregistration/v1.ServiceReference
+
|
+(Optional)
+
If the webhook is running within the cluster, then you should use |
-connectionInfo
+caBundle
-
-ClusterConnectionInfo
-
+[]byte
|
+(Optional)
+
|