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

Add quickstart for the relay setup #772

Merged
merged 3 commits into from
Oct 6, 2023
Merged

Add quickstart for the relay setup #772

merged 3 commits into from
Oct 6, 2023

Conversation

XAMPPRocky
Copy link
Collaborator

This is the Quickstart for the relay setup, as mentioned this is still mostly the same as the xds setup, except with a few paragraph changes and additions to the xds-control-plane.yaml to launch a relay and a agent.

@markmandel
Copy link
Member

Sweet! Will finish off #666 (almost there!) and then pop over to this 👍🏻

@markmandel
Copy link
Member

Finally getting around to taking this for a spin and building out the integration tests.

I'm rebasing against main so I 'll make the tweaks to remove localities as well. Would you prefer updates direct to this branch, or should I submit a PR to your branch instead?

@XAMPPRocky
Copy link
Collaborator Author

Would you prefer updates direct to this branch, or should I submit a PR to your branch instead?

Whichever works best, I don't mind either way, but pushing to here seems like the easiest, don't worry about not rewriting the commits to get through the rebase.

@markmandel markmandel added this to the 0.7.0 milestone Oct 3, 2023
markmandel added a commit to markmandel/quilkin that referenced this pull request Oct 4, 2023
Updated examples from googleforgames#772 moved into their own separate PR, so that
when googleforgames#772 is submitted, link checks om the quickstart documentation will
resolve correctly.
markmandel added a commit to markmandel/quilkin that referenced this pull request Oct 4, 2023
Updated examples from googleforgames#772 moved into their own separate PR, so that
when googleforgames#772 is submitted, link checks om the quickstart documentation will
resolve correctly.
@markmandel markmandel force-pushed the ep/relay-quickstart branch from fefabc4 to 7a29e25 Compare October 4, 2023 21:46
@markmandel
Copy link
Member

Added a commit with fixes for the quickstart and associated docs. Please take a look and let me know what you think!

Html link testing in CI will pass once #807 has been merged.

Html link testing will pass once #807 has been merged.
@markmandel markmandel force-pushed the ep/relay-quickstart branch from 7a29e25 to 12e4a80 Compare October 4, 2023 22:12
@markmandel markmandel marked this pull request as ready for review October 4, 2023 22:29
markmandel added a commit to markmandel/quilkin that referenced this pull request Oct 4, 2023
* Bring examples up to use 0.7.0
* Update xDS quickstart to be inline with the relay quickstart in googleforgames#772
and with the relevant changes to Quilkin.

Dependent on:
* googleforgames#772
markmandel added a commit to markmandel/quilkin that referenced this pull request Oct 4, 2023
* Bring examples up to use 0.7.0
* Update xDS quickstart to be inline with the relay quickstart in googleforgames#772
and with the relevant changes to Quilkin.

Dependent on:
* googleforgames#772
| services | ports | Protocol |
|----------|-------|--------------------|
| ADS | 7800 | gRPC(IPv4 OR IPv6) |
| CPDS | 7900 | gRPC(IPv4 OR IPv6) |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thing I noted when doing the examples is that it's not just quilkin relay it's quilkin relay (agones|file) (at least from the command prompt).

And in the example for Agones - we do run quilkin relay agones. I am wondering if that's because we still want to pickup the Filter ConfigMap at the Relay level, but the endpoint configuration at the Agent level?

But it does seem like we have the same CLI args shared between quilkin relay and quilkin agent, which may be confusing (Also, noting that quilkin relay with no extra args works will run, but I assume will skip any of the provider/agent specific logic.

For example, quilkin relay agones --config-namespace="gameservers" is valid, but I'm guessing that --config-namespace doesn't actually do anything? (maybe to get removed later?). Same for quilkin relay file ?

Just wanted to make sure I wasn't missing anything here when writing docs. I figure this is just an artifact of work in progress, but wanted to check.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using --config-namespace does do something. It picks up the filters configuration from kubernetes, same thing for file.

It's that way because with the relay, you (or at least we) only want to pick up the filter configuration from one place (the configmap).

I think for the future we should adopt traefik style dot separated flags, then the behaviour would be much more obvious.

quilkin relay
   --filters.provider.configmap.namespace=gameservers

And then a management server or agent would look like this.

quilkin manage
    --filters.provider.configmap.namespace=quilkin
    --endpoints.provider.agones.namespace=gameservers

This separates where the two sources of configuration are defined so it's more clear what is being picked from where.

I opened a discussion with clap about supporting this natively to reduce the effort on our part earlier in the year, but they haven't added anything yet for it.

I think for now it'll be worth making the extra effort on our side to provide a better CLI API, we just need to allocate the time to move it, and I don't have that time right now.

clap-rs/clap#4699

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah that's an interesting point. I don't hugely worry about the cli being dot seperated, but also don't hate it 😄

But I'll also add some notes to the agent/quickstart around relay sub-command functionality so that is also clear.

Just so I make sure to get that right:

quilkin relay --gameservers-namespace .... that doesn't do anything does it? Since the relay isn't looking at Agones GameServer data locally? (or does it???)

I also assume quilkin relay file <path> wouldn't actually do anything, since the full config would come from seperate quilkin agents - or would it grab the local file info and merge it with whatever else is coming in?

@github-actions github-actions bot added size/m and removed size/l labels Oct 5, 2023
@quilkin-bot
Copy link
Collaborator

Build Succeeded 🥳

Build Id: 024b17a8-2e70-47cc-b451-5980dce1e28b

The following development images have been built, and will exist for the next 30 days:

To build this version:

git fetch [email protected]:googleforgames/quilkin.git pull/772/head:pr_772 && git checkout pr_772
cargo build

@XAMPPRocky XAMPPRocky enabled auto-merge (squash) October 5, 2023 16:41
@XAMPPRocky
Copy link
Collaborator Author

@markmandel LGTM, I can't approve since it's my PR, so you or @koslib need to approve for it to be merged.

@XAMPPRocky XAMPPRocky merged commit 6e98b81 into main Oct 6, 2023
5 checks passed
@markmandel markmandel deleted the ep/relay-quickstart branch October 9, 2023 20:22
@markmandel markmandel added kind/documentation Improvements or additions to documentation kind/feature New feature or request labels Oct 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/documentation Improvements or additions to documentation kind/feature New feature or request size/m
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants