From 665f2fe27c9f784df2476b3c9ac797225a1968f9 Mon Sep 17 00:00:00 2001 From: Kalaiselvi Murugesan Date: Sat, 11 Nov 2023 02:45:41 +0000 Subject: [PATCH 1/3] Support appProtocol --- install/helm/agones/templates/service/allocation.yaml | 6 ++++++ install/helm/agones/values.yaml | 1 + site/content/en/docs/Installation/Install Agones/helm.md | 1 + 3 files changed, 8 insertions(+) diff --git a/install/helm/agones/templates/service/allocation.yaml b/install/helm/agones/templates/service/allocation.yaml index b17c584494..5ab4836d93 100644 --- a/install/helm/agones/templates/service/allocation.yaml +++ b/install/helm/agones/templates/service/allocation.yaml @@ -47,6 +47,9 @@ spec: - port: {{ .Values.agones.allocator.service.grpc.port }} name: {{ .Values.agones.allocator.service.grpc.portName }} targetPort: {{ .Values.agones.allocator.service.grpc.targetPort }} + {{- if .Values.agones.allocator.service.grpc.appProtocol }} + appProtocol: {{.Values.agones.allocator.service.grpc.appProtocol}} + {{- end}} {{- if eq .Values.agones.allocator.service.serviceType "NodePort" }} nodePort: {{ .Values.agones.allocator.service.grpc.nodePort }} {{- end }} @@ -57,6 +60,9 @@ spec: - port: {{ .Values.agones.allocator.service.grpc.port }} name: {{ .Values.agones.allocator.service.grpc.portName }} targetPort: {{ .Values.agones.allocator.service.grpc.targetPort }} + {{- if .Values.agones.allocator.service.grpc.appProtocol }} + appProtocol: {{.Values.agones.allocator.service.grpc.appProtocol}} + {{- end}} {{- if eq .Values.agones.allocator.service.serviceType "NodePort" }} nodePort: {{ .Values.agones.allocator.service.grpc.nodePort }} {{- end }} diff --git a/install/helm/agones/values.yaml b/install/helm/agones/values.yaml index 06bffc7dfe..c6fefab492 100644 --- a/install/helm/agones/values.yaml +++ b/install/helm/agones/values.yaml @@ -223,6 +223,7 @@ agones: nodePort: 0 # nodePort will be used if the serviceType is set to NodePort grpc: enabled: true + appProtocol: "" port: 443 portName: grpc targetPort: 8443 diff --git a/site/content/en/docs/Installation/Install Agones/helm.md b/site/content/en/docs/Installation/Install Agones/helm.md index 97f813c02c..d3156c7f46 100644 --- a/site/content/en/docs/Installation/Install Agones/helm.md +++ b/site/content/en/docs/Installation/Install Agones/helm.md @@ -233,6 +233,7 @@ The following tables lists the configurable parameters of the Agones chart and t | `agones.allocator.replicas` | The number of replicas to run in the deployment | `3` | | `agones.allocator.service.name` | Service name for the allocator | `agones-allocator` | | `agones.allocator.service.serviceType` | The [Service Type][service] of the HTTP Service | `LoadBalancer` | +| `agones.allocator.service.grpc.appProtocol` | If the ServiceType is set to "appProtocol", this is useful to connect gRPC with GKE gateway | `""` | | `agones.allocator.service.http.nodePort` | If the ServiceType is set to "NodePort", this is the NodePort that the allocator http service is exposed on. | `30000-32767` | | `agones.allocator.service.loadBalancerIP` | The [Load Balancer IP][loadBalancer] of the Agones allocator load balancer. Only works if the Kubernetes provider supports this option. | \`\` | | `agones.allocator.service.loadBalancerSourceRanges` | The [Load Balancer SourceRanges][loadBalancer] of the Agones allocator load balancer. Only works if the Kubernetes provider supports this option. | `[]` | From 10c813bbaacb8cca819c9b0e05dfdbc75a36db78 Mon Sep 17 00:00:00 2001 From: Kalaiselvi Murugesan Date: Mon, 13 Nov 2023 23:03:58 +0000 Subject: [PATCH 2/3] review update --- .../agones/templates/service/allocation.yaml | 3 + .../docs/Installation/Install Agones/helm.md | 61 ++++++++++++++++++- 2 files changed, 63 insertions(+), 1 deletion(-) diff --git a/install/helm/agones/templates/service/allocation.yaml b/install/helm/agones/templates/service/allocation.yaml index 5ab4836d93..fa592ab8b0 100644 --- a/install/helm/agones/templates/service/allocation.yaml +++ b/install/helm/agones/templates/service/allocation.yaml @@ -38,6 +38,9 @@ spec: - port: {{ .Values.agones.allocator.service.http.port }} name: {{ .Values.agones.allocator.service.http.portName }} targetPort: {{ .Values.agones.allocator.service.http.targetPort }} + {{- if .Values.agones.allocator.service.http.appProtocol }} + appProtocol: {{.Values.agones.allocator.service.http.appProtocol}} + {{- end}} {{- if eq .Values.agones.allocator.service.serviceType "NodePort" }} nodePort: {{ .Values.agones.allocator.service.http.nodePort }} {{- end }} diff --git a/site/content/en/docs/Installation/Install Agones/helm.md b/site/content/en/docs/Installation/Install Agones/helm.md index d3156c7f46..a2fa07e5b4 100644 --- a/site/content/en/docs/Installation/Install Agones/helm.md +++ b/site/content/en/docs/Installation/Install Agones/helm.md @@ -219,6 +219,7 @@ The following tables lists the configurable parameters of the Agones chart and t | `agones.ping.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.ping.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` | \`\` | +{{% feature publishVersion="1.37.0" %}} ### Allocator Service @@ -233,7 +234,7 @@ The following tables lists the configurable parameters of the Agones chart and t | `agones.allocator.replicas` | The number of replicas to run in the deployment | `3` | | `agones.allocator.service.name` | Service name for the allocator | `agones-allocator` | | `agones.allocator.service.serviceType` | The [Service Type][service] of the HTTP Service | `LoadBalancer` | -| `agones.allocator.service.grpc.appProtocol` | If the ServiceType is set to "appProtocol", this is useful to connect gRPC with GKE gateway | `""` | +| `agones.allocator.service.http.appProtocol` | The `appProtocol` to set on the Service for the http allocation port. If left blank, no value is set. | `` | | `agones.allocator.service.http.nodePort` | If the ServiceType is set to "NodePort", this is the NodePort that the allocator http service is exposed on. | `30000-32767` | | `agones.allocator.service.loadBalancerIP` | The [Load Balancer IP][loadBalancer] of the Agones allocator load balancer. Only works if the Kubernetes provider supports this option. | \`\` | | `agones.allocator.service.loadBalancerSourceRanges` | The [Load Balancer SourceRanges][loadBalancer] of the Agones allocator load balancer. Only works if the Kubernetes provider supports this option. | `[]` | @@ -245,6 +246,7 @@ The following tables lists the configurable parameters of the Agones chart and t | `agones.allocator.service.grpc.enabled` | If true the [allocator service][allocator] will respond to [gRPC requests][grpc-requests] | `true` | | `agones.allocator.service.grpc.port` | The port that is exposed externally by the [allocator service][allocator] for [gRPC requests][grpc-requests] | `443` | | `agones.allocator.service.grpc.portName` | The name of exposed port | `` | +| `agones.allocator.service.grpc.appProtocol` | The `appProtocol` to set on the Service for the gRPC allocation port. If left blank, no value is set. | `` | | `agones.allocator.service.grpc.nodePort` | If the ServiceType is set to "NodePort", this is the NodePort that the allocator gRPC service is exposed on. | `30000-32767` | | `agones.allocator.service.grpc.targetPort` | The port that is used by the allocator pod to listen for [gRPC requests][grpc-requests]. Note that the allocator server cannot bind to low numbered ports. | `8443` | | `agones.allocator.generateClientTLS` | Set to true to generate client TLS certificates or false to provide certificates in `certs/allocator/allocator-client.default/*` | `true` | @@ -273,6 +275,63 @@ The following tables lists the configurable parameters of the Agones chart and t | `agones.allocator.pdb.enabled` | Set to `true` to enable the creation of a [PodDisruptionBudget](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) for the allocator deployment | `false` | | `agones.allocator.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.allocator.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` | \`\` | +{{% /feature %}} + +{{% feature expiryVersion="1.37.0" %}} +### Allocator Service + + +| Parameter | Description | Default | +|----------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------| +| `agones.allocator.apiServerQPS` | Maximum sustained queries per second that an allocator should be making against API Server | `400` | +| `agones.allocator.apiServerQPSBurst` | Maximum burst queries per second that an allocator should be making against API Server | `500` | +| `agones.allocator.remoteAllocationTimeout` | Remote allocation call timeout. | `10s` | +| `agones.allocator.totalRemoteAllocationTimeout` | Total remote allocation timeout including retries. | `30s` | +| `agones.allocator.logLevel` | Agones Allocator Log level. Log only entries with that severity and above | `info` | +| `agones.allocator.install` | Whether to install the [allocator service][allocator] | `true` | +| `agones.allocator.replicas` | The number of replicas to run in the deployment | `3` | +| `agones.allocator.service.name` | Service name for the allocator | `agones-allocator` | +| `agones.allocator.service.serviceType` | The [Service Type][service] of the HTTP Service | `LoadBalancer` | +| `agones.allocator.service.http.nodePort` | If the ServiceType is set to "NodePort", this is the NodePort that the allocator http service is exposed on. | `30000-32767` | +| `agones.allocator.service.loadBalancerIP` | The [Load Balancer IP][loadBalancer] of the Agones allocator load balancer. Only works if the Kubernetes provider supports this option. | \`\` | +| `agones.allocator.service.loadBalancerSourceRanges` | The [Load Balancer SourceRanges][loadBalancer] of the Agones allocator load balancer. Only works if the Kubernetes provider supports this option. | `[]` | +| `agones.allocator.service.annotations` | [Annotations][annotations] added to the Agones allocator service | `{}` | +| `agones.allocator.service.http.enabled` | If true the [allocator service][allocator] will respond to [REST requests][rest-requests] | `true` | +| `agones.allocator.service.http.port` | The port that is exposed externally by the [allocator service][allocator] for [REST requests][rest-requests] | `443` | +| `agones.allocator.service.http.portName` | The name of exposed port | `http` | +| `agones.allocator.service.http.targetPort` | The port that is used by the allocator pod to listen for [REST requests][rest-requests]. Note that the allocator server cannot bind to low numbered ports. | `8443` | +| `agones.allocator.service.grpc.enabled` | If true the [allocator service][allocator] will respond to [gRPC requests][grpc-requests] | `true` | +| `agones.allocator.service.grpc.port` | The port that is exposed externally by the [allocator service][allocator] for [gRPC requests][grpc-requests] | `443` | +| `agones.allocator.service.grpc.portName` | The name of exposed port | `` | +| `agones.allocator.service.grpc.nodePort` | If the ServiceType is set to "NodePort", this is the NodePort that the allocator gRPC service is exposed on. | `30000-32767` | +| `agones.allocator.service.grpc.targetPort` | The port that is used by the allocator pod to listen for [gRPC requests][grpc-requests]. Note that the allocator server cannot bind to low numbered ports. | `8443` | +| `agones.allocator.generateClientTLS` | Set to true to generate client TLS certificates or false to provide certificates in `certs/allocator/allocator-client.default/*` | `true` | +| `agones.allocator.generateTLS` | Set to true to generate TLS certificates or false to provide your own certificates | `true` | +| `agones.allocator.disableMTLS` | Turns off client cert authentication for incoming connections to the allocator. | `false` | +| `agones.allocator.disableTLS` | Turns off TLS security for incoming connections to the allocator. | `false` | +| `agones.allocator.disableSecretCreation` | Disables the creation of any allocator secrets. If true, you MUST provide the `allocator-tls`, `allocator-tls-ca`, and `allocator-client-ca` secrets before installation. | `false` | +| `agones.allocator.tlsCert` | Custom TLS certificate provided as a string | \`\` | +| `agones.allocator.tlsKey` | Custom TLS private key provided as a string | \`\` | +| `agones.allocator.clientCAs` | A map of secret key names to allowed client CA certificates provided as strings | `{}` | +| `agones.allocator.tolerations` | Allocator [toleration][toleration] labels for pod assignment | `[]` | +| `agones.allocator.affinity` | Allocator [affinity][affinity] settings for pod assignment | `{}` | +| `agones.allocator.annotations` | [Annotations][annotations] added to the Agones allocator pods | `{}` | +| `agones.allocator.resources` | Allocator pods [resource requests/limit][resources] | `{}` | +| `agones.allocator.labels` | [Labels][labels] Added to the Agones Allocator pods | `{}` | +| `agones.allocator.readiness.initialDelaySeconds` | Initial delay before performing the first probe (in seconds) | `3` | +| `agones.allocator.readiness.periodSeconds` | Seconds between every liveness probe (in seconds) | `3` | +| `agones.allocator.readiness.failureThreshold` | Number of times before giving up (in seconds) | `3` | +| `agones.allocator.nodeSelector` | Allocator [node labels][nodeSelector] for pod assignment | `{}` | +| `agones.allocator.serviceMetrics.name` | Second Service name for the allocator | `agones-allocator-metrics-service` | +| `agones.allocator.serviceMetrics.annotations` | [Annotations][annotations] added to the Agones allocator second Service | `{}` | +| `agones.allocator.serviceMetrics.http.port` | The port that is exposed within cluster by the [allocator service][allocator] for http requests | `8080` | +| `agones.allocator.serviceMetrics.http.portName` | The name of exposed port | `http` | +| `agones.allocator.allocationBatchWaitTime` | Wait time between each allocation batch when performing allocations in allocator mode | `500ms` | +| `agones.allocator.updateStrategy` | The [strategy](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy) to apply to the ping deployment | `{}` | +| `agones.allocator.pdb.enabled` | Set to `true` to enable the creation of a [PodDisruptionBudget](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) for the allocator deployment | `false` | +| `agones.allocator.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.allocator.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` | \`\` | +{{% /feature %}} ### Extensions From d47ee726c8317f97be9d4530c4af0844a7490ae0 Mon Sep 17 00:00:00 2001 From: Kalaiselvi Murugesan Date: Tue, 14 Nov 2023 19:34:29 +0000 Subject: [PATCH 3/3] appProtocol in http service --- install/helm/agones/values.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/install/helm/agones/values.yaml b/install/helm/agones/values.yaml index c6fefab492..fa94e0b760 100644 --- a/install/helm/agones/values.yaml +++ b/install/helm/agones/values.yaml @@ -217,6 +217,7 @@ agones: annotations: {} http: enabled: true + appProtocol: "" port: 443 portName: https targetPort: 8443