From 9c467dca63b33a704efd83e59ce6d0bce7319000 Mon Sep 17 00:00:00 2001 From: Kalaiselvi Murugesan Date: Wed, 29 Nov 2023 22:55:16 +0000 Subject: [PATCH 1/4] Move SplitControllerAndExtensions to Stable --- cloudbuild.yaml | 4 ++-- cmd/controller/main.go | 19 ------------------- install/helm/agones/defaultfeaturegates.yaml | 1 - install/helm/agones/templates/controller.yaml | 4 ---- .../templates/extensions-deployment.yaml | 3 --- .../templates/extensions-metrics-service.yaml | 4 +--- install/helm/agones/templates/service.yaml | 8 -------- install/helm/agones/values.yaml | 1 - pkg/util/runtime/features.go | 12 ++++-------- .../docs/Advanced/high-availability-agones.md | 18 ++++++++++++++++++ site/content/en/docs/Guides/feature-stages.md | 1 - .../docs/Installation/Creating Cluster/gke.md | 3 +++ .../docs/Installation/Install Agones/helm.md | 6 +++--- test/e2e/controller/crash_test.go | 5 ----- test/e2e/extensions/high_availability_test.go | 9 --------- 15 files changed, 31 insertions(+), 67 deletions(-) diff --git a/cloudbuild.yaml b/cloudbuild.yaml index b0433c8986..1890cf21fa 100644 --- a/cloudbuild.yaml +++ b/cloudbuild.yaml @@ -296,10 +296,10 @@ steps: region=${versionsAndRegions[$version]} if [ $cloudProduct = generic ] then - featureWithGate="PlayerAllocationFilter=true&PlayerTracking=true&SplitControllerAndExtensions=false&FleetAllocationOverflow=false&CountsAndLists=true&DisableResyncOnSDKServer=true&Example=true" + featureWithGate="PlayerAllocationFilter=true&PlayerTracking=true&FleetAllocationOverflow=false&CountsAndLists=true&DisableResyncOnSDKServer=true&Example=true" testCluster="standard-e2e-test-cluster-${version//./-}" else - featureWithGate="PlayerAllocationFilter=true&PlayerTracking=true&SplitControllerAndExtensions=true&FleetAllocationOverflow=false&CountsAndLists=true&DisableResyncOnSDKServer=true&Example=true" + featureWithGate="PlayerAllocationFilter=true&PlayerTracking=true&FleetAllocationOverflow=false&CountsAndLists=true&DisableResyncOnSDKServer=true&Example=true" testCluster="gke-autopilot-e2e-test-cluster-${version//./-}" fi featureWithoutGate="" diff --git a/cmd/controller/main.go b/cmd/controller/main.go index 4825fb877a..d25d6a80fa 100644 --- a/cmd/controller/main.go +++ b/cmd/controller/main.go @@ -30,15 +30,11 @@ import ( "agones.dev/agones/pkg/cloudproduct" "agones.dev/agones/pkg/fleetautoscalers" "agones.dev/agones/pkg/fleets" - "agones.dev/agones/pkg/gameserverallocations" "agones.dev/agones/pkg/gameservers" "agones.dev/agones/pkg/gameserversets" "agones.dev/agones/pkg/metrics" - "agones.dev/agones/pkg/util/apiserver" - "agones.dev/agones/pkg/util/https" "agones.dev/agones/pkg/util/runtime" "agones.dev/agones/pkg/util/signals" - "agones.dev/agones/pkg/util/webhooks" "github.com/google/uuid" "github.com/heptiolabs/healthcheck" "github.com/pkg/errors" @@ -165,10 +161,6 @@ func main() { if err != nil { logger.WithError(err).Fatal("Could not initialize cloud product") } - // https server and the items that share the Mux for routing - httpsServer := https.NewServer(ctlConf.CertFile, ctlConf.KeyFile) - wh := webhooks.NewWebHook(httpsServer.Mux) - api := apiserver.NewAPIServer(httpsServer.Mux) agonesInformerFactory := externalversions.NewSharedInformerFactory(agonesClient, defaultResync) kubeInformerFactory := informers.NewSharedInformerFactory(kubeClient, defaultResync) @@ -228,17 +220,6 @@ func main() { rs = append(rs, gsCounter, gsController, gsSetController, fleetController, fasController) - if !runtime.FeatureEnabled(runtime.FeatureSplitControllerAndExtensions) { - gameservers.NewExtensions(controllerHooks, wh) - gameserversets.NewExtensions(controllerHooks, wh) - fleets.NewExtensions(controllerHooks, wh) - fleetautoscalers.NewExtensions(wh) - - gasController := gameserverallocations.NewExtensions(api, health, gsCounter, kubeClient, kubeInformerFactory, - agonesClient, agonesInformerFactory, 10*time.Second, 30*time.Second, ctlConf.AllocationBatchWaitTime) - rs = append(rs, httpsServer, gasController) - } - runRunner := func(r runner) { if err := r.Run(ctx, ctlConf.NumWorkers); err != nil { logger.WithError(err).Fatalf("could not start runner! %T", r) diff --git a/install/helm/agones/defaultfeaturegates.yaml b/install/helm/agones/defaultfeaturegates.yaml index 3b2c456a21..72e7c84533 100644 --- a/install/helm/agones/defaultfeaturegates.yaml +++ b/install/helm/agones/defaultfeaturegates.yaml @@ -16,7 +16,6 @@ # Beta features FleetAllocationOverflow: true -SplitControllerAndExtensions: true # Alpha features PlayerAllocationFilter: false diff --git a/install/helm/agones/templates/controller.yaml b/install/helm/agones/templates/controller.yaml index dc26eb4b0b..8d517949e9 100644 --- a/install/helm/agones/templates/controller.yaml +++ b/install/helm/agones/templates/controller.yaml @@ -12,11 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -{{- $featureGates := include "agones.featureGates" . | fromYaml }} {{- $replicas := (int .Values.agones.controller.replicas) }} -{{- if not $featureGates.SplitControllerAndExtensions }} -{{- $replicas = 1 }} -{{- end }} {{- if lt $replicas 1 }} {{- fail "agones.controller.replica field has an invalid value!" }} {{- end }} diff --git a/install/helm/agones/templates/extensions-deployment.yaml b/install/helm/agones/templates/extensions-deployment.yaml index 63e2fa9276..02570e339f 100644 --- a/install/helm/agones/templates/extensions-deployment.yaml +++ b/install/helm/agones/templates/extensions-deployment.yaml @@ -12,8 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -{{- $featureGates := include "agones.featureGates" . | fromYaml }} -{{- if $featureGates.SplitControllerAndExtensions }} apiVersion: apps/v1 kind: Deployment metadata: @@ -209,4 +207,3 @@ spec: app: {{ template "agones.name" . }} release: {{ .Release.Name }} heritage: {{ .Release.Service }} -{{- end }} \ No newline at end of file diff --git a/install/helm/agones/templates/extensions-metrics-service.yaml b/install/helm/agones/templates/extensions-metrics-service.yaml index 2e27a5146e..a71a6ff579 100644 --- a/install/helm/agones/templates/extensions-metrics-service.yaml +++ b/install/helm/agones/templates/extensions-metrics-service.yaml @@ -11,8 +11,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -{{- $featureGates := include "agones.featureGates" . | fromYaml }} -{{- if $featureGates.SplitControllerAndExtensions }} + apiVersion: v1 kind: Service metadata: @@ -31,4 +30,3 @@ spec: - name: metrics port: {{ .Values.agones.controller.http.port }} targetPort: http -{{- end}} diff --git a/install/helm/agones/templates/service.yaml b/install/helm/agones/templates/service.yaml index 3fd717e07e..384c80d3d1 100644 --- a/install/helm/agones/templates/service.yaml +++ b/install/helm/agones/templates/service.yaml @@ -19,22 +19,14 @@ metadata: name: agones-controller-service namespace: {{ .Release.Namespace }} labels: -{{- if $featureGates.SplitControllerAndExtensions }} agones.dev/role: extensions -{{- else}} - agones.dev/role: controller -{{- end}} app: {{ template "agones.name" . }} chart: {{ template "agones.chart" . }} release: {{ .Release.Name }} heritage: {{ .Release.Service }} spec: selector: -{{- if $featureGates.SplitControllerAndExtensions }} agones.dev/role: extensions -{{- else}} - agones.dev/role: controller -{{- end}} ports: - name: webhooks port: 443 diff --git a/install/helm/agones/values.yaml b/install/helm/agones/values.yaml index fa94e0b760..2eb5c58007 100644 --- a/install/helm/agones/values.yaml +++ b/install/helm/agones/values.yaml @@ -253,7 +253,6 @@ agones: controller: name: agones-controller pullPolicy: IfNotPresent - # extensions settings ignored unless `SplitControllerAndExtensions` feature gate is enabled extensions: name: agones-extensions pullPolicy: IfNotPresent diff --git a/pkg/util/runtime/features.go b/pkg/util/runtime/features.go index 7ca446df62..5c6986b61c 100644 --- a/pkg/util/runtime/features.go +++ b/pkg/util/runtime/features.go @@ -31,8 +31,9 @@ const ( //////////////// // Beta features - // FeatureSplitControllerAndExtensions is a feature flag that will split agones-controller into two deployments - FeatureSplitControllerAndExtensions Feature = "SplitControllerAndExtensions" + // FeatureFleetAllocateOverflow enables setting labels and/or annotations on Allocated GameServers + // if the desired number of the underlying GameServerSet drops below the number of Allocated GameServers. + FeatureFleetAllocateOverflow Feature = "FleetAllocationOverflow" //////////////// // Alpha features @@ -44,10 +45,6 @@ const ( // FeaturePlayerTracking is a feature flag to enable/disable player tracking features. FeaturePlayerTracking Feature = "PlayerTracking" - // FeatureFleetAllocateOverflow enables setting labels and/or annotations on Allocated GameServers - // if the desired number of the underlying GameServerSet drops below the number of Allocated GameServers. - FeatureFleetAllocateOverflow = "FleetAllocationOverflow" - //////////////// // "Pre"-Alpha features @@ -94,8 +91,7 @@ var ( // In each of these, keep the feature sorted by descending maturity then alphabetical featureDefaults = map[Feature]bool{ // Beta features - FeatureFleetAllocateOverflow: true, - FeatureSplitControllerAndExtensions: true, + FeatureFleetAllocateOverflow: true, // Alpha features FeaturePlayerAllocationFilter: false, diff --git a/site/content/en/docs/Advanced/high-availability-agones.md b/site/content/en/docs/Advanced/high-availability-agones.md index 5760655436..a04ef87c91 100644 --- a/site/content/en/docs/Advanced/high-availability-agones.md +++ b/site/content/en/docs/Advanced/high-availability-agones.md @@ -7,15 +7,25 @@ description: > publishDate: 2023-02-28 --- +{{% feature expiryVersion="1.37.0" %}} {{< beta title="split controller and extensions" gate="SplitControllerAndExtensions" >}} +{{% /feature %}} ## High Availability for Agones Controller +{{% feature expiryVersion="1.37.0" %}} When `SplitControllerAndExtensions` is enabled, the `agones-controller` responsibility is split up into `agones-controller`, which enacts the Agones control loop, and `agones-extensions`, which acts as a service endpoint for webhooks and the allocation extension API. Splitting these responsibilities allows the `agones-extensions` pod to be **horizontally scaled**, making the Agones control plane **highly available** and more **resiliant to disruption**. `SplitControllerAndExtensions` enables multiple `agones-controller` pods, with a primary controller selected via leader election. Having multiple `agones-controller` minimizes downtime of the service from pod disruptions such as deployment updates, autoscaler evictions, and crashes. `SplitControllerAndExtensions` must be enabled for GKE Autopilot. +{{% /feature %}} + +{{% feature publishVersion="1.37.0" %}} +The `agones-controller` responsibility is split up into `agones-controller`, which enacts the Agones control loop, and `agones-extensions`, which acts as a service endpoint for webhooks and the allocation extension API. Splitting these responsibilities allows the `agones-extensions` pod to be **horizontally scaled**, making the Agones control plane **highly available** and more **resiliant to disruption**. + +Multiple `agones-controller` pods enabled, with a primary controller selected via leader election. Having multiple `agones-controller` minimizes downtime of the service from pod disruptions such as deployment updates, autoscaler evictions, and crashes. +{{% /feature %}} ## Extension Pod Configrations @@ -34,9 +44,17 @@ An important configuration to note is the PodDisruptionBudget fields, `agones.ex ## Deployment Considerations +{{% feature expiryVersion="1.37.0" %}} Leader election will automatically be enabled when `SplitControllerAndExtensions` is enabled and `agones.controller.replicas` is > 1. [`agones.controller.replicas`]({{< relref "/docs/Installation/Install Agones/helm.md#configuration" >}}) defaults to 2. When `SplitControllerAndExtensions` is enabled, what was previously a single `agones-controller` pod is deployed by default as 2 `agones-controller` and 2 `agones-extensions` pods. For example: +{{% /feature %}} + +{{% feature publishVersion="1.37.0" %}} +Leader election will automatically be enabled and `agones.controller.replicas` is > 1. [`agones.controller.replicas`]({{< relref "/docs/Installation/Install Agones/helm.md#configuration" >}}) defaults to 2. + +The default configuration now deploys 2 `agones-controller` pods and 2 `agones-extensions` pods, replacing the previous single `agones-controller` pod setup. For example: +{{% /feature %}} ``` NAME READY STATUS RESTARTS AGE diff --git a/site/content/en/docs/Guides/feature-stages.md b/site/content/en/docs/Guides/feature-stages.md index 7a787ec7c6..b4ce618ac2 100644 --- a/site/content/en/docs/Guides/feature-stages.md +++ b/site/content/en/docs/Guides/feature-stages.md @@ -40,7 +40,6 @@ The current set of `alpha` and `beta` feature gates: | Feature Name | Gate | Default | Stage | Since | |-----------------------------------------------------------------------------------------------------------------------|--------------------------------|----------|---------|--------| | [Allocated GameServers are notified on relevant Fleet Updates][fleet-updates] | `FleetAllocationOverflow` | Enabled | `Beta` | 1.37.0 | -| [Split `agones-controller` ](https://github.com/googleforgames/agones/issues/2797) | `SplitControllerAndExtensions` | Enabled | `Beta` | 1.32.0 | | [GameServer player capacity filtering on GameServerAllocations](https://github.com/googleforgames/agones/issues/1239) | `PlayerAllocationFilter` | Disabled | `Alpha` | 1.14.0 | | [Player Tracking]({{< ref "/docs/Guides/player-tracking.md" >}}) | `PlayerTracking` | Disabled | `Alpha` | 1.6.0 | | [DisableResyncOnSDKServer](https://github.com/googleforgames/agones/issues/3377) | `DisableResyncOnSDKServer` | Disabled | `Alpha` | 1.37.0 | diff --git a/site/content/en/docs/Installation/Creating Cluster/gke.md b/site/content/en/docs/Installation/Creating Cluster/gke.md index 02733f1b59..6715ef32b0 100644 --- a/site/content/en/docs/Installation/Creating Cluster/gke.md +++ b/site/content/en/docs/Installation/Creating Cluster/gke.md @@ -319,11 +319,14 @@ Flag explanations: * `--release-channel`: The release channel [you chose above](#choosing-a-release-channel-and-optional-version). * `--autoprovisioning-network-tags`: Defines the tags that will be attached to new nodes in the cluster. This is to grant access through ports via the [firewall created above](#creating-the-firewall). +{{% feature expiryVersion="1.37.0" %}} {{}} To install Agones on version 1.30-1.31, you must enable the `SplitControllerAndExtensions` [feature gate]({{% ref "/docs/Guides/feature-stages.md#feature-gates" %}}). This feature is enabled by default starting in Agones 1.32.0. {{}} +{{% /feature %}} + ## Setting up cluster credentials diff --git a/site/content/en/docs/Installation/Install Agones/helm.md b/site/content/en/docs/Installation/Install Agones/helm.md index a2fa07e5b4..f696bb5e1d 100644 --- a/site/content/en/docs/Installation/Install Agones/helm.md +++ b/site/content/en/docs/Installation/Install Agones/helm.md @@ -151,9 +151,9 @@ The following tables lists the configurable parameters of the Agones chart and t | Parameter | Description | Default | |----------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------| -| `agones.controller.replicas` | The number of replicas to run in the `agones-controller` deployment. (Ignored unless [SplitControllerAndExtensions][split-controller] is enabled) | `2` | -| `agones.controller.pdb.minAvailable` | Description of the number of pods from that set that must still be available after the eviction, even in the absence of the evicted pod. Can be either an absolute number or a percentage. Mutually Exclusive with `maxUnavailable` (Ignored unless [SplitControllerAndExtensions][split-controller] is enabled) | `1` | -| `agones.controller.pdb.maxUnavailable` | Description of the number of pods from that set that can be unavailable after the eviction. It can be either an absolute number or a percentage Mutually Exclusive with `minAvailable` (Ignored unless [SplitControllerAndExtensions][split-controller] is enabled) | \`\` | +| `agones.controller.replicas` | The number of replicas to run in the `agones-controller` deployment. | `2` | +| `agones.controller.pdb.minAvailable` | Description of the number of pods from that set that must still be available after the eviction, even in the absence of the evicted pod. Can be either an absolute number or a percentage. Mutually Exclusive with `maxUnavailable` | `1` | +| `agones.controller.pdb.maxUnavailable` | Description of the number of pods from that set that can be unavailable after the eviction. It can be either an absolute number or a percentage Mutually Exclusive with `minAvailable` | \`\` | | `agones.controller.http.port` | Port to use for liveness probe service and metrics | `8080` | | `agones.controller.healthCheck.initialDelaySeconds` | Initial delay before performing the first probe (in seconds) | `3` | | `agones.controller.healthCheck.periodSeconds` | Seconds between every liveness probe (in seconds) | `3` | diff --git a/test/e2e/controller/crash_test.go b/test/e2e/controller/crash_test.go index 4ebdaf80b2..8b4103408b 100644 --- a/test/e2e/controller/crash_test.go +++ b/test/e2e/controller/crash_test.go @@ -20,7 +20,6 @@ import ( "time" agonesv1 "agones.dev/agones/pkg/apis/agones/v1" - "agones.dev/agones/pkg/util/runtime" e2eframework "agones.dev/agones/test/e2e/framework" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -65,10 +64,6 @@ func TestLeaderElectionAfterDeletingLeader(t *testing.T) { gs := framework.DefaultGameServer(defaultNs) ctx := context.Background() - if !runtime.FeatureEnabled(runtime.FeatureSplitControllerAndExtensions) { - t.Skip("Skip test. SplitControllerAndExtensions feature is not enabled") - } - err := waitForAgonesControllerRunning(ctx, -1) require.NoError(t, err, "Could not ensure controller running") diff --git a/test/e2e/extensions/high_availability_test.go b/test/e2e/extensions/high_availability_test.go index 379e4651d7..8a0a588a4c 100644 --- a/test/e2e/extensions/high_availability_test.go +++ b/test/e2e/extensions/high_availability_test.go @@ -19,7 +19,6 @@ import ( "testing" "time" - "agones.dev/agones/pkg/util/runtime" e2eframework "agones.dev/agones/test/e2e/framework" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -34,10 +33,6 @@ func TestGameServerCreationAfterDeletingOneExtensionsPod(t *testing.T) { logger := e2eframework.TestLogger(t) ctx := context.Background() - if !runtime.FeatureEnabled(runtime.FeatureSplitControllerAndExtensions) { - t.Skip("Skip test. SplitControllerAndExtensions feature is not enabled") - } - assert.NoError(t, waitForAgonesExtensionsRunning(ctx)) list, err := getAgoneseExtensionsPods(ctx) @@ -68,10 +63,6 @@ func TestGameServerCreationRightAfterDeletingOneExtensionsPod(t *testing.T) { logger := e2eframework.TestLogger(t) ctx := context.Background() - if !runtime.FeatureEnabled(runtime.FeatureSplitControllerAndExtensions) { - t.Skip("Skip test. SplitControllerAndExtensions feature is not enabled") - } - assert.NoError(t, waitForAgonesExtensionsRunning(ctx)) list, err := getAgoneseExtensionsPods(ctx) From e47f81c1fe2e0b2f302b59f49938612f970fad9a Mon Sep 17 00:00:00 2001 From: Kalaiselvi Murugesan Date: Thu, 30 Nov 2023 05:22:04 +0000 Subject: [PATCH 2/4] included feature shortcode --- .../docs/Installation/Install Agones/helm.md | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/site/content/en/docs/Installation/Install Agones/helm.md b/site/content/en/docs/Installation/Install Agones/helm.md index f696bb5e1d..b7650cc4b5 100644 --- a/site/content/en/docs/Installation/Install Agones/helm.md +++ b/site/content/en/docs/Installation/Install Agones/helm.md @@ -147,6 +147,45 @@ The following tables lists the configurable parameters of the Agones chart and t | `agones.image.extensions.name` | Image name for extensions | `agones-extensions` | | `agones.image.extensions.pullPolicy` | Image pull policy for extensions | `IfNotPresent` | +{{% feature expiryVersion="1.37.0" %}} +### Agones Controller + +| Parameter | Description | Default | +|----------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------| +| `agones.controller.replicas` | The number of replicas to run in the `agones-controller` deployment. (Ignored unless [SplitControllerAndExtensions][split-controller] is enabled) | `2` | +| `agones.controller.pdb.minAvailable` | Description of the number of pods from that set that must still be available after the eviction, even in the absence of the evicted pod. Can be either an absolute number or a percentage. Mutually Exclusive with `maxUnavailable` (Ignored unless [SplitControllerAndExtensions][split-controller] is enabled) | `1` | +| `agones.controller.pdb.maxUnavailable` | Description of the number of pods from that set that can be unavailable after the eviction. It can be either an absolute number or a percentage Mutually Exclusive with `minAvailable` (Ignored unless [SplitControllerAndExtensions][split-controller] is enabled) | \`\` | +| `agones.controller.http.port` | Port to use for liveness probe service and metrics | `8080` | +| `agones.controller.healthCheck.initialDelaySeconds` | Initial delay before performing the first probe (in seconds) | `3` | +| `agones.controller.healthCheck.periodSeconds` | Seconds between every liveness probe (in seconds) | `3` | +| `agones.controller.healthCheck.failureThreshold` | Number of times before giving up (in seconds) | `3` | +| `agones.controller.healthCheck.timeoutSeconds` | Number of seconds after which the probe times out (in seconds) | `1` | +| `agones.controller.resources` | Controller [resource requests/limit][resources] | `{}` | +| `agones.controller.generateTLS` | Set to true to generate TLS certificates or false to provide your own certificates | `true` | +| `agones.controller.tlsCert` | Custom TLS certificate provided as a string | \`\` | +| `agones.controller.tlsKey` | Custom TLS private key provided as a string | \`\` | +| `agones.controller.nodeSelector` | Controller [node labels][nodeSelector] for pod assignment | `{}` | +| `agones.controller.tolerations` | Controller [toleration][toleration] labels for pod assignment | `[]` | +| `agones.controller.affinity` | Controller [affinity][affinity] settings for pod assignment | `{}` | +| `agones.controller.annotations` | [Annotations][annotations] added to the Agones controller pods | `{}` | +| `agones.controller.numWorkers` | Number of workers to spin per resource type | `100` | +| `agones.controller.apiServerQPS` | Maximum sustained queries per second that controller should be making against API Server | `400` | +| `agones.controller.apiServerQPSBurst` | Maximum burst queries per second that controller should be making against API Server | `500` | +| `agones.controller.logLevel` | Agones Controller Log level. Log only entries with that severity and above | `info` | +| `agones.controller.persistentLogs` | Store Agones controller logs in a temporary volume attached to a container for debugging | `true` | +| `agones.controller.persistentLogsSizeLimitMB` | Maximum total size of all Agones container logs in MB | `10000` | +| `agones.controller.disableSecret` | Disables the creation of any allocator secrets. If true, you MUST provide the `{agones.releaseName}-cert` secrets before installation. | `false` | +| `agones.controller.customCertSecretPath` | Remap cert-manager path to server.crt and server.key | `{}` | +| `agones.controller.allocationApiService.annotations` | [Annotations][annotations] added to the Agones apiregistration | `{}` | +| `agones.controller.allocationApiService.disableCaBundle` | Disable ca-bundle so it can be injected by cert-manager | `false` | +| `agones.controller.validatingWebhook.annotations` | [Annotations][annotations] added to the Agones validating webhook | `{}` | +| `agones.controller.validatingWebhook.disableCaBundle` | Disable ca-bundle so it can be injected by cert-manager | `false` | +| `agones.controller.mutatingWebhook.annotations` | [Annotations][annotations] added to the Agones mutating webhook | `{}` | +| `agones.controller.mutatingWebhook.disableCaBundle` | Disable ca-bundle so it can be injected by cert-manager | `false` | +| `agones.controller.allocationBatchWaitTime` | Wait time between each allocation batch when performing allocations in controller mode | `500ms` | +{{% /feature %}} + +{{% feature publishVersion="1.37.0" %}} ### Agones Controller | Parameter | Description | Default | @@ -182,6 +221,7 @@ The following tables lists the configurable parameters of the Agones chart and t | `agones.controller.mutatingWebhook.annotations` | [Annotations][annotations] added to the Agones mutating webhook | `{}` | | `agones.controller.mutatingWebhook.disableCaBundle` | Disable ca-bundle so it can be injected by cert-manager | `false` | | `agones.controller.allocationBatchWaitTime` | Wait time between each allocation batch when performing allocations in controller mode | `500ms` | +{{% /feature %}} ### Ping Service From d5738e08d7bf84360cbbdbc75556542776bc49d9 Mon Sep 17 00:00:00 2001 From: Kalaiselvi Murugesan Date: Fri, 1 Dec 2023 01:47:44 +0000 Subject: [PATCH 3/4] make gen-install --- install/yaml/install.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install/yaml/install.yaml b/install/yaml/install.yaml index 07fe454a19..14b3656c0d 100644 --- a/install/yaml/install.yaml +++ b/install/yaml/install.yaml @@ -16800,6 +16800,7 @@ spec: # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. + apiVersion: v1 kind: Service metadata: @@ -17128,6 +17129,7 @@ spec: # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. + apiVersion: apps/v1 kind: Deployment metadata: From e9b0db907ce09c63f71095e62dab5b22fb123365 Mon Sep 17 00:00:00 2001 From: Kalaiselvi Murugesan Date: Tue, 5 Dec 2023 20:13:10 +0000 Subject: [PATCH 4/4] fix lint --- pkg/util/runtime/features.go | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkg/util/runtime/features.go b/pkg/util/runtime/features.go index 68766396ca..940a4392ef 100644 --- a/pkg/util/runtime/features.go +++ b/pkg/util/runtime/features.go @@ -45,10 +45,6 @@ const ( // FeaturePlayerTracking is a feature flag to enable/disable player tracking features. FeaturePlayerTracking Feature = "PlayerTracking" - // FeatureFleetAllocateOverflow enables setting labels and/or annotations on Allocated GameServers - // if the desired number of the underlying GameServerSet drops below the number of Allocated GameServers. - FeatureFleetAllocateOverflow = "FleetAllocationOverflow" - // FeatureCountsAndLists is a feature flag that enables/disables counts and lists feature // (a generic implenetation of the player tracking feature). FeatureCountsAndLists Feature = "CountsAndLists"