From 06a65da5e123d41ec2e630341f47f894dca8a766 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gavrilo=20Vojte=C5=A1ki?= <93739154+R4oulDuk3@users.noreply.github.com> Date: Thu, 5 Dec 2024 13:51:30 +0100 Subject: [PATCH 1/3] Add helm values for adding labels to controller and extensions pods --- install/helm/agones/templates/controller.yaml | 3 +++ install/helm/agones/templates/extensions-deployment.yaml | 3 +++ install/helm/agones/values.yaml | 2 ++ 3 files changed, 8 insertions(+) diff --git a/install/helm/agones/templates/controller.yaml b/install/helm/agones/templates/controller.yaml index a56ad3aa3c..58f9389339 100644 --- a/install/helm/agones/templates/controller.yaml +++ b/install/helm/agones/templates/controller.yaml @@ -59,6 +59,9 @@ spec: app: {{ template "agones.name" . }} release: {{ .Release.Name }} heritage: {{ .Release.Service }} +{{- if .Values.agones.controller.labels }} +{{- toYaml .Values.agones.controller.labels | nindent 8 }} +{{- end }} spec: {{- if .Values.agones.controller.topologySpreadConstraints }} topologySpreadConstraints: diff --git a/install/helm/agones/templates/extensions-deployment.yaml b/install/helm/agones/templates/extensions-deployment.yaml index 3745af240b..f6350a96c0 100644 --- a/install/helm/agones/templates/extensions-deployment.yaml +++ b/install/helm/agones/templates/extensions-deployment.yaml @@ -52,6 +52,9 @@ spec: app: {{ template "agones.name" . }} release: {{ .Release.Name }} heritage: {{ .Release.Service }} +{{- if .Values.agones.extensions.labels }} +{{- toYaml .Values.agones.extensions.labels | nindent 8 }} +{{- end }} spec: {{- if .Values.agones.extensions.topologySpreadConstraints }} topologySpreadConstraints: diff --git a/install/helm/agones/values.yaml b/install/helm/agones/values.yaml index ec9dda4c83..85d1ea9ac2 100644 --- a/install/helm/agones/values.yaml +++ b/install/helm/agones/values.yaml @@ -54,6 +54,7 @@ agones: # cpu: 1 # memory: 256Mi nodeSelector: {} + labels: {} annotations: {} tolerations: - key: "agones.dev/agones-system" @@ -105,6 +106,7 @@ agones: # memory: 256Mi nodeSelector: {} annotations: {} + labels: {} # Determines if the Agones extensions should operate in hostNetwork mode. # # This setting is necessary for certain managed Kubernetes clusters (e.g., AWS EKS) that use custom From 848cdd1e70854637998030c5e83995806a5f79af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gavrilo=20Vojte=C5=A1ki?= <93739154+R4oulDuk3@users.noreply.github.com> Date: Thu, 5 Dec 2024 14:23:59 +0100 Subject: [PATCH 2/3] Update site documentation for helm installation of agones operator to include label values for controller and extensions --- site/content/en/docs/Installation/Install Agones/helm.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/site/content/en/docs/Installation/Install Agones/helm.md b/site/content/en/docs/Installation/Install Agones/helm.md index 15f458663b..05d70cc46e 100644 --- a/site/content/en/docs/Installation/Install Agones/helm.md +++ b/site/content/en/docs/Installation/Install Agones/helm.md @@ -167,6 +167,7 @@ The following tables lists the configurable parameters of the Agones chart and t | `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.labels` | [Labels][labels] added to the Agones controller pods | `{}` | | `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` | @@ -368,6 +369,7 @@ The following tables lists the configurable parameters of the Agones chart and t | `agones.extensions.nodeSelector` | Extensions [node labels][nodeSelector] for pod assignment | `{}` | | `agones.extensions.tolerations` | Extensions [toleration][toleration] labels for pod assignment | `[]` | | `agones.extensions.affinity` | Extensions [affinity][affinity] settings for pod assignment | `{}` | +| `agones.extensions.labels` | [Labels][labels] added to the Agones extensions pods | `{}` | | `agones.extensions.annotations` | [Annotations][annotations] added to the Agones extensions pods | `{}` | | `agones.extensions.numWorkers` | Number of workers to spin per resource type | `100` | | `agones.extensions.apiServerQPS` | Maximum sustained queries per second that extensions should be making against API Server | `400` | From f7e44f474b34fd45a018d4530fe736494d953365 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gavrilo=20Vojte=C5=A1ki?= <93739154+R4oulDuk3@users.noreply.github.com> Date: Fri, 6 Dec 2024 10:33:24 +0100 Subject: [PATCH 3/3] Hide changes of controller and extensions helm values documnetation under feature shortcode --- .../docs/Installation/Install Agones/helm.md | 90 ++++++++++++++++++- 1 file changed, 88 insertions(+), 2 deletions(-) diff --git a/site/content/en/docs/Installation/Install Agones/helm.md b/site/content/en/docs/Installation/Install Agones/helm.md index 05d70cc46e..a0223e0559 100644 --- a/site/content/en/docs/Installation/Install Agones/helm.md +++ b/site/content/en/docs/Installation/Install Agones/helm.md @@ -150,6 +150,8 @@ The following tables lists the configurable parameters of the Agones chart and t ### Agones Controller +{{% feature expiryVersion="1.46.0" %}} + | Parameter | Description | Default | |----------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------| | `agones.controller.replicas` | The number of replicas to run in the `agones-controller` deployment. | `2` | @@ -167,7 +169,6 @@ The following tables lists the configurable parameters of the Agones chart and t | `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.labels` | [Labels][labels] added to the Agones controller pods | `{}` | | `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` | @@ -191,7 +192,49 @@ The following tables lists the configurable parameters of the Agones chart and t | `agones.controller.maxGameServerDeletionsPerBatch` | Maximum number of GameServer deletion calls per batch | `64` | | `agones.controller.maxPodPendingCount` | Maximum number of pending pods per game server set | `5000` | - +{{% /feature %}} +{{% feature publishVersion="1.46.0" %}} +| Parameter | Description | Default | +|----------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------| +| `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` | +| `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.labels` | [Labels][labels] added to the Agones controller pods | `{}` | +| `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` | **Deprecated**. Use `agones.extensions.disableSecret` instead. 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` | **Deprecated**. Use `agones.extensions.allocationApiService.annotations` instead. [Annotations][annotations] added to the Agones apiregistration | `{}` | +| `agones.controller.allocationApiService.disableCaBundle` | **Deprecated**. Use `agones.extensions.allocationApiService.disableCaBundle` instead. Disable ca-bundle so it can be injected by cert-manager. | `false` | +| `agones.controller.validatingWebhook.annotations` | **Deprecated**. Use `agones.extensions.validatingWebhook.annotations` instead. [Annotations][annotations] added to the Agones validating webhook | `{}` | +| `agones.controller.validatingWebhook.disableCaBundle` | **Deprecated**. Use `agones.extensions.validatingWebhook.disableCaBundle` instead. Disable ca-bundle so it can be injected by cert-manager | `false` | +| `agones.controller.mutatingWebhook.annotations` | **Deprecated**. Use `agones.extensions.mutatingWebhook.annotations` instead. [Annotations][annotations] added to the Agones mutating webhook | `{}` | +| `agones.controller.mutatingWebhook.disableCaBundle` | **Deprecated**. Use `agones.extensions.mutatingWebhook.disableCaBundle` instead. 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` | +| `agones.controller.topologySpreadConstraints` | Ensures better resource utilization and high availability by evenly distributing Pods in the agones-system namespace | `{}` | +| `agones.controller.maxCreationParallelism` | Maximum number of parallelizing creation calls in GSS controller | `16` | +| `agones.controller.maxGameServerCreationsPerBatch` | Maximum number of GameServer creation calls per batch | `64` | +| `agones.controller.maxDeletionParallelism` | Maximum number of parallelizing deletion calls in GSS | `64` | +| `agones.controller.maxGameServerDeletionsPerBatch` | Maximum number of GameServer deletion calls per batch | `64` | +| `agones.controller.maxPodPendingCount` | Maximum number of pending pods per game server set | `5000` | +{{% /feature %}} ### Ping Service @@ -353,6 +396,46 @@ The following tables lists the configurable parameters of the Agones chart and t ### Extensions +{{% feature expiryVersion="1.46.0" %}} +| Parameter | Description | Default | +|----------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------| +|`agones.extensions.hostNetwork` | Determines if the Agones extensions should operate in hostNetwork mode. If running in hostNetwork mode, you should change `agones.extensions.http.port` and `agones.extensions.webhooks.port` to an available port. | `false` | +| `agones.extensions.http.port` | Port to use for liveness probe service and metrics | `8080` | +|`agones.extensions.webhooks.port` | Port to use for webhook service | `8081` | +| `agones.extensions.healthCheck.initialDelaySeconds` | Initial delay before performing the first probe (in seconds) | `3` | +| `agones.extensions.healthCheck.periodSeconds` | Seconds between every liveness probe (in seconds) | `3` | +| `agones.extensions.healthCheck.failureThreshold` | Number of times before giving up (in seconds) | `3` | +| `agones.extensions.healthCheck.timeoutSeconds` | Number of seconds after which the probe times out (in seconds) | `1` | +| `agones.extensions.resources` | Extensions [resource requests/limit][resources] | `{}` | +| `agones.extensions.generateTLS` | Set to true to generate TLS certificates or false to provide your own certificates | `true` | +| `agones.extensions.tlsCert` | Custom TLS certificate provided as a string | \`\` | +| `agones.extensions.tlsKey` | Custom TLS private key provided as a string | \`\` | +| `agones.extensions.nodeSelector` | Extensions [node labels][nodeSelector] for pod assignment | `{}` | +| `agones.extensions.tolerations` | Extensions [toleration][toleration] labels for pod assignment | `[]` | +| `agones.extensions.affinity` | Extensions [affinity][affinity] settings for pod assignment | `{}` | +| `agones.extensions.annotations` | [Annotations][annotations] added to the Agones extensions pods | `{}` | +| `agones.extensions.numWorkers` | Number of workers to spin per resource type | `100` | +| `agones.extensions.apiServerQPS` | Maximum sustained queries per second that extensions should be making against API Server | `400` | +| `agones.extensions.apiServerQPSBurst` | Maximum burst queries per second that extensions should be making against API Server | `500` | +| `agones.extensions.logLevel` | Agones Extensions Log level. Log only entries with that severity and above | `info` | +| `agones.extensions.persistentLogs` | Store Agones extensions logs in a temporary volume attached to a container for debugging | `true` | +| `agones.extensions.persistentLogsSizeLimitMB` | Maximum total size of all Agones container logs in MB | `10000` | +| `agones.extensions.disableSecret` | Disables the creation of any allocator secrets. You MUST provide the `{agones.releaseName}-cert` secrets before installation if this is set to `true`. | `false` | +| `agones.extensions.customCertSecretPath` | Remap cert-manager path to server.crt and server.key | `{}` | +| `agones.extensions.allocationApiService.annotations` | [Annotations][annotations] added to the Agones API registration. | `{}` | +| `agones.extensions.allocationApiService.disableCaBundle` | Disable ca-bundle so it can be injected by cert-manager. | `false` | +| `agones.extensions.validatingWebhook.annotations` | [Annotations][annotations] added to the Agones validating webhook. | `{}` | +| `agones.extensions.validatingWebhook.disableCaBundle` | Disable ca-bundle so it can be injected by cert-manager. | `false` | +| `agones.extensions.mutatingWebhook.annotations` | [Annotations][annotations] added to the Agones mutating webhook. | `{}` | +| `agones.extensions.mutatingWebhook.disableCaBundle` | Disable ca-bundle so it can be injected by cert-manager. | `false` | +| `agones.extensions.allocationBatchWaitTime` | Wait time between each allocation batch when performing allocations in controller mode | `500ms` | +| `agones.extensions.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.extensions.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.extensions.replicas` | The number of replicas to run in the deployment | `2` | +| `agones.extensions.topologySpreadConstraints` | Ensures better resource utilization and high availability by evenly distributing Pods in the agones-system namespace | `{}` | + +{{% /feature %}} +{{% feature publishVersion="1.46.0" %}} | Parameter | Description | Default | |----------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------| |`agones.extensions.hostNetwork` | Determines if the Agones extensions should operate in hostNetwork mode. If running in hostNetwork mode, you should change `agones.extensions.http.port` and `agones.extensions.webhooks.port` to an available port. | `false` | @@ -391,6 +474,9 @@ The following tables lists the configurable parameters of the Agones chart and t | `agones.extensions.replicas` | The number of replicas to run in the deployment | `2` | | `agones.extensions.topologySpreadConstraints` | Ensures better resource utilization and high availability by evenly distributing Pods in the agones-system namespace | `{}` | +{{% /feature %}} + + ### GameServers | Parameter | Description | Default |