You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|`agones.controller.disableSecret`| Disables the creation of any allocator secrets. If true, you MUST provide the `{agones.releaseName}-cert` secrets before installation. |`false`|
213
+
|`agones.controller.allocationApiService.annotations`|[Annotations][annotations] added to the Agones apiregistration |`{}`|
214
+
|`agones.controller.allocationApiService.disableCaBundle`| Disable ca-bundle so it can be injected by cert-manager |`false`|
215
+
|`agones.controller.validatingWebhook.annotations`|[Annotations][annotations] added to the Agones validating webhook |`{}`|
216
+
|`agones.controller.validatingWebhook.disableCaBundle`| Disable ca-bundle so it can be injected by cert-manager |`false`|
217
+
|`agones.controller.mutatingWebhook.annotations`|[Annotations][annotations] added to the Agones mutating webhook |`{}`|
218
+
|`agones.controller.mutatingWebhook.disableCaBundle`| Disable ca-bundle so it can be injected by cert-manager |`false`|
@@ -276,12 +283,72 @@ That means that you skipped the `--cleanup` flag and you should either delete th
276
283
## Controller TLS Certificates
277
284
278
285
By default agones chart generates tls certificates used by the admission controller, while this is handy, it requires the agones controller to restart on each `helm upgrade` command.
286
+
287
+
### Manual
288
+
279
289
For most use cases the controller would have required a restart anyway (eg: controller image updated). However if you really need to avoid restarts we suggest that you turn off tls automatic generation (`agones.controller.generateTLS` to `false`) and provide your own certificates (`certs/server.crt`,`certs/server.key`).
280
290
281
291
{{< alert title="Tip" color="info">}}
282
292
You can use our script located at{{< ghlink href="install/helm/agones/certs/cert.sh" >}}cert.sh{{< /ghlink >}} to generate them.
283
293
{{< /alert >}}
284
294
295
+
{{% feature publishVersion="1.22.0" %}}
296
+
### Cert-Manager
297
+
298
+
Another approach is to use [cert-manager.io](https://cert-manager.io/) solution for cluster level certificate management.
299
+
300
+
In order to use the cert-manager solution, first [install cert-manager](https://cert-manager.io/docs/installation/kubernetes/) on the cluster.
301
+
Then, [configure](https://cert-manager.io/docs/configuration/) an `Issuer`/`ClusterIssuer` resource and
302
+
last [configure](https://cert-manager.io/docs/usage/certificate/) a `Certificate` resource to manage controller `Secret`.
303
+
Make sure to configure the `Certificate` based on your system's requirements, including the validity `duration`.
304
+
305
+
Here is an example of using a self-signed `ClusterIssuer` for configuring controller `Secret` where secret name is `my-release-cert` or `{{template "agones.fullname" . }}-cert`:
306
+
307
+
```bash
308
+
#!/bin/bash
309
+
# Create a self-signed ClusterIssuer
310
+
cat <<EOF | kubectl apply -f -
311
+
apiVersion: cert-manager.io/v1
312
+
kind: ClusterIssuer
313
+
metadata:
314
+
name: selfsigned
315
+
spec:
316
+
selfSigned:{}
317
+
EOF
318
+
319
+
# Create a Certificate with IP for the my-release-cert )
320
+
cat <<EOF | kubectl apply -f -
321
+
apiVersion: cert-manager.io/v1
322
+
kind: Certificate
323
+
metadata:
324
+
name: my-release-cert
325
+
namespace: agones-system
326
+
spec:
327
+
ipAddresses:
328
+
- agones-controller-service.agones-system.svc
329
+
secretName: my-release-cert
330
+
issuerRef:
331
+
name: selfsigned
332
+
kind: ClusterIssuer
333
+
EOF
334
+
```
335
+
336
+
After the certificates are generated, we will want to [inject caBundle](https://cert-manager.io/docs/concepts/ca-injector/) into controller webhook and disable controller secret creation by setting the following:
In order to reuse the existing load balancer IP on upgrade or install the `agones-allocator` service as a `LoadBalancer` using a reserved static IP, a user can specify the load balancer's IP with the `agones.allocator.http.loadBalancerIP` helm configuration parameter value. By setting the `loadBalancerIP` value:
0 commit comments