diff --git a/install/helm/agones/templates/crds/gameserverset.yaml b/install/helm/agones/templates/crds/gameserverset.yaml index 78b242cd08..c473be35ea 100644 --- a/install/helm/agones/templates/crds/gameserverset.yaml +++ b/install/helm/agones/templates/crds/gameserverset.yaml @@ -131,13 +131,12 @@ spec: additionalProperties: type: object properties: - count: # initial count + count: # Aggregated count of the Counter across the GameServerSet type: integer default: 0 minimum: 0 - capacity: # max capacity of the counter + capacity: # Aggregated maximum capacity of the Counter across the GameServerSet type: integer - default: 1000 minimum: 0 lists: type: object @@ -147,18 +146,13 @@ spec: additionalProperties: type: object properties: - capacity: # max capacity of the array (can be less than or equal to value of maxItems) + capacity: # Aggregated maximum capacity of the List across the GameServerSet type: integer minimum: 0 - default: 1000 - maximum: 1000 # must be equal to values.maxItems - values: - type: array - x-kubernetes-list-type: set # Requires items in the array to be unique - maxItems: 1000 # max possible size of the value array (cannot be updated) - items: # name of the item (player1, session1, room1, etc.) - type: string - default: [] + count: # Aggregated number of items in the List across the GameServerSet + type: integer + minimum: 0 + default: 0 subresources: # status enables the status subresource. status: { } diff --git a/install/yaml/install.yaml b/install/yaml/install.yaml index 4006d57469..63236dd7ad 100644 --- a/install/yaml/install.yaml +++ b/install/yaml/install.yaml @@ -15517,13 +15517,12 @@ spec: additionalProperties: type: object properties: - count: # initial count + count: # Aggregated count of the Counter across the GameServerSet type: integer default: 0 minimum: 0 - capacity: # max capacity of the counter + capacity: # Aggregated maximum capacity of the Counter across the GameServerSet type: integer - default: 1000 minimum: 0 lists: type: object @@ -15533,18 +15532,13 @@ spec: additionalProperties: type: object properties: - capacity: # max capacity of the array (can be less than or equal to value of maxItems) + capacity: # Aggregated maximum capacity of the List across the GameServerSet type: integer minimum: 0 - default: 1000 - maximum: 1000 # must be equal to values.maxItems - values: - type: array - x-kubernetes-list-type: set # Requires items in the array to be unique - maxItems: 1000 # max possible size of the value array (cannot be updated) - items: # name of the item (player1, session1, room1, etc.) - type: string - default: [] + count: # Aggregated number of items in the List across the GameServerSet + type: integer + minimum: 0 + default: 0 subresources: # status enables the status subresource. status: { } diff --git a/pkg/apis/agones/v1/common.go b/pkg/apis/agones/v1/common.go index 12fcd3d212..8fb4d69d87 100644 --- a/pkg/apis/agones/v1/common.go +++ b/pkg/apis/agones/v1/common.go @@ -46,6 +46,18 @@ type AggregatedPlayerStatus struct { Capacity int64 `json:"capacity"` } +// AggregatedCounterStatus stores total Counter tracking values +type AggregatedCounterStatus struct { + Count int64 `json:"count"` + Capacity int64 `json:"capacity"` +} + +// AggregatedListStatus stores total List tracking values +type AggregatedListStatus struct { + Count int64 `json:"count"` + Capacity int64 `json:"capacity"` +} + // crd is an interface to get Name and Kind of CRD type crd interface { GetName() string diff --git a/pkg/apis/agones/v1/fleet.go b/pkg/apis/agones/v1/fleet.go index db06b7b635..a8a8e42276 100644 --- a/pkg/apis/agones/v1/fleet.go +++ b/pkg/apis/agones/v1/fleet.go @@ -90,6 +90,14 @@ type FleetStatus struct { // Players are the current total player capacity and count for this Fleet // +optional Players *AggregatedPlayerStatus `json:"players,omitempty"` + // (Alpha, CountsAndLists feature flag) Counters provides aggregated Counter capacity and Counter + // count for this Fleet. + // +optional + Counters map[string]AggregatedCounterStatus `json:"counters,omitempty"` + // (Alpha, CountsAndLists feature flag) Lists provides aggregated List capacityv and List values + // for this Fleet. + // +optional + Lists map[string]AggregatedListStatus `json:"lists,omitempty"` } // GameServerSet returns a single GameServerSet for this Fleet definition diff --git a/pkg/apis/agones/v1/gameserver.go b/pkg/apis/agones/v1/gameserver.go index 73552ac57f..ede5c4f26e 100644 --- a/pkg/apis/agones/v1/gameserver.go +++ b/pkg/apis/agones/v1/gameserver.go @@ -700,6 +700,20 @@ func (gs *GameServer) IsBeforeReady() bool { return false } +// IsReady returns true if the GameServer status is Ready, Reserved, or Allocated state. +func (gs *GameServer) IsReady() bool { + switch gs.Status.State { + case GameServerStateAllocated: + return true + case GameServerStateReady: + return true + case GameServerStateReserved: + return true + } + + return false +} + // FindContainer returns the container specified by the name parameter. Returns the index and the value. // Returns an error if not found. func (gss *GameServerSpec) FindContainer(name string) (int, corev1.Container, error) { diff --git a/pkg/apis/agones/v1/gameserverset.go b/pkg/apis/agones/v1/gameserverset.go index 7399e76dc3..a58ab41bb9 100644 --- a/pkg/apis/agones/v1/gameserverset.go +++ b/pkg/apis/agones/v1/gameserverset.go @@ -86,6 +86,14 @@ type GameServerSetStatus struct { // Players is the current total player capacity and count for this GameServerSet // +optional Players *AggregatedPlayerStatus `json:"players,omitempty"` + // (Alpha, CountsAndLists feature flag) Counters provides aggregated Counter capacity and Counter + // count for this GameServerSet. + // +optional + Counters map[string]AggregatedCounterStatus `json:"counters,omitempty"` + // (Alpha, CountsAndLists feature flag) Lists provides aggregated List capacity and List values + // for this GameServerSet. + // +optional + Lists map[string]AggregatedListStatus `json:"lists,omitempty"` } // ValidateUpdate validates when updates occur. The argument diff --git a/pkg/apis/agones/v1/zz_generated.deepcopy.go b/pkg/apis/agones/v1/zz_generated.deepcopy.go index ade739b9a7..61ed4452d9 100644 --- a/pkg/apis/agones/v1/zz_generated.deepcopy.go +++ b/pkg/apis/agones/v1/zz_generated.deepcopy.go @@ -25,6 +25,38 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" ) +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AggregatedCounterStatus) DeepCopyInto(out *AggregatedCounterStatus) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AggregatedCounterStatus. +func (in *AggregatedCounterStatus) DeepCopy() *AggregatedCounterStatus { + if in == nil { + return nil + } + out := new(AggregatedCounterStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AggregatedListStatus) DeepCopyInto(out *AggregatedListStatus) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AggregatedListStatus. +func (in *AggregatedListStatus) DeepCopy() *AggregatedListStatus { + if in == nil { + return nil + } + out := new(AggregatedListStatus) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AggregatedPlayerStatus) DeepCopyInto(out *AggregatedPlayerStatus) { *out = *in @@ -195,6 +227,20 @@ func (in *FleetStatus) DeepCopyInto(out *FleetStatus) { *out = new(AggregatedPlayerStatus) **out = **in } + if in.Counters != nil { + in, out := &in.Counters, &out.Counters + *out = make(map[string]AggregatedCounterStatus, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Lists != nil { + in, out := &in.Lists, &out.Lists + *out = make(map[string]AggregatedListStatus, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } return } @@ -381,6 +427,20 @@ func (in *GameServerSetStatus) DeepCopyInto(out *GameServerSetStatus) { *out = new(AggregatedPlayerStatus) **out = **in } + if in.Counters != nil { + in, out := &in.Counters, &out.Counters + *out = make(map[string]AggregatedCounterStatus, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Lists != nil { + in, out := &in.Lists, &out.Lists + *out = make(map[string]AggregatedListStatus, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } return } diff --git a/pkg/fleets/controller.go b/pkg/fleets/controller.go index 213aa1fd81..a97988e4e8 100644 --- a/pkg/fleets/controller.go +++ b/pkg/fleets/controller.go @@ -652,12 +652,20 @@ func (c *Controller) updateFleetStatus(ctx context.Context, fleet *agonesv1.Flee fCopy.Status.ReadyReplicas = 0 fCopy.Status.ReservedReplicas = 0 fCopy.Status.AllocatedReplicas = 0 + if runtime.FeatureEnabled(runtime.FeatureCountsAndLists) { + fCopy.Status.Counters = make(map[string]agonesv1.AggregatedCounterStatus) + fCopy.Status.Lists = make(map[string]agonesv1.AggregatedListStatus) + } for _, gsSet := range list { fCopy.Status.Replicas += gsSet.Status.Replicas fCopy.Status.ReadyReplicas += gsSet.Status.ReadyReplicas fCopy.Status.ReservedReplicas += gsSet.Status.ReservedReplicas fCopy.Status.AllocatedReplicas += gsSet.Status.AllocatedReplicas + if runtime.FeatureEnabled(runtime.FeatureCountsAndLists) { + fCopy.Status.Counters = mergeCounters(fCopy.Status.Counters, gsSet.Status.Counters) + fCopy.Status.Lists = mergeLists(fCopy.Status.Lists, gsSet.Status.Lists) + } } if runtime.FeatureEnabled(runtime.FeaturePlayerTracking) { // to make this code simpler, while the feature gate is in place, @@ -693,3 +701,43 @@ func (c *Controller) filterGameServerSetByActive(fleet *agonesv1.Fleet, list []* return active, rest } + +// mergeCounters adds the contents of AggregatedCounterStatus c2 into c1. +func mergeCounters(c1, c2 map[string]agonesv1.AggregatedCounterStatus) map[string]agonesv1.AggregatedCounterStatus { + if c1 == nil { + c1 = make(map[string]agonesv1.AggregatedCounterStatus) + } + + for key, val := range c2 { + // If the Counter exists in both maps, aggregate the values. + if counter, ok := c1[key]; ok { + counter.Capacity += val.Capacity + counter.Count += val.Count + c1[key] = counter + } else { + c1[key] = *val.DeepCopy() + } + } + + return c1 +} + +// mergeLists adds the contents of AggregatedListStatus l2 into l1. +func mergeLists(l1, l2 map[string]agonesv1.AggregatedListStatus) map[string]agonesv1.AggregatedListStatus { + if l1 == nil { + l1 = make(map[string]agonesv1.AggregatedListStatus) + } + + for key, val := range l2 { + // If the List exists in both maps, aggregate the values. + if list, ok := l1[key]; ok { + list.Capacity += val.Capacity + list.Count += val.Count + l1[key] = list + } else { + l1[key] = *val.DeepCopy() + } + } + + return l1 +} diff --git a/pkg/fleets/controller_test.go b/pkg/fleets/controller_test.go index d607b1bd6f..def58db3f4 100644 --- a/pkg/fleets/controller_test.go +++ b/pkg/fleets/controller_test.go @@ -685,6 +685,130 @@ func TestControllerUpdateFleetPlayerStatus(t *testing.T) { assert.True(t, updated) } +// nolint:dupl // Linter errors on lines are duplicate of TestControllerUpdateFleetListStatus +func TestControllerUpdateFleetCounterStatus(t *testing.T) { + t.Parallel() + + utilruntime.FeatureTestMutex.Lock() + defer utilruntime.FeatureTestMutex.Unlock() + + require.NoError(t, utilruntime.ParseFeatures(string(utilruntime.FeatureCountsAndLists)+"=true")) + + fleet := defaultFixture() + c, m := newFakeController() + + gsSet1 := fleet.GameServerSet() + gsSet1.ObjectMeta.Name = "gsSet1" + gsSet1.Status.Counters = map[string]agonesv1.AggregatedCounterStatus{ + "fullCounter": { + Capacity: 1000, + Count: 1000, + }, + } + + gsSet2 := fleet.GameServerSet() + gsSet2.ObjectMeta.Name = "gsSet2" + gsSet2.Status.Counters = map[string]agonesv1.AggregatedCounterStatus{ + "fullCounter": { + Capacity: 1000, + Count: 1000, + }, + "anotherCounter": { + Capacity: 10, + Count: 0, + }, + } + + m.AgonesClient.AddReactor("list", "gameserversets", + func(action k8stesting.Action) (bool, runtime.Object, error) { + return true, &agonesv1.GameServerSetList{Items: []agonesv1.GameServerSet{*gsSet1, *gsSet2}}, nil + }) + + updated := false + m.AgonesClient.AddReactor("update", "fleets", + func(action k8stesting.Action) (bool, runtime.Object, error) { + updated = true + ua := action.(k8stesting.UpdateAction) + fleet := ua.GetObject().(*agonesv1.Fleet) + + assert.Equal(t, int64(2000), fleet.Status.Counters["fullCounter"].Capacity) + assert.Equal(t, int64(2000), fleet.Status.Counters["fullCounter"].Count) + assert.Equal(t, int64(10), fleet.Status.Counters["anotherCounter"].Capacity) + assert.Equal(t, int64(0), fleet.Status.Counters["anotherCounter"].Count) + + return true, fleet, nil + }) + + ctx, cancel := agtesting.StartInformers(m, c.fleetSynced, c.gameServerSetSynced) + defer cancel() + + err := c.updateFleetStatus(ctx, fleet) + assert.Nil(t, err) + assert.True(t, updated) +} + +// nolint:dupl // Linter errors on lines are duplicate of TestControllerUpdateFleetCounterStatus +func TestControllerUpdateFleetListStatus(t *testing.T) { + t.Parallel() + + utilruntime.FeatureTestMutex.Lock() + defer utilruntime.FeatureTestMutex.Unlock() + + require.NoError(t, utilruntime.ParseFeatures(string(utilruntime.FeatureCountsAndLists)+"=true")) + + fleet := defaultFixture() + c, m := newFakeController() + + gsSet1 := fleet.GameServerSet() + gsSet1.ObjectMeta.Name = "gsSet1" + gsSet1.Status.Lists = map[string]agonesv1.AggregatedListStatus{ + "fullList": { + Capacity: 1000, + Count: 1000, + }, + } + + gsSet2 := fleet.GameServerSet() + gsSet2.ObjectMeta.Name = "gsSet2" + gsSet2.Status.Lists = map[string]agonesv1.AggregatedListStatus{ + "fullList": { + Capacity: 200, + Count: 200, + }, + "anotherList": { + Capacity: 10, + Count: 1, + }, + } + + m.AgonesClient.AddReactor("list", "gameserversets", + func(action k8stesting.Action) (bool, runtime.Object, error) { + return true, &agonesv1.GameServerSetList{Items: []agonesv1.GameServerSet{*gsSet1, *gsSet2}}, nil + }) + + updated := false + m.AgonesClient.AddReactor("update", "fleets", + func(action k8stesting.Action) (bool, runtime.Object, error) { + updated = true + ua := action.(k8stesting.UpdateAction) + fleet := ua.GetObject().(*agonesv1.Fleet) + + assert.Equal(t, int64(1200), fleet.Status.Lists["fullList"].Capacity) + assert.Equal(t, int64(1200), fleet.Status.Lists["fullList"].Count) + assert.Equal(t, int64(10), fleet.Status.Lists["anotherList"].Capacity) + assert.Equal(t, int64(1), fleet.Status.Lists["anotherList"].Count) + + return true, fleet, nil + }) + + ctx, cancel := agtesting.StartInformers(m, c.fleetSynced, c.gameServerSetSynced) + defer cancel() + + err := c.updateFleetStatus(ctx, fleet) + assert.Nil(t, err) + assert.True(t, updated) +} + func TestControllerFilterGameServerSetByActive(t *testing.T) { t.Parallel() diff --git a/pkg/gameserversets/controller.go b/pkg/gameserversets/controller.go index 52cf100899..e0462b0f65 100644 --- a/pkg/gameserversets/controller.go +++ b/pkg/gameserversets/controller.go @@ -33,6 +33,7 @@ import ( "agones.dev/agones/pkg/util/runtime" "agones.dev/agones/pkg/util/webhooks" "agones.dev/agones/pkg/util/workerqueue" + "github.com/google/go-cmp/cmp" "github.com/heptiolabs/healthcheck" "github.com/pkg/errors" "github.com/sirupsen/logrus" @@ -588,7 +589,7 @@ func (c *Controller) syncGameServerSetStatus(ctx context.Context, gsSet *agonesv // updateStatusIfChanged updates GameServerSet status if it's different than provided. func (c *Controller) updateStatusIfChanged(ctx context.Context, gsSet *agonesv1.GameServerSet, status agonesv1.GameServerSetStatus) error { - if gsSet.Status != status { + if !cmp.Equal(gsSet.Status, status) { gsSetCopy := gsSet.DeepCopy() gsSetCopy.Status = status _, err := c.gameServerSetGetter.GameServerSets(gsSet.ObjectMeta.Namespace).UpdateStatus(ctx, gsSetCopy, metav1.UpdateOptions{}) @@ -618,6 +619,12 @@ func computeStatus(list []*agonesv1.GameServer) agonesv1.GameServerSetStatus { case agonesv1.GameServerStateReserved: status.ReservedReplicas++ } + + // Aggregates all Counters and Lists only for GameServer states Ready, Reserved, or Allocated. + if runtime.FeatureEnabled(runtime.FeatureCountsAndLists) && gs.IsReady() { + status.Counters = aggregateCounters(status.Counters, gs.Status.Counters) + status.Lists = aggregateLists(status.Lists, gs.Status.Lists) + } } if runtime.FeatureEnabled(runtime.FeaturePlayerTracking) { @@ -640,3 +647,48 @@ func computeStatus(list []*agonesv1.GameServer) agonesv1.GameServerSetStatus { return status } + +// aggregateCounters adds the contents of a CounterStatus map to an AggregatedCounterStatus map. +func aggregateCounters(aggCounterStatus map[string]agonesv1.AggregatedCounterStatus, counterStatus map[string]agonesv1.CounterStatus) map[string]agonesv1.AggregatedCounterStatus { + if aggCounterStatus == nil { + aggCounterStatus = make(map[string]agonesv1.AggregatedCounterStatus) + } + + for key, val := range counterStatus { + // If the Counter exists in both maps, aggregate the values. + if counter, ok := aggCounterStatus[key]; ok { + counter.Count += val.Count + counter.Capacity += val.Capacity + aggCounterStatus[key] = counter + } else { + aggCounterStatus[key] = agonesv1.AggregatedCounterStatus(*val.DeepCopy()) + } + } + + return aggCounterStatus +} + +// aggregateLists adds the contents of a ListStatus map to an AggregatedListStatus map. +func aggregateLists(aggListStatus map[string]agonesv1.AggregatedListStatus, listStatus map[string]agonesv1.ListStatus) map[string]agonesv1.AggregatedListStatus { + if aggListStatus == nil { + aggListStatus = make(map[string]agonesv1.AggregatedListStatus) + } + + for key, val := range listStatus { + // If the List exists in both maps, aggregate the values. + if list, ok := aggListStatus[key]; ok { + list.Capacity += val.Capacity + // We do include duplicates in the Count. + list.Count += int64(len(val.Values)) + aggListStatus[key] = list + } else { + tmp := val.DeepCopy() + aggListStatus[key] = agonesv1.AggregatedListStatus{ + Capacity: tmp.Capacity, + Count: int64(len(tmp.Values)), + } + } + } + + return aggListStatus +} diff --git a/pkg/gameserversets/controller_test.go b/pkg/gameserversets/controller_test.go index ab14ef2f72..7fd64accbc 100644 --- a/pkg/gameserversets/controller_test.go +++ b/pkg/gameserversets/controller_test.go @@ -335,6 +335,104 @@ func TestComputeStatus(t *testing.T) { assert.Equal(t, expected, computeStatus(list)) }) + + t.Run("counters", func(t *testing.T) { + utilruntime.FeatureTestMutex.Lock() + defer utilruntime.FeatureTestMutex.Unlock() + + require.NoError(t, utilruntime.ParseFeatures(string(utilruntime.FeatureCountsAndLists)+"=true")) + + var list []*agonesv1.GameServer + gs1 := gsWithState(agonesv1.GameServerStateAllocated) + gs1.Status.Counters = map[string]agonesv1.CounterStatus{ + "firstCounter": {Count: 5, Capacity: 10}, + "secondCounter": {Count: 100, Capacity: 1000}, + } + gs2 := gsWithState(agonesv1.GameServerStateReserved) + gs2.Status.Counters = map[string]agonesv1.CounterStatus{ + "firstCounter": {Count: 10, Capacity: 15}, + } + gs3 := gsWithState(agonesv1.GameServerStateCreating) + gs3.Status.Counters = map[string]agonesv1.CounterStatus{ + "firstCounter": {Count: 20, Capacity: 30}, + "secondCounter": {Count: 100, Capacity: 1000}, + } + gs4 := gsWithState(agonesv1.GameServerStateReady) + gs4.Status.Counters = map[string]agonesv1.CounterStatus{ + "firstCounter": {Count: 15, Capacity: 30}, + "secondCounter": {Count: 20, Capacity: 200}, + } + list = append(list, gs1, gs2, gs3, gs4) + + expected := agonesv1.GameServerSetStatus{ + Replicas: 4, + ReadyReplicas: 1, + ReservedReplicas: 1, + AllocatedReplicas: 1, + Counters: map[string]agonesv1.AggregatedCounterStatus{ + "firstCounter": { + Count: 30, + Capacity: 55, + }, + "secondCounter": { + Count: 120, + Capacity: 1200, + }, + }, + Lists: map[string]agonesv1.AggregatedListStatus{}, + } + + assert.Equal(t, expected, computeStatus(list)) + }) + + t.Run("lists", func(t *testing.T) { + utilruntime.FeatureTestMutex.Lock() + defer utilruntime.FeatureTestMutex.Unlock() + + require.NoError(t, utilruntime.ParseFeatures(string(utilruntime.FeatureCountsAndLists)+"=true")) + + var list []*agonesv1.GameServer + gs1 := gsWithState(agonesv1.GameServerStateAllocated) + gs1.Status.Lists = map[string]agonesv1.ListStatus{ + "firstList": {Capacity: 10, Values: []string{"a", "b"}}, + "secondList": {Capacity: 1000, Values: []string{"1", "2"}}, + } + gs2 := gsWithState(agonesv1.GameServerStateReserved) + gs2.Status.Lists = map[string]agonesv1.ListStatus{ + "firstList": {Capacity: 15, Values: []string{"c"}}, + } + gs3 := gsWithState(agonesv1.GameServerStateCreating) + gs3.Status.Lists = map[string]agonesv1.ListStatus{ + "firstList": {Capacity: 30, Values: []string{"d"}}, + "secondList": {Capacity: 1000, Values: []string{"3"}}, + } + gs4 := gsWithState(agonesv1.GameServerStateReady) + gs4.Status.Lists = map[string]agonesv1.ListStatus{ + "firstList": {Capacity: 30}, + "secondList": {Capacity: 100, Values: []string{"4", "5", "6"}}, + } + list = append(list, gs1, gs2, gs3, gs4) + + expected := agonesv1.GameServerSetStatus{ + Replicas: 4, + ReadyReplicas: 1, + ReservedReplicas: 1, + AllocatedReplicas: 1, + Counters: map[string]agonesv1.AggregatedCounterStatus{}, + Lists: map[string]agonesv1.AggregatedListStatus{ + "firstList": { + Capacity: 55, + Count: 3, + }, + "secondList": { + Capacity: 1100, + Count: 5, + }, + }, + } + + assert.Equal(t, expected, computeStatus(list)) + }) } func TestControllerWatchGameServers(t *testing.T) { 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 9c9678e63f..209341b0d0 100644 --- a/site/content/en/docs/Reference/agones_crd_api_reference.html +++ b/site/content/en/docs/Reference/agones_crd_api_reference.html @@ -3,13 +3,10 @@ description="Detailed list of Agones Custom Resource Definitions available" +++ -{{% feature expiryVersion="1.32.0" %}} +{{% feature expiryVersion="1.33.0" %}}
Packages:
Package v1 is the v1 version of the API.
Resource Types: --
GameServerAllocation is the data structure for allocating against a set of
-GameServers, defined selectors
selectors
FleetAutoscaler is the data structure for a FleetAutoscaler resource
-allocation.agones.dev/v1
+autoscaling.agones.dev/v1
|
@@ -56,7 +55,7 @@ GameServerAllocation |
+FleetAutoscaler |
|||||
@@ -76,8 +75,8 @@ GameServerAllocation
spec
-
-GameServerAllocationSpec
+
+FleetAutoscalerSpec
|
|||||||
-priorities
+status
-
-[]Priority
+
+FleetAutoscalerStatus
|
-(Optional)
- (Alpha, CountsAndLists feature flag) The first Priority on the array of Priorities is the most -important for sorting. The allocator will use the first priority for sorting GameServers in the -Selector set, and will only use any following priority for tie-breaking during sort. -Impacts which GameServer is checked first. |
+(Appears on: +FleetAutoscalerPolicy) +
++
BufferPolicy controls the desired behavior of the buffer policy.
+ +Field | +Description | +
---|---|
-selectors
+maxReplicas
-
-[]GameServerSelector
-
+int32
|
- Ordered list of GameServer label selectors. -If the first selector is not matched, the selection attempts the second selector, and so on. -This is useful for things like smoke testing of new game servers. -Note: This field can only be set if neither Required or Preferred is set. +MaxReplicas is the maximum amount of replicas that the fleet may have. +It must be bigger than both MinReplicas and BufferSize |
-scheduling
+minReplicas
-agones.dev/agones/pkg/apis.SchedulingStrategy
+int32
|
- Scheduling strategy. Defaults to “Packed”. +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 |
-metadata
+bufferSize
-
-MetaPatch
-
+k8s.io/apimachinery/pkg/util/intstr.IntOrString
|
- 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 +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: +FleetAutoscalerSync) +
++
FixedIntervalSync controls the desired behavior of the fixed interval based sync.
+ +Field | +Description |
---|---|
-status
+seconds
-
-GameServerAllocationStatus
-
+int32
|
+ Seconds defines how often we run fleet autoscaling in seconds |
(Appears on: -GameServerSelector) +FleetAutoscaleReview)
-
CounterSelector is the filter options for a GameServer based on the count and/or available capacity. -0 for MaxCount or MaxAvailable means unlimited maximum. Default for all fields: 0
+FleetAutoscaleRequest defines the request to webhook autoscaler endpoint
-minCount
+uid
-int64
+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. |
-maxCount
+name
-int64
+string
|
+ Name is the name of the Fleet being scaled |
-minAvailable
+namespace
-int64
+string
|
+ Namespace is the namespace associated with the request (if any). |
-maxAvailable
+status
-int64
+
+FleetStatus
+
|
+ The Fleet’s status values |
(Appears on: -GameServerAllocation) +FleetAutoscaleReview)
-
GameServerAllocationSpec is the spec for a GameServerAllocation
+FleetAutoscaleResponse defines the response of webhook autoscaler endpoint
-multiClusterSetting
+uid
-
-MultiClusterSetting
-
+k8s.io/apimachinery/pkg/types.UID
|
- MultiClusterPolicySelector if specified, multi-cluster policies are applied. -Otherwise, allocation will happen locally. +UID is an identifier for the individual request/response. +This should be copied over from the corresponding FleetAutoscaleRequest. |
-required
+scale
-
-GameServerSelector
-
+bool
|
- Deprecated: use field Selectors instead. If Selectors is set, this field is ignored. -Required is the GameServer selector from which to choose GameServers from. -Defaults to all GameServers. +Set to false if no scaling should occur to the Fleet |
-preferred
+replicas
-
-[]GameServerSelector
-
+int32
|
- Deprecated: use field Selectors instead. If Selectors is set, this field is ignored.
-Preferred is an ordered list of preferred GameServer selectors
-that are optional to be fulfilled, but will be searched before the The targeted replica count |
+
FleetAutoscaleReview is passed to the webhook with a populated Request value, +and then returned with a populated Response.
+ +Field | +Description | +
---|---|
-priorities
+request
-
-[]Priority
+
+FleetAutoscaleRequest
|
-(Optional)
- (Alpha, CountsAndLists feature flag) The first Priority on the array of Priorities is the most -important for sorting. The allocator will use the first priority for sorting GameServers in the -Selector set, and will only use any following priority for tie-breaking during sort. -Impacts which GameServer is checked first. |
-selectors
+response
-
-[]GameServerSelector
-
-
- |
-
- Ordered list of GameServer label selectors. -If the first selector is not matched, the selection attempts the second selector, and so on. -This is useful for things like smoke testing of new game servers. -Note: This field can only be set if neither Required or Preferred is set. - |
-
-scheduling
-
-agones.dev/agones/pkg/apis.SchedulingStrategy
-
- |
-
- Scheduling strategy. Defaults to “Packed”. - |
-
-metadata
-
-
-MetaPatch
+
+FleetAutoscaleResponse
|
- 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) +FleetAutoscalerSpec)
-
GameServerAllocationStatus is the status for an GameServerAllocation resource
+FleetAutoscalerPolicy describes how to scale a fleet
-state
+type
-
-GameServerAllocationState
+
+FleetAutoscalerPolicyType
|
- GameServerState is the current state of an GameServerAllocation, e.g. Allocated, or UnAllocated +Type of autoscaling policy. |
-gameServerName
+buffer
-string
+
+BufferPolicy
+
|
+(Optional)
+ Buffer policy config params. Present only if FleetAutoscalerPolicyType = Buffer. |
-ports
+webhook
-
-[]GameServerStatusPort
+
+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 | +
---|---|
-address
+fleetName
string
@@ -464,37 +494,43 @@ GameServerAllocatio | |
-nodeName
+policy
-string
+
+FleetAutoscalerPolicy
+
|
+ Autoscaling policy |
-source
+sync
-string
+
+FleetAutoscalerSync
+
|
- If the allocation is from a remote cluster, Source is the endpoint of the remote agones-allocator. -Otherwise, Source is “local” +(Optional) +[Stage:Beta] +[FeatureFlag:CustomFasSyncInterval] +Sync defines when FleetAutoscalers runs autoscaling |
(Appears on: -GameServerAllocationSpec) +FleetAutoscaler)
-
GameServerSelector contains all the filter options for selecting -a GameServer for allocation.
+FleetAutoscalerStatus defines the current status of a FleetAutoscaler
-LabelSelector
+currentReplicas
-
-Kubernetes meta/v1.LabelSelector
-
+int32
|
-
-(Members of See: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ +CurrentReplicas is the current number of gameserver replicas +of the fleet managed by this autoscaler, as last seen by the autoscaler |
-gameServerState
+desiredReplicas
-
-GameServerState
-
+int32
|
-(Optional)
- [Stage:Beta] -[FeatureFlag:StateAllocationFilter] -GameServerState specifies which State is the filter to be used when attempting to retrieve a GameServer -via Allocation. Defaults to “Ready”. The only other option is “Allocated”, which can be used in conjunction with -label/annotation/player selectors to retrieve an already Allocated GameServer. +DesiredReplicas is the desired number of gameserver replicas +of the fleet managed by this autoscaler, as last calculated by the autoscaler |
-players
+lastScaleTime
-
-PlayerSelector
+
+Kubernetes meta/v1.Time
|
(Optional)
- [Stage:Alpha] -[FeatureFlag:PlayerAllocationFilter] -Players provides a filter on minimum and maximum values for player capacity when retrieving a GameServer -through Allocation. Defaults to no limits. +lastScaleTime is the last time the FleetAutoscaler scaled the attached fleet, |
-counters
+ableToScale
-
-map[string]agones.dev/agones/pkg/apis/allocation/v1.CounterSelector
-
+bool
|
-(Optional)
- (Alpha, CountsAndLists feature flag) Counters provides filters on minimum and maximum values -for a Counter’s count and available capacity when retrieving a GameServer through Allocation. -Defaults to no limits. +AbleToScale indicates that we can access the target fleet |
-lists
+scalingLimited
-
-map[string]agones.dev/agones/pkg/apis/allocation/v1.ListSelector
-
+bool
|
-(Optional)
- (Alpha, CountsAndLists feature flag) Lists provides filters on minimum and maximum values -for List capacity, and for the existence of a value in a List, when retrieving a GameServer -through Allocation. Defaults to no limits. +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: -GameServerSelector) +FleetAutoscalerSpec)
-
ListSelector is the filter options for a GameServer based on List available capacity and/or the -existence of a value in a List. -0 for MaxAvailable means unlimited maximum. Default for integer fields: 0 -“” for ContainsValue means ignore field. Default for string field: “”
+FleetAutoscalerSync describes when to sync a fleet
-containsValue
-
-string
-
- |
-- | -
-minAvailable
+type
-int64
+
+FleetAutoscalerSyncType
+
|
+ Type of autoscaling sync. |
-maxAvailable
+fixedInterval
-int64
+
+FixedIntervalSync
+
|
+(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: -GameServerAllocationSpec) +FleetAutoscalerPolicy)
-
MetaPatch is the metadata used to patch the GameServer metadata on allocation
+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
-labels
-
-map[string]string
-
- |
-- | -
-annotations
+url
-map[string]string
-
- |
-- | -
-(Appears on: -GameServerAllocationSpec) -
--
MultiClusterSetting specifies settings for multi-cluster allocation.
- -Field | -Description | -
---|---|
-enabled
-
-bool
+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. |
-policySelector
+service
-
-Kubernetes meta/v1.LabelSelector
+
+Kubernetes admissionregistration/v1.ServiceReference
|
- | -
-(Appears on: -GameServerSelector) -
--
PlayerSelector is the filter options for a GameServer based on player counts
- -Field | -Description | -
---|---|
-minAvailable
-
-int64
-
- |
-- | -
-maxAvailable
-
-int64
-
- |
-- | -
-(Appears on: -GameServerAllocationSpec) -
--
Priority is a sorting option for GameServers with Counters or Lists based on the count or -number of items in a List. -PriorityType: Sort by a “Counter” or a “List”. -Key: The name of the Counter or List. If not found on the GameServer, has no impact. -Order: Sort by “Ascending” or “Descending”. Default is “Descending” so bigger count is preferred. -“Ascending” would be smaller count is preferred.
- -Field | -Description | -
---|---|
-priorityType
-
-string
-
- |
-- | -
-key
-
-string
-
- |
-
+(Optional)
+
If the webhook is running within the cluster, then you should use |
-order
+caBundle
-string
+[]byte
|
+(Optional)
+
|
Package v1 is the v1 version of the API.
Resource Types: --
FleetAutoscaler is the data structure for a FleetAutoscaler resource
+GameServerAllocationPolicy is the Schema for the gameserverallocationpolicies API
-autoscaling.agones.dev/v1
+multicluster.agones.dev/v1
|
@@ -851,7 +776,7 @@ FleetAutoscaler |
+GameServerAllocationPolicy |
|||||
@@ -871,8 +796,8 @@ FleetAutoscaler
spec
-
-FleetAutoscalerSpec
+
+GameServerAllocationPolicySpec
|
|||||||
-status
-
-
-FleetAutoscalerStatus
-
-
- |
-- | -
(Appears on: -FleetAutoscalerPolicy) +GameServerAllocationPolicySpec)
-
BufferPolicy controls the desired behavior of the buffer policy.
+ClusterConnectionInfo defines the connection information for a cluster
-maxReplicas
+clusterName
-int32
+string
|
- MaxReplicas is the maximum amount of replicas that the fleet may have. -It must be bigger than both MinReplicas and BufferSize +Optional: the name of the targeted cluster |
-minReplicas
+allocationEndpoints
-int32
+[]string
|
- 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 +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 |
-bufferSize
+secretName
-k8s.io/apimachinery/pkg/util/intstr.IntOrString
+string
|
- 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) +The name of the secret that contains TLS client certificates to connect the allocator server in the targeted cluster |
-(Appears on: -FleetAutoscalerSync) -
--
FixedIntervalSync controls the desired behavior of the fixed interval based sync.
- -Field | -Description | -
---|---|
-seconds
+namespace
-int32
+string
|
- Seconds defines how often we run fleet autoscaling in seconds +The cluster namespace from which to allocate gameservers + |
+
+serverCa
+
+[]byte
+
+ |
+
+ The PEM encoded server CA, used by the allocator client to authenticate the remote server. |
-(Appears on: -FleetAutoscaleReview) -
--
FleetAutoscaleRequest defines the request to webhook autoscaler endpoint
+ConnectionInfoIterator an iterator on ClusterConnectionInfo
-uid
+currPriority
-k8s.io/apimachinery/pkg/types.UID
+int
|
- 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. +currPriority Current priority index from the orderedPriorities |
-name
+orderedPriorities
-string
+[]int32
|
- Name is the name of the Fleet being scaled +orderedPriorities list of ordered priorities |
-namespace
+priorityToCluster
-string
+map[int32]map[string][]*agones.dev/agones/pkg/apis/multicluster/v1.GameServerAllocationPolicy
|
- Namespace is the namespace associated with the request (if any). +priorityToCluster Map of priority to cluster-policies map |
-status
+clusterBlackList
-
-FleetStatus
-
+map[string]bool
|
- The Fleet’s status values +clusterBlackList the cluster blacklist for the clusters that has already returned |
(Appears on: -FleetAutoscaleReview) +GameServerAllocationPolicy)
-
FleetAutoscaleResponse defines the response of webhook autoscaler endpoint
+GameServerAllocationPolicySpec defines the desired state of GameServerAllocationPolicy
-uid
+priority
-k8s.io/apimachinery/pkg/types.UID
+int32
|
- UID is an identifier for the individual request/response. -This should be copied over from the corresponding FleetAutoscaleRequest. |
-scale
+weight
-bool
+int
|
- Set to false if no scaling should occur to the Fleet |
-replicas
+connectionInfo
-int32
+
+ClusterConnectionInfo
+
|
- The targeted replica count |
+
Package v1 is the v1 version of the API.
+ +Resource Types: +-
FleetAutoscaleReview is passed to the webhook with a populated Request value, -and then returned with a populated Response.
+Fleet is the data structure for a Fleet resource
-request
+apiVersion
+string |
+
+
+agones.dev/v1
+
+ |
+
+kind
+string
+ |
+Fleet |
+
+metadata
-
-FleetAutoscaleRequest
+
+Kubernetes meta/v1.ObjectMeta
|
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
|
-response
+spec
-
-FleetAutoscaleResponse
+
+FleetSpec
|
- | -
-(Appears on: -FleetAutoscalerSpec) -
--
FleetAutoscalerPolicy describes how to scale a fleet
- +Field | -Description | -
---|---|
-type
+replicas
-
-FleetAutoscalerPolicyType
-
+int32
|
- Type of autoscaling policy. +Replicas are the number of GameServers that should be in this set. Defaults to 0. |
-buffer
+allocationOverflow
-
-BufferPolicy
+
+AllocationOverflow
|
(Optional)
- Buffer policy config params. Present only if FleetAutoscalerPolicyType = Buffer. +[Stage: Alpha]
+[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 |
-webhook
+strategy
-
-WebhookPolicy
+
+Kubernetes apps/v1.DeploymentStrategy
|
-(Optional)
- Webhook policy config params. Present only if FleetAutoscalerPolicyType = Webhook. +Deployment strategy |
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
+scheduling
-string
+agones.dev/agones/pkg/apis.SchedulingStrategy
|
+ Scheduling strategy. Defaults to “Packed”. |
-policy
+template
-
-FleetAutoscalerPolicy
+
+GameServerTemplateSpec
|
- Autoscaling policy +Template the GameServer template to apply for this Fleet + |
+
sync
+status
-
-FleetAutoscalerSync
+
+FleetStatus
[Stage:Beta] -[FeatureFlag:CustomFasSyncInterval] -Sync defines when FleetAutoscalers runs autoscaling
-(Appears on: -FleetAutoscaler) -
--
FleetAutoscalerStatus defines the current status of a FleetAutoscaler
+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.
-currentReplicas
-
-int32
-
+apiVersion
+string |
+
+
+agones.dev/v1
+
|
+||||||||||||||||||||||||
- CurrentReplicas is the current number of gameserver replicas -of the fleet managed by this autoscaler, as last seen by the autoscaler +kind
+string
|
+GameServer |
||||||||||||||||||||||||
-desiredReplicas
+metadata
-int32
+
+Kubernetes meta/v1.ObjectMeta
+
|
- DesiredReplicas is the desired number of gameserver replicas -of the fleet managed by this autoscaler, as last calculated by the autoscaler +Refer to the Kubernetes API documentation for the fields of the +metadata field.
|
||||||||||||||||||||||||
-lastScaleTime
+spec
-
-Kubernetes meta/v1.Time
+
+GameServerSpec
|
-(Optional)
- lastScaleTime is the last time the FleetAutoscaler scaled the attached fleet, ++ +
FleetAutoscalerSync ---(Appears on: -FleetAutoscalerSpec) - -- FleetAutoscalerSync describes when to sync a fleet - -
FleetAutoscalerSyncType
-(
- |
+
Field | -Description | +
+players
+
+
+PlayersSpec
+
+
+ |
+
+(Optional)
+ (Alpha, PlayerTracking feature flag) Players provides the configuration for player tracking features. + |
---|---|---|---|
-url
+counters
-string
+
+map[string]agones.dev/agones/pkg/apis/agones/v1.CounterStatus
+
|
(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. +(Alpha, CountsAndLists feature flag) Counters and Lists provides the configuration for generic tracking features. |
||
-service
+lists
-
-Kubernetes admissionregistration/v1.ServiceReference
+
+map[string]agones.dev/agones/pkg/apis/agones/v1.ListStatus
|
-(Optional)
-
If the webhook is running within the cluster, then you should use |
||
-caBundle
+eviction
-[]byte
+
+Eviction
+
|
(Optional)
-
Eviction specifies the eviction tolerance of the GameServer. Defaults to “Never”. + |
+
status
+
+
+GameServerStatus
+
+
+-
Package v1 is the v1 version of the API.
- -Resource Types: - --
GameServerAllocationPolicy is the Schema for the gameserverallocationpolicies API
+GameServerSet is the data structure for a set of GameServers. +This matches philosophically with the relationship between +Deployments and ReplicaSets
-multicluster.agones.dev/v1
+agones.dev/v1
|
@@ -1572,7 +1417,7 @@ GameServerAllocationPolicy |
+GameServerSet |
|||||||
@@ -1592,8 +1437,8 @@ GameServerAllocat
spec
-
-GameServerAllocationPolicySpec
+
+GameServerSetSpec
|
-(Appears on: -GameServerAllocationPolicySpec) -
--
ClusterConnectionInfo defines the connection information for a cluster
+status
+
+
+GameServerSetStatus
+
+
++(Appears on: +FleetStatus, +GameServerSetStatus) +
++
AggregatedPlayerStatus stores total player tracking values
-clusterName
+count
-string
+int64
|
- Optional: the name of the targeted cluster |
-allocationEndpoints
+capacity
-[]string
+int64
|
- 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 |
+(Appears on: +FleetSpec, +GameServerSetSpec) +
++
AllocationOverflow specifies what labels and/or annotations to apply on Allocated GameServers
+if the desired number of the underlying GameServerSet
drops below the number of Allocated GameServers
+attached to it.
-secretName
-
-string
-
- |
-
- The name of the secret that contains TLS client certificates to connect the allocator server in the targeted cluster - |
+Field | +Description |
---|---|---|---|
-namespace
+labels
-string
+map[string]string
|
- The cluster namespace from which to allocate gameservers +(Optional) +Labels to be applied to the |
||
-serverCa
+annotations
-[]byte
+map[string]string
|
- The PEM encoded server CA, used by the allocator client to authenticate the remote server. +(Optional) +Annotations to be applied to the |
-
ConnectionInfoIterator an iterator on ClusterConnectionInfo
+(Appears on: +GameServerSpec, +GameServerStatus) + ++
CounterStatus stores the current counter values
-currPriority
-
-int
-
- |
-
- currPriority Current priority index from the orderedPriorities - |
-
-orderedPriorities
-
-[]int32
-
- |
-
- orderedPriorities list of ordered priorities - |
-
-priorityToCluster
+count
-map[int32]map[string][]*agones.dev/agones/pkg/apis/multicluster/v1.GameServerAllocationPolicy
+int64
|
- priorityToCluster Map of priority to cluster-policies map |
-clusterBlackList
+capacity
-map[string]bool
+int64
|
- clusterBlackList the cluster blacklist for the clusters that has already returned |
(Appears on: -GameServerAllocationPolicy) +GameServerSpec, +GameServerStatus)
-
GameServerAllocationPolicySpec defines the desired state of GameServerAllocationPolicy
+Eviction specifies the eviction tolerance of the GameServer
-priority
-
-int32
-
- |
-- | -
-weight
-
-int
-
- |
-- | -
-connectionInfo
+safe
-
-ClusterConnectionInfo
+
+EvictionSafe
|
+ Game server supports termination via SIGTERM: +- Always: Allow eviction for both Cluster Autoscaler and node drain for upgrades +- OnUpgrade: Allow eviction for upgrades alone +- Never (default): Pod should run to completion |
string
alias)-
Package v1 is the v1 version of the API.
+(Appears on: +Eviction) -Resource Types: -+
EvictionSafe specified whether the game server supports termination via SIGTERM
+ +-
Fleet is the data structure for a Fleet resource
+(Appears on: +Fleet) + ++
FleetSpec is the spec for a Fleet
-apiVersion
-string |
-
-
-agones.dev/v1
-
- |
-|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-kind
-string
- |
-Fleet |
-|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-metadata
-
-
-Kubernetes meta/v1.ObjectMeta
-
-
- |
-
-Refer to the Kubernetes API documentation for the fields of the
-metadata field.
- |
-|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-spec
-
-
-FleetSpec
-
-
- |
-
- - -
|
+
Field | +Description |
---|---|
-status
+replicas
-
-FleetStatus
-
+int32
|
+ Replicas the total number of current GameServer replicas |
-
GameServer is the data structure for a GameServer resource.
-It is worth noting that while there is a GameServerStatus
Status entry for the GameServer
, it is not
-defined as a subresource - unlike Fleet
and other Agones resources.
-This is so that we can retain the ability to change multiple aspects of a GameServer
in a single atomic operation,
-which is particularly useful for operations such as allocation.
Field | -Description | -||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
-apiVersion
-string |
-
-
-agones.dev/v1
-
- |
-||||||||||||||||||||||
-kind
-string
- |
-GameServer |
-||||||||||||||||||||||
-metadata
+readyReplicas
-
-Kubernetes meta/v1.ObjectMeta
-
+int32
|
-Refer to the Kubernetes API documentation for the fields of the
-metadata field.
+ReadyReplicas are the number of Ready GameServer replicas |
||||||||||||||||||||||
-spec
-
-
-GameServerSpec
-
-
- |
-
- - -
GameServerPort +++(Appears on: +GameServerSpec) + ++ GameServerPort defines a set of Ports that +are to be exposed via the GameServer + +
HostPort the port exposed on the host for clients to connect to |
||||||||||||||||||||||
-status
+protocol
-
-GameServerStatus
+
+Kubernetes core/v1.Protocol
|
+ Protocol is the network protocol being used. Defaults to UDP. TCP and TCPUDP are other options. |
-
GameServerSet is the data structure for a set of GameServers. -This matches philosophically with the relationship between -Deployments and ReplicaSets
+(Appears on: +GameServerSet) + ++
GameServerSetSpec the specification for GameServerSet
-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) +GameServerSet)
-
AggregatedPlayerStatus stores total player tracking values
+GameServerSetStatus is the status of a GameServerSet
-count
-
-int64
-
- |
-- | -
-capacity
+replicas
-int64
+int32
|
+ Replicas is the total number of current GameServer replicas |
-(Appears on: -FleetSpec, -GameServerSetSpec) -
--
AllocationOverflow specifies what labels and/or annotations to apply on Allocated GameServers
-if the desired number of the underlying GameServerSet
drops below the number of Allocated GameServers
-attached to it.
Field | -Description | -
---|---|
-labels
+readyReplicas
-map[string]string
+int32
|
-(Optional)
- Labels to be applied to the ReadyReplicas is the number of Ready GameServer replicas |
-annotations
+reservedReplicas
-map[string]string
+int32
|
-(Optional)
- Annotations to be applied to the ReservedReplicas is the number of Reserved GameServer replicas |
-(Appears on: -GameServerSpec, -GameServerStatus) -
--
CounterStatus stores the current counter values
- -Field | -Description | -
---|---|
-count
+allocatedReplicas
-int64
+int32
|
+ AllocatedReplicas is the number of Allocated GameServer replicas |
-capacity
+shutdownReplicas
-int64
+int32
|
+ ShutdownReplicas is the number of Shutdown GameServers replicas |
-(Appears on: -GameServerSpec, -GameServerStatus) -
--
Eviction specifies the eviction tolerance of the GameServer
- -Field | -Description | -
---|---|
-safe
+players
-
-EvictionSafe
+
+AggregatedPlayerStatus
|
- (Alpha, SafeToEvict feature flag) -Game server supports termination via SIGTERM: -- Always: Allow eviction for both Cluster Autoscaler and node drain for upgrades -- OnUpgrade: Allow eviction for upgrades alone -- Never (default): Pod should run to completion +(Optional) +[Stage:Alpha] +[FeatureFlag:PlayerTracking] +Players is the current total player capacity and count for this GameServerSet |
string
alias)-(Appears on: -Eviction) -
--
EvictionSafe specified whether the game server supports termination via SIGTERM
- -(Appears on: -Fleet) +GameServer, +GameServerTemplateSpec)
-
FleetSpec is the spec for a Fleet
+GameServerSpec is the spec for a GameServer resource
-replicas
+container
-int32
+string
|
- Replicas are the number of GameServers that should be in this set. Defaults to 0. +Container specifies which Pod container is the game server. Only required if there is more than one +container defined |
-allocationOverflow
+ports
-
-AllocationOverflow
+
+[]GameServerPort
|
-(Optional)
- [Stage: Alpha]
-[FeatureFlag:FleetAllocationOverflow]
-Labels and Annotations to apply to GameServers when the number of Allocated GameServers drops below
-the desired replicas on the underlying Ports are the array of ports that can be exposed via the game server |
-strategy
+health
-
-Kubernetes apps/v1.DeploymentStrategy
+
+Health
|
- Deployment strategy +Health configures health checking |
- Scheduling strategy. Defaults to “Packed”. +Scheduling strategy. Defaults to “Packed” |
|
-template
+sdkServer
-
-GameServerTemplateSpec
+
+SdkServer
|
- Template the GameServer template to apply for this Fleet +SdkServer specifies parameters for the Agones SDK Server sidecar container |
-(Appears on: -Fleet, -FleetAutoscaleRequest) -
--
FleetStatus is the status of a Fleet
- -Field | -Description | -
---|---|
-replicas
+template
-int32
+
+Kubernetes core/v1.PodTemplateSpec
+
|
- Replicas the total number of current GameServer replicas +Template describes the Pod that will be created for the GameServer |
-readyReplicas
+players
-int32
+
+PlayersSpec
+
|
- ReadyReplicas are the number of Ready GameServer replicas +(Optional) +(Alpha, PlayerTracking feature flag) Players provides the configuration for player tracking features. |
-reservedReplicas
+counters
-int32
+
+map[string]agones.dev/agones/pkg/apis/agones/v1.CounterStatus
+
|
- 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. +(Optional) +(Alpha, CountsAndLists feature flag) Counters and Lists provides the configuration for generic tracking features. |
-allocatedReplicas
+lists
-int32
+
+map[string]agones.dev/agones/pkg/apis/agones/v1.ListStatus
+
|
- AllocatedReplicas are the number of Allocated GameServer replicas |
-players
+eviction
-
-AggregatedPlayerStatus
+
+Eviction
|
(Optional)
- [Stage:Alpha] -[FeatureFlag:PlayerTracking] -Players are the current total player capacity and count for this Fleet +Eviction specifies the eviction tolerance of the GameServer. Defaults to “Never”. |
string
alias)+(Appears on: +GameServerSelector, +GameServerStatus) +
++
GameServerState is the state for the GameServer
+ +(Appears on: -GameServerSpec) +GameServer)
-
GameServerPort defines a set of Ports that -are to be exposed via the GameServer
+GameServerStatus is the status for a GameServer resource
-name
+state
-string
+
+GameServerState
+
|
- Name is the descriptive name of the port +GameServerState is the current state of a GameServer, e.g. Creating, Starting, Ready, etc |
-portPolicy
+ports
-
-PortPolicy
+
+[]GameServerStatusPort
|
- 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 |
-container
+address
string
|
-(Optional)
- Container is the name of the container on which to open the port. Defaults to the game server container. - |
-
-containerPort
-
-int32
-
- |
-
- ContainerPort is the port that is being opened on the specified container’s process |
-hostPort
+nodeName
-int32
+string
|
- HostPort the port exposed on the host for clients to connect to |
-protocol
+reservedUntil
-
-Kubernetes core/v1.Protocol
+
+Kubernetes meta/v1.Time
|
- Protocol is the network protocol being used. Defaults to UDP. TCP and TCPUDP are other options. |
-(Appears on: -GameServerSet) -
--
GameServerSetSpec the specification for GameServerSet
- -Field | -Description | -
---|---|
-replicas
+players
-int32
+
+PlayerStatus
+
|
- Replicas are the number of GameServers that should be in this set +(Optional) +[Stage:Alpha] +[FeatureFlag:PlayerTracking] |
-allocationOverflow
+counters
-
-AllocationOverflow
+
+map[string]agones.dev/agones/pkg/apis/agones/v1.CounterStatus
|
(Optional)
- [Stage: Alpha]
-[FeatureFlag:FleetAllocationOverflow]
-Labels and Annotations to apply to GameServers when the number of Allocated GameServers drops below
-the desired replicas on the underlying (Alpha, CountsAndLists feature flag) Counters and Lists provides the configuration for generic tracking features. |
-scheduling
+lists
-agones.dev/agones/pkg/apis.SchedulingStrategy
+
+map[string]agones.dev/agones/pkg/apis/agones/v1.ListStatus
+
|
- Scheduling strategy. Defaults to “Packed”. +(Optional) |
-template
+eviction
-
-GameServerTemplateSpec
+
+Eviction
|
- Template the GameServer template to apply for this GameServerSet +(Optional) +Eviction specifies the eviction tolerance of the GameServer. |
(Appears on: -GameServerSet) +GameServerAllocationStatus, +GameServerStatus)
-
GameServerSetStatus is the status of a GameServerSet
+GameServerStatusPort shows the port that was allocated to a +GameServer.
-replicas
-
-int32
-
- |
-
- Replicas is the total number of current GameServer replicas - |
-
-readyReplicas
+name
-int32
+string
|
- ReadyReplicas is the number of Ready GameServer replicas |
-reservedReplicas
+port
int32
|
- ReservedReplicas is the number of Reserved GameServer replicas |
+(Appears on: +FleetSpec, +GameServerSetSpec) +
++
GameServerTemplateSpec is a template for GameServers
+ +
-allocatedReplicas
-
-int32
-
- |
-
- AllocatedReplicas is the number of Allocated GameServer replicas - |
+Field | +Description |
---|---|---|---|
-shutdownReplicas
+metadata
-int32
+
+Kubernetes meta/v1.ObjectMeta
+
|
- ShutdownReplicas is the number of Shutdown GameServers replicas +Refer to the Kubernetes API documentation for the fields of the +metadata field.
|
||
-players
+spec
-
-AggregatedPlayerStatus
+
+GameServerSpec
|
-(Optional)
- [Stage:Alpha] -[FeatureFlag:PlayerTracking] -Players is the current total player capacity and count for this GameServerSet - |
-
-(Appears on: -GameServer, -GameServerTemplateSpec) -
--
GameServerSpec is the spec for a GameServer resource
- +Field | -Description | -
---|---|
container
@@ -3048,29 +2610,22 @@ GameServerSpec |
(Optional)
- (Alpha, SafeToEvict feature flag) Eviction specifies the eviction tolerance of the GameServer. Defaults to “Never”. +Eviction specifies the eviction tolerance of the GameServer. Defaults to “Never”. + |
+
string
alias)-(Appears on: -GameServerSelector, -GameServerStatus) -
--
GameServerState is the state for the GameServer
- -(Appears on: -GameServer) +GameServerSpec)
-
GameServerStatus is the status for a GameServer resource
+Health configures health checking on the GameServer
-state
+disabled
-
-GameServerState
-
+bool
|
- GameServerState is the current state of a GameServer, e.g. Creating, Starting, Ready, etc +Disabled is whether health checking is disabled or not |
-ports
+periodSeconds
-
-[]GameServerStatusPort
-
+int32
|
+ PeriodSeconds is the number of seconds each health ping has to occur in |
-address
+failureThreshold
-string
+int32
|
+ FailureThreshold how many failures in a row constitutes unhealthy |
-nodeName
+initialDelaySeconds
-string
+int32
|
+ InitialDelaySeconds initial delay before checking health |
+(Appears on: +GameServerSpec, +GameServerStatus) +
++
ListStatus stores the current list values
+ +Field | +Description | +
---|---|
-reservedUntil
+capacity
-
-Kubernetes meta/v1.Time
-
+int64
|
@@ -3139,72 +2711,73 @@ GameServerStatus |
-players
+values
-
-PlayerStatus
-
+[]string
|
-(Optional)
- [Stage:Alpha] -[FeatureFlag:PlayerTracking] |
+(Appears on: +GameServerStatus) +
++
PlayerStatus stores the current player capacity values
+ +Field | +Description | +
---|---|
-counters
+count
-
-map[string]agones.dev/agones/pkg/apis/agones/v1.CounterStatus
-
+int64
|
-(Optional)
- (Alpha, CountsAndLists feature flag) Counters and Lists provides the configuration for generic tracking features. |
-lists
+capacity
-
-map[string]agones.dev/agones/pkg/apis/agones/v1.ListStatus
-
+int64
|
-(Optional) |
-eviction
+ids
-
-Eviction
-
+[]string
|
-(Optional)
- (Alpha, SafeToEvict feature flag) Eviction specifies the eviction tolerance of the GameServer. |
(Appears on: -GameServerAllocationStatus, -GameServerStatus) +GameServerSpec)
-
GameServerStatusPort shows the port that was allocated to a -GameServer.
+PlayersSpec tracks the initial player capacity
-name
+initialCapacity
-string
+int64
+
+ |
++ | +
string
alias)+(Appears on: +GameServerPort) +
++
PortPolicy is the port policy for the GameServer
+ ++(Appears on: +GameServerSpec) +
++
SdkServer specifies parameters for the Agones SDK Server sidecar container
+ +Field | +Description | +
---|---|
+logLevel
+
+
+SdkServerLogLevel
+
|
+ LogLevel for SDK server (sidecar) logs. Defaults to “Info” |
-port
+grpcPort
+
+int32
+
+ |
+
+ GRPCPort is the port on which the SDK Server binds the gRPC server to accept incoming connections + |
+
+httpPort
int32
|
+ HTTPPort is the port on which the SDK Server binds the HTTP gRPC gateway server to accept incoming connections |
string
alias)(Appears on: -FleetSpec, -GameServerSetSpec) +SdkServer)
-
GameServerTemplateSpec is a template for GameServers
+SdkServerLogLevel is the log level for SDK server (sidecar) logs
+ ++
Package v1 is the v1 version of the API.
+ +Resource Types: + ++
GameServerAllocation is the data structure for allocating against a set of
+GameServers, defined selectors
selectors
+apiVersion
+string |
+
+
+allocation.agones.dev/v1
+
+ |
+||||||||||||||||||
+kind
+string
+ |
+GameServerAllocation |
+||||||||||||||||||
metadata
@@ -3272,8 +2929,8 @@ GameServerTemplateSpec
spec
-
-GameServerSpec
+
+GameServerAllocationSpec
|
+|||||||||||||||||||
-eviction
+status
-
-Eviction
+
+GameServerAllocationStatus
|
-(Optional)
- (Alpha, SafeToEvict feature flag) Eviction specifies the eviction tolerance of the GameServer. Defaults to “Never”. - |
-
(Appears on: -GameServerSpec) +GameServerAllocationSpec)
-
Health configures health checking on the GameServer
+CounterAction is an optional action that can be performed on a Counter at allocation. +Action: “Increment” or “Decrement” the Counter’s Count (optional). Must also define the Amount. +Amount: The amount to increment or decrement the Count (optional). Must be a positive integer. +Capacity: Update the maximum capacity of the Counter to this number (optional). Min 0, Max int64.
-disabled
-
-bool
-
- |
-
- Disabled is whether health checking is disabled or not - |
-
-periodSeconds
+action
-int32
+string
|
- PeriodSeconds is the number of seconds each health ping has to occur in |
-failureThreshold
+amount
-int32
+int64
|
- FailureThreshold how many failures in a row constitutes unhealthy |
-initialDelaySeconds
+capacity
-int32
+int64
|
- InitialDelaySeconds initial delay before checking health |
(Appears on: -GameServerSpec, -GameServerStatus) +GameServerSelector)
-
ListStatus stores the current list values
+CounterSelector is the filter options for a GameServer based on the count and/or available capacity. +0 for MaxCount or MaxAvailable means unlimited maximum. Default for all fields: 0
-capacity
+minCount
int64
@@ -3508,9 +3169,29 @@ ListStatus | |
-values
+maxCount
-[]string
+int64
+
+ |
++ | +
+minAvailable
+
+int64
+
+ |
++ | +
+maxAvailable
+
+int64
|
@@ -3518,14 +3199,14 @@ ListStatus |
(Appears on: -GameServerStatus) +GameServerAllocation)
-
PlayerStatus stores the current player capacity values
+GameServerAllocationSpec is the spec for a GameServerAllocation
-count
+multiClusterSetting
-int64
+
+MultiClusterSetting
+
|
+ MultiClusterPolicySelector if specified, multi-cluster policies are applied. +Otherwise, allocation will happen locally. |
-capacity
+required
-int64
+
+GameServerSelector
+
|
+ Deprecated: use field Selectors instead. If Selectors is set, this field is ignored. +Required is the GameServer selector from which to choose GameServers from. +Defaults to all GameServers. |
-ids
+preferred
-[]string
+
+[]GameServerSelector
+
|
+ Deprecated: use field Selectors instead. If Selectors is set, this field is ignored.
+Preferred is an ordered list of preferred GameServer selectors
+that are optional to be fulfilled, but will be searched before the |
-(Appears on: -GameServerSpec) -
--
PlayersSpec tracks the initial player capacity
- -Field | -Description | +
+priorities
+
+
+[]Priority
+
+
+ |
+
+(Optional)
+ (Alpha, CountsAndLists feature flag) The first Priority on the array of Priorities is the most +important for sorting. The allocator will use the first priority for sorting GameServers in the +Selector set, and will only use any following priority for tie-breaking during sort. +Impacts which GameServer is checked first. + |
---|---|---|---|
-initialCapacity
+selectors
-int64
+
+[]GameServerSelector
+
+
+ |
+
+ Ordered list of GameServer label selectors. +If the first selector is not matched, the selection attempts the second selector, and so on. +This is useful for things like smoke testing of new game servers. +Note: This field can only be set if neither Required or Preferred is set. + |
+||
+scheduling
+
+agones.dev/agones/pkg/apis.SchedulingStrategy
+
+ |
+
+ Scheduling strategy. Defaults to “Packed”. + |
+||
+metadata
+
+
+MetaPatch
+
+
+ |
+
+ MetaPatch is optional custom metadata that is added to the game server at allocation +You can use this to tell the server necessary session data + |
+||
+counters
+
+
+map[string]agones.dev/agones/pkg/apis/allocation/v1.CounterAction
+
+
+ |
+
+(Optional)
+ (Alpha, CountsAndLists feature flag) Counters and Lists provide a set of actions to perform +on Counters and Lists during allocation. + |
+||
+lists
+
+
+map[string]agones.dev/agones/pkg/apis/allocation/v1.ListAction
+
|
@@ -3596,23 +3350,23 @@ PlayersSpec |
string
alias)(Appears on: -GameServerPort) +GameServerAllocationStatus)
-
PortPolicy is the port policy for the GameServer
+GameServerAllocationState is the Allocation state
-(Appears on: -GameServerSpec) +GameServerAllocation)
-
SdkServer specifies parameters for the Agones SDK Server sidecar container
+GameServerAllocationStatus is the status for an GameServerAllocation resource
-logLevel
+state
-
-SdkServerLogLevel
+
+GameServerAllocationState
|
- LogLevel for SDK server (sidecar) logs. Defaults to “Info” +GameServerState is the current state of an GameServerAllocation, e.g. Allocated, or UnAllocated |
-grpcPort
+gameServerName
-int32
+string
|
- GRPCPort is the port on which the SDK Server binds the gRPC server to accept incoming connections |
-httpPort
+ports
-int32
+
+[]GameServerStatusPort
+
|
- HTTPPort is the port on which the SDK Server binds the HTTP gRPC gateway server to accept incoming connections |
string
alias)-(Appears on: -SdkServer) -
--
SdkServerLogLevel is the log level for SDK server (sidecar) logs
- -
-Generated with gen-crd-api-reference-docs
.
-
Packages:
-address
+
+string
+
+nodeName
+
+string
+
+source
+
+string
+
+If the allocation is from a remote cluster, Source is the endpoint of the remote agones-allocator. +Otherwise, Source is “local”
+-
Package v1 is the v1 version of the API.
+(Appears on: +GameServerAllocationSpec) -Resource Types: - --
FleetAutoscaler is the data structure for a FleetAutoscaler resource
+GameServerSelector contains all the filter options for selecting +a GameServer for allocation.
-apiVersion
-string |
-
-
-autoscaling.agones.dev/v1
-
+LabelSelector
+
+
+Kubernetes meta/v1.LabelSelector
+
+
|
-||||||||
-kind
-string
+
+(Members of See: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ |
-FleetAutoscaler |
||||||||
-metadata
+gameServerState
-
-Kubernetes meta/v1.ObjectMeta
+
+GameServerState
|
-Refer to the Kubernetes API documentation for the fields of the
-metadata field.
+(Optional)
+[Stage:Beta] +[FeatureFlag:StateAllocationFilter] +GameServerState specifies which State is the filter to be used when attempting to retrieve a GameServer +via Allocation. Defaults to “Ready”. The only other option is “Allocated”, which can be used in conjunction with +label/annotation/player selectors to retrieve an already Allocated GameServer. |
||||||||
-spec
+players
-
-FleetAutoscalerSpec
+
+PlayerSelector
|
- - -
ListAction +++(Appears on: +GameServerAllocationSpec) + ++ ListAction is an optional action that can be performed on a List at allocation. +AddValues: Append values to a List’s Values array (optional). Any duplicate values will be ignored. +Capacity: Update the maximum capacity of the Counter to this number (optional). Min 0, Max 1000. + +
|
||||||||
-status
+capacity
-
-FleetAutoscalerStatus
-
+int64
|
@@ -3810,14 +3589,17 @@ FleetAutoscaler |
(Appears on: -FleetAutoscalerPolicy) +GameServerSelector)
-
BufferPolicy controls the desired behavior of the buffer policy.
+ListSelector is the filter options for a GameServer based on List available capacity and/or the +existence of a value in a List. +0 for MaxAvailable means unlimited maximum. Default for integer fields: 0 +“” for ContainsValue means ignore field. Default for string field: “”
-maxReplicas
+containsValue
-int32
+string
|
- MaxReplicas is the maximum amount of replicas that the fleet may have. -It must be bigger than both MinReplicas and BufferSize |
-minReplicas
+minAvailable
-int32
+int64
|
- 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
+maxAvailable
-k8s.io/apimachinery/pkg/util/intstr.IntOrString
+int64
|
- 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: -FleetAutoscalerSync) +GameServerAllocationSpec)
-
FixedIntervalSync controls the desired behavior of the fixed interval based sync.
+MetaPatch is the metadata used to patch the GameServer metadata on allocation
-seconds
+labels
-int32
+map[string]string
+
+ |
++ | +
+annotations
+
+map[string]string
|
- Seconds defines how often we run fleet autoscaling in seconds |
(Appears on: -FleetAutoscaleReview) +GameServerAllocationSpec)
-
FleetAutoscaleRequest defines the request to webhook autoscaler endpoint
+MultiClusterSetting specifies settings for multi-cluster allocation.
-uid
+enabled
-k8s.io/apimachinery/pkg/types.UID
+bool
|
- 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
+policySelector
-string
+
+Kubernetes meta/v1.LabelSelector
+
|
- Name is the name of the Fleet being scaled |
-namespace
+ |
+(Appears on: +GameServerSelector) +
++
PlayerSelector is the filter options for a GameServer based on player counts
+ +Field | +Description | +
---|---|
+minAvailable
-string
+int64
|
- Namespace is the namespace associated with the request (if any). |
-status
+maxAvailable
-
-FleetStatus
-
+int64
|
- The Fleet’s status values |
(Appears on: -FleetAutoscaleReview) +GameServerAllocationSpec)
-
FleetAutoscaleResponse defines the response of webhook autoscaler endpoint
+Priority is a sorting option for GameServers with Counters or Lists based on the count or +number of items in a List. +PriorityType: Sort by a “Counter” or a “List”. +Key: The name of the Counter or List. If not found on the GameServer, has no impact. +Order: Sort by “Ascending” or “Descending”. Default is “Descending” so bigger count is preferred. +“Ascending” would be smaller count is preferred.
-uid
+priorityType
-k8s.io/apimachinery/pkg/types.UID
+string
|
- UID is an identifier for the individual request/response. -This should be copied over from the corresponding FleetAutoscaleRequest. |
-scale
+key
-bool
+string
|
- Set to false if no scaling should occur to the Fleet |
-replicas
+order
-int32
+string
|
- The targeted replica count |
+Generated with gen-crd-api-reference-docs
.
+
Packages:
++
Package v1 is the v1 version of the API.
+ +Resource Types: +-
FleetAutoscaleReview is passed to the webhook with a populated Request value, -and then returned with a populated Response.
+Fleet is the data structure for a Fleet resource
-request
+apiVersion
+string |
+
+
+agones.dev/v1
+
+ |
+
+kind
+string
+ |
+Fleet |
+
+metadata
-
-FleetAutoscaleRequest
+
+Kubernetes meta/v1.ObjectMeta
|
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
|
-response
+spec
-
-FleetAutoscaleResponse
+
+FleetSpec
|
- | -
-(Appears on: -FleetAutoscalerSpec) -
--
FleetAutoscalerPolicy describes how to scale a fleet
- +Field | -Description | -
---|---|
-type
+replicas
-
-FleetAutoscalerPolicyType
-
+int32
|
- Type of autoscaling policy. +Replicas are the number of GameServers that should be in this set. Defaults to 0. |
-buffer
+allocationOverflow
-
-BufferPolicy
+
+AllocationOverflow
|
(Optional)
- Buffer policy config params. Present only if FleetAutoscalerPolicyType = Buffer. +[Stage: Alpha]
+[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 |
-webhook
+strategy
-
-WebhookPolicy
+
+Kubernetes apps/v1.DeploymentStrategy
|
-(Optional)
- Webhook policy config params. Present only if FleetAutoscalerPolicyType = Webhook. +Deployment strategy |
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
+scheduling
-string
+agones.dev/agones/pkg/apis.SchedulingStrategy
|
+ Scheduling strategy. Defaults to “Packed”. |
-policy
+template
-
-FleetAutoscalerPolicy
+
+GameServerTemplateSpec
|
- Autoscaling policy +Template the GameServer template to apply for this Fleet + |
+
sync
+status
-
-FleetAutoscalerSync
+
+FleetStatus
[Stage:Beta] -[FeatureFlag:CustomFasSyncInterval] -Sync defines when FleetAutoscalers runs autoscaling
-(Appears on: -FleetAutoscaler) -
--
FleetAutoscalerStatus defines the current status of a FleetAutoscaler
+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.
-currentReplicas
-
-int32
-
- |
+
- CurrentReplicas is the current number of gameserver replicas -of the fleet managed by this autoscaler, as last seen by the autoscaler - |
-||||||||||||||||||||||||
-desiredReplicas
+kind
+string
+ |
+GameServer |
+||||||||||||||||||||||||
+metadata
-int32
+
+Kubernetes meta/v1.ObjectMeta
+
|
- DesiredReplicas is the desired number of gameserver replicas -of the fleet managed by this autoscaler, as last calculated by the autoscaler +Refer to the Kubernetes API documentation for the fields of the +metadata field.
|
||||||||||||||||||||||||
-lastScaleTime
+spec
-
-Kubernetes meta/v1.Time
+
+GameServerSpec
|
-(Optional)
- lastScaleTime is the last time the FleetAutoscaler scaled the attached fleet, ++ +
FleetAutoscalerSync ---(Appears on: -FleetAutoscalerSpec) - -- FleetAutoscalerSync describes when to sync a fleet - -
FleetAutoscalerSyncType
-(
- |
+
Field | -Description | +
+players
+
+
+PlayersSpec
+
+
+ |
+
+(Optional)
+ (Alpha, PlayerTracking feature flag) Players provides the configuration for player tracking features. + |
---|---|---|---|
-url
+counters
-string
+
+map[string]agones.dev/agones/pkg/apis/agones/v1.CounterStatus
+
|
(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. +(Alpha, CountsAndLists feature flag) Counters and Lists provides the configuration for generic tracking features. |
||
-service
+lists
-
-Kubernetes admissionregistration/v1.ServiceReference
+
+map[string]agones.dev/agones/pkg/apis/agones/v1.ListStatus
|
-(Optional)
-
If the webhook is running within the cluster, then you should use |
||
-caBundle
+eviction
-[]byte
+
+Eviction
+
|
(Optional)
-
Eviction specifies the eviction tolerance of the GameServer. Defaults to “Never”. + |
+
status
+
+
+GameServerStatus
+
+
+-
Package v1 is the v1 version of the API.
- -Resource Types: - --
GameServerAllocationPolicy is the Schema for the gameserverallocationpolicies API
+GameServerSet is the data structure for a set of GameServers. +This matches philosophically with the relationship between +Deployments and ReplicaSets
-multicluster.agones.dev/v1
+agones.dev/v1
|
@@ -4446,7 +4223,7 @@ GameServerAllocationPolicy |
+GameServerSet |
|||||
@@ -4466,8 +4243,8 @@ GameServerAllocat
spec
-
-GameServerAllocationPolicySpec
+
+GameServerSetSpec
|
-
-(Appears on: -GameServerAllocationPolicySpec) -
--
ClusterConnectionInfo defines the connection information for a cluster
- -Field | -Description | -
---|---|
-clusterName
+template
-string
+
+GameServerTemplateSpec
+
|
- Optional: the name of the targeted cluster +Template the GameServer template to apply for this GameServerSet |
-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
+status
-string
+
+GameServerSetStatus
+
The name of the secret that contains TLS client certificates to connect the allocator server in the targeted cluster
+(Appears on: +FleetStatus, +GameServerSetStatus) +
++
AggregatedCounterStatus stores total Counter tracking values
+ +Field | +Description | +
---|---|
-namespace
+count
-string
+int64
|
- The cluster namespace from which to allocate gameservers |
-serverCa
+capacity
-[]byte
+int64
|
- The PEM encoded server CA, used by the allocator client to authenticate the remote server. |
-
ConnectionInfoIterator an iterator on ClusterConnectionInfo
+(Appears on: +FleetStatus, +GameServerSetStatus) + ++
AggregatedListStatus stores total List tracking values
-currPriority
+count
-int
+int64
|
- currPriority Current priority index from the orderedPriorities |
-orderedPriorities
+capacity
-[]int32
+int64
|
- orderedPriorities list of ordered priorities |
+(Appears on: +FleetStatus, +GameServerSetStatus) +
++
AggregatedPlayerStatus stores total player tracking values
+ +Field | +Description | +
---|---|
-priorityToCluster
+count
-map[int32]map[string][]*agones.dev/agones/pkg/apis/multicluster/v1.GameServerAllocationPolicy
+int64
|
- priorityToCluster Map of priority to cluster-policies map |
-clusterBlackList
+capacity
-map[string]bool
+int64
|
- clusterBlackList the cluster blacklist for the clusters that has already returned |
(Appears on: -GameServerAllocationPolicy) +FleetSpec, +GameServerSetSpec)
-
GameServerAllocationPolicySpec defines the desired state of GameServerAllocationPolicy
+AllocationOverflow specifies what labels and/or annotations to apply on Allocated GameServers
+if the desired number of the underlying GameServerSet
drops below the number of Allocated GameServers
+attached to it.
-priority
-
-int32
-
- |
-- | -
-weight
+labels
-int
+map[string]string
|
+(Optional)
+ Labels to be applied to the |
-connectionInfo
+annotations
-
-ClusterConnectionInfo
-
+map[string]string
|
+(Optional)
+ Annotations to be applied to the |
-
Package v1 is the v1 version of the API.
+(Appears on: +GameServerSpec, +GameServerStatus) -Resource Types: --
Fleet is the data structure for a Fleet resource
+CounterStatus stores the current counter values
-apiVersion
-string |
-
-
-agones.dev/v1
-
+count
+
+int64
+
|
-
-kind
-string
|
-Fleet |
-metadata
+capacity
-
-Kubernetes meta/v1.ObjectMeta
-
+int64
|
-Refer to the Kubernetes API documentation for the fields of the
-metadata field.
|
+(Appears on: +GameServerSpec, +GameServerStatus) +
++
Eviction specifies the eviction tolerance of the GameServer
+ +Field | +Description | +
---|---|
-spec
+safe
-
-FleetSpec
+
+EvictionSafe
|
- - + Game server supports termination via SIGTERM: +- Always: Allow eviction for both Cluster Autoscaler and node drain for upgrades +- OnUpgrade: Allow eviction for upgrades alone +- Never (default): Pod should run to completion + |
+
string
alias)+(Appears on: +Eviction) +
++
EvictionSafe specified whether the game server supports termination via SIGTERM
+ ++(Appears on: +Fleet) +
++
FleetSpec is the spec for a Fleet
+Field | +Description | +
---|---|
replicas
@@ -4833,31 +4654,17 @@ FleetTemplate the GameServer template to apply for this Fleet |
status
-
-
-FleetStatus
-
-
--
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.
+
FleetStatus is the status of a Fleet
-apiVersion
-string |
-
-
-agones.dev/v1
-
- |
-||||||||||||||||||||||
-kind
-string
- |
-GameServer |
-||||||||||||||||||||||
-metadata
+replicas
-
-Kubernetes meta/v1.ObjectMeta
-
+int32
|
-Refer to the Kubernetes API documentation for the fields of the
-metadata field.
+Replicas the total number of current GameServer replicas |
||||||||||||||||||||||
-spec
+readyReplicas
-
-GameServerSpec
-
+int32
|
- - -
GameServerPort +++(Appears on: +GameServerSpec) + ++ GameServerPort defines a set of Ports that +are to be exposed via the GameServer + +
HostPort the port exposed on the host for clients to connect to |
||||||||||||||||||||||
-status
+protocol
-
-GameServerStatus
+
+Kubernetes core/v1.Protocol
|
+ Protocol is the network protocol being used. Defaults to UDP. TCP and TCPUDP are other options. |
-
GameServerSet is the data structure for a set of GameServers. -This matches philosophically with the relationship between -Deployments and ReplicaSets
+(Appears on: +GameServerSet) + ++
GameServerSetSpec the specification for GameServerSet
-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) +GameServerSet)
-
AggregatedPlayerStatus stores total player tracking values
+GameServerSetStatus is the status of a GameServerSet
-count
+replicas
-int64
+int32
|
+ Replicas is the total number of current GameServer replicas |
-capacity
+readyReplicas
-int64
+int32
|
+ ReadyReplicas is the number of Ready GameServer replicas |
-(Appears on: -FleetSpec, -GameServerSetSpec) -
--
AllocationOverflow specifies what labels and/or annotations to apply on Allocated GameServers
-if the desired number of the underlying GameServerSet
drops below the number of Allocated GameServers
-attached to it.
Field | -Description | -
---|---|
-labels
+reservedReplicas
-map[string]string
+int32
|
-(Optional)
- Labels to be applied to the ReservedReplicas is the number of Reserved GameServer replicas |
-annotations
+allocatedReplicas
-map[string]string
+int32
|
-(Optional)
- Annotations to be applied to the AllocatedReplicas is the number of Allocated GameServer replicas |
-(Appears on: -GameServerSpec, -GameServerStatus) -
--
CounterStatus stores the current counter values
- -Field | -Description | -
---|---|
-count
+shutdownReplicas
-int64
+int32
|
+ ShutdownReplicas is the number of Shutdown GameServers replicas |
-capacity
+players
-int64
+
+AggregatedPlayerStatus
+
|
+(Optional)
+ [Stage:Alpha] +[FeatureFlag:PlayerTracking] +Players is the current total player capacity and count for this GameServerSet |
-(Appears on: -GameServerSpec, -GameServerStatus) -
--
Eviction specifies the eviction tolerance of the GameServer
- -Field | -Description | +
+counters
+
+
+map[string]agones.dev/agones/pkg/apis/agones/v1.AggregatedCounterStatus
+
+
+ |
+
+(Optional)
+ (Alpha, CountsAndLists feature flag) Counters provides aggregated Counter capacity and Counter +count for this GameServerSet. + |
---|---|---|---|
-safe
+lists
-
-EvictionSafe
+
+map[string]agones.dev/agones/pkg/apis/agones/v1.AggregatedListStatus
|
- Game server supports termination via SIGTERM: -- Always: Allow eviction for both Cluster Autoscaler and node drain for upgrades -- OnUpgrade: Allow eviction for upgrades alone -- Never (default): Pod should run to completion +(Optional) +(Alpha, CountsAndLists feature flag) Lists provides aggregated List capacity and List values +for this GameServerSet. |
string
alias)-(Appears on: -Eviction) -
--
EvictionSafe specified whether the game server supports termination via SIGTERM
- -(Appears on: -Fleet) +GameServer, +GameServerTemplateSpec)
-
FleetSpec is the spec for a Fleet
+GameServerSpec is the spec for a GameServer resource
-replicas
+container
-int32
+string
|
- Replicas are the number of GameServers that should be in this set. Defaults to 0. +Container specifies which Pod container is the game server. Only required if there is more than one +container defined |
-allocationOverflow
+ports
-
-AllocationOverflow
+
+[]GameServerPort
|
-(Optional)
- [Stage: Alpha]
-[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 Ports are the array of ports that can be exposed via the game server |
-strategy
+health
-
-Kubernetes apps/v1.DeploymentStrategy
+
+Health
|
- Deployment strategy +Health configures health checking |
- Scheduling strategy. Defaults to “Packed”. +Scheduling strategy. Defaults to “Packed” |
|
-template
+sdkServer
-
-GameServerTemplateSpec
+
+SdkServer
|
- Template the GameServer template to apply for this Fleet +SdkServer specifies parameters for the Agones SDK Server sidecar container |
-(Appears on: -Fleet, -FleetAutoscaleRequest) -
--
FleetStatus is the status of a Fleet
- -Field | -Description | -
---|---|
-replicas
+template
-int32
+
+Kubernetes core/v1.PodTemplateSpec
+
|
- Replicas the total number of current GameServer replicas +Template describes the Pod that will be created for the GameServer |
-readyReplicas
+players
-int32
+
+PlayersSpec
+
|
- ReadyReplicas are the number of Ready GameServer replicas +(Optional) +(Alpha, PlayerTracking feature flag) Players provides the configuration for player tracking features. |
-reservedReplicas
+counters
-int32
+
+map[string]agones.dev/agones/pkg/apis/agones/v1.CounterStatus
+
|
- 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. +(Optional) +(Alpha, CountsAndLists feature flag) Counters and Lists provides the configuration for generic tracking features. |
-allocatedReplicas
+lists
-int32
+
+map[string]agones.dev/agones/pkg/apis/agones/v1.ListStatus
+
|
- AllocatedReplicas are the number of Allocated GameServer replicas |
-players
+eviction
-
-AggregatedPlayerStatus
+
+Eviction
|
(Optional)
- [Stage:Alpha] -[FeatureFlag:PlayerTracking] -Players are the current total player capacity and count for this Fleet +Eviction specifies the eviction tolerance of the GameServer. Defaults to “Never”. |
string
alias)+(Appears on: +GameServerSelector, +GameServerStatus) +
++
GameServerState is the state for the GameServer
+ +(Appears on: -GameServerSpec) +GameServer)
-
GameServerPort defines a set of Ports that -are to be exposed via the GameServer
+GameServerStatus is the status for a GameServer resource
-name
+state
-string
+
+GameServerState
+
|
- Name is the descriptive name of the port +GameServerState is the current state of a GameServer, e.g. Creating, Starting, Ready, etc |
-portPolicy
+ports
-
-PortPolicy
+
+[]GameServerStatusPort
|
- 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 |
-container
+address
string
|
-(Optional)
- Container is the name of the container on which to open the port. Defaults to the game server container. - |
-
-containerPort
-
-int32
-
- |
-
- ContainerPort is the port that is being opened on the specified container’s process |
-hostPort
+nodeName
-int32
+string
|
- HostPort the port exposed on the host for clients to connect to |
-protocol
+reservedUntil
-
-Kubernetes core/v1.Protocol
+
+Kubernetes meta/v1.Time
|
- Protocol is the network protocol being used. Defaults to UDP. TCP and TCPUDP are other options. |
-(Appears on: -GameServerSet) -
--
GameServerSetSpec the specification for GameServerSet
- -Field | -Description | -
---|---|
-replicas
+players
-int32
+
+PlayerStatus
+
|
- Replicas are the number of GameServers that should be in this set +(Optional) +[Stage:Alpha] +[FeatureFlag:PlayerTracking] |
-allocationOverflow
+counters
-
-AllocationOverflow
+
+map[string]agones.dev/agones/pkg/apis/agones/v1.CounterStatus
|
(Optional)
- [Stage: Alpha]
-[FeatureFlag:FleetAllocationOverflow]
-Labels and Annotations to apply to GameServers when the number of Allocated GameServers drops below
-the desired replicas on the underlying (Alpha, CountsAndLists feature flag) Counters and Lists provides the configuration for generic tracking features. |
-scheduling
+lists
-agones.dev/agones/pkg/apis.SchedulingStrategy
+
+map[string]agones.dev/agones/pkg/apis/agones/v1.ListStatus
+
|
- Scheduling strategy. Defaults to “Packed”. +(Optional) |
-template
+eviction
-
-GameServerTemplateSpec
+
+Eviction
|
- Template the GameServer template to apply for this GameServerSet +(Optional) +Eviction specifies the eviction tolerance of the GameServer. |
(Appears on: -GameServerSet) +GameServerAllocationStatus, +GameServerStatus)
-
GameServerSetStatus is the status of a GameServerSet
+GameServerStatusPort shows the port that was allocated to a +GameServer.
-replicas
-
-int32
-
- |
-
- Replicas is the total number of current GameServer replicas - |
-
-readyReplicas
+name
-int32
+string
|
- ReadyReplicas is the number of Ready GameServer replicas |
-reservedReplicas
+port
int32
|
- ReservedReplicas is the number of Reserved GameServer replicas |
+(Appears on: +FleetSpec, +GameServerSetSpec) +
++
GameServerTemplateSpec is a template for GameServers
+ +
-allocatedReplicas
-
-int32
-
- |
-
- AllocatedReplicas is the number of Allocated GameServer replicas - |
+Field | +Description |
---|---|---|---|
-shutdownReplicas
+metadata
-int32
+
+Kubernetes meta/v1.ObjectMeta
+
|
- ShutdownReplicas is the number of Shutdown GameServers replicas +Refer to the Kubernetes API documentation for the fields of the +metadata field.
|
||
-players
+spec
-
-AggregatedPlayerStatus
+
+GameServerSpec
|
-(Optional)
- [Stage:Alpha] -[FeatureFlag:PlayerTracking] -Players is the current total player capacity and count for this GameServerSet - |
-
-(Appears on: -GameServer, -GameServerTemplateSpec) -
--
GameServerSpec is the spec for a GameServer resource
- +Field | -Description | -
---|---|
container
@@ -5924,26 +5559,19 @@ GameServerSpecEviction specifies the eviction tolerance of the GameServer. Defaults to “Never”. |
string
alias)-(Appears on: -GameServerSelector, -GameServerStatus) -
--
GameServerState is the state for the GameServer
- -(Appears on: -GameServer) +GameServerSpec)
-
GameServerStatus is the status for a GameServer resource
+Health configures health checking on the GameServer
-state
+disabled
-
-GameServerState
-
+bool
|
- GameServerState is the current state of a GameServer, e.g. Creating, Starting, Ready, etc +Disabled is whether health checking is disabled or not |
-ports
+periodSeconds
-
-[]GameServerStatusPort
-
+int32
|
+ PeriodSeconds is the number of seconds each health ping has to occur in |
-address
+failureThreshold
-string
+int32
|
+ FailureThreshold how many failures in a row constitutes unhealthy |
-nodeName
+initialDelaySeconds
-string
+int32
|
+ InitialDelaySeconds initial delay before checking health |
+(Appears on: +GameServerSpec, +GameServerStatus) +
++
ListStatus stores the current list values
+ +
-reservedUntil
-
-
-Kubernetes meta/v1.Time
-
+Field |
+Description |
+ |
+capacity
+
+int64
|
@@ -6012,72 +5657,73 @@ GameServerStatus | |
-players
+values
-
-PlayerStatus
-
+[]string
|
-(Optional)
- [Stage:Alpha] -[FeatureFlag:PlayerTracking] |
+(Appears on: +GameServerStatus) +
++
PlayerStatus stores the current player capacity values
+ +Field | +Description | +
---|---|
-counters
+count
-
-map[string]agones.dev/agones/pkg/apis/agones/v1.CounterStatus
-
+int64
|
-(Optional)
- (Alpha, CountsAndLists feature flag) Counters and Lists provides the configuration for generic tracking features. |
-lists
+capacity
-
-map[string]agones.dev/agones/pkg/apis/agones/v1.ListStatus
-
+int64
|
-(Optional) |
-eviction
+ids
-
-Eviction
-
+[]string
|
-(Optional)
- Eviction specifies the eviction tolerance of the GameServer. |
(Appears on: -GameServerAllocationStatus, -GameServerStatus) +GameServerSpec)
-
GameServerStatusPort shows the port that was allocated to a -GameServer.
+PlayersSpec tracks the initial player capacity
-name
+initialCapacity
-string
+int64
+
+ |
++ | +
string
alias)+(Appears on: +GameServerPort) +
++
PortPolicy is the port policy for the GameServer
+ ++(Appears on: +GameServerSpec) +
++
SdkServer specifies parameters for the Agones SDK Server sidecar container
+ +Field | +Description | +
---|---|
+logLevel
+
+
+SdkServerLogLevel
+
|
+ LogLevel for SDK server (sidecar) logs. Defaults to “Info” |
-port
+grpcPort
+
+int32
+
+ |
+
+ GRPCPort is the port on which the SDK Server binds the gRPC server to accept incoming connections + |
+
+httpPort
int32
|
+ HTTPPort is the port on which the SDK Server binds the HTTP gRPC gateway server to accept incoming connections |
string
alias)(Appears on: -FleetSpec, -GameServerSetSpec) +SdkServer)
-
GameServerTemplateSpec is a template for GameServers
+SdkServerLogLevel is the log level for SDK server (sidecar) logs
+ ++
Package v1 is the v1 version of the API.
+ +Resource Types: + ++
GameServerAllocation is the data structure for allocating against a set of
+GameServers, defined selectors
selectors
+apiVersion
+string |
+
+
+allocation.agones.dev/v1
+
+ |
+||||||||||||||||||||
+kind
+string
+ |
+GameServerAllocation |
+||||||||||||||||||||
metadata
@@ -6145,8 +5875,8 @@ GameServerTemplateSpec
spec
-
-GameServerSpec
+
+GameServerAllocationSpec
|
-(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
+status
-int32
+
+GameServerAllocationStatus
+
|
- InitialDelaySeconds initial delay before checking health |
(Appears on: -GameServerSpec, -GameServerStatus) +GameServerAllocationSpec)
-
ListStatus stores the current list values
+CounterAction is an optional action that can be performed on a Counter at allocation. +Action: “Increment” or “Decrement” the Counter’s Count (optional). Must also define the Amount. +Amount: The amount to increment or decrement the Count (optional). Must be a positive integer. +Capacity: Update the maximum capacity of the Counter to this number (optional). Min 0, Max int64.
-capacity
-
-int64
-
- |
-- | -
-values
+action
-[]string
+string
|
-(Appears on: -GameServerStatus) -
--
PlayerStatus stores the current player capacity values
- -Field | -Description | -
---|---|
-count
+amount
int64
@@ -6428,26 +6083,17 @@ PlayerStatus
| |
-ids
-
-[]string
-
- |
-- | -
(Appears on: -GameServerSpec) +GameServerSelector)
-
PlayersSpec tracks the initial player capacity
+CounterSelector is the filter options for a GameServer based on the count and/or available capacity. +0 for MaxCount or MaxAvailable means unlimited maximum. Default for all fields: 0
-initialCapacity
+minCount
int64
@@ -6467,94 +6113,46 @@ PlayersSpec
|
string
alias)-(Appears on: -GameServerPort) -
--
PortPolicy is the port policy for the GameServer
- --(Appears on: -GameServerSpec) -
--
SdkServer specifies parameters for the Agones SDK Server sidecar container
- -Field | -Description | -
---|---|
-logLevel
+maxCount
-
-SdkServerLogLevel
-
+int64
|
- LogLevel for SDK server (sidecar) logs. Defaults to “Info” |
-grpcPort
+minAvailable
-int32
+int64
|
- GRPCPort is the port on which the SDK Server binds the gRPC server to accept incoming connections |
-httpPort
+maxAvailable
-int32
+int64
|
- HTTPPort is the port on which the SDK Server binds the HTTP gRPC gateway server to accept incoming connections |
string
alias)(Appears on: -SdkServer) -
--
SdkServerLogLevel is the log level for SDK server (sidecar) logs
- --
Package v1 is the v1 version of the API.
+GameServerAllocation) -Resource Types: - --
GameServerAllocation is the data structure for allocating against a set of
-GameServers, defined selectors
selectors
GameServerAllocationSpec is the spec for a GameServerAllocation
-apiVersion
-string |
-
-
-allocation.agones.dev/v1
-
- |
-|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-kind
-string
- |
-GameServerAllocation |
-|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-metadata
-
-
-Kubernetes meta/v1.ObjectMeta
-
-
- |
-
-Refer to the Kubernetes API documentation for the fields of the
-metadata field.
- |
-|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-spec
-
-
-GameServerAllocationSpec
-
-
- |
-
- - -
|
-|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Field | +Description | +
---|---|
-status
+state
-
-GameServerAllocationStatus
+
+GameServerAllocationState
+
+
+ |
+
+ GameServerState is the current state of an GameServerAllocation, e.g. Allocated, or UnAllocated + |
+
+gameServerName
+
+string
+
+ |
++ | +
+ports
+
+
+[]GameServerStatusPort
|
|
+address
+
+string
+
+ |
++ | +
+nodeName
+
+string
+
+ |
++ | +
+source
+
+string
+
+ |
+
+ If the allocation is from a remote cluster, Source is the endpoint of the remote agones-allocator. +Otherwise, Source is “local” + |
+
(Appears on: GameServerAllocationSpec)
-
CounterAction is an optional action that can be performed on a Counter at allocation. -Action: “Increment” or “Decrement” the Counter’s Count (optional). Must also define the Amount. -Amount: The amount to increment or decrement the Count (optional). Must be a positive integer. -Capacity: Update the maximum capacity of the Counter to this number (optional). Min 0, Max int64.
+GameServerSelector contains all the filter options for selecting +a GameServer for allocation.
-action
+LabelSelector
+
+
+Kubernetes meta/v1.LabelSelector
+
+
+ |
+
+
+(Members of See: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + |
+
+gameServerState
+
+
+GameServerState
+
+
+ |
+
+(Optional)
+ [Stage:Beta] +[FeatureFlag:StateAllocationFilter] +GameServerState specifies which State is the filter to be used when attempting to retrieve a GameServer +via Allocation. Defaults to “Ready”. The only other option is “Allocated”, which can be used in conjunction with +label/annotation/player selectors to retrieve an already Allocated GameServer. + |
+
+players
+
+
+PlayerSelector
+
+
+ |
+
+(Optional)
+ [Stage:Alpha] +[FeatureFlag:PlayerAllocationFilter] +Players provides a filter on minimum and maximum values for player capacity when retrieving a GameServer +through Allocation. Defaults to no limits. + |
+
+counters
+
+
+map[string]agones.dev/agones/pkg/apis/allocation/v1.CounterSelector
+
+
+ |
+
+(Optional)
+ (Alpha, CountsAndLists feature flag) Counters provides filters on minimum and maximum values +for a Counter’s count and available capacity when retrieving a GameServer through Allocation. +Defaults to no limits. + |
+
+lists
+
+
+map[string]agones.dev/agones/pkg/apis/allocation/v1.ListSelector
+
+
+ |
+
+(Optional)
+ (Alpha, CountsAndLists feature flag) Lists provides filters on minimum and maximum values +for List capacity, and for the existence of a value in a List, when retrieving a GameServer +through Allocation. Defaults to no limits. + |
+
+(Appears on: +GameServerAllocationSpec) +
++
ListAction is an optional action that can be performed on a List at allocation. +AddValues: Append values to a List’s Values array (optional). Any duplicate values will be ignored. +Capacity: Update the maximum capacity of the Counter to this number (optional). Min 0, Max 1000.
+ +Field | +Description | +
---|---|
+addValues
+
+[]string
+
+ |
++ | +
+capacity
+
+int64
+
+ |
++ | +
+(Appears on: +GameServerSelector) +
++
ListSelector is the filter options for a GameServer based on List available capacity and/or the +existence of a value in a List. +0 for MaxAvailable means unlimited maximum. Default for integer fields: 0 +“” for ContainsValue means ignore field. Default for string field: “”
+ +Field | +Description | +
---|---|
+containsValue
string
@@ -6789,7 +6567,7 @@ CounterAction | |
-amount
+minAvailable
int64
@@ -6799,25 +6577,644 @@ CounterAction | |
-capacity
+maxAvailable
+
+int64
+
+ |
++ | +
+(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
+
+
+ |
++ | +
+(Appears on: +GameServerSelector) +
++
PlayerSelector is the filter options for a GameServer based on player counts
+ +Field | +Description | +
---|---|
+minAvailable
+
+int64
+
+ |
++ | +
+maxAvailable
+
+int64
+
+ |
++ | +
+(Appears on: +GameServerAllocationSpec) +
++
Priority is a sorting option for GameServers with Counters or Lists based on the count or +number of items in a List. +PriorityType: Sort by a “Counter” or a “List”. +Key: The name of the Counter or List. If not found on the GameServer, has no impact. +Order: Sort by “Ascending” or “Descending”. Default is “Descending” so bigger count is preferred. +“Ascending” would be smaller count is preferred.
+ +Field | +Description | +
---|---|
+priorityType
+
+string
+
+ |
++ | +
+key
+
+string
+
+ |
++ | +
+order
+
+string
+
+ |
++ | +
+
Package v1 is the v1 version of the API.
+ +Resource Types: + ++
FleetAutoscaler is the data structure for a FleetAutoscaler resource
+ +Field | +Description | +||||||
---|---|---|---|---|---|---|---|
+apiVersion
+string |
+
+
+autoscaling.agones.dev/v1
+
+ |
+||||||
+kind
+string
+ |
+FleetAutoscaler |
+||||||
+metadata
+
+
+Kubernetes meta/v1.ObjectMeta
+
+
+ |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||||
+spec
+
+
+FleetAutoscalerSpec
+
+
+ |
+
+ + +
|
+||||||
+status
+
+
+FleetAutoscalerStatus
+
+
+ |
++ | +
+(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: +FleetAutoscalerSync) +
++
FixedIntervalSync controls the desired behavior of the fixed interval based sync.
+ +Field | +Description | +
---|---|
+seconds
+
+int32
+
+ |
+
+ Seconds defines how often we run fleet autoscaling in seconds + |
+
+(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
-int64
+
+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: -GameServerSelector) +FleetAutoscaler)
-
CounterSelector is the filter options for a GameServer based on the count and/or available capacity. -0 for MaxCount or MaxAvailable means unlimited maximum. Default for all fields: 0
+FleetAutoscalerSpec is the spec for a Fleet Scaler
-minCount
-
-int64
-
- |
-- | -
-maxCount
+fleetName
-int64
+string
|
@@ -6849,34 +7236,43 @@ CounterSelector |
-minAvailable
+policy
-int64
+
+FleetAutoscalerPolicy
+
|
+ Autoscaling policy |
-maxAvailable
+sync
-int64
+
+FleetAutoscalerSync
+
|
+(Optional)
+ [Stage:Beta] +[FeatureFlag:CustomFasSyncInterval] +Sync defines when FleetAutoscalers runs autoscaling |
(Appears on: -GameServerAllocation) +FleetAutoscaler)
-
GameServerAllocationSpec is the spec for a GameServerAllocation
+FleetAutoscalerStatus defines the current status of a FleetAutoscaler
-multiClusterSetting
-
-
-MultiClusterSetting
-
-
- |
-
- MultiClusterPolicySelector if specified, multi-cluster policies are applied. -Otherwise, allocation will happen locally. - |
-
-required
+currentReplicas
-
-GameServerSelector
-
+int32
|
- Deprecated: use field Selectors instead. If Selectors is set, this field is ignored. -Required is the GameServer selector from which to choose GameServers from. -Defaults to all GameServers. +CurrentReplicas is the current number of gameserver replicas +of the fleet managed by this autoscaler, as last seen by the autoscaler |
-preferred
+desiredReplicas
-
-[]GameServerSelector
-
+int32
|
- Deprecated: use field Selectors instead. If Selectors is set, this field is ignored.
-Preferred is an ordered list of preferred GameServer selectors
-that are optional to be fulfilled, but will be searched before the DesiredReplicas is the desired number of gameserver replicas +of the fleet managed by this autoscaler, as last calculated by the autoscaler |
-priorities
+lastScaleTime
-
-[]Priority
+
+Kubernetes meta/v1.Time
|
(Optional)
- (Alpha, CountsAndLists feature flag) The first Priority on the array of Priorities is the most -important for sorting. The allocator will use the first priority for sorting GameServers in the -Selector set, and will only use any following priority for tie-breaking during sort. -Impacts which GameServer is checked first. +lastScaleTime is the last time the FleetAutoscaler scaled the attached fleet, |
-selectors
+ableToScale
-
-[]GameServerSelector
-
+bool
|
- Ordered list of GameServer label selectors. -If the first selector is not matched, the selection attempts the second selector, and so on. -This is useful for things like smoke testing of new game servers. -Note: This field can only be set if neither Required or Preferred is set. +AbleToScale indicates that we can access the target fleet |
-scheduling
+scalingLimited
-agones.dev/agones/pkg/apis.SchedulingStrategy
+bool
|
- Scheduling strategy. Defaults to “Packed”. +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: +FleetAutoscalerSpec) +
++
FleetAutoscalerSync describes when to sync a fleet
+ +
-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 - |
+Field | +Description |
---|---|---|---|
-counters
+type
-
-map[string]agones.dev/agones/pkg/apis/allocation/v1.CounterAction
+
+FleetAutoscalerSyncType
|
-(Optional)
- (Alpha, CountsAndLists feature flag) Counters and Lists provide a set of actions to perform -on Counters and Lists during allocation. +Type of autoscaling sync. |
||
-lists
+fixedInterval
-
-map[string]agones.dev/agones/pkg/apis/allocation/v1.ListAction
+
+FixedIntervalSync
|
+(Optional)
+ FixedInterval config params. Present only if FleetAutoscalerSyncType = FixedInterval. |
string
alias)(Appears on: -GameServerAllocationStatus) +FleetAutoscalerSync)
-
GameServerAllocationState is the Allocation state
+FleetAutoscalerSyncType is the sync strategy for a given Fleet
-(Appears on: -GameServerAllocation) +FleetAutoscalerPolicy)
-
GameServerAllocationStatus is the status for an GameServerAllocation resource
+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
-state
-
-
-GameServerAllocationState
-
-
- |
-
- GameServerState is the current state of an GameServerAllocation, e.g. Allocated, or UnAllocated - |
-
-gameServerName
+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. |
-ports
+service
-
-[]GameServerStatusPort
+
+Kubernetes admissionregistration/v1.ServiceReference
|
+(Optional)
+
If the webhook is running within the cluster, then you should use |
-address
-
-string
-
- |
-- | -
-nodeName
-
-string
-
- |
-- | -
-source
+caBundle
-string
+[]byte
|
- If the allocation is from a remote cluster, Source is the endpoint of the remote agones-allocator. -Otherwise, Source is “local” +(Optional) +
|
-(Appears on: -GameServerAllocationSpec) +
Package v1 is the v1 version of the API.
+Resource Types: + +-
GameServerSelector contains all the filter options for selecting -a GameServer for allocation.
+GameServerAllocationPolicy is the Schema for the gameserverallocationpolicies API
-LabelSelector
-
-
-Kubernetes meta/v1.LabelSelector
-
-
- |
+
-
-(Members of See: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ +
+multicluster.agones.dev/v1
+
|
|
-gameServerState
-
-
-GameServerState
-
-
- |
-
-(Optional)
- [Stage:Beta] -[FeatureFlag:StateAllocationFilter] -GameServerState specifies which State is the filter to be used when attempting to retrieve a GameServer -via Allocation. Defaults to “Ready”. The only other option is “Allocated”, which can be used in conjunction with -label/annotation/player selectors to retrieve an already Allocated GameServer. +kind
+string
|
+GameServerAllocationPolicy |
-players
+metadata
-
-PlayerSelector
+
+Kubernetes meta/v1.ObjectMeta
|
-(Optional)
- [Stage:Alpha] -[FeatureFlag:PlayerAllocationFilter] -Players provides a filter on minimum and maximum values for player capacity when retrieving a GameServer -through Allocation. Defaults to no limits. +Refer to the Kubernetes API documentation for the fields of the +metadata field.
|
|
-counters
+spec
-
-map[string]agones.dev/agones/pkg/apis/allocation/v1.CounterSelector
+
+GameServerAllocationPolicySpec
|
-(Optional)
- (Alpha, CountsAndLists feature flag) Counters provides filters on minimum and maximum values -for a Counter’s count and available capacity when retrieving a GameServer through Allocation. -Defaults to no limits. - |
-
-lists
+priority
-
-map[string]agones.dev/agones/pkg/apis/allocation/v1.ListSelector
-
+int32
|
-(Optional)
- (Alpha, CountsAndLists feature flag) Lists provides filters on minimum and maximum values -for List capacity, and for the existence of a value in a List, when retrieving a GameServer -through Allocation. Defaults to no limits. |
-(Appears on: -GameServerAllocationSpec) -
--
ListAction is an optional action that can be performed on a List at allocation. -AddValues: Append values to a List’s Values array (optional). Any duplicate values will be ignored. -Capacity: Update the maximum capacity of the Counter to this number (optional). Min 0, Max 1000.
- -Field | -Description | -
---|---|
-addValues
+weight
-[]string
+int
|
@@ -7249,27 +7569,29 @@ ListAction |
-capacity
+connectionInfo
-int64
+
+ClusterConnectionInfo
+
|
(Appears on: -GameServerSelector) +GameServerAllocationPolicySpec)
-
ListSelector is the filter options for a GameServer based on List available capacity and/or the -existence of a value in a List. -0 for MaxAvailable means unlimited maximum. Default for integer fields: 0 -“” for ContainsValue means ignore field. Default for string field: “”
+ClusterConnectionInfo defines the connection information for a cluster
-containsValue
+clusterName
string
|
+ Optional: the name of the targeted cluster |
-minAvailable
+allocationEndpoints
-int64
+[]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 |
-maxAvailable
+secretName
-int64
+string
|
+ The name of the secret that contains TLS client certificates to connect the allocator server in the targeted cluster |
-(Appears on: -GameServerAllocationSpec) -
--
MetaPatch is the metadata used to patch the GameServer metadata on allocation
- -Field | -Description | -
---|---|
-labels
+namespace
-map[string]string
+string
|
+ The cluster namespace from which to allocate gameservers |
-annotations
+serverCa
-map[string]string
+[]byte
|
+ The PEM encoded server CA, used by the allocator client to authenticate the remote server. |
-(Appears on: -GameServerAllocationSpec) -
--
MultiClusterSetting specifies settings for multi-cluster allocation.
+ConnectionInfoIterator an iterator on ClusterConnectionInfo
-enabled
+currPriority
-bool
+int
|
+ currPriority Current priority index from the orderedPriorities |
-policySelector
+orderedPriorities
-
-Kubernetes meta/v1.LabelSelector
-
+[]int32
|
+ orderedPriorities list of ordered priorities |
-(Appears on: -GameServerSelector) -
--
PlayerSelector is the filter options for a GameServer based on player counts
- -Field | -Description | -
---|---|
-minAvailable
+priorityToCluster
-int64
+map[int32]map[string][]*agones.dev/agones/pkg/apis/multicluster/v1.GameServerAllocationPolicy
|
+ priorityToCluster Map of priority to cluster-policies map |
-maxAvailable
+clusterBlackList
-int64
+map[string]bool
|
+ clusterBlackList the cluster blacklist for the clusters that has already returned |
(Appears on: -GameServerAllocationSpec) +GameServerAllocationPolicy)
-
Priority is a sorting option for GameServers with Counters or Lists based on the count or -number of items in a List. -PriorityType: Sort by a “Counter” or a “List”. -Key: The name of the Counter or List. If not found on the GameServer, has no impact. -Order: Sort by “Ascending” or “Descending”. Default is “Descending” so bigger count is preferred. -“Ascending” would be smaller count is preferred.
+GameServerAllocationPolicySpec defines the desired state of GameServerAllocationPolicy
-priorityType
+priority
-string
+int32
|
@@ -7464,9 +7748,9 @@ Priority |
-key
+weight
-string
+int
|
@@ -7474,9 +7758,11 @@ Priority |
-order
+connectionInfo
-string
+
+ClusterConnectionInfo
+
|