Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal: For multi-cluster allocation move remote server CA to GameServerAllocationPolicy #1517

Closed
pooneh-m opened this issue May 6, 2020 · 1 comment · Fixed by #1545
Closed
Labels
area/operations Installation, updating, metrics etc kind/feature New features for Agones
Milestone

Comments

@pooneh-m
Copy link
Collaborator

pooneh-m commented May 6, 2020

Is your feature request related to a problem? Please describe.
Currently, for multi-cluster allocation the client secret is expected to have the server CA. However, this is not compatible with the out-of-the-box certificate management solutions (e.g. cert-manager).

Describe the solution you'd like
GameServerAllocationPolicy has the information about the remote cluster allocation endpoint. The server CA should be a field under connectionInfo, and only provided if the remote server cert is not signed by a public CA (e.g. self-signed). This will be similar to caBundle model in k8s webhooks.

apiVersion: multicluster.agones.dev/v1
kind: GameServerAllocationPolicy
metadata:
  ...
spec:
  connectionInfo:
    allocationEndpoints:
    - 1.1.1.1
    namespace: default
    secretName: client-secret
    serverCA: c2VydmVyQ0E=
  priority: 1
  weight: 100

The solution should be backward compatible to support the existing client secret setup, meaning if the secretCA is set in GameServerAllocationPolicy, use it. Otherwise, fall back to the existing solution of using ca.crt from the client secret.

Describe alternatives you've considered
Instead of storing the base64 PEM encoded secret for server CA in connectionInfo, the value can be stored in a k8s secret and a reference to the secret is stored in the GameServerAllocationPolicy. However, because server CA is the public portion of the certificate, there is no security reason for storing it in the k8s secret. It also will add an extra resource read to the multi-cluster allocation operation to read the server CA secret.

@pooneh-m pooneh-m added the kind/feature New features for Agones label May 6, 2020
@markmandel
Copy link
Member

This sounds like a good idea to me 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/operations Installation, updating, metrics etc kind/feature New features for Agones
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants